Si el número de marcos asignados a un proceso de baja prioridad
desciende por debajo del número mínimo requerido por la arquitectura del
computador, debemos suspender la ejecución de ese proceso. Luego debemos
descargar sus páginas restantes, liberando los marcos asignados. En general, cualquier
proceso que no cuente con marcos suficientes provocará fallos de página muy
frecuentemente. Si se reemplazan páginas que a su vez están activas, estaremos
sustituyendo una página que casi de inmediato se volverá a necesitar. Por
tanto, pronto vuelve a generarse otro fallo de página, ocurriendo esto una y
otra vez. A esta altísima actividad de paginación se le llama hiperpaginación
(thrashing). Un sistema está en hiperpaginación si emplea más tiempo paginando
que ejecutando.
La hiperpaginación ocasiona severos problemas de rendimiento. Considere la siguiente situación, basada en el comportamiento real de los primeros sistemas de paginación.
El sistema operativo supervisa la utilización de la CPU. Si ésta
es demasiado baja, aumentamos el nivel de multiprogramación introduciendo un
nuevo proceso en el sistema. Se emplea un algoritmo de reemplazo
de páginas global, que reemplaza páginas sin importar a qué procesos
pertenezcan. Suponga ahora que un proceso entra en una nueva fase de su
ejecución y necesita más marcos. Comienza a generar fallos de página y a tomar
páginas de otros procesos. Sin embargo, estos procesos necesitan esas páginas,
por lo que también fallan, tomando páginas de otros procesos. Todos estos
procesos generando fallos de página deben usar el dispositivo de paginación
para intercambiar las páginas. A medida que se colocan en la cola del dispositivo de paginación, la cola procesos
listos se vacía.
Mientras los procesos están bloqueados en espera del dispositivo de paginación,
la utilización de la CPU decrece.
El planificador de la CPU ve disminuir la utilización
de ésta y, por tanto, incrementa el nivel de multiprogramación. El nuevo
proceso trata de comenzar tomando páginas de los procesos en ejecución, lo que
ocasiona más fallos de página y una cola más larga para el dispositivo de
paginación. Y se vuelven a repetir los pasos descritos. Ha comenzado la
hiperpaginación y se desploma la productividad del sistema. La tasa de fallos
de página aumenta tremendamente y, como resultado, se incrementa el tiempo
efectivo de acceso a memoria. No se efectúa ningún trabajo porque el sistema
operativo está continuamente paginando.
Los efectos de la
hiperpaginación se pueden limitar utilizando un algoritmo de reemplazo local (o por prioridades). Con el reemplazo
local, si un proceso comienza a hiperpaginar, no puede robar marcos de otro
proceso y provocar que este también entre en hiperpaginación. Sin embargo, si
los procesos están en hiperpaginación, la mayor parte del tiempo pueden
encontrarse en la cola del dispositivo de paginación. El tiempo promedio de servicio de
un fallo de página aumenta y, por tanto, el tiempo efectivo de acceso aumenta
incluso para un proceso que no esté en hiperpaginación. Para evitar la hiperpaginación
debemos ofrecer a un proceso todos los marcos que necesita; pero, ¿cómo sabemos
cuántos necesitan? Para saberlo se utilizan técnicas como el modelo del
conjunto de trabajo, que se basa el concepto de localidad de la ejecución de
procesos.
Frecuencia de Fallos de Página
El
modelo del conjunto de trabajo tiene bastante éxito, y el conocimiento del
conjunto puede resultar útil para la prepaginación, pero parece ser una manera bastante
torpe de controlar la hiperpaginación. La estrategia de frecuencia de fallos de
página sigue un camino más directo.
http://lsi.vc.ehu.es/pablogn/docencia/manuales/SO/TemasSOuJaen/MEMORIAVIRTUAL/Image23.gif |
http://lsi.vc.ehu.es/pablogn/docencia/manuales/SO/TemasSOuJaen/MEMORIAVIRTUAL/6Hiperpaginacion.htm
No hay comentarios:
Publicar un comentario