You are on page 1of 3

5.4.

2 Algoritmos de planificacin del brazo del disco


Comenzaremos considerando el tiempo que se requiere para leer o escribir un bloque de disco. El
tiempo requerido viene determinado por tres factores:
1. Tiempo de posicionamiento (el tiempo que se tarda en mover el brazo hasta el cilindro correcto).
2. Retraso (latencia) rotacional (el tiempo que tarda el sector correcto en girar hasta pasar por
debajo de la cabeza de lectura).
3. Tiempo de transferencia de datos real.
Para la mayora de los discos, el tiempo de posicionamiento (seek time) domina los otros dos
tiempos, por lo que una reduccin en el tiempo de posicionamiento medio puede mejorar
substancialmente el rendimiento del sistema.
Si el driver del disco slo acepta una peticin de cada vez y las atiende en el orden de llegada, es
decir, First-Come First-Served (FCFS), poco puede hacerse para optimizar el tiempo de
posicionamiento. Sin embargo, si el disco est sometido a una carga intensa de peticiones, podra
utilizarse otra estrategia. Es muy probable que mientras el brazo est movindose para atender una
peticin, otros procesos generen nuevas peticiones de disco. Muchos drivers de disco mantienen
una tabla, indexada por nmero de cilindro, con todas las peticiones pendientes para cada cilindro
encadenadas en una lista enlazada encabezada por las entradas de la tabla.
Dado este tipo de estructura de datos, podemos mejorar el algoritmo de planificacin primera en
llegar, primera en ser servida. Para ver cmo, consideremos un disco imaginario con 40
cilindros(Del 0 al 39). Supongamos que llega una peticin para leer un bloque en el cilindro 11, y
que mientras el brazo est movindose hacia el cilindro 11, llegan nuevas peticiones para los
cilindros 1, 36, 16, 34, 9 y 12, en ese orden. Esas peticiones se colocan en la tabla de peticiones
pendientes, con una lista enlazada distinta para cada cilindro. Las peticiones se muestran en la
Figura 5-27.

Cuando termina de atenderse la peticin actual (correspondiente al cilindro 11), el driver del disco
tiene que elegir la peticin que atender a continuacin. Si utiliza FCFS, ir a continuacin al
cilindro 1, luego al 36, y as todas las dems. Este algoritmo requerir movimientos del brazo de 10,
35, 20, 18, 25 y 3 cilindros respectivamente, para un total de 111 cilindros.
Alternativamente, el driver del disco podra atender siempre a continuacin la peticin ms cercana,
con el fin de minimizar el tiempo de posicionamiento. Dadas las peticiones de la Figura 5-27, la

secuencia es 12, 9, 16, 1, 34 y 36, como indica la lnea en zigzag de la parte baja de la Figura 5-27.
Con esta sucesin, los movimientos del brazo son de 1, 3, 7, 15, 33 y 2, para un total de 61
cilindros. Este algoritmo, Shortest Seek First (SSF), reduce el movimiento total del brazo en casi
la mitad comparado con FCFS.
Desafortunadamente SSF tiene un problema. Supongamos que siguen llegando ms peticiones
mientras se estn procesando las peticiones de la Figura 5-27. Por ejemplo, si despus de
posicionarnos sobre el cilindro 16 est presente una nueva peticin para el cilindro 8, esa solicitud
tendr prioridad sobre la del cilindro 1. Si luego llega una peticin para el cilindro 13, el brazo se
dirigir entonces al cilindro 13, no al 1. Si el disco est sometido a mucha carga de peticiones, el
brazo tender a permanecer en el medio del disco la mayor parte del tiempo, mientras que las
peticiones para ambos extremos tendrn que esperar hasta que una fluctuacin estadstica en la
carga de peticiones provoque que no haya ninguna peticin de cilindros de la zona central. En
consecuencia las peticiones alejadas del centro del disco podran recibir un mal servicio con este
algoritmo. En este caso se produce un conflicto entre el objetivo de maximizar el rendimiento y el
objetivo de ser justos evitando discriminar algn tipo de peticiones.
Los rascacielos tambin tienen que enfrentarse con esta situacin comprometida. El problema de
planificar el ascensor de un rascacielos es similar al de planificar el brazo de un disco.
Continuamente llegan peticiones llamando al ascensor para que acuda a los pisos (cilindros) al azar.
El ordenador que controla el ascensor fcilmente puede seguir la pista de la secuencia en la cual los
usuarios oprimieron el botn de llamada, atendindolos utilizando FCFS o SSF.
Sin embargo, la mayora de los ascensores utilizan un algoritmo diferente para conciliar los
objetivos en conflicto de justicia y eficiencia. El ascensor siempre contina su avance en el mismo
sentido (hacia arriba o hacia abajo) hasta que no queden peticiones pendientes en ese sentido,
momento en el cual el ascensor cambia de sentido. Este algoritmo conocido tanto en el mundo de
los discos como en el de los ascensores como el algoritmo del ascensor, requiere que el software
mantenga un bit: el bit del sentido actual del movimiento, ARRIBA o ABAJO. Cuando termina de
atenderse una peticin, el driver del disco o del ascensor comprueba el bit.
Si es ARRIBA, el brazo o la cabina se mueve hasta la siguiente peticin pendiente hacia arriba. Si
no hay peticiones pendientes en posiciones ms altas, se invierte el bit del sentido del movimiento.
Una vez que el bit se establece a ABAJO, el movimiento es hasta la siguiente posicin hacia abajo
solicitada, si la hay.

