Qual algoritmo de agendamento de processos é usado pelo Linux?

3

O sistema operacional Linux alterna entre os processos em execução para ativar a multitarefa.

Qual algoritmo é usado para determinar quando suspender a execução do processo atualmente em execução e qual processo deve ser executado a seguir?

    
por Adam Matan 20.08.2014 / 13:52

1 resposta

7

Em novos kernels, o Completely Fair Scheduler é usado (substitui o planejador O (1) dos kernels mais antigos).

O CFS armazena a tarefa planejada em uma árvore vermelha e preta e usa a quantidade de tempo de CPU gasto para o processo que foi executado como uma chave. Isso permite que o planejador escolha o processo com a menor quantidade de tempo de execução (que é armazenado no nó do modo esquerdo da árvore) de forma eficiente.

Quando a tarefa estiver prestes a ser executada, ela será removida da árvore e, quando for executada, será adicionada novamente com o novo tempo de CPU usado.

Os processos que estão "adormecidos" por um longo período receberão automaticamente um aumento de prioridade, já que eles não têm um grande tempo gasto na CPU.

Portanto, é "justo", já que os processos que estão em suspensão recebem tanto tempo de CPU quanto os processos em execução constante

    
por 20.08.2014 / 14:39