You are on page 1of 18

ADMINISTRACION DE LA

MEMORIA PRINCIPAL
INF 2310 – SISTEMAS OPERATIVOS I
TEMA 4 – Parte 3
Modos de Gestión de Memoria
Memoria Real Memoria Real Memoria Real Memoria Virtual
Mono programación Multiprogramación Multiprogramación Multiprogramación

Partición Paginación Segmentación Paginación Segmentación


Virtual Virtual

Fija Dinámica Segmentada-Paginada Segmentada Paginada Virtual

Reubicación, Protección
Memoria Virtual
Memoria Virtual
Recordemos que queremos mantener simultáneamente varios procesos en
memoria para permitir multiprogramación.
Memoria Virtual:
— Permite separar la memoria lógica del usuario de la memoria física.
— Un proceso en ejecución no tiene porque encontrarse totalmente en memoria
principal (sólo parte).
— Ahora un proceso puede ser mayor que la memoria física.
— Permite transferencia de información entre memoria principal y secundaria (2
niveles consecutivos de la jerarquía de memoria).
— Usa un dispositivo de almacenamiento secundario (disco) como dispositivo de
intercambio.
La memoria virtual puede implementarse sobre Paginación o Segmentación
paginada: se transfieren paginas.
La transferencia suele ser bajo demanda.
Paginación por demanda:
Memoria virtual
— Los procesos están divididos en páginas.
— Inicialmente: una serie de páginas del proceso cargadas en memoria principal (MP). las que se usan.
— El resto en almacenamiento secundario.

— Necesario un bit de presencia en tabla de paginas: Bit válido-inválido


• 1. página cargada en MP (v).
• O. página no cargada (i).

Si el proceso accede a páginas residentes en memoria (bit de


presencia válido)
— la ejecución prosigue normalmente
Si accede a una página no residente (bit presencia inválido)
— Ocurre una interrupción o fallo de página, Control al SO
Memoria Virtual
Hardware de apoyo a la paginación por demanda:
• Capacidad de marcar en la tabla de páginas una entrada como válida o invalida
(bit valido-invalido).
• Unidad de almacenamiento secundario:
— La sección de disco empleado para este fin se denomina: espacio de intercambio o
almacenamiento auxiliar.

Paginación por demanda pura:


Caso extremo:
• comenzamos la ejecución de un proceso sin ninguna página cargada en memoria.
• Se irán produciendo fallos de páginas sucesivamente y cargando las páginas
necesarias.
Memoria Virtual
Segmentación Paginada con Paginación por Demanda:

• No todas las páginas de todos los segmentos estarían en memoria.


• Usamos también bits de valido-invalido para la tabla de páginas
asociada a cada segmento.
• El funcionamiento es igual que paginación por demanda.
Memoria Virtual
Reemplazo de páginas:
• Fallo de página: dos accesos a almacenamiento secundario
— Uno para guardar la página víctima
— Otro para cargar la nueva página
• Usar bit de modificado en la tabla de páginas
• Al cargar la página, desde almacenamiento secundario a memoria, el bit
modificado se pone a O (no modificada)
— Si se escribe en la página el bit pasa a 1 (modificado)
— Si la página es elegida como víctima se mira su bit de modificado
• Si la página no ha sido modificada (bit a cero) no habrá que salvarla
• Si la página ha sido modificada (bit a uno) se salvará
Memoria Virtual
Algoritmos de reemplazo de página:
• Clasificación de estrategias de reemplazo:
— Reemplazo Global: Utilizan los algoritmos de reemplazo de páginas actuando
sobre las páginas de todos los procesos
— Reemplazo Local: Usa los algoritmos sólo entre las páginas del proceso que
necesita un reemplazo de página

• Algoritmos de reemplazo de páginas:


• FIFO
• Óptimo
• LRU (Last Recently Used)
• De la segunda oportunidad o del reloj
• Con bits referenciado y modificado
Reemplazo de páginas

• Cuando una página se lee de disco


