Sistemas operativos modernos

mismo (aunque por supuesto que esto no se cumple). Así, podremos restar el tiempo de servicio fijo al plazo, para determinar el úlfimo momento en que se puede comenzar a atender la solicitud sin dejar de cumplir con el plazo. Esto simplifica el modelo, porque lo que le importa al calenda­ rizador de disco es el plazo para calendarizar la solicitud. Cuando el sistema comienza a operar, no hay solicitudes de disco pendientes. Al llegar la primera solicitud, se le atiende de inmediato. Mientras se está efectuando el primer desplaza­ miento del brazo del disco, podrían llegar otras solicitudes, así que para cuando la primera so­ licitud haya sido atendida el controlador del disco podría tener varias opciones respecto a cuál solicitud atender a confinuación. Se escoge alguna solicitud y se comienza a atender. Una vez atendida esa solicitud, habrá otra vez un conjunto de posibles solicitudes: las que no se esco­ gieron la primera vez y las que hayan llegado mientras se estaba procesando la segunda solici­ tud. En general, cada vez que se termina de atender una solicitud de disco, el controlador tendrá algún conjunto de solicitudes pendientes entre las cuales debe escoger una. La pregunta es: “¿Qué algoritmo usará para escoger la siguiente solicitud que atenderá?” Dos factores influyen en la selección de la siguiente solicitud de disco: plazos y cilindros. Desde el punto de vista del desempeño, mantener las solicimdes ordenadas por cilindro y utilizar el algoritmo del elevador reduce al mínimo el tiempo total de desplazamiento del brazo, pero po­ dría hacer que soficimdes para cilindros en las orillas no cumplan con sus plazos. Desde un pun­ to de vista de tiempo real, ordenar las solicitudes según su plazo y procesarlas en ese orden, el plazo más cercano primero, reduce al mínimo la posibilidad de no cumplir con los plazos, pero incrementa el tiempo total de desplazamiento del brazo. Estos factores pueden combinarse utilizando el algoritmo sean-EDF (Reddy y Wyllie, 1992). La idea básica en que se basa este algoritmo consiste en juntar en lotes solicitudes cuyos plazos estén relativamente cercanos en el tiempo, y procesarlas en orden por cilindro. Como ilustración, consideremos la situación de la figura 7-25 en t = 700. El controlador de disco sabe que tiene 11 solicitudes pendientes con diversos plazos y para diversos cilindros. Podría decidir, por ejemplo, tratar las cinco solicitudes con plazos más inminentes como un lote, ordenarlas por número de cilindro y ufilizar el algoritmo del elevador para atenderlas en orden por cilindro. En tal caso el orden sería 110, 330,440,676 y 680. Mientras todas las solicitudes terminen de aten­ derse antes de que se cumpla su plazo, no habrá problema si se reacomodan para reducir al mí­ nimo el tiempo total requerido de desplazamiento del brazo. Si los diferentes flujos tienen tasas de datos disfintas, surge una pregunta importante cuan­ do aparece un nuevo cfiente: ¿se debe admifir o no? Si la admisión del cliente va a causar que otros flujos no cumplan con sus plazos en muchas ocasiones, la respuesta seguramente será no. Hay dos formas de calcular si se debe admifir al nuevo cliente o no. Una es suponer que cada cliente necesita cierta cantidad de recursos en promedio, como ancho de banda de disco, bú­ feres en memoria, fiempo de CPU, etc. Si queda una canfidad suficiente de cada recurso para un cliente representativo, se admite al nuevo cliente. El otro algoritmo es más detallado. Determina la película específica que quiere ver el nue­ vo cliente y consulta la tasa de datos (calculada con anterioridad) para esa película, que es di­ ferente dependiendo si es en blanco y negro o a color, si es de dibujos animados o filmada con actores, e incluso si es una historia de amor o una película de guerra. Las historias de amor son más lentas, con escenas largas y desvanecimientos cruzados lentos, todo lo cual tiene una

RkJQdWJsaXNoZXIy MjI4NDcx