Gestion de Memoria

5

Click here to load reader

description

Gestion de memoria en los Sistemas Operativos Distribuidos

Transcript of Gestion de Memoria

Page 1: Gestion de Memoria

Gestión de Memoria Sistemas Operativos Distribuidos

Unidad V - Ciclo 09/2

UVM – Campus Hispano

Prof. L. Manuel Cruz G.

Page 2: Gestion de Memoria

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. _

Page 3: Gestion de Memoria

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.

Page 4: Gestion de Memoria

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

Page 5: Gestion de Memoria

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é?