domingo, 2 de junio de 2013

3. Planificación de disco
 
Una de las obligaciones del sistema operativo es usar el hardware de forma eficiente. En el caso de las unidades de disco, esto implica tener un tiempo de acceso breve y gran ancho de banda de disco. El tiempo de acceso tiene dos componentes principales.
El tiempo de búsqueda (seek time) es el tiempo que tarda el brazo del disco en mover las cabezas al cilindro que contiene el sector deseado. La latencia rotacional es el tiempo adicional que el disco tarda en girar hasta que el sector deseado queda bajo la cabeza del disco.
El ancho de banda del disco es el número total de bytes transferidos, dividido entre el tiempo total transcurrido entre la primera solicitud de servicio y la finalización de la última transferencia.
Cada vez que un proceso necesita E/S de o al disco, emite una llamada al sistema operativo. La solicitud especifica varios elementos de información:
  • Si esta operación es de entrada o de salida
  • La dirección en disco para la transferencia
  • La dirección en memoria para la transferencia
  • El número de bytes por transferir
Si la unidad de disco y controlador deseados están disponibles, la solicitud puede atenderse de inmediato, si no, todas las solicitudes de servicios nuevas tendrán que colocarse en la cola de solicitudes pendientes para esa unidad. En un sistema multiprogramación con muchos procesos, puede ser común que la cola de disco tenga varias solicitudes pendientes. Así, cuando se termina de atender una solicitud, el sistema operativo tiene oportunidad de escoger cuál solicitud pendiente atenderá a continuación

3.1 POLÍTICAS DE PLANIFICACIÓN DE DISCOS
Una forma simple de atender a las solicitudes en el disco es la primero en llegar-primero en ser atendido. Existen además otros criterios para evaluar las políticas de planificación:
  • Capacidad de ejecución
  • Media del tiempo de respuesta
  • Varianza de los tiempos de respuesta
Es claro que una política de planificación debe intentar maximizar la capacidad de ejecución, el número de peticiones servidas por unidad de tiempo. Debido a la planificación se reduce el tiempo desperdiciado en las esperas de las búsquedas, con lo que se puede mejorar la media de los tiempos de respuesta. Si una política de planeación no intenta más que maximizar la capacidad de ejecución sin minimizar al mismo tiempo la varianza, podría procesar peticiones. (Cuanto menor es la varianza, más predecible es el sistema).
El objetivo es reducir los tiempos de acceso en la lectura o escritura de los datos. Además del tiempo de acceso y del tiempo de transferencia, existen algunos retrasos en las colas que normalmente tienen asociada una operación de E/S a disco. Cuando un proceso emite una solicitud de E/S, primero debe esperar en una cola a que el dispositivo esté disponible. En ese momento, el dispositivo queda asignado al proceso. Si el dispositivo comparte un único canal de E/S o un conjunto de canales con otras unidades del disco, puede producirse una espera adicional hasta que el canal esté disponible. En ese punto se realizará la búsqueda con que comienza el acceso al disco.

NOMBRE
DESCRIPCION
COMENTARIOS
Selección en función del demandante
RSS
Planificación aleatoria.
Para análisis y simulación.
FIFO
Primero en entrar, primero en salir.
El más justo de todos.
PRI
Prioridad del proceso.
El control se lleva fuera de la gestión de la cola del disco.
LIFO
Último en entrar último en salir.
Maximiza uso de recursos y cercanías.
Selección en función del elemento solicitado
SSTF
Primero el más corto.
Gran aprovechamiento y colas pequeñas.
SCAN
Recorre el disco de un lado a otro.
Mejor distribución del servicio.
C-SCAN
Recorre el disco en un solo sentido.
Menor variabilidad en el servicio.
SCAN de N-pasos
Scan de N registros a la vez.
Garantía de servicio.
F-SCAN
Scan de N pasos, con N = longitud de la cola al comienzo del ciclo del Scan.
Sensible a la carga.

3.2 Optimización de la Búsqueda en Discos
Las estrategias más comunes de optimización de la búsqueda son las siguientes:
3.2.1 Planificación FCFS
La forma más sencilla de planificación de disco es, desde luego, el servicio por orden de llegada (FCFS, first come, first served). No proporciona el servicio más rápido.
La planificación FCFS es justa en el sentido de que una vez que llega una petición, se fija su lugar dentro de la cola de espera. Una petición, se fija su lugar dentro de la cola de espera. Una petición no puede ser desplazada por la llegada de otra con prioridad más alta.
La FCFS es aceptable cuando la carga en un disco es ligera. Pero a medida que crece la carga, la FCFS tiende a saturar el dispositivo y los tiempos de respuesta se incrementan. La FCFS ofrece una varianza pequeña, pero tiene tiempos de espera muy grandes.

