Administración de Memoria en UNIX
-
Upload
natalia-ludena -
Category
Documents
-
view
14.658 -
download
1
description
Transcript of Administración de Memoria en UNIX
SISTEMAS OPERATIVOS
ADMINISTRACIÓN DE MEMORIA EN UNIX
Natalia Ludeña
UNIX
Administración de Memoria
Administración de Memoria
Utiliza dos técnicas de manejo de memoria: swapping memoria virtual.
Lo estándar en Unix es un sistema de intercambio de segmentos de un proceso entre memoria principal y memoria secundaria, llamado swapping lo que significa que se debe mover la imagen de un proceso al disco si éste excede la capacidad de la memoria principal, y copiar el proceso completo a memoria secundaria. Es decir, durante su ejecución, los procesos son cambiados de y hacia memoria secundaria conforme se requiera.
La paginación por demanda y combinación de segmentos paginados, en ambos casos con páginas de tamaño fijo.
Administración de Memoria (cont.)
Se usa una partición de disco duro para el área de intercambio En algunos sistemas el tamaño de la página en Unix es de 512
bytes; en otros, de 1024. Para reemplazo se usa un algoritmo que mantiene en memoria las
páginas empleadas más recientemente. Un sistema de paginación por demanda ofrece muchas ventajas en
cuanto a flexibilidad y agilidad en la atención concurrente de múltiples procesos y proporciona, además, memoria virtual, es decir, la capacidad de trabajar con procesos mayores que el de la memoria central. Estos esquemas son bastante complejos y requieren del apoyo de hardware especializado.
Administración de Memoria (cont.)
UNIX modernos soportan la llamada al sistema mmap, el uso del espacio de direcciones es menos estructurado. Implementación de librerías compartidas pueden ubicar texto o datos arbitrariamente, representar la noción de regiones predefinidas obsoletas.
Regla importante:
Asignar una partición de disco duro que sea al menos el doble de la cantidad de memoria real de la computadora
Proceso:
Si un proceso necesita crecer, pide más memoria al sistema operativo y se le da una nueva sección, lo suficientemente grande para acomodarlo. Entonces, se copia el contenido de la sección usada al área nueva, se libera la sección antigua y se actualizan las tablas de descriptores de procesos. Si no hay suficiente memoria en el momento de la expansión, el proceso se bloquea temporalmente y se le asigna espacio en memoria secundaria. Se copia a disco y, posteriormente, cuando se tiene el espacio adecuado - lo cual sucede normalmente en algunos segundos - se devuelve a memoria principal.
En un mapa tradicional de UNIX, el kernel y sus estructuras de datos asociadas residen en la parte alta del espacio de direcciones.
El texto inicial y las áreas de datos empiezan en o cerca del principio de la memoria. Típicamente, los primeros 4 o 8 Kbyte de memoria son conservados fuera de los límites del proceso. La razón de esta restricción es para una depuración de programa fácil; indirectamente a través de un apuntador nulo causara un fallo de dirección inválida, en lugar de leer o escribir el texto de programa.
La localización de memoria hecha por el proceso en ejecución usando la rutina de librería malloc( ) (o la llamada al sistema sbrk) son hechas de la parte que empieza inmediatamente siguiente al área de datos y crece hasta las direcciones mas altas. El vector de argumento y los vectores de ambiente están en la parte más alta de la porción de usuario del espacio de direcciones. La pila de usuario empieza justo debajo de estos vectores y crece hasta las direcciones mas bajas.
Además…
Todos los procesos que forman parte del kernel no pueden ser intercambiados a disco.
Tener en cuenta: facilidad de incrementar el espacio de intercambio facilidad de añadir módulos de memoria RAM a la
computadora sin necesidad de reconfigurar el núcleo.
UNIX
Diferencias entre un DOS y UNIX
Diferencias entre un DOS y UNIX
Distinción entre mayúsculas y minúsculas Diagonal y diagonal inversa Nombres de archivos Símbolos Comodín
Distinción entre mayúsculas y minúsculas UNIX es sensible a las Diferencias entre
letras mayúsculas y minúsculas, mientras que DOS no lo es.
Diagonal y diagonal inversa
DOS usa la diagonal inversa \ para los paths, por ejemplo en \juegos\tetris, mientras que Unix usa la diagonal /, el path anterior se escribiría /juegos/tetris.
Nombres de archivos:
en DOS los nombres de archivos están limitados a ocho caracteres alfanuméricos, seguidos opcionalmente de un punto y una extensión de tres letras; en Unix los nombres de archivos pueden contener hasta catorce caracteres, pueden incluir uno o más puntos que no se tratan especialmente salvo cuando es el primer carácter del nombre.
Símbolos Comodín:
ambos sistemas permiten el uso de * o ? para especificar conjuntos de nombres de archivos, aunque DOS es algo más rígido con *, que solo se interpreta al final del nombre o la extensión de una plantilla. Unix dispone además de una notación especial para indicar un rango de caracteres