Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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)
92
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