ESCALONAMENTOS APOSTILA COMENTADA
Escalonamento
Para gerenciar o compartilhamento dos diversos processos e/ou threads em execução, é necessário implementar um algoritmo para a escolha de qual processo irá deter o controle do processador (O escalonamento faz isso).
Essa implementação tem a ver com o escalonamento (Scheduling, que é Escalonamento em Inglês) de um processo, que é responsável por selecionar (escalonar) qual o próximo processo na fila de prontos irá ganhar o controle de um determinado recurso do processador.
Escalonamento Preemptivo:
No escalonamento preemptivo, o sistema pode interromper um processo em execução para que outro processo utilize o processador. (Não há muito que se saber sobre este tipo de escalonamento, o que basta saber é que o sistema interrompe o processo em execução quando ele quiser e dá a utilização do processador a outro programa quando bem quiser também. É chamado de Preemptivo, pois há a interrupção do processo).
Escalonamento Circular (Round-Robin)
O escalonamento circular foi projetado especialmente para os sistemas de tempo compartilhado (Sistemas de tempo compartilhado são aqueles que cada Processo ganha uma fatia de tempo do processador, e quando essa fatia acaba a utilização do Processador passa para outro processo, este escalonamento faz a seleção do próximo processo a utilizar o Processador). Seu funcionamento é bastante semelhante ao FIFO, porém, sendo um escalonamento preemptivo, o processo que está em execução pode ser interrompido (Como pode haver interrupção no processo que está sendo executado, podemos dizer que este escalonamento tem características semelhantes ao Escalonamento Preemptivo). Nos sistemas de tempo compartilhado, cada processo ganha uma fatia de tempo do processador. Quando essa fatia de tempo (time slice ou quantum) se encerra, o processo em execução é interrompido e passa para o estado de pronto, entrando no final da fila (Essa é a definição de Sistemas de Tempo Compartilhado, foi mostrado como isso funciona também. É