viernes, 11 de diciembre de 2009

5.4.2 SOFTWARE PARA DISCOS

En la mayoría de los discos, el tiempo de búsqueda supera al de retraso rotacional y al de transferencia, debido a ello, la reducción del tiempo promedio de búsqueda puede mejorar en gran medida el rendimiento del sistema.
Si el manejador del disco utiliza el algoritmo primero en llegar primero en ser atendido (FCFS), poco se puede hacer para mejorar el tiempo de búsqueda.
Es posible que mientras el brazo realiza una búsqueda para una solicitud, otros procesos generen otras solicitudes.

Muchos manejadores tienen una tabla:

•El índice es el número de cilindro.
•Incluye las solicitudes pendientes para cada cilindro enlazadas entre sí en una lista ligada.
•Cuando concluye una búsqueda, el manejador del disco tiene la opción de elegir la

siguiente solicitud a dar paso:

oSe atiende primero la solicitud más cercana, para minimizar el tiempo de búsqueda.
oEste algoritmo se denomina primero la búsqueda más corta (SSF: shor-test seek first).
oReduce a la mitad el número de movimientos del brazo en comparación con FCFS.

Ej. De SSF:

•Consideramos un disco de 40 cilindros.
•Se presenta una solicitud de lectura de un bloque en el cilindro 11.
•Durante la búsqueda, llegan solicitudes para los cilindros 1, 36, 16, 34, 9 y 12, en ese orden.
•La secuencia de búsqueda SSF será: 12, 9, 16, 1, 34, 36.
•Habrá un número de movimientos del brazo para un total de:
o111 cilindros según FCFS.
o61 cilindros según SSF.

El algoritmo SSF tiene el siguiente problema:

•El ingreso de nuevas solicitudes puede demorar la atención de las más antiguas.
•Con un disco muy cargado, el brazo tenderá a permanecer a la mitad del disco la mayoría del tiempo, como consecuencia de ello las solicitudes lejanas a la mitad del disco tendrán un mal servicio.
•Entran en conflicto los objetivos de:
oTiempo mínimo de respuesta.
oJusticia en la atención.
La solución a este problema la brinda el algoritmo del elevador (por su analogía con el ascensor o elevador):
•Se mantiene el movimiento del brazo en la misma dirección, hasta que no tiene más solicitudes pendientes en esa dirección; entonces cambia de dirección.
•El software debe conservar el bit de dirección actual.

Ej. Del algoritmo del elevador para el caso anterior, con el valor inicial arriba del bit de dirección:

•El orden de servicio a los cilindros es: 12, 16, 34, 36, 9 y 1.
•El número de movimientos del brazo corresponde a 60 cilindros.

El algoritmo del elevador:

•Ocasionalmente es mejor que el algoritmo SSF.
•Generalmente es peor que SSF.
•Dada cualquier colección de solicitudes, la cuota máxima del total de movimientos está fija, siendo el doble del número de cilindros.
Una variante consiste en rastrear siempre en la misma dirección:

•Luego de servir al cilindro con el número mayor:

oEl brazo pasa al cilindro de número menor con una solicitud pendiente.
oContinúa su movimiento hacia arriba.
Algunos controladores de disco permiten que el software inspeccione el número del

sector activo debajo del cabezal:

•Si dos o más solicitudes para el mismo cilindro están pendientes:
oEl manejador puede enviar una solicitud para el sector que pasará debajo del cabezal.
oSe pueden hacer solicitudes consecutivas de distintas pistas de un mismo cilindro,
sin generar un movimiento del brazo.

Cuando existen varias unidades, se debe tener una tabla de solicitudes pendientes para cada unidad.

Si una unidad está inactiva, deberá buscarse el cilindro siguiente necesario, si el controlador permite búsquedas traslapadas.
Cuando termina la transferencia actual se verifica si las unidades están en la
posición del cilindro correcto:

•Si una o más unidades lo están, se puede iniciar la siguiente transferencia en una unidad ya posicionada.
•Si ninguno de los brazos está posicionado, el manejador:
oDebe realizar una nueva búsqueda en la unidad que terminó la transferencia.
oDebe esperar hasta la siguiente interrupción para ver cuál brazo se posiciona primero.

Generalmente, las mejoras tecnológicas de los discos:

•Acortan los tiempos de búsqueda (seek).
•No acortan los tiempos de demora rotacional (search).
•En algunos discos, el tiempo promedio de búsqueda ya es menor que el retraso rotacional.
•El factor dominante será el retraso rotacional, por lo tanto, los algoritmos que optimizan los tiempos de búsqueda (como el algoritmo del elevador) perderán importancia frente a los algoritmos que optimicen el retraso rotacional.
Una tecnología importante es la que permite el trabajo conjunto de varios discos.
Una configuración interesante es la de treinta y ocho (38) unidades ejecutándose en paralelo.

Cuando se realiza una operación de lectura:

•Ingresan a la CPU 38 bit a la vez, uno por cada unidad.
•Los 38 bits conforman una palabra de 32 bits junto con 6 bits para verificación.
•Los bits 1, 2, 4, 8, 16 y 32 se utilizan como bits de paridad.
•La palabra de 38 bits se puede codificar mediante el código Hamming, que es un código corrector de errores.

•Si una unidad sale de servicio:
oSe pierde un bit de cada palabra.
oEl sistema puede continuar trabajando; se debe a que los códigos Hamming se pueden recuperar de un bit perdido.

No hay comentarios:

Publicar un comentario