Está en la página 1de 86

Concepto

Paginacin sobre demanda


Reemplazo de pginas
Asignacin de marcos

Administracin de memoria: Memoria


virtual

Gunnar Wolf
Facultad de Ingeniera, UNAM
Instituto de Investigaciones Econmicas, UNAM

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

ndice
1

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Disociar por completo memoria fsica y lgica

El primer gran paso hacia la memoria virtual lo cubrimos


al hablar de paginacin
Cada proceso tiene una
Cada proceso se

mapea

vista lgica

de su memoria

a la memoria fsica

Pero es exclusivo, distinto del de los dems procesos

Ahora cada proceso tiene un espacio de direccionamiento


exclusivo y muy grande
Pero omitimos cmo es que podemos ofrecer ms
memoria que la fsicamente disponible

Aqu entra en juego la memoria virtual


La memoria fsica es slo una

proyeccin parcial

de la

memoria lgica, potencialmente mucho mayor


Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Retomando el intercambio

Vimos el intercambio en primer trmino al intercambio


(swap) al hablar de memoria particionada
Mejora cuando hablamos de segmentacin
Espacio de memoria completo de un proceso

Intercambio parcial; segmentos no utilizados.


El proceso puede continuar con porciones

congeladas

almacenamiento secundario

Con la memoria virtual, el intercambio se realiza por

pgina

Mucho ms rpido que por bloques tan grandes como un


segmento
Completamente transparente al proceso
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Esquema general empleando memoria virtual

Figura: Esquema general de la memoria, incorporando espacio en


almacenamiento secundario, representando la memoria virtual
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Pequeo cambio de nomenclatura

El intercambio (swap) deja de ser un ltimo recurso


El mecanismo para intercambiar pginas al disco ya no es
un mecanismo aparte
Pasa a ser un elemento ms en la jerarqua de memoria

intercambiador (swapper)
paginador

Ya no hablamos del
Sino que del

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Transparencia al proceso

Es importante recalcar que cuando hablamos de memoria


virtual, sta se mantiene transparente al proceso
El proceso puede dedicarse a cumplir su tarea, el sistema
operativo paginar la memoria segn haga falta
Es posible hacer ciertas indicaciones de preferencia, pero
en general no es el caso

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

ndice
1

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Deja dormir al cdigo durmiente

En el transcurso de la vida de un proceso, porciones


importantes de su memoria se mantienen durmientes 
Cdigo que slo se emplea eventualmente
Respuesta a situaciones de excepcin

Exportacin de un documento a determinado formato


Vericacin de sanidad al cerrar el programa
Estructuras inicializadas con espacio para permitir que
crezcan

Las pginas en que estn dichos datos no son necesarias


durante la ejecucin normal
...

El paginador puede

posponer

su carga hasta cuando sean

necesarias
Si es que alguna vez son requeridas
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Entonces, sobre demanda?

Todo el cdigo que ejecute o referencie directamente el


procesador tiene que estar en memoria principal
Pero no tiene que estarlo

antes

de ser referenciado

Para ejecutar un proceso, slo requerimos cargar la


porcin necesaria para

comenzar

la ejecucin

Podemos emplear a un paginador ojo

Slo ir cargando a memoria las pginas conforme van a


ser utilizadas
Las pginas que no sean requeridas nunca sern cargadas
a memoria

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Paginador ojo?

: Concepto usado en diversas reas del cmputo


Flojo (Lazy) Busca hacer el trabajo mnimo en un principio, y
diferir para ms tarde tanto como sea posible
Ansioso (Eager) Busca realizar todo el trabajo que sea posible
Flojo

desde un principio

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Cmo hacemos ojo al paginador?

Estructura de MMU muy parecida a la del TLB


La tabla de pginas incluir un bit de validez
Indica si la pgina est presente o no en memoria
Si no est presente, causa un

Gunnar Wolf

fallo de pgina

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Respuesta a un fallo de pgina

Figura: Pasos que atraviesa la respuesta a un fallo de pgina


Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Pasos para atender a un fallo de pgina


1

2
3

Vericar en PCB: Esta pgina ya fue asignada al


proceso? (es vlida?)
Si no es vlida, se termina el proceso
Buscar un marco disponible
Solicita el al disco la lectura de la pgina hacia el marco
especicado
Cuando naliza la lectura, actualiza PCB y TLB para
indicar que la tabla est en memoria
Termina la suspensin del proceso.
P.ej. en una tabla de asignacin de marcos

