¿Qué significa “adherencia del brazo” en los algoritmos de programación de E / S?

La adherencia del brazo es un fenómeno en la programación de E / S donde el algoritmo de programación continúa atendiendo solicitudes en o cerca del sector actual y, por lo tanto, evita cualquier búsqueda. El nombre deriva del brazo , que controla la cabeza de búsqueda, del disco atascado o pegajoso en una parte particular del plato.

En general, minimizar la búsqueda es un atributo positivo de la programación de E / S; de hecho, minimizar la búsqueda es la razón principal por la que tenemos programadores de E / S. Pero si el planificador de E / S favorece agresivamente las solicitudes en o cerca del sector actual y esas solicitudes continúan llegando , entonces el sistema morirá de hambre las solicitudes en otros sectores.

Muchos programadores de E / S, incluido el algoritmo básico que todos nos enseñan en la clase de sistema operativo, llamado elevador o SCAN , sufren de cierta cantidad de adherencia del brazo. Hay varias formas de mitigar esto. Uno está usando colas duales como en el algoritmo FSCAN. En FSCAN, las nuevas solicitudes se almacenan en una segunda cola y no se atienden hasta que se agota la primera cola. Entonces las colas cambian. Esto evita que las solicitudes en el sector actual impidan la búsqueda. Una segunda solución es implementar plazos, como en el planificador de E / S de plazos de Linux. Los plazos evitan que las solicitudes pasen sin servicio durante un período de tiempo configurable, lo que obliga a realizar una búsqueda una vez transcurrido el plazo.

(Cubro la programación de E / S en profundidad en el Capítulo 14 , la capa Bloque de E / S, del desarrollo del kernel de Linux )