algoritmos de reemplazo de páginas
TRANSCRIPT
74
Algoritmos de reemplazo de páginas
75
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.
76
ARP óptimo
● 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.
Algoritmo de Reemplazo de Páginas
77
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.
78
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.
79
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.
80
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.
81
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.
82
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.
83
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.
84
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.
85
Algoritmo de Segunda Oportunidad
86
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.
87
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.
88
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).
89
Algoritmo de Reloj
90
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.
91
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).
92
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.
93
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.
94
Algoritmo LRU(Least Recently Used)
95
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.
96
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.
97
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”.
98
Simulación LRU en software
99
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.
100
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.
101
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.
102
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.
103
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.
104
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.
105
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.
106
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.
107
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.
108
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.
109
ARP: Conjunto de Trabajo
110
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.
111
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).
112
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.
113
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.
114
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.
115
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).
116
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.
117