viernes, 22 de mayo de 2015

HIPERPAGINACIÓN

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.

Causas de la Hiperpaginación
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.
 
http://lsi.vc.ehu.es/pablogn/docencia/manuales/SO/TemasSOuJaen/MEMORIAVIRTUAL/Image21.gif

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