Sistemas operativos modernos
Calendarización por porción equitativa Hasta aquí hemos dado por hecho que cada proceso se calendariza por sus propios méritos, sin considerar quién es su dueño. El resultado es que si el usuario 1 inicia nueve procesos y el usua rio 2 inicia un proceso, y se usa tumo circular o prioridades uniformes, el usuario 1 recibirá el 90% del tiempo de CPU y el usuario 2 sólo recibirá el 2%. A fin de prevenir esta situación, algunos sistemas toman en cuenta de quién es el proceso, antes de calendarizarlo. En este modelo, a cada usuario se le asigna cierta fracción del tiempo de CPU y el calendarizador escoge los procesos a modo de respetar esa división. Por ejemplo, si a dos usuarios se les prometió el 50% del tiempo de CPU, cada uno recibirá esa fracción, sin importar cuántos procesos cree cada uno. Consideremos el caso de un sistema con dos usuarios, a cada uno de los cuales se le ha prometido el 50% de la CPU. El usuario 1 tiene cuatro procesos. A, B, C y D, y el usuario 2 sólo tiene un proceso, E. Si se emplea calendarización por turno circular, la que sigue sería una posible sucesión de calendarización que se ajusta a todas las restricciones: A E B E C E D E A E B E C E D E . . . Por otra parte, si el usuario 1 tiene derecho al doble de tiempo de CPU que el usuario 2, po dríamos tener A B E C D E A B E C D E . . . Claro que hay muchas otras posibilidades, y pueden aprovecharse, dependiendo del concepto de equitatividad que se tenga. 2.5.4 Calendarización en sistemas en tiempo real Un sistema en tiempo real es uno en el que el tiempo desempeña un papel fundamental. Por lo general, uno o más dispositivos físicos externos a la computadora generan estímulos, y la computadora debe reaccionar a ellos de la manera apropiada dentro de un plazo fijo. Por ejem plo, la computadora de un reproductor de discos compactos recibe los bits provenientes de la unidad y debe convertirlos en música, en un intervalo de tiempo muy estricto. Si el cálculo lar da demasiado, la música sonará raro. Otros sistemas en tiempo real supervisan pacientes en la unidad de cuidados intensivos de un hospital, controlan el piloto automático de un avión y con trolan los robots de una fábrica automatizada. En todos estos casos, obtener la respuesta co rrecta demasiado tarde puede ser tan malo como no obtenerla. Los sistemas en tiempo real se clasifican en general como en tiempo rea! estricto, lo que implica que hay plazos absolutos que deben cumplirse, pase lo que pase, y en tiempo real no estricto, en los que pueden tolerarse incumplimientos ocasionales, aunque indeseables, de los pasos. En ambos casos, el comportamiento en tiempo real se logra dividiendo el programa en varios procesos cuyo comportamiento es predecible y se conoce con antelación. Por lo gene ral, tales procesos son cortos y pueden terminar su trabajo en mucho menos de un segundo. Cuando se detecta un suceso externo, el calendarizador debe programar los procesos de tal mo do que se cumpla con los plazos.
RkJQdWJsaXNoZXIy MjI4NDcx