Contina ejecutando otros procesos

Contina con la instruccin que desencaden el fallo.

El proceso contina como si la pgina siempre hubiera


estado en memoria
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Paginacin puramente sobre demanda

Llevar este proceso al extremo: Sistema de paginacin


puramente sobre demanda (Pure demand paging)
Al iniciar la ejecucin de un proceso, lo hace sin ninguna
pgina en memoria

El registro de siguiente instruccin apunta a una


direccin que no ha sido cargada

De inmediato se produce un fallo de pgina


El sistema operativo responde cargando esta primer
pgina

Conforme avanza el ujo del programa, el proceso va


ocupando el espacio real que emplear
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Efecto de la paginacin sobre demanda

Al no cargarse todo el espacio de un proceso, puede


iniciar su ejecucin ms rpido
Al no requerir tener en la memoria fsica a los procesos
completos, puede haber ms procesos en memoria de los
que cabran antes
Aumentando el

grado de multiprogramacin

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Midiendo el impacto en la ejecucin

El impacto en la ejecucin de un proceso puede ser muy


grande
Un acceso a disco es varios miles de veces ms lento que
un acceso a memoria
Podemos calcular el tiempo de acceso efectivo (te ) a
partir de la probabilidad de que en un proceso se presente
un fallo de pgina (0 p 1)
Conociendo el tiempo de acceso a memoria (ta) y el
tiempo que toma atender a un fallo de pgina (tf ):
te = (1 p )ta + ptf
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Resolviendo con valores actuales


ta
tf

ronda entre los 10 y 200ns


est cerca de los 8ms
Latencia del disco duro: 3ms
Tiempo de posicionamiento de cabeza: 5ms
Tiempo de transferencia: 0.05ms

Si slo uno de cada mil accesos a memoria ocasiona un


fallo (p = ):
te = (1
) 200ns +
8, 000, 000ns
te = 199,8ns + 8000ns = 8199,8ns
1

1000

1000

1000

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Ahora s: El impacto de la paginacin sobre


demanda

Esto es, el tiempo efectivo de acceso a memoria es 40


veces ms lento que si no empleramos paginacin sobre
demanda
Podramos mantener la penalizacin por degradacin por
debajo del 10% del tiempo original
Pero para que te 220, tendramos que reducir a
p

399 990

No olviden: No (necesariamente) es tiempo muerto

Multiprogramacin: Mientras un proceso espera a que se


resuelva su fallo de pgina, otros pueden continuar
ejecutando
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Ahora s: El impacto de la paginacin sobre


demanda

Esto es, el tiempo efectivo de acceso a memoria es 40


veces ms lento que si no empleramos paginacin sobre
demanda
Podramos mantener la penalizacin por degradacin por
debajo del 10% del tiempo original
Pero para que te 220, tendramos que reducir a
p

399 990

No olviden: No (necesariamente) es tiempo muerto

Multiprogramacin: Mientras un proceso espera a que se


resuelva su fallo de pgina, otros pueden continuar
ejecutando
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Acomodo de las pginas en disco

El clculo presentado asume que el acomodo de las


pginas en disco es ptimo
Si hay que agregar el espacio que una pgina ocupa en un
sistema de archivos, tf fcilmente aumenta
Navegar estructuras de directorio
Posible fragmentacin en espacio de archivos

la

memoria va quedando esparcida por todo el disco


Mayores movimientos de la cabeza lectora
Problema prevalente en los sistemas tipo Windows

Respuesta: Particin de intercambio, dedicada 100% a la


paginacin
Mecanismo empleado por casi todos los sistemas Unix
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

ndice
1

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Manteniendo el sobre-compromiso

Cuando sobre-comprometemos memoria, los procesos en


ejecucin pueden terminar requiriendo que se carguen
ms pginas de las que caben en la memoria fsica
Mantenemos el objetivo del sistema operativo: Otorgar a

los usuarios la ilusin de una computadora dedicada a sus


procesos

No sera aceptable terminar la ejecucin de un proceso ya


aceptado

Mucho menos si ya fueron aprobados sus requisitos y nos


quedamos sin recurso

