Que tipo de algoritmo de escalonamento é usado em 15.04? É possível mudar isso?

12

Gostaria de saber quais mecanismos de agendamento são empregados em 15.04, time-sharing ou em tempo real, tenho certeza que o FIFO, Round Robin, SJF?

P.S: Novo no Linux

    
por leslie_lyj 08.06.2015 / 12:23

1 resposta

14

Agendador de processos

Um agendador de processos lida com a alocação de recursos da CPU para executar processos e visa maximizar a utilização geral da CPU e, ao mesmo tempo, maximizar o desempenho interativo.

Desde o kernel 2.6.23 (que seria do Hardy 8.04 LTS) Completely Fair Scheduler (CFS) baseado em "Rotating Staircase Deadline". Visão geral do kernel.org :

  

O CFS significa "Completely Fair Scheduler" e é o novo processo "desktop"   planejador implementado por Ingo Molnar e mesclado no Linux 2.6.23. É o   substituto para a SCHED_OTHER interatividade do agendador baunilha anterior   código.

     

80% do design do CFS pode ser resumido em uma única frase: CFS basicamente modelos   um "CPU multitarefa ideal e preciso" em hardware real.

     

"CPU multitarefa ideal" é uma CPU (inexistente :-)) que tem 100% física   potência e que pode executar cada tarefa em velocidade igual precisa, em paralelo, cada um em   1 / nr_running speed. Por exemplo: se existem 2 tarefas em execução, então ele é executado   cada um com 50% de energia física --- isto é, em paralelo.

     

No hardware real, podemos executar apenas uma única tarefa de uma vez, então temos que   introduzir o conceito de "tempo de execução virtual". O tempo de execução virtual de uma tarefa   especifica quando o próximo timeslice iria iniciar a execução no ideal   CPU multi-tarefa descrita acima. Na prática, o tempo de execução virtual de uma tarefa   é seu tempo de execução real normalizado para o número total de tarefas em execução.

  • Kernel 2.4: O (n) agendador ; não há lançamento do Ubuntu com esse kernel.
  • Kernel 2.6.0 a 2.6.22: O (1) agendador . Warty 4.10 (1ª release) usado 2.6.8. O Gutsy 7.10 foi o último que usou o 2.6.22 ou menor.

Agendador de E / S

O escalonamento de entrada / saída é o método que o sistema operacional usa para decidir em quais operações de E / S do bloco de pedidos serão submetidas aos volumes de armazenamento.

artigo da Phoronix sobre agendamento : Linux 3.16: Prazo final I / O Scheduler geralmente leva com um SSD.

Você pode alterar o agendador de E / S anexando a opção "elevator=" a "GRUB_CMDLINE_LINUX_DEFAULT=" no grub.

É provavelmente mais fácil (assumindo sda e prazo) fazer assim:

  • Para mostrar a lista de agendadores disponíveis:

    cat /sys/block/sda/queue/scheduler
    
  • E para alterar um agendador (pode ser feito em tempo real):

    echo deadline > /sys/block/sda/queue/scheduler
    

kernel / git / torvalds / linux.git

Você pode verificar com o que está sendo usado (supondo sda como primairy):

cat /sys/block/sda/queue/scheduler
    
por Rinzwind 08.06.2015 / 12:33

Tags