44
74 Algoritmos de reemplazo de páginas

Algoritmos de reemplazo de páginas

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmos de reemplazo de páginas

74

Algoritmos de reemplazo de páginas

Page 2: 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.

Page 3: Algoritmos de reemplazo de páginas

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

Page 4: Algoritmos 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.

Page 5: Algoritmos de reemplazo de páginas

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.

Page 6: Algoritmos de reemplazo de páginas

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.

Page 7: Algoritmos de reemplazo de páginas

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.

Page 8: Algoritmos de reemplazo 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.

Page 9: Algoritmos de reemplazo de páginas

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.

Page 10: Algoritmos de reemplazo de páginas

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.

Page 11: Algoritmos de reemplazo de páginas

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.

Page 12: Algoritmos de reemplazo de páginas

85

Algoritmo de Segunda Oportunidad

Page 13: Algoritmos de reemplazo de páginas

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.

Page 14: Algoritmos de reemplazo de páginas

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.

Page 15: Algoritmos de reemplazo de páginas

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).

Page 16: Algoritmos de reemplazo de páginas

89

Algoritmo de Reloj

Page 17: Algoritmos de reemplazo de páginas

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.

Page 18: Algoritmos de reemplazo de páginas

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).

Page 19: Algoritmos de reemplazo de páginas

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.

Page 20: Algoritmos de reemplazo de páginas

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.

Page 21: Algoritmos de reemplazo de páginas

94

Algoritmo LRU(Least Recently Used)

Page 22: Algoritmos de reemplazo de páginas

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.

Page 23: Algoritmos de reemplazo de páginas

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.

Page 24: Algoritmos de reemplazo de páginas

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”.

Page 25: Algoritmos de reemplazo de páginas

98

Simulación LRU en software

Page 26: Algoritmos de reemplazo de páginas

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.

Page 27: Algoritmos de reemplazo de páginas

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.

Page 28: Algoritmos de reemplazo de 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.

Page 29: Algoritmos de reemplazo de páginas

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.

Page 30: Algoritmos de reemplazo de páginas

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.

Page 31: Algoritmos de reemplazo de páginas

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.

Page 32: Algoritmos de reemplazo de páginas

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.

Page 33: Algoritmos de reemplazo de páginas

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.

Page 34: Algoritmos de reemplazo de páginas

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.

Page 35: Algoritmos de reemplazo de páginas

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.

Page 36: Algoritmos de reemplazo de páginas

109

ARP: Conjunto de Trabajo

Page 37: Algoritmos de reemplazo de páginas

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.

Page 38: Algoritmos de reemplazo de páginas

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).

Page 39: Algoritmos de reemplazo de páginas

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.

Page 40: Algoritmos de reemplazo de páginas

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.

Page 41: Algoritmos de reemplazo de páginas

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.

Page 42: Algoritmos de reemplazo de páginas

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).

Page 43: Algoritmos de reemplazo de páginas

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.

Page 44: Algoritmos de reemplazo de páginas

117