Tenemos que llevar a cabo un reemplazo de pginas


Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Importancia del reemplazo de pginas

Parte fundamental de la paginacin sobre demanda


La pieza que posibilita una verdadera separacin entre
memoria lgica y fsica
Mecanismo que permite liberar alguno de los marcos
actualmente ocupado

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Mecanismo para liberar un marco ocupado

Cuando todos los marcos estn ocupados (o se cruza el


umbral determinado), un algoritmo designa a una pgina
vctima para su liberacin
El paginador graba a disco los contenidos de esta pgina
y la marca como libre
Puede continuar la carga de la pgina requerida
Ojo! Esto signica que se duplica el tiempo de
transferencia en caso de fallo de pgina (tf )
Veremos ms adelante algunos algoritmos para esto

Actualizando el PCB y TLB del proceso al cual pertenece

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Manteniendo a tf en su lugar

Con apoyo del MMU podemos reducir la probabilidad de


esta duplicacin en tf
Agregamos un bit de modicacin o bit de pgina sucia a
la tabla de pginas
Apagado cuando la pgina se carga a memoria
Se enciende cuando se realiza un acceso de escritura a
esta pgina

Al elegir una pgina vctima, si su bit de pgina sucia est


encendido, es necesario grabarla a disco
Pero si est apagado, basta actualizar las tablas del
proceso afectado
Ahorra la mitad del tiempo de transferencia
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Cmo elegir una pgina vctima?

Para elegir una vctima para paginarla al disco empleamos


un algoritmo de reemplazo de pginas
Buscamos una caracterstica: Para un patrn de accesos
dado, obtener el menor nmero de fallos de pgina
Diferentes patrones de acceso generan diferentes
resultados para cada algoritmo
Nos referiremos a estos patrones de acceso como

de referencia

cadena

Para los ejemplos presentados a continuacin, nos basaremos


en los presentados en Operating Systems Concepts Essentials
(Silberschatz, Galvin y Gagn, 2011)
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Eligiendo una cadena de referencia

La cadena de referencia debe representar un patrn tpico


(para la carga que deseemos analizar) de accesos a
memoria
Muchas veces son tomados de un volcado/trazado de
ejecucin en un sistema real
El conjunto resultante puede ser enorme
Simplicacin: No nos interesa el acceso independiente a
cada

direccin

de memoria, sino que a cada

pgina

Varios accesos consecutivos a la misma pgina no tienen


efecto en el anlisis

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Y el reemplazo. . . en dnde?

Requerimos de un segundo parmetro


Para analizar un algoritmo con una cadena de referencia,
tenemos que saber cuntos marcos tiene nuestra
computadora hipottica
Lo que buscamos es la

cantidad de fallos de pgina

Depende directamente de los marcos disponibles


Y del tamao (en pginas de memoria) de nuestro
proceso

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Casos lmite respecto a los marcos disponibles

Por ejemplo, a partir de la cadena de referencia:


1, 4, 3, 4, 1, 2, 4, 2, 1, 3, 1, 4

En una computadora con 4 marcos, slo se produciran


cuatro fallos
carga inicial
Extremo opuesto: Con un slo marco, tendramos 12
fallos
Casos que se pueden estudiar: 2 o 3 marcos
Los necesarios para la

Cada pgina tendra que cargarse siempre desde disco

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Datos base para los algoritmos

A continuacin veremos varios algoritmos de reemplazo


de pginas
Para el anlisis, asumiremos una memoria con 3 marcos
Y la siguiente cadena de referencia:
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Primero en entrar, primero en salir (FIFO) (1)

Nuevamente, el algoritmo ms simple y de obvia


implementacin
Al cargar una pgina, se toma nota de cundo fue cargada
Cuando llegue el momento de reemplazar una pgina
vieja, se elige la que se haya cargado hace ms tiempo

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Primero en entrar, primero en salir (FIFO) (2)

Figura: Algoritmo FIFO de reemplazo de pginas: 15 fallos


Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Primero en entrar, primero en salir (FIFO) (3)

Tpicamente programado empleando una lista ligada


circular
Cada elemento que va recibiendo se agrega como el
ltimo elemento
Tras agregarlo, se empuja al apuntador para convertirlo
en la cabeza

Desventaja: No toma en cuenta la historia de las ltimas


