You are on page 1of 23

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 Multiprogramación Multiprogramación Multiprogramación


programació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 Segmentada - Paginada
• Otro esquema de asignación de memoria es: Segmentación
paginada
– La Memoria lógica está dividida en bloques llamados segmentos que
contienen las regiones de un proceso.
– Dirección lógica=<nº segmento, desplazamiento>=<S,d>
– Los segmento están divididos en páginas de igual tamaño que los marcos
(potencias de 2).
– Las páginas de un proceso se cargan en marcos de la memoria principal.
– Cada segmento tiene asociada una tabla de páginas
– Se usa un registro límite y base de la tabla de páginas para cada
segmento
• Esquema de traducción de direcciones
– Dirección lógica=<nº segmento,
desplazamiento>=<S,d>
– S= entrada de la tabla de segmentos:
• Contiene el límite del segmento
• Contiene la dirección base de una tabla de
páginas.
• Habrá una tabla de páginas por cada
segmento.
– El desplazamiento d es:
• Un número de página P.
• Un nuevo desplazamiento
dentro de la página d’.
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.
Memoria virtual
Paginación por demanda:
— 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
nválido)
— Ocurre una interrupción o fallo de página, Control
al SO
Gestión de un Fallo de Página
• 1. Se detecta que la página no está en memoria
2. Se produce una interrupción
3. Se busca la página en almacenamiento secundario (disco)
4. Se busca un marco libre, se lee la página de almacenamiento
secundario y se copia en el marco seleccionado
5. Se actualiza la tabla de páginas
6. Se reinicia en la instrucción interrumpida
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