Os agendadores de dois níveis são úteis apenas para gerenciar a troca?

10

O agendamento de dois níveis é útil quando um sistema está executando mais processos do que cabem na RAM: um agendador de nível inferior alterna entre processos residentes e um agendador de nível superior alterna entre grupos de processos.

Não encontro outra menção ao agendamento de dois níveis nos Sistemas Operacionais de Andrew Tanenbaum : Design and Implementation , 1ª ed. O Exercício 2.22 pergunta por que o planejamento em dois níveis pode ser usado; Não sei se existe uma verificação de compreensão de leitura ou se existem outros motivos não mencionados de forma destacada no texto.

O agendamento em dois níveis é útil para gerenciar outras contenções de recursos, além da memória?

Gilles 'SO- parar de ser mau'
fonte
11
Pode ser bom para caches e E / S de disco, mas isso não está "além da memória".
Raphael
Como o @Raphael diz, mas em outras palavras, evita / reduz a debulha.
21812 Dave Clarke

Respostas:

8

Existem outras formas de agendamento em dois níveis além do tipo que você descreve. Por exemplo, um nível de agendamento pode ser por usuário e o outro por processo, com o objetivo de fornecer a um usuário com 20 processos a mesma quantidade de tempo de CPU que um usuário com 1 processo. Com um planejador de nível único, cada processo pode receber 1/21 do tempo da CPU.

Outra forma de agendamento de dois níveis pode ser por processo e por thread, com o objetivo de fornecer a um processo com 20 threads a mesma quantidade de tempo de CPU que um processo com 1 thread.

Ellen Spertus
fonte