solicitudes
La cantidad de patrones de uso que le pueden causar un
bajo desempeo es alto
Todas las pginas tienen la misma probabilidad de ser
reemplazadas, independientemente de su frecuencia de
uso
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Anomala de Belady

En general, asumimos que a mayor cantidad de marcos de


memoria disponibles, menos fallos de pgina se van a
presentar
La Anomala de Belady ocurre cuando un incremento en
el nmero de marcos disponibles lleva a ms fallos de
pgina
Depende del algoritmo y de la secuencia de la cadena de
referencia

FIFO es vulnerable a la anomala de Belady


Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Anomala de Belady: Expectativas de


comportamiento

Figura: Relacin ideal entre el nmero de marcos y la cantidad de


fallos de pgina
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Anomala de Belady: Comportamiento de FIFO

Figura: El algoritmo FIFO presenta la anomala de Belady con la


cadena de referencia 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Algoritmo ptimo (OPT) o mnimo (MIN) (1)

Interes casi puramente trico


Elegimos como pgina vctima a aquella que no vaya a ser
utilizada por un tiempo mximo

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Algoritmo ptimo (OPT) o mnimo (MIN) (2)

Figura: Algoritmo ptimo de reemplazo de pginas (OPT): 9 fallos


Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Algoritmo ptimo (OPT) o mnimo (MIN) (3)

ptimo demostrado, pero no aplicable


Requiere conocimiento a priori de las necesidades del
sistema
Si es de por s impracticable en los despachadores, lo es
mucho mas al hablar de un rea tan dinmica como la
memoria
Recuerden: Millones de accesos por segundo

Principal utilidad: Brinda una cota mnima

Podemos ver qu tan cercano resulta otro algoritmo


respecto al caso ptimo

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Menos recientemente utilizado (LRU) (1)

Lo hemos mencionado ya en varios puntos de la


administracin de memoria
Busca acercarse a OPT prediciendo cundo ser el
prximo uso de cada una de las pginas
Elige la pgina que no ha sido empleada desde hace ms
tiempo
Basado en su historia reciente

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Menos recientemente utilizado (LRU) (2)

Figura: Algoritmo reemplazo de pginas menos recientemente


utilizadas (LRU): 12 fallos
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Menos recientemente utilizado (LRU) (3)

Para nuestra cadena de referencia, resulta en el punto


medio entre OPT y FIFO
Para una cadena S Sy su cadena espejo R S ,
OPT (S ) = LRU (R ) (y viceversa)
Est demostrado que LRU y OPT estn libres de la
anomala de Belady
Para

marcos, las pginas que estn en memoria son un

subconjunto estricto de las que estaran con

n+1

marcos.

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Implementacin ejemplo de LRU (1)

Se agrega un contador a cada uno de los marcos


El contador se incrementa siempre que se hace referencia
a una pgina

Se elige como vctima a la pgina con el contrador ms


bajo
Esto es, a la que hace ms tiempo no haya sido
actualizada

Desventaja: Con muchas pginas, se tiene que recorrer la


para encontrar la ms envejecida

lista completa

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Implementacin ejemplo de LRU (2)

La lista de marcos es una lista doblemente ligada


Esta lista es tratada como una lista y como un stack
Cuando se hace referencia a una pgina, se mueve a la
cabeza (arriba) del stack  Peor caso: 6 operaciones
Para elegir a una pgina vctima, se toma la de

abajo

del

stack (tiempo constante)

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Ms / menos frecuentemente utilizado (MFU /


LFU) (1)

Dos algoritmos contrapuestos, basados (como LRU) en


mantener un contador
Miden la

cantidad

de referencias que se han hecho a

cada pgina

Lgica base:
MFU Si una pgina fue empleada muchas veces,
probablemente va a ser empleada muchas
veces ms
LFU Si una pgina casi no ha sido empleada,
probablemente recin fue cargada, y ser
empleada en el futuro cercano
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Ms / menos frecuentemente utilizado (MFU /


LFU) (2)

La complejidad de estos algoritmos es tan alta como


LRU, y su rendimiento es menos cercano a OPT
Casi no son empleados

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Aproximaciones a LRU

Principal debilidad de LRU? Su implementacin requiere


apoyo en hardware mucho ms complejo que FIFO
Hay varios mecanismos que buscan aproximar el
comportamiento de LRU
Empleando informacin menos detallada

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Bit de referencia

