El documento describe varios algoritmos de reemplazo de páginas, incluyendo LRU, NFU y WSClock. LRU se basa en reemplazar la página que no se haya utilizado durante más tiempo. NFU utiliza un contador de software asociado a cada página. WSClock es un algoritmo fácil de implementar que utiliza información del conjunto de trabajo de una página y un algoritmo de reloj para determinar qué página reemplazar.
2. LRU
(Least Recently Used)
Se basa en la observación de las
paginas que no se han utilizado con
frecuencia en las ultimas
instrucciones. Plantea que cuando
ocurra un fallo de página, hay que
descartar la pagina que no se haya
utilizado durante la mayor longitud de
tiempo.
3. La forma mas simple de implementar
el algoritmo sería equipar el hardware
con un contador de 64 bits, llamado C,
el cual se incrementa de manera
automática después de cada
instrucción para cada pagina. Cuando
ocurre un fallo de página, el sistema
operativo examina todos los
contadores en la tabla de paginas
para encontrar el menor.
5. Simulación de LRU en software
Algoritmo NFU (Not Frequently Used),
requiere un contador de sw asociado
con cada página. En cada interrupción
de reloj el sistema operativo explora
todas las paginas y se agrega el bit R,
que es 0 o 1 al contador. Su principal
problema es que nunca olvida nada y
se podría eliminar paginas útiles.
7. Paginación
En la forma más pura de paginación,
los procesos inician sin ninguna de
sus páginas en la memoria.
Tan pronto como la CPU trata de
obtener la primera instrucción, recibe
un fallo de página
A esta estrategia se le conoce como
paginación bajo demanda
8. Conjunto de Trabajo
durante cualquier fase de ejecución el
proceso hace referencia sólo a una
fracción relativamente pequeña de
sus páginas
El conjunto de páginas que utiliza un
proceso en un momento dado se
conoce como su conjunto de trabajo
(Denning, 1968a; Denning, 1980).
9. Conjunto de Trabajo
Se dice que un programa que produce
fallos de página cada pocas
instrucciones está sobrepaginando
(thrashing) (Denning, 1968b)
El problema es que tener 20, 100 o
incluso 1000 fallos de página cada
vez que se carga un proceso es algo
lento
10. Conjunto de Trabajo
Por lo tanto, muchos sistemas de
paginación tratan de llevar la cuenta
del conjunto de trabajo de cada
proceso y se aseguran que esté en
memoria antes de permitir que el
proceso se ejecute.
Este método se conoce como modelo
del conjunto de trabajo (Denning,
1970)
11. Conjunto de Trabajo
Al proceso de cargar las páginas
antes de permitir que se ejecuten los
procesos también se le conoce como
prepaginación
En cualquier instante de tiempo t,
existe un conjunto consistente de
todas las páginas utilizadas por las k
referencias a memoria más recientes.
Este conjunto w(k, t), es el de trabajo
13. Conjunto de Trabajo
es posible realizar una predicción
razonable en cuanto a qué páginas se
necesitarán cuando el programa se
reinicie, con base en su conjunto de
trabajo la última vez que se detuvo
14. Conjunto de Trabajo
Una aproximación de uso común es
desechar la idea de contar hacia atrás
k referencias de memoria y usar en su
defecto el tiempo de ejecución
para cada proceso sólo cuenta su
propio tiempo de ejecución.
15. Conjunto de Trabajo
La cantidad de tiempo de la CPU que
ha utilizado en realidad un proceso
desde que empezó se conoce
comúnmente como su tiempo virtual
actual.