Está en la página 1de 44

Algoritmos de reemplazo de páginas

74
Alg. de reemplazo de páginas
● Cuando ocurre un fallo de página, el SO debe
elegir una página para desalojarla, a fin de que
pueda cargar la nueva página.
● Si la página a desalojar se modificó (está
sucia), se debe escribir de nuevo al disco.
● Si la página no se modificó (está limpia) no
requiere escribirse a disco.
● Si se elige una página que no sea de uso
frecuente para desalojarla, el sistema tendrá un
mejor rendimiento.
75
ARP óptimo
Algoritmo de Reemplazo de Páginas

● El mejor algorimto de reemplazo de páginas es


sencillo de describir.
● Sin embargo, es imposible de implementar.
● Es importante debido a que sirve como referencia
para otros algoritmos.
● El algoritmo requiere etiquetar cada página con un
número.
● Este número indica cuantas instrucciones de
programa se ejecutarán antes de que se haga
referencia a esa página.
76
ARP óptimo
● El algoritmo óptimo de reemplazo de páginas
establece que, al ocurrir un fallo de página, la
página con el número más alto debe
reemplazarse.
● Este algoritmo no es realizable porque el SO
no tiene forma de saber cuando se hará la
pŕoxima referencia a una página.
● Sin embargo, se puede hacer una simulación
que recolecte esta información en una
ejecución completa.
77
ARP óptimo
● Esta simulación determina los números de
página requeridos por el algoritmo óptimo.
● Esta información se utiliza para comparar
algoritmos realizables contra el algoritmo
óptimo.
● De esta forma se puede saber si un algoritmo
dado mejora el rendimiento o no (1%+).
● A continuación se describen algunos algoritmos
realizables, y se comparan con el algoritmo
óptimo.
78
Algoritmo NRU
(Not Recently Used)

● Este algoritmo usa los bits R (referenced) y


M (modified), de las entradas de la tabla de
páginas.
● El bit R se establece cada vez que se hace
referencia a la tabla de páginas (R/W).
● El bit M se establece cuando se modifica el
contenido de la página (W).
● Estos bits se actualizan en cada referencia a
memoria, por lo cual este procedimiento se
hace por hardware.
79
Algoritmo NRU
(Not Recently Used)

● Una vez que uno de estos bits se establece


en 1, permanece así hasta que el SO lo
restablece.
● El algoritmo de paginación NRU funciona de la
siguiente manera:
● Al iniciar un proceso, los bits R y M de todas sus
páginas se establecen en 0.
● El bit R se borra periódicamente en cada
interrupción de reloj (~20 ms).
● Cuando ocurre un fallo de página, el SO
inspecciona la tabla de páginas.
80
Algoritmo NRU
(Not Recently Used)

● En base a las combinaciones de los bits R y M


se identifican las siguientes categorías:
● Clase 0: no referenciada, no modificada
● Clase 1: no referenciada, modificada
● Clase 2: referenciada, no modificada
● Clase 3: referenciada, modificada
● La clase 1 ocurre debido a que la interrupción
de reloj borra el bit R periódicamente. Una
página Clase 3 pasa a Clase 1 en esta
operación.
81
Algoritmo NRU
(Not Recently Used)

● El algoritmo NRU busca una página de la clase


de menor valor
● La página a eliminar se elige al azar dentro de
esta clase.
● El algoritmo es fácil de entender y
relativamente fácil de implementar.
● No es un algoritmo óptimo, pero en algunos
casos es adecuado.

82
Algoritmo FIFO
● Es un algoritmo sencillo con baja carga
computacional.
● El SO mantiene una lista de todas las páginas en
memoria.
● La página más reciente se encuentra al final de la
lista. La más antigua se encuentra al inicio.
● Cuando ocurre un fallo de página, la página al inicio
se elimina. La nueva página se agrega al final.
● Es raro usar este algoritmo sin alguna modificación,
ya que la página más antigua puede ser de uso
frecuente.
83
Algoritmo de Segunda Oportunidad
● Este algoritmo es una modificación del algoritmo
FIFO.
● Evita el problema de descartar una página de uso
frecuente.
● Antes de descartar la página más antigua, verifica
el bit R en la tabla de páginas.
● Si R = 0, la página se elimina.
● Si R = 1, el bit se restablece a 0 y la página se
pasa al final de la lista (como si fuera nueva).
● La búsqueda continúa.
84
Algoritmo de Segunda Oportunidad