Aproximacin bastante comn


Todas las entradas de la tabla de pginas tienen un bit de
referencia, inicialmente apagado
Cada vez que se referencia a un marco, se enciende su bit
de referencia
El sistema

reinicia

peridicamente a

todos

los bits de

referencia, apagndolos

Al presentarse un fallo de pgina, se elige por FIFO de


entre el subconjunto con el bit apagado
Esto es, entre las pginas que no fueron empleadas en el
periodo

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Bits adicionales (columna) de referencia

Mecanismo derivado del anterior, dando ms granularidad


Se maneja una columna de referencia, de varios bits de
ancho
Peridicamente, en vez de reiniciar a 0, el valor de todas
las entradas se

recorre

a la derecha, descartando el bit

ms bajo
El acceso a un marco hace que se encienda su bit ms
alto

Ante un fallo de pgina, se elige entre los marcos con


valor de referencia ms bajo
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Segunda oportunidad (o reloj)

Maneja un bit de referencia y un recorrido tipo FIFO


El algoritmo avanza linealmente sobre la lista ligada
circular
Hay eventos que encienden el bit, y eventos que lo
apagan:

Una referencia a un marco enciende su bit de referencia


Si elige a un marco que tiene encendido el bit de
referencia, lo apaga y avanza una posicin (dndole una

segunda oportunidad)
Si elige a un marco que tiene apagado el bit de

Se le llama de reloj porque puede verse como una


manecilla que avanza sobre la lista de marcos
referencia, lo designa como pgina vctima

Hasta encontrar uno con el bit de referencia apagado


Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Segunda oportunidad mejorada (1)

Si agregamos al bit de referencia un bit de modicacin,


nos mayor expresividad, y puede ayudar a elegir a una
pgina vctima ms barata. En rden de preferencia:
(0,0) El marco no ha sido utilizado ni modicado.
Buen candidato.
(0,1) Sin uso reciente, pero est sucio. Hay que
escribirlo a disco.
(1,0) Est limpio, pero tiene uso reciente, y es
probable que se vuelva a usar pronto
(1,1) Empleado recientemente y sucio. Habra que
grabarlo a disco, y tal vez vuelva a requerirse
pronto. Hay que evitar reemplazarlo.
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Segunda oportunidad mejorada (2)

Emplea una lgica como la de segunda oportunidad, pero


considerando el costo de E/S
Puede requerir dar hasta cuatro vueltas para elegir a la
pgina vctima
Aunque cada vuelta es ms corta

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Algoritmos con manejo de buers

De uso cada vez ms frecuente


No esperan a que el sistema requiera reemplazar un
marco, buscan siempre tener espacio disponible
Algoritmos

ansiosos, no ojos
umbrales aceptables/deseables

Operan basados en

Conforme la carga lo permite, el SO busca las pginas


sucias ms proclives a ser paginadas
Cuando tenga que traer una pgina de disco, siempre
habr dnde ubicarla sin tener que hacer una transferencia
Va copindolas a disco y marcndolas como limpias

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Ejemplo: Tres sistemas Linux (1)

Figura: Manejo de memoria (24 horas) en un sistema embebido


(16MB RAM)
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Ejemplo: Tres sistemas Linux (2)

Figura: Manejo de memoria (24 horas) en un servidor medio (8GB


RAM)
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Ejemplo: Tres sistemas Linux (3)

Figura: Manejo de memoria (24 horas) en un servidor grande


(32GB RAM)
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

ndice
1

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Viendo el lado opuesto del problema

Vimos ya cmo retirar marcos asignados


Cmo conviene asignar los marcos a los procesos?
Denamos algunos parmetros para nuestros ejemplos
Un sistema con 1024KB de memoria fsica
256 pginas de 4KB cada una
El sistema operativo ocupa 248KB (62 pginas); 194
pginas para los procesos a ejecutar

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Vuelta a la paginacin puramente sobre demanda

En un esquema de paginacin puramente sobre demanda,


cada fallo de pgina que se va generando lleva a que se
asigne el marco correspondiente
Se van asignando los marcos conforme son requeridos,
hasta que hay 194 pginas ocupadas por procesos
Entonces, entran en escena los algoritmos de

de pginas

reemplazo

que ya vimos

