O SJF (Shortest Job First ou Processo mais curto primeiro) é um algoritmo de escalonamento que executa, dentre processos igualmente importantes, o mais curto primeiro.
O escalonador SJF funciona a partir de um conceito bem simples: os processos menores terão prioridade, ou seja, serão executados primeiro. Isso tem como resultado um tempo médio mínimo de espera para cada conjunto de processos a serem executados.
O cálculo de cada tempo médio é feito a partir da próxima alocação de CPU, ou seja, o processo que utilizar a CPU por menos tempo será executado primeiro. Existem dois esquemas já conhecidos desse tipo de escalonamento:
Não-Preemptivo: Uma vez a CPU atribuída a um processo, este não pode ser interrompido até completar a execução do processo.
Preemptivo: Se um novo processo chega ao estado "pronto" com um tempo de alocação menor que o tempo restante do processo em execução, então há preempção (interrupção). Este esquema é conhecido por
Shortest-Remaining-Time-First (
SRTF).