Cola completamente justa


Completely Fair Queuing ( CFQ ) es un programador de E/S para el kernel de Linux que fue escrito en 2003 por Jens Axboe . [1]

CFQ coloca solicitudes sincrónicas enviadas por procesos en una serie de colas por proceso y luego asigna intervalos de tiempo para que cada una de las colas acceda al disco . La duración de la porción de tiempo y la cantidad de solicitudes que una cola puede enviar depende de la prioridad de E/S del proceso dado. Las solicitudes asíncronas para todos los procesos se agrupan en lotes en menos colas, una por prioridad. Si bien CFQ no realiza actividades anticipatorias explícitasProgramación de E/S, logra el mismo efecto de tener un buen rendimiento agregado para el sistema como un todo, al permitir que una cola de proceso quede inactiva al final de la E/S síncrona, por lo que "anticipa" más E/S cercanas de ese proceso. Puede considerarse una extensión natural de la concesión de intervalos de tiempo de E/S a un proceso.

En febrero de 2003 , Andrea Arcangeli presentó su idea para un programador de E/S de cola justa estocástica a Jens Axboe, quien luego la implementó. Jens Axboe realizó mejoras en su primera implementación, llamando a la nueva versión el programador de Cola Completamente Justa, y produjo un parche para aplicarlo al núcleo de la serie de desarrollo 2.5.60.

El programador de E/S de CFQ se integró por primera vez en el núcleo principal como un programador de E/S opcional. Era posible cambiar el planificador en el momento del arranque con el parámetro 'elevador' al kernel.

Red Hat Enterprise Linux 4 usó este programador de E/S como predeterminado, aunque usó un kernel basado en 2.6.9. [2]

La segunda versión del programador CFQ denominada CFQv2 se incluye en la 2.6.10, las mejoras incluyen una mejor capacidad de respuesta y la eliminación de algunos problemas de inanición que estaban presentes en la versión anterior. El programador ahora también se puede cambiar en tiempo de ejecución modificando la variable /sys/block/<block_device>/queue/scheduler en el sistema de archivos sysfs .