Claro est, cuando un proceso termina, sus marcos


vuelven a la lista de marcos libres

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Puramente sobre demanda: Demasiado ojo

El esquema de paginacin puramente sobre demanda


puede resultar demasiado ojo
Ser un poco ms ansioso asegurara un mejor rendimiento
Conviene determinar un mnimo utilizable de marcos
Si asignamos por debajo del mnimo, sufre el rendimiento

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Mnimo de marcos: Arquitectura y


direccionamiento

Hasta ahora hemos simplicado asumiendo que cada


instruccin puede generar slo un fallo de pgina
Independientemente de la arquitectura, cada instruccin
puede desencadenar varias solicitudes
Una solicitud, la lectura de la siguiente direccin a
ejecutar (recuerden: von Neumann!)
Otra, la direccin de memoria referida

brinca a 0x00A2C8, y esta


load 0x043F00, para satisfacerla
dos pginas: 0x00A y 0x043

Por ejemplo, si el ujo


instruccin es
requerimos

Requerimos un mnimo de dos pginas

Pero... Y las referencias indirectas?


Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Mnimo de marcos: Referencias indirectas

todas las arquitecturas permiten hacer referencias


a memoria
Una instruccin de acceso a memoria (load, store)
especica una direccin de memoria
Y esta direccin guarda la ubicacin de memoria
Por ejemplo, 0x043F00 indica la carga de 0x010F80

Casi
indirectas

Satisfacer al

load 0x043F00 requerir


0x00A, 0x043 y 0x010

entonces

...Y algunas arquitecturas (principalmente antiguas)


permitan niveles ilimitados de indireccin
tres pginas:

bit de indireccin
asegurar un lmite mximo
haga un conteo de referencias

Por ejemplo, por medio de un


En dado caso, es imposible

Es comn que el MMU

para evitar caer en un ciclo sin n


Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Instrucciones con operandos en memoria

Las arquitecturas RISC introdujeron requisitos de


regularidad que incluyen el que la aritmtica opere
exclusivamente sobre los registros del procesador
Las arquitecturas ms antiguas permiten que los
operandos y resultado sean direcciones de memoria

Antiguas? De antes de que la diferencia de velocidad


entre CPU y memoria fueran tanta
Recordemos que la principal arquitectura actual tiene

herencia

desde 1970. . .

Si en un x86, en

[ecx], en EDX
0x043F00,

0x00AC28 tenemos ADD [edx],


0x010F80 y en ECX el valor

el valor

En el acumulador EAX obtendremos la suma del


contenido de los dos operadores
Tres referencias a memoria en una sola instruccin
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

El nivel deseable de marcos

Con estos lineamientos determinamos ya un mnimo


absoluto
Muy

bajo, ponindolo en el contexto de los sistemas

actuales

Cmo puede el sistema determinar un nivel deseable de


marcos por proceso?
siempre
Podramos intentar satisfacer los requisitos totales de uno
de los procesos
Depende

del estado actual del sistema

A menor cantidad de fallos de pgina, mayor rendimiento


Pero si reducimos el

grado de multiprogramacin,

reducimos el uso efectivo del procesador


Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Asignacin igualitaria

Buscando un reparto justo de recursos, se divide el total


de memoria fsica disponible entre el nmero de procesos
Volviendo a nuestra computadora ejemplo (256 marcos;
62 marcos asignados al sistema, 194 a los procesos):

Si tenemos 4 procesos en ejecucin, dos tendrn derecho


a 49 marcos y dos a 48
Los marcos no pueden dividirse; es imposible asignar 48.5
a cada uno

El esquema es justo, pero deciente

Si tenemos un gestor de bases de datos

P1

con 2048KB

(512 marcos) de memoria virtual, y un proceso de


usuario

P2

que slo requiere 112KB (28 pginas). . .

Ambos recibirn lo mismo  Y

P2

desperdiciar 20

pginas
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Asignacin igualitaria

Buscando un reparto justo de recursos, se divide el total


de memoria fsica disponible entre el nmero de procesos
Volviendo a nuestra computadora ejemplo (256 marcos;
62 marcos asignados al sistema, 194 a los procesos):

Si tenemos 4 procesos en ejecucin, dos tendrn derecho


a 49 marcos y dos a 48
Los marcos no pueden dividirse; es imposible asignar 48.5
a cada uno

