Programação round-robin: permite listar um processo várias vezes?

9

Em um planejador round-robin, adicionar um processo várias vezes à lista de processos é uma maneira barata de dar prioridade mais alta.

Eu me pergunto o quão prática essa abordagem pode ser. Qual o benefício que ele tem sobre outras técnicas, como conceder ao processo uma fatia de tempo mais longa (benefício: menos tempo de troca) ou manter uma lista separada de processos de alta prioridade. Em particular, como a listagem de um processo várias vezes influencia a justiça e a reatividade?

(Do exercício 2.16 nos Sistemas Operacionais de Andrew Tanenbaum : Design e Implementação, 1ª ed.)

Gilles 'SO- parar de ser mau'
fonte
Tannenbaum escreveu muitos livros. Presumivelmente, você quer dizer Sistemas Operacionais .
58560 Dave
@DaveClarke Sim, obrigado por apontar isso. (E, na verdade, tudo o que temos aqui é uma tradução, mas eu não acho que está faltando alguma parte do texto.)
Gilles 'stop SO estar mal'

Respostas:

4

A vantagem dessa abordagem é que o agendamento de rodízio é muito eficiente, portanto, você não precisa contar com um agendador mais complexo, que roubaria ciclos. A introdução de intervalos de tempo mais longos para processos de prioridade mais alta diminuiria a capacidade de resposta de outros encadeamentos e dificultaria o acesso do SO para lidar com uma interrupção e assim por diante. Manter listas de processos separadas exigiria um agendador muito mais complexo, que seria mais caro em termos de ciclos. Não vejo como haveria algum problema com justiça, no entanto. Acho que o problema é que a granularidade é bastante clara: os processos só podem ter múltiplos inteiros do intervalo de tempo básico.

Um ponto negativo é que remover um processo seria mais caro, pois cada ocorrência do processo teria que ser removida da fila. Talvez isso possa ser feito preguiçosamente, no entanto.

Dave Clarke
fonte
2

Adicionar a tarefa a uma fila de agendamento round-robin várias vezes abre o problema de garantir que as entradas permaneçam razoavelmente distribuídas de forma evidente. É fácil garantir que o sistema não permita a criação ou exclusão dinâmica de tarefas, mas não seja possível em geral.

Além do processo mais complexo de remover os itens da fila, a eventual inclinação das entradas do processo na fila resultará em um comportamento desequilibrado que é mais fácil de tornar justo com vários níveis de prioridade.

Pekka
fonte
O desejo de ter prioridades não contra-indica justiça?
Raphael