Los esquemas analizados hasta ahora suponen que todos los procesos ejecutables están en la memoria principal.
Si la memoria principal es insuficiente, ocurrirá lo siguiente [23, Tanenbaum]:
- Habrá procesos ejecutables que se mantengan en disco.
- Habrá importantes implicaciones para la planificación, tales como las siguientes:
- El tiempo de alternancia entre procesos para traer y procesar un proceso del disco es considerablemente mayor que el tiempo para un proceso que ya está en la memoria principal.
- Es más eficiente el intercambio de los procesos con un planificador de dos niveles.
- Se carga en la memoria principal cierto subconjunto de los procesos ejecutables.
- El planificador se restringe a ellos durante cierto tiempo.
- Periódicamente se llama a un planificador de nivel superior para efectuar las siguientes tareas:
- Eliminar de la memoria los procesos que hayan permanecido en ella el tiempo suficiente.
- Cargar a memoria los procesos que hayan estado en disco demasiado tiempo.
- El planificador de nivel inferior se restringe de nuevo a los procesos ejecutables que se encuentren en la memoria.
- El planificador de nivel superior se encarga de desplazar los procesos de memoria a disco y viceversa.
- ¿Cuánto tiempo ha transcurrido desde el último intercambio del proceso?.
- ¿Cuánto tiempo de cpu ha utilizado recientemente el proceso?.
- ¿Qué tan grande es el proceso? (generalmente los procesos pequeños no causan tantos problemas en este sentido).
- ¿Qué tan alta es la prioridad del proceso?.
[23] A. S. Tanenbaum. Sistemas Operativos Modernos. Prentice Hall Hispanoamericana, S.A., México, 1993.
No hay comentarios:
Publicar un comentario