El esquema es justo, pero deciente

Si tenemos un gestor de bases de datos

P1

con 2048KB

(512 marcos) de memoria virtual, y un proceso de


usuario

P2

que slo requiere 112KB (28 pginas). . .

Ambos recibirn lo mismo  Y

P2

desperdiciar 20

pginas
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Asignacin proporcional

Brinda a cada proceso una porcin del espacio de


memoria fsica proporcional a su uso de memoria virtual
Si adems de los dos procesos descritos tenemos a P con
560KB (140 pginas) y P con 320KB (80 pginas) de
memoria virtual
3

Uso total de memoria virtual:

VT = 512 + 28 + 140 + 80 = 760

pginas

Sobreuso de memoria fsica cercano al 4:1 respecto a las


194 pginas disponibles

Cada proceso recibir FP = VV m


P
T

FP : Espacio de memoria fsica que recibir


VP : Cantidad de memoria virtual que emplea,
m: Total de marcos de memoria fsica disponibles

P : 130 marcos; P : 7 marcos; P : 35 marcos; P : 20


marcos
1

Gunnar
Wolf de Administracin
de memoria: Memoria virtual
Proporcional a
su uso
memoria virtual.

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Modulando la asignacin proporcional

Mnimos: El esquema debe cuidar nunca asignar por


debajo del mnimo de la arquitectura
Si

P2

ocupara slo 10 marcos de memoria fsica, en una

arquitectura x86 no deberan asignrsele menos de 3


marcos

Desbalance por procesos obesos


Si

P1

tener

crece al doble de su tamao virtual, hay que cuidar

umbrales mximos

para no castigar de ms a los

dems procesos del sistema

Manejo de prioridades?

Si el sistema maneja prioridades, podran incluirse


ponderadas, otorgando proporcionalmente ms marcos a
los procesos con mayor prioridad
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Sufrimiento ante la entrada de nuevos procesos

El esquema de asignacin proporcional sufre cuando son


admitidos nuevos procesos, cambia el tamao en memoria
virtual de alguno de los existentes o (aunque menos)
nalizan los que estn en ejecucin
Deben recalcularse los totales, y probablemente reducir de
golpe el espacio asignado a los procesos existentes

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Desperdicio de recursos

El patrn de uso de memoria fsica de un proceso no


necesariamente guarda correspondencia con su tamao en
memoria virtual
Pueden emplear mucho menores requisitos en
determinadas secciones de su ejecucin
Recordar este punto Conjunto activo

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

mbitos del algoritmo de reemplazo de pginas

Respondiendo a los problemas que abre la seccin anterior,


podemos discutir el mbito en el que operar nuestro
algoritmo de reemplazo de pginas
Reemplazo local
Reemplazo global
Reemplazo global con prioridad
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Reemplazo local

Mantenemos tan estable como sea posible el clculo de


marcos de memoria por proceso
Cuando se presente un fallo de pgina, slo se consideran
aquellas pertenecientes

al mismo proceso

El proceso tiene asignado un espacio de memoria fsica


Lo mantendr mientras el sistema operativo no tome
alguna decisin para modicarlo

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Reemplazo global

Los algoritmos de asignacin determinan el espacio


asignado /al momento de su inicializacin

inuir en los algoritmos de reemplazo


dando mayor peso a los marcos de un proceso

Pueden
P.ej.

que

excede su asignacin para ser elegidas como vctima

laissez-faire,
auto-regule basado en las

. . . O pueden operar bajo un esquema


buscando que el sistema se

necesidades reales momento a momento

Operan sobre el espacio completo de memoria


La asignacin fsica a cada proceso puede variar segn el
estado del sistema, momento a momento

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Reemplazo global con prioridad

Esquema mixto
Permite que un proceso sobrepase su lmite
robe espacio en
prioridad inferior a l

Pero slo siempre que le

slo

a procesos de

memoria fsica

Consistente con el comportamiento de los algoritmos


planicadores
Siempre da preferencia a un proceso de mayor prioridad
por sobre los de menor prioridad

Puede tambin operar bajo concesiones temporales,


buscando equilibrar posteriormente
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Comparando los mbitos de reemplazo

Reemplazo local Ms rgido; no permite aprovechar las


