Sistemas operativos modernos
hayan procesado y haya iniciado la siguiente ronda. Por tanto, el disco puede ordenar las soli citudes de manera óptima, quizá en orden por cilindro (aunque podría ser factible hacerlo en orden por sector en algunos casos) y luego procesarlas en el orden óptimo. En la figura 7-24, las solicitudes aparecen ordenadas por cilindro. A primera vista, podría parecer que de nada sirve esta optimización del disco porque, mien tras el disco cumpla con los plazos, no importa si los cumple con 1 o con 10 ms de margen. Sin embargo, esta conclusión es falsa. Al optimizar los desplazamientos del brazo del disco de esta manera, se reduce el tiempo medio que toma procesar cada solicitud, y esto implica que el dis co podrá manejar más flujos en cada ronda, en promedio. Dicho de otro modo, optimizar las so licitudes de disco de esta manera aumenta el número de películas que puede transmitir el servidor en forma simultánea. El tiempo sobrante al final de la ronda también puede utilizarse para atender las solicimdes que no son de tiempo real que pudieran existir. Si un servidor tiene demasiados flujos, a veces, cuando se le pida traer cuadros de partes distantes del disco, no podrá cumplir con algún plazo. Mientras esto no ocurra con mucha fre cuencia podrá tolerarse, a cambio de manejar más flujos simultáneos. Cabe señalar que lo im portante es el número de flujos. Tener dos o más clientes por flujo no afecta el desempeño ni la calendarización del disco. Para mantener la continuidad del flujo de datos hacia los clientes, es preciso emplear búferes dobles en el servidor. Durante la ronda 1 se utiliza un conjunto de búferes, uno por flujo. Cuando la ronda termina, se desbloquean los procesos de salida y se les pide transmith- el cuadro 1. Al mis mo tiempo, llegan nuevas solicitudes pidiendo el cuadro 2 de cada película (podría haber un sub proceso de disco y un subproceso de salida para cada película). Estas solicitudes deben atenderse empleando un segundo conjunto de búferes, porque los primeros todavía están ocupados. Cuan do inicie la ronda 3, el primer conjunto de búferes ya estará desocupado y se podrá utilizar para obtener el cuadro 3. Hemos supuesto una ronda por cuadro. Esta limitación no es necesaria en un sentido estric to. Podría haber dos rondas por cuadro para reducir el espacio de búfer requerido, a expensas de aumentar al doble el número de operaciones de disco. De forma similar, podrían extraerse del disco dos cuadros en cada ronda (suponiendo que los pares de cuadros estén almacenados en forma contigua en el disco). Este diseño reduce el número de operaciones de disco a la mitad, a expensas de aumentar al doble el espacio de búfer requerido. Dependiendo de la disponibilidad, desempeño y costo relativos de la memoria y de la E/S de disco, podrá calcularse y usarse la es trategia óptima. 7.8.2 Calendarización dinámica de disco En el ejemplo anterior, supusimos que todos los flujos tienen la misma definición, tasa de cua dros y demás propiedades. Desechemos ahora ese supuesto. Dado que ahora las películas pueden tener tasas de datos distintas, no será posible tener una ronda cada 33.3 ms y extraer del disco un cuadro para cada flujo. Las solicitudes llegarán al disco de forma más o menos aleatoria. Cada solicitud de lectura especifica el bloque a leer y la hora a la que se necesitará el bloque; es decir, el plazo. Por sencillez, supondremos que el tiempo real para atender cada solicitud es el
RkJQdWJsaXNoZXIy MjI4NDcx