Post on 09-Mar-2016
description
Gestión de Memoria Sistemas Operativos Distribuidos
Unidad V - Ciclo 09/2
UVM – Campus Hispano
Prof. L. Manuel Cruz G.
2
GESTION DE MEMORIA
Reparto de memoria Los programas suelen acaparar toda la que pueden. Hace falta gestionarla: – Ver qué partes están libres y cuales ocupadas. – Asignar y revocar memoria. – Paginar/Swapping: llevar cosas sin usar a disco y traer cosas a memoria.
Swapping Cuando falta memoria:
• Se usa el disco. • Hay intercambio de procesos entre memoria y disco. • Los PCB se mantienen.
Pero. . .
• Prácticamente no se usa => la memoria es barata. • Se suele “paginar” (swapping con “trozos”, no con procesos).
Implicaciones
• Un nuevo estado “swapped-out” para los procesos. • Otro scheduler (“swapper”) para decidir quién está en memoria. • Una sección de disco: área de swap.
En la prehistoria
• Memoria cara: se reparte entre todos los procesos. • Muchos procesos pasan a disco “enteros”
Hoy
• Memoria barata: gestión más simple. • Se hace swapping.
Monoprogramación
• Un proceso usa toda la memoria. • Cada proceso lleva pegado el SO. • Sólo un proceso a la vez. _
3
• El procesador esta parado mientras se hace E/S.
Multiprogramación
• Se ejecutan otros procesos mientras hacemos E/S. =>)varios procesos en memoria.
• Imprescindible para Time sharing. • Aprovecha más la CPU.
Modelización Se puede estudiar, pero. . . – El modelo no representa la situación del sistema. – Depende de la carga real que pongamos en el sistema. – Mejor medir empíricamente las propiedades que interesen. Intuitivamente: Más memoria) => más procesos)=> mayor uso de CPU.
Particiones fijas
• Dividimos en trozos la memoria en arranque. • Asignamos los trozos a procesos.
Alternativas
• Varias colas: desaprovecho memoria. • Una cola:
o FIFO: puedo desaprovechar memoria. o otra: puedo penalizar a determinados procesos.
Carga y protección El Compilador y el SO han de cooperar.
• Hay que saber dónde están las direcciones y reajustarlas. • Protección:
o Bits extra de “contexto” en la memoria. o Segmentos: base+ +límite.
4
Fragmentación Interna dentro de los fragmentos. Externa fragmentos inútiles. Podemos usar compactación.
Memoria Virtual ¿Qué es esto?
• Procesos más grandes que la memoria disponible • Más procesos que los que caben en memoria. • _Automatización de overlays. • Utilizamos disco como una memoria muy lenta.
Paginación La forma actual de implementar memoria virtual. Conceptos
• Espacio virtual de direcciones. • Memoria virtual => memoria física • Páginas => marcos de página • Tabla de páginas • Paginación
Intercambiamos páginas, no procesos. Algoritmos de reemplazamiento Óptimo La que tarde más en usarse. NRU Utilizando los bits R y M. FIFO Ordenadas según llegada 2da oportunidad FIFO con reciclado. Clock Implementación eficiente de la 2da oportunidad. LRU Menos recientemente usada: matrices. . . NFU No usada recientemente. (Sumar R a contadores) Aging Envejecimiento. (Sumas y desplazamientos con R) Detalles prácticos
5
Una política simple y eficaz. Paging-ahead. - Page clustering. Más importante reducir el número de fallos que el tiempo en procesarlos. _Aunque si los hay, a lo mejor falta memoria. . .
Segmentación
• Un proceso tiene segmentos.
• Dirección: desplazamiento: protección
• Una tabla o registros para los descriptores.
• Se puede combinar con la paginación (MULTICS, Intel)
PAGINACIÓN SEGMENTACIÓN Visión del programador No Si Espacios de direcciones 1 varios M. Virtual. > M. física Si Si Protección Código = datos Si Si Crecimiento No Si Compartición Si Si Objetivo Espacio lineal de direcciones Visión del usuario, protección Fragmentación Interna Externa Detalle práctico Puede usarse la segmentación para compartir páginas => )reducir fragmentación interna. No se usa ¿Por qué?