Como o escalonador do Linux determina se um processo está limitado por I / O ou por CPU?

4

Adicionando a essa pergunta , como o escalonador determina se um processo está limitado por I / O ou por CPU?

Sr. Com amor neste artigo , diz

"schedulers often employ complex algorithms to determine the most worthwhile process to run"

Quais são esses algoritmos complexos?

    
por Arpith 12.01.2016 / 14:09

2 respostas

0

É mais provável que um processo vinculado à CPU seja antecipado pelo agendador após ter usado todo o seu intervalo de tempo da CPU, enquanto é mais provável que um processo de vinculação de E / S libere sua fatia de tempo da CPU antecipadamente executando E / Ss. O escalonador envolvido na preempção tem todas as métricas para resolver os processos.

    
por 12.01.2016 / 14:43
0

Se você quiser saber os detalhes, o código-fonte é o lugar certo.

Como princípio geral, um processo vinculado a computação usará todo o intervalo de tempo com mais freqüência do que um processo vinculado a E / S. Os processos que renderam recentemente sem usar toda a sua alocação são considerados mais propensos a fazer o mesmo no futuro próximo, e podem ser agendados de acordo.

É importante lembrar que os processos podem e mudam o comportamento enquanto são executados; quanto tempo para decair a memória de fatias de tempo passadas é um dos importantes ajustes da maioria dos agendadores.

Agendadores reais precisam levar em conta mais do que apenas o uso histórico da fatia de tempo: o valor 'legal' e os bloqueios que bloqueiam outros processos são apenas dois exemplos de outras informações que podem ser usadas.

    
por 12.01.2016 / 14:44