Fila completamente justa - Completely fair queueing

Completely Fair Queuing ( CFQ ) é um agendador de E / S para o kernel Linux que foi escrito em 2003 por Jens Axboe .

Descrição

O CFQ coloca as solicitações síncronas enviadas por processos em várias filas por processo e, em seguida, aloca filas de tempo para cada uma das filas para acessar o disco . A duração da fatia de tempo e o número de solicitações que uma fila pode enviar depende da prioridade de E / S de determinado processo. As solicitações assíncronas para todos os processos são agrupadas em menos filas, uma por prioridade. Embora o CFQ não faça agendamento antecipado de E / S explícito , ele atinge o mesmo efeito de ter uma boa taxa de transferência agregada para o sistema como um todo, permitindo que uma fila de processo fique ociosa no final da E / S síncrona, portanto "antecipando" mais perto E / S desse processo. Pode ser considerado uma extensão natural da concessão de fatias de tempo de E / S a um processo.

História

Antes da integração

Em fevereiro de 2003, Andrea Arcangeli apresentou sua ideia de um agendador de I / O de enfileiramento de feira estocástica para Jens Axboe, que o implementou. Jens Axboe fez melhorias em sua primeira implementação, chamando a nova versão de planejador Completely Fair Queuing, e produziu um patch para aplicá-lo ao kernel da série de desenvolvimento 2.5.60.

Kernel 2.6.6 (10 de maio de 2004)

O agendador de E / S CFQ foi integrado primeiro ao kernel da linha principal como um agendador de E / S opcional. Foi possível mudar o escalonador na hora do boot com o parâmetro 'elevator' para kernel.

Kernel 2.6.9 (19 de outubro de 2004)

O Red Hat Enterprise Linux 4 usou este agendador de E / S como padrão, embora usasse um kernel baseado em 2.6.9.

Kernel 2.6.10 (24 de dezembro de 2004)

A segunda versão do agendador CFQ apelidado de CFQv2 está incluída no 2.6.10. As melhorias incluem uma melhor capacidade de resposta e a eliminação de alguns problemas de fome que estavam presentes na versão anterior. O planejador agora também pode ser alternado em tempo de execução, modificando a variável / sys / block / <block_device> / queue / scheduler no sistema de arquivos sysfs .

Kernel 2.6.13 (27 de junho de 2005)

O agendador CFQ mudou para um novo design de divisão de tempo denominado CFQv3. Entre outras coisas, ele implementa ioprio_get (2) e ioprio_set (2) que permite ao usuário definir prioridades de E / S por processo, geralmente usando o comando ionice (1) (embora o uso de nice (1) também modifique as prioridades de E / S de alguma forma)

Kernel 2.6.18 (20 de setembro de 2006)

CFQ tornou-se o agendador padrão, substituindo o agendador antecipatório .

Kernel 5.0 (03/03/2019)

CFQ foi removido.

Veja também

Referências

Fontes

links externos