85
Algoritmo de Segunda Oportunidad
● El algoritmo busca la página más antigua que
no se haya usado recientemente.
● Si se ha hecho referencia a todas las páginas,
el algoritmo se convierte en FIFO puro.
● Todas las páginas con R = 1.
● El SO mueve las páginas al final y cambia R = 0.
● La primer página con R = 0 se desaloja.
● Es la página más antigua original.

86
Algoritmo de Reloj
● El algoritmo de Segunda Oportunidad es algo
ineficiente, ya que debe mover elementos en una
lista.
● Un mejor método es usar un arreglo circular,
parecido a un reloj.
● Cada elemento del arreglo es un marco de página.
● La manecilla del “reloj” apunta a la página más
antigua.
● Cuando ocurre un fallo de página, la página a la
que apunta la manecilla se inspecciona.
87
Algoritmo de Reloj
● Si el bit R = 0, la página de desaloja, la nueva
página se inserta en su lugar, y la manecilla se
avanza (un elemento).
● Si el bit R = 1, el bit se restablece a R = 0 y la
manecilla se avanza.
● El proceso se repite hasta encontrar una
página con R = 0.
● Algorítmicamente, el método es igual al de
segunda oportunidad, pero el arreglo circular
no requiere cambios (apuntadores).
88
Algoritmo de Reloj

89
Algoritmo LRU
(Least Recently Used)

● Es una buena aproximación al algoritmo óptimo.


● Se basa en la siguiente observación:
● Es probable que las páginas recientemente usadas
con frecuencia se sigan usando con frecuencia a
continuación.
● Es probable que las páginas no usadas
recientemente tampoco se usen pronto.
● El algoritmo se basa en estas observaciones.
● Al ocurrir un fallo de página, se desaloja la página
que tenga más tiempo sin ser usada.
90
Algoritmo LRU
(Least Recently Used)

● El algoritmo LRU es realizable, pero es costoso.


● Se requiere mantener en memoria una lista
enlazada.
● La página de uso más reciente se encuentra en la
parte frontal de la lista.
● La menos reciente se encuentra en la parte final.
● La lista debe actualizarse en cada referencia a
memoria (de ahí su costo).
● Esto requiere buscar una página, eliminarla y
pasarla al frente de la lista (mucho tiempo).
91
Algoritmo LRU
(Least Recently Used)

● El algoritmo puede ser asistido por hardware.


● Un método simple de implementarlo utiliza un
contador C de 64 bits.
● El contador C se incrementa después de cada
instrucción (costoso).
● Se agrega un campo a cada entrada de la tabla
de páginas para guardar un valor del contador.
● El valor actual de C se almacena en la entrada
de la página que se acaba de referenciar.

92
Algoritmo LRU
(Least Recently Used)

● Cuando ocurre un fallo de página, el SO examina


todos los contadores y encuentra el menor.

● Otro algoritmo por hardware usa una matriz de nxn


elementos. Donde n es el número de marcos de
página.
● Inicialmente todos los bits son puestos en 0.
● Cuando se hace referencia a la página k, el
hardware establece todos los bits de la fila k en 1.
● Los bits de la columna k los establece en 0.
93
Algoritmo LRU
(Least Recently Used)

94
Simulación LRU en software
● Pocas máquinas tienen el hardware requerido
para implementar el algoritmo LRU.
● Una solución en software utiliza el algoritmo
NFU modificado para conseguir LRU.
● Se requiere un contador (en software) asociado
a cada página, inicialmente en 0.
● En cada interrupción de reloj, el SO explora
todas las páginas.
● El bit R de cada página se agrega al contador.

