Sistemas operativos modernos
parámetros. En estas circunstancias puede usarse el siguiente algoritmo, que es sencillo pero eficaz. Para cada película, hay un solo proceso (o subproceso) encargado de leer la película del disco cuadro por cuadro y luego transmitir ese cuadro al usuario. Puesto que todos los proce sos tienen la misma importancia, tienen la misma cantidad de trabajo que efectuar por cuadro, y se bloquean cuando han terminado de procesar el cuadro actual, la calendarización por tumo circular (round-robin) funciona en forma satisfactoria. La única adición que necesitan los al goritmos de calendarización estándar es un mecanismo de temporización para asegurar que ca da proceso se ejecute con la frecuencia correcta. Una forma de lograr la temporización requerida es tener un reloj maestro que produzca un tic, por ejemplo, 30 veces por segundo (para NTSC). En cada tic, todos los procesos se ejecu tan de manera secuencial, en el mismo orden. Una vez que un proceso ha terminado su trabajo, emite una llamada al sistema suspend que libera la CPU hasta que el reloj maestro emite el siguiente tic. En ese momento, todos los procesos se ejecutan otra vez en el mismo orden. Mien tras el número de procesos sea lo bastante pequeño y todo el trabajo pueda realizarse en un tiem po de cuadro, la calendarización por tumo circular será suficiente. 7.4.2 Calendarización general en tiempo real Por desgracia, este modelo casi nunca puede aplicarse en la vida real. El número de usuarios varía conforme llegan espectadores y se van, los tamaños de cuadro fluctúan en forma amplia debido a la naturaleza de la compresión de vídeo (los cuadros I son mucho más grandes que los P o B), y las películas podrían tener disfinta definición. Por todo esto, podría ser necesario que los diferentes procesos se ejecuten en diferente frecuencia, realicen cantidades de trabajo variables y tengan diferentes plazos para terminar el trabajo. Estas consideraciones llevan a un modelo distinto: múltiples procesos que compiten por la CPU, cada uno con su propio trabajo y su propio plazo. En los modelos que siguen supondre mos que el sistema conoce la frecuencia con que debe ejecutarse cada proceso, cuánto trabajo debe efectuar y cuándo debe terminarlo. (La calendarización de disco también influye, pero eso lo veremos después.) La calendarización de múltiples procesos rivales, algunos de los cuales, o todos, tienen plazos que cumplir, se denomina calendarízación en tiempo real. Como ejemplo del entomo en el que opera un calendarizador multimedia de tiempo real, con sideremos los tres procesos A, B y C que se muestran en la figura 7-11. El proceso A se ejecuta cada 30 ms (aproximadamente a velocidad NTSC). Cada cuadro requiere 10 ms de tiempo de CPU. Si no hay competidores, este proceso se ejecutará en las ráfagas A 1, A2, A3, etcétera, y ca da una comenzará 30 ms después de la anterior. Cada ráfaga de CPU procesa un cuadro y tiene un plazo: debe terminar antes del momento en que debe principiar ia siguiente. En la figura 7-11 también se muestran otros dos procesos, y C. El proceso B se ejecuta 25 veces cada segundo (por ejemplo, PAL) y el C, 20 veces/s (por ejemplo, un flujo NTSC o PAL con velocidad reducida que se transmite a un usuario con una conexión de bajo ancho de banda con el servidor de vídeo). El tiempo de cálculo por cuadro es de 15 y 5 ms para B y C, respectivamente, como se indica. Usamos estos valores para que el problema de calendariza ción sea más general.
RkJQdWJsaXNoZXIy MjI4NDcx