El documento describe varias estrategias de planificación de E/S de disco, incluyendo FCFS, SSTF, SCAN, C-SCAN y N-Step SCAN. FCFS sirve las solicitudes en orden de llegada, mientras que SSTF sirve la solicitud más cercana a la posición actual de la cabeza. SCAN y C-SCAN mueven la cabeza de un extremo a otro del disco atendiendo solicitudes, y N-Step SCAN agrupa solicitudes para un servicio más eficiente en el viaje de regreso.
3. 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.
Veamos un ejemplo:
4. Supongamos la siguiente situación: Un disco de cabezal móvil, con 200
cilindros, numerados del 0 a 199 en el que:
Posición de la cabeza: 53
Cola: 95, 175, 32, 117 15, 131, 47, 56
Como podemos ver en la imagen determina que el movimiento total
de la cabeza para satisfacer las peticiones de la línea es el valor de 661
cilindros.. Este es el resultado de sumar el desplazamiento de la cabeza
entre las consultas ejecutadas. Así, Por lo tanto :
5. De 53 a 95 es un movimiento de 42 cilindros.
De 95 a 175 da lugar a un movimiento de 80 cilindros.
De 175 a 32 da lugar a un movimiento de 143 cilindros.
De 32 a 117 da lugar a un movimiento de 85 cilindros.
117-15 da lugar a un movimiento de 102 cilindros.
De 15 a 131 da lugar a un movimiento de 116 cilindros.
. De 131 a 47 da lugar a un movimiento de 84 cilindros.
De 47 a 56 es un movimiento del cilindro 9.
Con esa suma de los movimientos parciales de la cabeza calcula
el movimiento total de la cabeza:
Movimiento de la cabeza Total = 42 143 80 102 116 84 85 +9 =
661cilindros.
Como podemos ver en la imagen de este algoritmo tiene un
recorrido total de alta (en este ejemplo tenemos los movimientos
de la cabeza, tomando el valor total de 661 cilindros) y los
movimientos bruscos, pero tiene una implementación sencilla.
6. 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.
7. 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.
Veamos un ejemplo:
8. Supongamos la siguiente situación: Un disco de cabeza móvil con
200 cilindros, numerados de 0 a 199 donde,
Posición Cabezal: 53
Cola: 95, 175, 32, 117, 15, 131, 47, 56
Como podemos ver en la imagen determina que el movimiento total
de la cabeza para satisfacer las peticiones de la línea es el valor de
204 cilindros. Este es el resultado de sumar el desplazamiento de la
cabeza entre las consultas ejecutadas. Por lo tanto:
9. De 53 a 56 es un movimiento de 3 cilindros.
De 56 a 47 es un movimiento del cilindro 9.
De 47 a 32 es un movimiento de 15 cilindros.
De 32 a 15 se produce un movimiento de 17 cilindros.
15-95 es un movimiento de 80 cilindros.
De 95 a 117 da lugar a un movimiento de 22 cilindros.
De 117 a 131 da lugar a un movimiento de 14 cilindros.
De 131 a 175 da lugar a un movimiento de 44 cilindros.
Con esa suma de los movimientos parciales de la cabeza calcula el
movimiento total de la cabeza:
Movimiento de la cabeza Total = 3 9 15 17 80 22 14 44 = 204cilindros.
Como podemos ver en la imagen de este algoritmo tiene un recorrido total
hacia abajo (en el ejemplo que tenemos los movimientos de la cabeza,
tomando el valor total de 204 cilindros), pero la cabeza oscila en la zona
central que se puede presentar con el hambre, ya que la entrada de la lista
Aplicaciones cerca que se está ejecutando puede causar un retraso indefinido a las
solicitudes no son más próxima a éste se está ejecutando.
11. SCAN: las cabezas se mueven de un
extremo a otro del disco, atendiendo las
solicitudes que se van encontrando.
Tiempos de servicio acotados, y más
variables en los extremos que en el centro.
Veamos un ejemplo:
12.
13. C-Scan
Con SCAN, al llegar a un extremo y cambiar de
sentido, se encuentran por lo general pocas
solicitudes.
La mayor densidad estará en el extremo opuesto, con
las solicitudes que llevan más tiempo esperando.
C-SCAN (Circular SCAN): las cabezas se mueven
del primer cilindro al último atendiendo solicitudes,
y retornan al principio.
Tiempos de espera más uniformes.
El retorno consume relativamente poco tiempo, porque
se hace sin paradas.
15. 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.
17. 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.