95
Simulación LRU en software
● Los contadores tienen un valor aproximado a la
frecuencia de uso de la página.
● Al ocurrir un fallo de página, se selecciona el
contador con valor menor.
● Un problema es que estos contadores no “olvidan”.
Información vieja afecta a las decisiones recientes.
● Una modificación permite olvidar la frecuencia de
uso de páginas viejas.
● Primero, cada contador se desplaza 1 bit a la
derecha antes de agregar el valor de R.
96
Simulación LRU en software
● El bit R se agrega a la izquierda (MSB).
● Este algoritmo modificado se conoce como
algoritmo de envejecimiento.
● El fallo de página elimina aquella página cuyo
contador sea menor.
● Una página a la que no se ha hecho referencia en
mucho tiempo tendrá un valor pequeño en el
contador, aunque se haya usado frecuentemente
en su momento.
● El número de bits del contador determina el umbral
de “olvido”.
97
Simulación LRU en software

98
ARP: Conjunto de Trabajo
● En la forma más pura de paginación, cada
proceso inicia sin páginas en memoria.
● Cuando el CPU trata de leer la primera
instrucción, se produce el primer fallo de
página.
● El SO busca y trae a memoria esa página.
● Luego siguen otros fallos de página (variables
globales, pila, variables locales, etc.).
● Después de un tiempo, el proceso tiene en
memoria las páginas que necesita.
99
ARP: Conjunto de Trabajo
● Después de esto, se producen pocos fallos de
página.
● Esta estrategia de paginación se conoce como
paginación bajo demanda.
● La mayoría de los procesos exhiben una
localidad de referencia.
● Esto significa que durante cualquier fase de su
ejecución, el proceso hace referencia a una
fracción pequeña de sus páginas.

100
ARP: Conjunto de Trabajo
● El conjunto de páginas que utiliza un proceso en
un momento dado se conoce como conjunto de
trabajo.
● Si todo el conjunto de trabajo está en memoria, el
proceso no produce muchos fallos de página,
hasta que pasa a otra etapa del programa.
● Si la memoria es muy pequeña, el conjunto de
trabajo no podrá ser cargado por completo.
● Esto producirá fallos de página constantes.
● La ejecución de procesos será lenta.
101
ARP: Conjunto de Trabajo
● Un programa que produce fallos de página
cada pocas instrucciones se dice que está
sobrepaginado.
● En un sistema con multiprogramación, los
procesos se mueven con frecuencia a disco.
● Esto permite que otros procesos usen la
memoria para ejecutarse.
● Cuando un proceso regresa, comienza
nuevamente a producir fallos de página hasta
que su conjunto de trabajo está en memoria.
102
ARP: Conjunto de Trabajo
● Sin embargo, esto no es muy eficiente.
● Los procesos se detienen todo el tiempo, y
cargarlos nuevamente produce muchos fallos
de página, lo cual hace al sistema lento.
● Debido a ello, muchos sistemas de paginación
toman en cuenta el conjunto de trabajo de los
procesos.
● Se aseguran de que dicho conjunto de trabajo
esté en memoria antes de reanudar la
ejecución del proceso.
103
ARP: Conjunto de Trabajo
● Esta metodología se conoce como modelo del
conjunto de trabajo.
● Su objetivo es reducir la cantidad de fallos de
página que se producen debido a este efecto.
● Al proceso de cargar los conjuntos de trabajo
antes de reanudar un proceso se le llama
prepaginación.
● Hay que tener en cuenta que el conjunto de
trabajo cambia con el tiempo.

