O agendamento é implementado por um SO específico?

0

Eu só queria perguntar que em um determinado sistema operacional, é a implementação de um algoritmo de agendamento único, digamos que estou implementando round-robin no meu sistema operacional, assim todas as tarefas dentro do meu sistema são executadas com base no tempo fatia decidida pelo escalonador ou somente quando os recursos são menores do que apenas os threads ou processos dentro do sistema seriam executados dependendo da fatia de tempo.

Além disso, se o algoritmo round-robin for usado, existe um caso em que o SJF ou o SRTF também podem ser implementados, então como o planejador decide qual algoritmo usar para a execução de um segmento ou processo específico.

    
por radhika 04.01.2015 / 03:18

1 resposta

0

Por "meu sistema operacional", você está escrevendo um? O que você está realmente perguntando "estão agendando implementações algorítmicas determinísticas?"

E a resposta para isso seria: bem, depende da sua implementação: -)

Tanto o SJF (menor tempo-primeiro, para aqueles que não sabem) quanto o SRTF (menor tempo restante-primeiro) podem ter casos em que vários processos aguardando agendamento têm pesos idênticos, e é baixo para a implementação do agendador decidir entre eles.

Um cronograma ingênuo pode sempre escolher aquele com o PID mais baixo, um escalonador inteligente pode penalizar um processo que parece continuar voltando, e em algum lugar no meio está o escalonador que tenta rodar o round-robin.

Seria possível escrever um planejador verdadeiramente determinístico? Sim, certamente uma possibilidade, mas um pouco de aleatoriedade em escolher o próximo processo (fora de um conjunto de opções aleatórias) para executar provavelmente não vai doer, esp. se houver deadlocks não declarados entre processos.

    
por 04.01.2015 / 08:09

Tags