Escalonamento Round Robim
Round-Robin é um dos mais antigos e simples algoritmos de escalonamento. É largamente usado, e foi projetado especialmente para sistemas time-sharing.
A ideia do algoritmo é a seguinte. Uma pequena unidade de tempo, denominada timeslice ou quantum, é definida. Todos os processos são armazenados em uma fila (First In First Out) circular. O escalonador da CPU percorre a fila, alocando a CPU para cada processo durante um quantum. Mais precisamente, o escalonador retira o primeiro processo da fila e procede à sua execução. Se o processo não termina após um quantum, ocorre uma preempção, e o processo é inserido no fim da fila. Se o processo termina antes de um quantum, a CPU é liberada para a execução de novos processos. Em ambos os casos, após a liberação da CPU, um novo processo é escolhido na fila. Novos processos são inseridos no fim da fila.
Quando um processo é retirado da fila para a CPU, ocorre uma troca de contexto, o que resulta em um tempo adicional na execução do processo.
Análise do escalonamento Round-Robin
Suponha que existem processos na fila e que o timeslice é . Idealmente, cada processo deveria utilizar do tempo da CPU em períodos de unidades de tempo, e não deveria esperar por mais que unidades de tempo para voltar à CPU. Uma fórmula mais realística para essa espera é , onde é tempo da troca de contexto. É desejável que o tempo da troca de contexto seja pequeno em comparação com o timeslice.
O desempenho do Round-Robin depende fortemente do timeslice. Se o timeslice é grande, o algoritmo Round-Robin se aproxima do algoritmo First-Come, First-Served (pois grande parte dos processos podem ser executados completamente em um timeslice). Se o timeslice é muito pequeno, o algoritmo é denominado processor sharing.
Outro parâmetro importante do escalonamento é o Tempo Médio de Finalização, dado por:
COMO A SIMULAÇÃO É IMPLEMENTADA
Implementamos um applet com simulação de um escalonador