Escalonamento garantido: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 3:
Se acontecer de um processo utilizar menos tempo de execução do que poderia, sua prioridade de execução é aumentada. Se outro processo utilizou mais do que deveria, sua prioridade é diminuida.
 
Uma abordagem completamente diferente para agendamento é fazer promessas realistas aos usuários sobre o desempenho e, então, conviver com elas. Uma promessa que é realista e fácil de cumprir é: se houver N usuários conectados no momento em que você estiver trabalhando, você receberá aproximadamente 1/N do poder da CPU. De maneira semelhante, em um sistema monousuário com N processos executando, todas as coisas sendo iguais, cada uma deve receber 1/N dos ciclos da CPU.
 
Para cumprir essa promessa, o sistema deve monitorar quanto da CPU cada processo teve, desde sua criação. Então, ele calcula o quanto da CPU é atribuído a cada um, isto é, o tempo desde a criação dividido por N. Como a quantidade de tempo de CPU que cada processo realmente teve também é conhecida, é simples calcular a proporção entre o tempo real da CPU e o tempo da CPU atribuído. Uma proporção de 0,5 significa que um processo só teve a metade do que deveria ter tido e uma proporção de 2,0 significa que um processo teve o dobro de tempo que lhe foi atribuído. O algoritmo, então, executará o processo com a proporção mais baixa até que sua proporção tenho subido acima do seu competidor mais próximo
 
 
Exemplo: 3 processos querem executar, o [[algoritmo]] fornece a cada um deles 3 segundos de execução para utilizar CPU. O 1º processo executa 3 segundos e pára, então entra o 2º executa 3 segundos e pára, 3º executa 3 segundos pára e o 1º executa novamente 3 segundos e assim por diante até eles terminarem sua execução.