3.2.2 Planificación SSTF
Parece razonable atender todas las solicitudes cercanas a la posición actual de la cabeza antes de mover la cabeza a una posición lejana para atender otras solicitudes. Este supuesto es la base del algoritmo de tiempo de búsqueda más corto primero (SSTF, shortest-seek-time-first), que selecciona la solicitud que tiene el menor tiempo de búsqueda a partir de la posición actual de la cabeza.
En esta política la petición que da por resultado la distancia de búsqueda más corta (y, con esto, el tiempo de búsqueda más corto) es la siguiente en ser servida, aunque esa petición no sea la primera en la cola.
Los patrones de búsqueda SSTF tienden a estar muy relocalizados, dando como resultado que las pistas internas y externas reciban un servicio pobre, en comparación con las pistas del centro. La SSTF es útil en sistemas de procesamiento por lotes, en los cuales la capacidad de ejecución es lo más importante. Pero la alta varianza de los tiempos de respuesta (es decir, su falta de predecibilidad) lo hace inaceptable para los sistemas interactivos.
Este algoritmo mejora sustancialmente el desempeño.
La planificación SSTF es en esencia una forma de planificación de trabajo más corto primero (SJF) y, al igual que la planificación SFJ, puede cause inanición de algunas solicitudes.
Aunque el algoritmo SSTF representa una mejora sustancial respecto al algoritmo FCFS, no es óptimo.

3.3.3 Planificación SCAN
En el algoritmo SCAN, el brazo del disco parte de un extremo del disco y se mueve hacia el otro, atendiendo las solicitudes a medida que llega a cada cilindro, hasta llegar al otro extremo del disco. Ahí, la dirección de movimiento de la cabeza se invierte, y continúa la atención. La cabeza barre continuamente el disco de un lado a otro.
Esta política, desarrollada por Denning, opera como SSTF, excepto que selecciona la petición que da como resultado la distancia de búsqueda más corto en una dirección seleccionada. La SCAN no cambia de dirección hasta que ha alcanzado el cilindro exterior o hasta que ya NO haya peticiones pendientes en la dirección con preferencia.
La SCAN se comporta de manera parecida al SSTF desde el punto de vista de la mejora en la capacidad de ejecución y de la media de los tiempos de respuesta, pero elimina mucha de la discriminación inherente a los esquemas SSTF y ofrece una varianza menor.
El algoritmo SCAN también se conoce como algoritmo de elevador, ya que el brazo del disco se comporta igual que el elevador de un edificio, que atiende primero todas las solicitudes para subir y luego cambia de dirección para atender las solicitudes de abajo.
3.3.4 Planificacion SCAN de n-pasos
En esta estrategia, el brazo del disco se mueve de un lado a otro como en SCAN, pero sólo da servicio a aquellas peticiones que se encuentran en espera cuando comienza un recorrido particular. Las peticiones que llegan durante un recorrido son agrupadas y ordenadas para un servicio óptimo durante el recorrido de regreso.
La SCAN de n-pasos ofrece un buen rendimiento de la capacidad de ejecución y de la media de los tiempos de respuesta. Su característica más significativa es una menor varianza de los tiempos de respuesta que las planeaciones SSTF y SCAN convencionales. La SCAN de n-pasos evita la posibilidad de postergación indefinida que tiene lugar si un gran número de peticiones que llegan al cilindro que está siendo servido y guarda estas peticiones para ser servidas durante el recorrido de regreso.

3.3.5 Planificacion C-SCAN
La planificación SCAN circular (C-SCAN) es una variante de SCAN diseñada para dar un tiempo de espera más uniforme. Al igual que SCAN, C-SCAN mueve la cabeza de un extremo del disco al otro, atendiendo las solicitudes en el camino, sólo que ahora, cuando la cabeza llega al otro extremo, regresa de inmediato al principio del disco sin atender solicitudes.
El algoritmo de planificación C-SCAN básicamente trata los cilindros como una lista circular que continúa del último cilindro al primero.
En la estrategia C-SCAN, el brazo se mueve del cilindro exterior al interior, sirviendo a las peticiones con menor tiempo de búsqueda. Cuando el brazo ha completado su recorrido hacia adentro, salta a la petición más cercana al cilindro exterior y a continuación reanuda su recorrido hacia adentro procesando peticiones.
La C-SCAN puede implementarse de forma que las peticiones que llegan durante un recorrido sean servidos en el siguiente. De esta forma C-SCAN elimina completamente la discriminación contra las peticiones para los cilindros exterior e interior. Tiene una varianza de los tiempos de respuesta muy pequeña.
3.3.6 Planificación LOOK
En la práctica, ningunos de estos dos algoritmos se implementan así. Por lo regular, el brazo sólo llega hasta la última solicitud en cada dirección y luego cambia de dirección inmediatamente, sin primero ir hasta el extremo del disco. Estas versionas de SCAN y C-SCAN se llaman LOOK y C-LOOK, porque miran si hay una solicitud antes de continuar en una dirección dada

No hay comentarios.:

Publicar un comentario