104
ARP: Conjunto de Trabajo
● El conjunto de trabajo cambia con el tiempo de
manera lenta.
● Debido a ello, es posible hacer una predicción
de las páginas que se necesitarán al reanudar
un proceso.
● Estas páginas son el conjunto de trabajo usado
la última vez que se ejecutó el proceso, justo
antes de detenerse.
● La prepaginación consiste en registrar estas
páginas y cargarlas antes que al proceso.
105
ARP: Conjunto de Trabajo
● Para implementar este algoritmo, el SO debe
determinar el conjunto de trabajo del proceso.
● Entonces, al ocurrir un fallo de página, un posible
algoritmo de paginación debería buscar una
página que no esté en el conjunto de trabajo y
desalojarla.
● Para ello hay que determinar cuales páginas
forman parte del conjunto de trabajo.
● Es el conjunto de páginas utilizadas en las k
referencias a memoria más recientes.
● El valor de k se debe determinar.
106
ARP: Conjunto de Trabajo
● Determinar k implica alguna estructura de datos
algo complicada.
● Hay que tener en cuenta de que esta estructura
debe actualizarse para cada referencia, lo cual es
muy costoso.
● Debido a ello, es complicado implementar esta
solución.
● En lugar de ello, se utilizan aproximaciones.
● En lugar de ello, el conjunto de trabajo puede
definirse como las páginas utilizadas durante las
últimas t unidades de tiempo.
107
ARP: Conjunto de Trabajo
● El tiempo se mide por proceso, y es el tiempo
total que se ha ejecutado (no cuenta bloqueos).
● A la cantidad de tiempo neto que ha utilizado
un proceso desde que inició se le conoce como
tiempo virtual actual.
● El conjunto de trabajo está formado por
aquellas páginas referenciadas en los últimos τ
segundos de tiempo virtual.
● Ahora, se puede definir un algoritmo de
reemplazo de páginas.
108
ARP: Conjunto de Trabajo

109
ARP: Conjunto de Trabajo
● La anterior es una tabla de páginas para este
algoritmo.
● El hardware establece los bits R y M.
● Una interrupción periódica de reloj establece el bit
R en cero.
● Se procesa cada entrada de la tabla.
● Si el bit R=1, el tiempo virtual actual se escribe en
la entrada inspeccionada.
● Esta página está en el conjunto de trabajo, y no es
candidata para desalojar.
110
ARP: Conjunto de Trabajo
● Si R=0, la “edad” de la página se calcula (tiempo
actual menos último tiempo de uso) y se compara
con τ.
● Si la edad es mayor, implica que la página no está
en el conjunto de trabajo y puede desalojarse.
● En caso contrario, se busca una nueva página.
● Si no se encuentra ninguna que cumpla las
condiciones, se busca la página más vieja y se
desaloja.
● Si todas las páginas tienen R=1 se desaloja una
página al azar (preferentemente limpia).
111
ARP: WSC Lock
● Es un algoritmo mejorado basado en el algoritmo
de reloj.
● Utiliza la información del conjunto de trabajo.
● Es un algoritmo muy utilizado en la práctica.
● Utiliza un arreglo circular de marcos de página,
como el algoritmo de reloj.
● Al principio, la lista está vacía y se van agregando
páginas a medida que se usan.
● Cada entrada tiene el campo Tiempo de último
uso, del A.R.P. Campo de Trabajo.
112
ARP: WSC Lock
● También incluye los bits R y M.
● En cada fallo de página, se examina el marco de
página al que apunta la manecilla.
● Si el bit R=1, la página se ha usado recientemente,
y no es candidata para eliminar, se establece R=0
y se avanza la manecilla.
● Si el bit R=0, se calcula la edad y si es mayor que
τ no forma parte del conjunto de trabajo.
● Si la página además está limpia, simplemente se
reemplaza por la nueva página.

113
ARP: WSC Lock
● Si la página está sucia, no se puede reclamar
de inmediato.
● La escritura a disco de la página se planifica, y
la manecilla se avanza.
● Más adelante puede haber una página limpia
que no pertenece al conjunto de trabajo.
● Por motivos de eficiencia, en ocasiones se
establece un límite de n páginas planificadas
para escritura.

114
ARP: WSC Lock
● Si la manecilla regresa al punto inicial sin
remplazo, hay dos puntos a considerar:
● Se ha planificado por lo menos una escritura.
● No se han planificado escrituras
● En el primer caso, la manecilla continúa
moviéndose hasta encontrar una página limpia.
● En algún momento se completará una escritura
puesto que están planificadas.
● La primera página escrita no es necesariamente la
primera planificada (depende de otro proceso).
115
ARP: WSC Lock
● El segundo caso se da cuando todas las
páginas forman parte del conjunto de trabajo.
● Sin otra información, lo más fácil es reclamar
una página limpia al azar y reemplazarla.
● Si tampoco hay páginas limpias, se escribe la
página actual a disco y se reemplaza.

116
117

También podría gustarte