Sistemas operativos modernos
al estado listo, se le colocaba en la segunda clase. Si un proceso seguía ejecutándose cuando su cuanto expiraba, se le colocaba inicialmente en la tercera clase. Pero si un proceso gastaba su cuan to muchas veces seguidas sin bloquearse por E/S de terminal o de otro tipo, se le pasaba a la cola más baja. Muchos otros sistemas utilizan algo parecido para favorecer a los usuarios y procesos interactivos a expensas de los de segundo plano. Proceso más corto a continuación Dado que la estrategia del trabajo más corto primero siempre produce el tiempo de respuesta promedio más bajo en ios sistemas por lotes, sería conveniente poder usarlo también con pro cesos interactivos. Hasta cierto punto, tal cosa es posible. Por lo general, los procesos interac tivos siguen el patrón de esperar un comando, ejecutarlo, esperar un comando, ejecutarlo, y así en forma sucesiva. Si vemos la ejecución de cada comando como un “trabajo” individual, po dríamos reducir al mínimo el tiempo de respuesta ejecutando primero el más corto. El único problema es determinar cuál de los procesos listos es el más corto. Una estrategia consiste en estimar valores con base en comportamientos anteriores y eje cutar el proceso que tenga el tiempo de ejecución estimado más corto. Supongamos que el tiempo estimado por comando para una terminal dada es Tg. Ahora supongamos que la ejecu ción del siguiente comando proveniente de esa terminal tarda Tj. Podríamos actualizar nuestro estimado calculando una suma ponderada de estas dos cifras, es decir, q T q + (1 - á)T-^. Depen diendo del valor de a que escojamos, podemos optar porque el proceso de estimación olvide rápido las ejecuciones viejas o que las recuerde durante mucho tiempo. Con a - 1/2, obtene mos estimados sucesivos de Tq, T ^ l + T^n, ro/4 + 7,/4 + T’2/2, 7’(/8 + 7'|/8 + r2/4 + 7’3/2 Después de tres ejecuciones nuevas, el peso de 7 q en el estimado vigente habrá bajado a 1/8. La técnica de estimar el siguiente valor de una serie, calculando la media ponderada del último valor medido y el estimado anterior, se conoce como envejecimiento, y puede aplicar se en muchas situaciones en las que es preciso hacer una predicción con base en valores ante riores. El envejecimiento es mucho más fácil de aplicar si a = 1/2, pues basta con sumar el valor nuevo al estimado vigente y dividir la suma entre dos (desplazándola un bit a la derecha). Calendarización garantizada Una estrategia de calendarización por completo distinta sería hacer a los usuarios promesas reales en cuanto al desempeño y luego cumplirlas. Una promesa realista y fácil de cumplir es la siguiente: si hay n usuarios en sesión, cada uno recibirá aproximadamente 1 /n de la capa cidad de la CPU. Asimismo, en un sistema monousuario en el que se están ejecutando n pro cesos, si todos los demás factores son iguales, cada uno deberá recibir Mn de los ciclos de CPU. Para cumplir esta promesa, el sistema necesita llevar la cuenta de cuánto tiempo de CPU ha recibido cada proceso desde su creación. Luego se calcula el tiempo de CPU al que cada
RkJQdWJsaXNoZXIy MjI4NDcx