SJF
Origem: Wikipédia, a enciclopédia livre.
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).
- Vantagens
- O emprego deste algoritmo é vantajoso devido à sua simplicidade e também porque maximiza o rendimento do processo (em termos de número de processos de execução para conclusão em um determinado período de tempo). Ele também minimiza a quantidade média de tempo que cada processo tem que esperar até que a sua execução esteja completa. No entanto, ele tem o potencial de starvation para processos que requerem um longo período de tempo, se os processos curtos são continuamente adicionados.