menores demandas de unos procesos para
favorecer a los que tienen mayores demandas en
un momento dado
Reemplazo global (ambos) Puede llevar a rendimiento
inconsistente fuera del control de cada uno de los
procesos
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Y el tiempo real?

Cuando presentamos al tiempo real (Planicacin de


procesos), mencionamos que el tiempo real duro es
incompatible con sistemas basados en memoria virtual
Principal razn: Las demoras inducidas por la paginacin
Podra indicarse que un proceso de tiempo real est 100%
en memoria fsica (nunca candidato para paginacin)
Reduce fuertemente el impacto que sufrira al pelear por
recursos
Pero no lo resuelve por completo
Ni la contencin en el bus, ni la inversin de
prioridades. . .

Slo podemos prometer


Gunnar Wolf

tiempo real suave

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Hiperpaginacin: Denicin

Uno o ms procesos tienen demasiadas pocas pginas


asignadas para llevar a cabo su trabajo
Generan fallos de pagina con tal frecuencia que resulta
imposible realizar trabajo real
El sistema pasa ms tiempo intentando satisfacer la
paginacin que trabajando
Estamos en estado de hiperpaginacin
En ingls, thrashing (literal: paliza)

O resulta tan lento que la percepcin es de no-avance

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Qu puede llevar a la hiperpaginacin? (1)

El sistema tiene una carga normal


Esquema de reemplazo global de marcos
Se lanza un nuevo proceso
Su inicializacin requiere poblar estructuras a lo largo de
su memoria virtual
O cambia de

conjunto activo

Serie de fallos de pgina

El sistema responde,

reemplazando a varios marcos de otros procesos

Mientras esto contina operando, algunos de los procesos


vctima requieren de las pginas que pasaron a disco
Recordemos que el disco es miles a millones de veces ms
lento que la memoria. . .
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Qu puede llevar a la hiperpaginacin? (2)

La utilizacin del procesador decrece


. . . Porque los procesos estn esperando a que su
memoria est disponible

El sistema operativo aprovecha la situacin para lanzar


procesos de mantenimiento
Que requieren que se les asigne memoria

Reducen an ms el espacio de memoria fsica

disponible

Se forma una cola de solicitudes de paginacin (algunas


veces contradictorias)
Baja todava ms la actividad del procesador (NOOP)
Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Cmo se ve la hiperpaginacin?

Figura: Al aumentar demasiado el grado de multiprogramacin, el


uso del CPU cae abruptamente y caemos en la hiperpaginacin
(Silberschatz, p.349)

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

Respondiendo a la hiperpaginacin

Los sntomas son muy claros


Reducir temporalmente el nivel de multiprogramacin

Fciles de detectar  pregntenle a cualquier usuario!

Camos en hiperpaginacin por tener requisitos en


memoria que no alcanzamos a satisfacer con la memoria
fsica disponible
El sistema puede seleccionar a uno (o ms) procesos y
suspenderlos por completo
Incluso poner su memoria fsica a disposicin de otros
procesos
Hasta que salgamos del estado de hiperpaginacin

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

A cul proceso castigar?

Al de menor prioridad
Al que est causando ms fallos
Al que est ocupando ms memoria
...

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

El conjunto activo

El conjunto activo es una clara aproximacin a la


localidad de referencia
El conjunto de pginas con que un proceso est
trabajando en un momento dado
Qu signica

un momento dado?

Gunnar Wolf

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

El conjunto activo

Figura: Los picos y valles en la cantidad de fallos de pgina de un


proceso denen a su

conjunto activo
Gunnar Wolf

(Silberschatz, p.349)

Administracin de memoria: Memoria virtual

Concepto
Paginacin sobre demanda
Reemplazo de pginas
Asignacin de marcos

El conjunto activo y el espacio en memoria

Idealmente, en todo momento, debemos asignar a cada


proceso sucientes pginas para mantener en memoria
fsica su conjunto activo
Si no es posible hacerlo, el proceso es buen candidato
para ser suspendido
...Pero no es fcil detectar con claridad cul es el
conjunto activo
Mucho menos predecir cul ser dentro de determinado
tiempo
Cunto dura un proceso dentro de determinada rutina?
Puede requerir rastrear y vericar decenas de miles de
accesos a memoria
Gunnar Wolf

Administracin de memoria: Memoria virtual

También podría gustarte