No agendamento não preemptivo do menor trabalho primeiro (SJF), a CPU é alocada para o processo que possui o menor tempo de pico de CPU entre os processos na fila de prontidão. Uma vez alocada a CPU a um processo, ele não pode ser preemptado por outro processo, mesmo que este tenha um tempo de pico de CPU mais curto. Isso significa que o processo que está em execução continuará em execução até concluir sua execução ou ser bloqueado por algum motivo.
Aqui está um exemplo para ilustrar o agendamento SJF não preemptivo:
Considere o seguinte conjunto de processos com seus tempos de pico de CPU:
Processo 1:Tempo de explosão =5
Processo 2:Tempo de explosão =3
Processo 3:Tempo de explosão =8
Inicialmente, todos os três processos estão na fila de prontos. A CPU é alocada para o Processo 2, pois possui o menor tempo de burst de CPU. O processo 2 começa a ser executado e é executado por 3 unidades de tempo. No tempo t =3, o Processo 2 completa sua execução e sai.
Agora, a fila pronta contém o Processo 1 e o Processo 3. O Processo 1 tem um tempo de pico de CPU menor do que o Processo 3, portanto, a CPU é alocada. O processo 1 é executado por 5 unidades de tempo e completa sua execução no tempo t =8.
Finalmente, apenas o Processo 3 permanece na fila de prontos. Ele é alocado na CPU e funciona por 8 unidades de tempo. No tempo t =16, o Processo 3 completa sua execução e a CPU fica ociosa.
Em resumo, a ordem em que os processos são executados neste exemplo é:Processo 2, Processo 1 e Processo 3. O tempo total necessário para concluir todos os processos é de 16 unidades de tempo.