La Figura 5-28 muestra el algoritmo del ascensor aplicado a las mismas siete peticiones que en la
Figura 5-27, suponiendo que el bit de sentido del movimiento es inicialmente ARRIBA. El orden en

el que se atienden las peticiones es 12, 16, 34, 36, 9 y 1, lo que significa movimientos del brazo de
1, 4, 18, 2, 27 y 8, para un total de 60 cilindros. En este caso el algoritmo del ascensor es
ligeramente mejor que el SSF, aunque normalmente es peor. Una propiedad agradable que tiene el
algoritmo del ascensor es que, dado cualquier conjunto de peticiones, existe una cota superior fija
sobre el movimiento total, que es exactamente el doble del nmero de cilindros.
Una pequea modificacin de ese algoritmo que tiene menor varianza en los tiempos de respuesta
(Teory, 1972) consiste en explorar siempre en el mismo sentido. Una vez que se ha servido el
cilindro de nmero ms alto con una peticin pendiente, el brazo se dirige al cilindro de nmero
ms bajo que tenga una peticin pendiente, para luego continuar movindose hacia arriba. En
definitiva es como si el cilindro de nmero ms bajo estuviera justo a continuacin del cilindro de
nmero ms alto.
*******************************************************************************
NOTA:
Segn la separata anterior, se mencionaban los siguientes algoritmos:
-

FCFS: Primero en ser pedido, es el primero en ser servido

SSF: Primero el de menor tiempo de posicionamiento

SCAN y C-SCAN:

LOOK Y C-LOOK:

Los dos primeros quedan explicados claramente en esta separata


En los dos ltimos casos, se hace la siguiente aclaracin:
Se sigue la misma lgica en ambos, se hace un recorrido en forma ascendente o descendente (con el
bit de ARRIBA o ABAJO segn corresponda).

La Planificacin SCAN y C-SCAN adems de atender las peticiones en orden por ejemplo
ascendente, obligatoriamente llegan hasta el final y principio del nmero de cilindro, para
nuestro ejemplo se tendra:
- SCAN: 16, 34, 36, 39, 12, 9, 1

(note que se llega hasta el cilindro 39)

- C-SCAN: 16, 34, 36, 39, 0, 1, 9, 12 (el siguiente cilindro en ser revisado luego del 39 es
el primero, es decir el cilindro 0)

Con la planificacin LOOK y C-LOOK , variante del anterior se tiene que ya no se llega a
los cilindros extremos (ni de inicio ni de fin). Para ser ms exactos el algoritmo descrito
como el del ascensor se corresponde. Para el mismo ejemplo de la Fig. 5.27 el recorrido de
la atencin sera:

LOOK: 16, 34, 36, 12, 9, 1

C-LOOK: 16, 34, 36, 1, 9, 12

You might also like