Sistemas operativos modernos
trada almacenada en disco. El calendarizador de admisión decide cuáles trabajos admitirá en el sistema. Los demás se mantienen en la cola de entrada hasta que se les seleccione. Un algoritmo típico para controlar la admisión sería buscar una combinación equilibrada de trabajos dedicados ai cómputo y trabajos dedicados a la E/S. O bien, los trabajos cortos podrían admitirse rápido, mientras que los largos tendrían que esperar. El calendarizador de admisión está en libertad de re tener algunos trabajos en la cola de entrada y admitir trabajos que llegaron después, a su criterio. CPU O A — Calendarizador de CPU Trabajo que liega O V Cola de entrada lOIOIOIOI o o o o o Memoria principal Calendarizador de admisión Calendarizador de memoria Disco Figura 2-40. Calendarización de tres niveles. Una vez que un trabajo ha sido admitido en el sistema, se crea un proceso para él, y podrá competir por la CPU. Sin embargo, bien podría suceder que el número de los procesos sea tan grande que no haya suficiente espacio para todos en la memoria. En ese caso, algunos proce sos tendrán que llevarse al disco. El segundo nivel de calendarización implica decidir cuáles procesos se conservarán en la memoria y cuáles se enviarán al disco. Llamaremos a este com ponente calendarizador de memoria, pues determina cuáles procesos se mantienen en la me moria y cuáles en disco. Esta decisión debe reexaminarse con fi*ecuencia para que los procesos que están en el disco puedan recibir servicio. Sin embargo, en vista de lo costoso que es traer un proceso del disco, es probable que esta operación no deba efectuarse más de una vez cada segundo, y quizá con me nor frecuencia aún. Si el contenido de la memoria principal se ajusta con mucha frecuencia, se desperdiciará una gran cantidad de ancho de banda de disco, y la E/S de archivos se hará lenta. A fm de optimizar el desempeño del sistema en general, el calendarizador de memoria podría evaluar con detenimiento la decisión de cuántos procesos quiere tener en la memoria, es decir, el grado de multiprogramación, y de qué tipo serán esos procesos. Si cuenta con información acerca de cuáles procesos están dedicados al cómputo o a la E/S, puede tratar de mantener una mezcla equilibrada de procesos en la memoria. Como aproximación muy burda, si cierta clase de procesos computa el 20% del tiempo, lo mejor para mantener ocupada a la CPU sería mantener cinco de ellos en la memoria. Examinaremos con más detalle un modelo de multiprogramación en el capítulo 4.
RkJQdWJsaXNoZXIy MjI4NDcx