Sistemas operativos modernos
operativos) tienen diferentes objetivos. En otras palabras, lo que el calendarizador debe opti mizar no es lo mismo en todos los sistemas. Tres entornos que vale la pena distinguir son: 1. Por lotes. 2. Interactivo. 3. Tiempo real. En los sistemas por lotes, no hay usuarios esperando impacientes ante sus terminales a que el sistema responda con rapidez. Por ello, suelen ser aceptables los algoritmos no expropiativos, o los expropiativos con intervalos de tiempo largos para cada proceso. Este enfoque reduce la conmutación de procesos y, por lo tanto, mejora el desempeño. En un entorno con usuarios interactivos, la expropiación es indispensable para evitar que un proceso acapare la CPU y niegue servicio a otros. Incluso si ningún proceso se ejecuta de mane ra indefinida a propósito, un error de programación podría hacer que un proceso excluya a todos los demás en forma indefinida. Se necesita expropiación para impedir tal comportamiento. En los sistemas con restricciones en fiempo real a veces no es necesaria la expropiación, por extraño que parezca, porque los procesos saben que tal vez no se ejecuten durante mucho tiempo y, por lo general, realizan su trabajo y se bloquean rápido. La diferencia respecto a los sistemas interactivos es que los de fiempo real sólo ejecutan programas cuyo fin es apoyar a la aplicación actual. Los sistemas interactivos son de propósito general y podrían ejecutar progra mas arbitrarios que no cooperan e incluso podrían tener malas intenciones. Metas de los algoritmos de calendarización Para diseñar un algoritmo de calendarización, es preciso tener idea de lo que debe hacer un buen algoritmo. Algunos objetivos dependen del entorno (por lotes, interactivo o en tiempo real), pero también hay objetivos que son deseables en todos los casos. Algunos de ellos se pre sentan en la figura 2-38, y los trataremos uno por uno a confinuación. En todos los casos, la equidad es importante. Procesos comparables deberán recibir un ser vicio comparable. No es equitativo conceder a un proceso mucho más tiempo de CPU que a otro equivalente. Desde luego, diferentes categorías de procesos podrían recibir un trato muy distin to. Pensemos en el control de la seguridad y el procesamiento de la nómina en el centro de cómputo de un reactor nuclear. Algo con cierta relación con la equidad es el cumplimiento de las políticas del sistema. Si la política local es que los procesos de control de seguridad se ejecuten siempre que deseen ha cerlo, aunque ello retrase 30 segundos la nómina, el calendarizador tiene que cuidar que se res pete esa política. Otro objetivo general es mantener ocupadas a todas las partes del sistema si es posible. Si es factible que la CPU y todos los dispositivos de E/S estén trabajando todo el tiempo, se lo grará un mayor rendimiento que si algunos de los componentes están inactivos. Por ejemplo, en un sistema por lotes el calendarizador controla cuáles trabajos se colocan en la memoria pa ra ejecutarse. Tener juntos en la memoria algunos procesos dedicados a la CPU y algunos a E/S es más recomendable que primero cargar y ejecutar todos los trabajos dedicados a la CPU y.
RkJQdWJsaXNoZXIy MjI4NDcx