IIC 2332 -- Sistemas Operativos
Apuntes 16
1er Semestre 1996
- La prueba y el examen
- Reuniones
- Primera tarea
- Con la memoria virtual no necesitamos que todas las páginas de un
proceso están en memoria a la vez.
- Cargamos las páginas solamente cuando las necesitemos (la
paginación por demanda).
- Si todos los marcos del sistema están llenos, tenemos que
reemplazar una pagina. Algunas políticas:
- FIFO.
- Óptimo. Reemplazar la página que no se usará durante
el mayor período.
- LRU. Reemplazar la página que no se ha usado durante
el mayor período.
- LRU es una buena política (la historia es una predicción del
futuro), pero su costo es demasiado alto.
- Se puede aproximar el algoritmo de LRU por reducir la información
que se guarda para cada página a solamente un bit de uso. El
apoyo de hardware para un bit de uso en la entrada de la tabla de
páginas es común.
- Algoritmo de reloj.
- El valor inicial del bit de uso es 0. Las referencias a la
página lo cambia a 1.
- Se trata el conjunto de marcos como un buffer circular.
- Para encontrar una página a reemplazar, comenzamos de nuestro
último punto en el buffer y buscamos la primera página con un bit de
uso de 0. Durante de la búsqueda cambiamos el bit de uso de cada
página que nos encontramos a 0.
Si todos los bits de uso son 1, tenemos FIFO.
- Podemos usar también el bit de modificación para obtener un
algoritmo más sofisticado (se usa por el Macintosh).
- Buscar una página con uso=0, modificación=0, haciendo ningunos
cambios.
- Si ningún éxito, buscar una página con uso=0, modificación=1,
cambiando bits de uso a 0.
- Si ningún éxito, repetir del principio. Todos los bits de uso
son ahora 0.
¿Por qué preferimos las páginas con bits de modificación de 0?
- Otra posibilidad es mantener un contador para cada página de, por
ejemplo, 8 bits.
- A intervalos regulares el sistema operativo lee todos los bits
de uso en el sistema y transfiere cada uno en el contador propio,
desplazando los bits anteriores a la derecha. A la vez se cambian
todos los bits de uno a 0.
- La página con el contador menor es la página de LRU.
- Mantenemos un depósito de marcos disponibles para asignación.
- Si necesitamos un marco, podemos obtenerlo al tiro sin esperando
el escribir de una página al disco.
- En el fondo escribimos los marcos modificados del buffer (o
incluso del sistema).
- Si hay una falla de página, chequeamos si la página está en el
buffer. Si está, no tenemos que leer la página del disco.
- Con este esquema podemos usar FIFO para nuestra política de
reemplazar. Se usa este algoritmo en Mach y VAX/VMS.
Last edited May 14, 1996, by knabe@ing.puc.cl