Escalonamento preemptivo e não preemptivo
ESCALONAMENTO NAO-PREEMPTIVO: neste tipo de escalonamento, quando um processo está em execução nenhum evento externo pode ocasionar a perda do uso do processador. O processo somente sai do estado de execução caso termine o processamento ou execute instruções do próprio código que ocasionem uma mudança p/ o estado de espera. Os três tipos mais comuns de escalonamento não-preemptivo são:
-Escalonamento First-in-Fisrt-ou ( FIFO )
-Escalonamento SHortest-Job-First(SJF)
-Escalonamento Cooperativo
//praticamente para monousuários, os primeiros sistemas operacionais.
Escalonamento FIFO: O processo que chegar primeiro é o primeiro a ser selecionado p/ execução. Algoritmo simples, sendo necessária apenas uma fila e são escalonados quando chegarem ao seu inicio. Quando o processo ganha o processador, ele utilizará a CPU sem ser interrompido.
Escalonamento Shortest-Job-First (SJF): Associa cada processo ao seu tempo de execução. Desta forma, quando o processador está livre, o processo em estado pronto que precisar de MENOS tempo de uso da UCP para terminar seu processamento é selecionado para execução.
Escalonamento Cooperativo: Neste escalonamento, alguma politica não-preemptiva deve ser adotada. A partir do momento em que o processo está em execução, este voluntariamente livra o processador, retornando para fila de pronto.
Escalonamento preemptivo e não-preemptivo
No escalonamento preemptivo, o SO pode interromper um processo em execução e passa-lo para o estado de pronto, com o objetivo de alocar outro processo na CPU. Com o uso da preempção, é possível ao SO priorizar a execução de processos, onde o fator de tempo é critico.
Neste modelo temos os escalonamentos: circular, por prioridades e por múltiplas filas.
Escalonamento Circular (Round-Robin): É implementado através de um algoritmo projetado especialmente para sistemas de tempo compartilhado.
É semelhante ao FIFO, porém, quando um processo passa para o