Que algoritmo de agendamento é usado no Linux?

11

Recentemente, em uma entrevista, fui questionado sobre o algoritmo de agendamento usado pelo sistema operacional Linux. Qual é o algoritmo usado por algum motivo?

Além disso, qual algoritmo é usado em sistemas operacionais em tempo real e por quê?

    
por rShetty 05.09.2011 / 18:03

3 respostas

7

O atual agendador de tarefas do Linux é chamado Completely Fair Scheduler (CFS). Você deve dar uma olhada no link para obter mais detalhes. O design é bastante complexo e, a meu ver, não é adequado para RTOS.

Uma técnica comum em sistemas em tempo real é a programação monotônica de taxa, porque ela tem strongs garantias se certas suposições forem válidas (por exemplo, prioridades de tarefa estática e tempo e taxa de execução fixos). Existem muitos outros algoritmos e tem havido muita pesquisa. Então, basicamente, é tudo sobre as propriedades que você precisa e o que você sabe sobre sua tarefa e o que é corrigido.

    
por 05.09.2011 / 23:30
2

Não tenho certeza se você está tomando o agendamento de E / S do Kernel. Caso você não esteja: ignore esta resposta.

A Wikipédia declara que a CFG (filas completamente justas) é padrão desde o Kernel 2.6.18.

No meu openSUSE (executando o Kernel 2.6.37) eu posso alternar entre o CFG, NOOP e Deadline .

Espero que isso ajude.

    
por 05.09.2011 / 21:38
1

O algoritmo Round Robin é geralmente usado em ambientes de compartilhamento de tempo.

    
por 26.04.2012 / 06:59