• Si hay marcos de páginas libres, obtener una
• Si no el S.O. debe reemplazar una de las ocupadas
• Algoritmos de reemplazamiento
• Obtener un marco que no se usará en el futuro cercano
• Obtener un marco que no ha sido modificada
• SO trata de tener un número de marcos libres para no tener
que pagar costo de reemplazo en ese momento
Reemplazamiento de Páginas

• Objetivos de los algoritmos de


reemplazamiento de páginas
• Disminuir la razón de fallos de páginas
seleccionando la mejor página “víctima” para
reemplazo
• Ideal: La mejor página “víctima” es una que no
volverá a ser referenciada nunca
• Proceso que la posee no generará fallo de
página referenciándola
Algoritmos de Reemplazo Optimo
Algoritmo de Belady
• Misma idea de SJF (algoritmo de planificación de procesos)
• Seleccionar página que no será referenciada por el tiempo más largo en el futuro
• Problema: No se puede predecir el futuro
• Por que es útil este algoritmo?
• Sirve como referencia para comparar otros algoritmos
• Por intuición si un sistema tiene más marcos de páginas disponibles, cualquiera sea el
algoritmo de reemplazo de páginas ocurrirán menos fallos de páginas
• Esto no se cumple siempre, a veces puede aumentar Esto se conoce como la
anomalía de Belady
Algoritmo de Reemplazo : FIFO

• Fácil de implementar
• Lista de páginas del sistema
• Cuando SO asigna marco a página ponerla al final de la lista
• Cuando SO tiene que reemplazar página, saca la primera de la lista
• Por que podría ser bueno?
• Quizás la página que entró a memoria primero ahora no se necesita
• Por que podría ser malo?
• Quizás página esta en uso
• No hay información en absoluto
Algoritmo de Reemplazo : Least Recently Used (LRU)

• LRU usa información acerca de referencias para decidir que


página es mejor como víctima
• Idea: Referencias pasadas dan una idea del comportamiento futuro
• En reemplazo. elegir página que no ha sido usada por el mayor tiempo
• Implementación
• Idealmente: Poner una marca de tiempo (timestamp) en cada referencia a
memoria y poner esta información en entrada de página, ordenar búsqueda de
acuerdo a marca de tiempo
• Muy cara
• En la práctica: Una aproximación
Aproximación para LRU

• Muchas aproximaciones, todas usan bit R


• Mantener un contador por cada página
• Periódicamente para cada página
• (1) If R == 0 then incrementar contador (no se ha usado)
• (2) If R == 1 then contador = 0 (se ha usado)
• Contador mantiene número de intervalos desde la última referencia
• Página con mayor contador es la menos recientemente usada
• Implementación es cara. Copia de registro, SO mantención, cambio contexto,
búsqueda página en tabla para reemplazo
Algoritmo de Reemplazo : LRU Reloj

• LRU con Reloj. Página no usada recientemente o Segunda Oportunidad


• Reemplazar una página que es de las más viejas
• Organizar los marcos de páginas en una cola circular FIFO y recorrer cola buscando
víctima de la siguiente manera
• Si bit R = 0 página es elegida para reemplazo
• Si bit R = 1 página ha sido usada, darle segunda oportunidad y poner bit en 0 y seguir con la
siguiente página
• Puntero que recorre cola se mueve rápido cuando hay necesidad de páginas
• Si hay mucha memoria libre… baja sobrecarga
• Si la memoria física es grande mas difícil de lograrlo bien
• Solución: agregar más punteros para elegir víctima
Asignando Marcos de Páginas

• En un sistema multiprogramado se necesita entregar memoria a procesos que


compiten por su asignación
• De donde elegir víctimas de mismo proceso o diferente?
• Algoritmos de espacio fijo (Local)
• Cada proceso tiene un límite de páginas que puede usar
• Cuando proceso alcanza límite, páginas víctimas son extraídas del mismo
proceso
• Procesos grandes que requieren muchas de sus páginas en memoria
pueden sufrir
Asignando Marcos de Páginas

• Algoritmos de espacio variable (Global)


• Conjunto de páginas necesitadas por proceso varía en el tiempo
(tamaños de working sets cambian)
• Reemplazo global, página víctima puede provenir de cualquier proceso
• Algunos procesos pueden entorpecer ejecución del resto
• Linux usa este algoritmo

You might also like