No escalonamento não preemptivo, uma vez que um processo inicia sua execução, ele não pode ser preemptado por outro processo antes de completar sua execução ou liberar voluntariamente a CPU.
Veja como funcionam os algoritmos não preemptivos:
1. Seleção de Processo:
- O escalonador seleciona o próximo processo a ser executado com base em políticas de escalonamento como First-Come First-Served (FCFS), Shortest Job First (SJF) ou qualquer outro algoritmo de escalonamento.
2. Execução Ininterrupta:
- Uma vez que um processo começa a ser executado, ele não pode ser interrompido por outro processo. Isso significa que o processo selecionado continuará a ser executado até completar sua execução ou desistir voluntariamente da CPU (por exemplo, executando uma operação de E/S).
3. Sem preempção:
- Enquanto o processo atual está em execução, nenhum outro processo pode tirar a CPU dele. Isso garante que os processos sejam concluídos sem serem interrompidos por processos de maior prioridade.
4. Conclusão:
- O processo continua executando suas instruções até terminar sua execução ou atingir um estado em que esteja bloqueado (aguardando E/S ou algum recurso). Assim que o processo for concluído, a CPU estará disponível para agendar o próximo processo.
Algoritmos de escalonamento não preemptivos são mais simples de implementar do que os preemptivos, uma vez que não há necessidade de troca frequente de contexto. No entanto, podem levar a uma menor eficiência do sistema e a um desempenho abaixo do ideal, uma vez que os processos de maior prioridade podem ter de esperar que os processos de menor prioridade concluam a sua execução.
Exemplos de algoritmos de escalonamento não preemptivos incluem:
-
Primeiro a chegar, primeiro a ser servido (FCFS): Os processos são executados na ordem em que chegam, sem considerar sua prioridade ou necessidade de recursos.
-
Shortest Job First (SJF) sem preempção: Este algoritmo seleciona o processo com o menor tempo de execução estimado para a próxima execução. Porém, uma vez que o processo inicia a execução, ele não pode ser preemptado por outro processo, mesmo que este chegue mais tarde com um tempo de execução estimado menor.