Você está na página 1de 2

Shortest Job First

Shortest Job First (SJF, em português trabalho mais curto


primeiro), ou Shortest Job Next (SJN, em português trabalho mais
curto em seguida), ou ainda Shortest Process Next (SPN, em
português processo mais curto em seguida) é uma política de
escalonamento que seleciona para ser executado o processo com o
menor tempo de execução.[1] SJF é um algoritmo não-
preemptivo. Shortest Remaining Time é uma variação preemptiva
de SJF.

Definição
A tarefa mais curta primeiro é um algoritmo de agendamento
no qual o processo com o menor tempo de execução é selecionado
para execução a seguir. O trabalho mais curto primeiro pode ser
preventivo ou não preemptivo. Devido à sua natureza simples, o
trabalho mais curto primeiro é considerado o ideal. Também reduz o
tempo médio de espera para outros processos aguardando
execução.

Como funciona
A tarefa mais curta depende primeiro do tempo médio de
execução dos processos. As estimativas precisas dessas medidas
ajudam na implementação do trabalho mais curto primeiro em um
ambiente, o que de outra forma torna o mesmo quase impossível de
implementar. Isso ocorre porque muitas vezes a rajada de execução
de processos não acontece de antemão. Pode ser usado em
ambientes interativos onde padrões passados estão disponíveis
para determinar o tempo médio entre o tempo de espera e os
comandos. Embora seja desvantajoso usar o conceito shortest-job-
first no agendamento da CPU de curto prazo, ele é considerado
altamente vantajoso no agendamento da CPU de longo prazo. Além
disso, o rendimento é alto no caso do trabalho mais curto primeiro.
Vantagens e Desvantagens
O escalonamento SJF é vantajoso por sua simplicidade e
também porque minimiza o tempo médio que cada processo leva
desde quando ele é criado até o fim de sua execução, incluindo
aqui o tempo de espera entre o momento em que ele é criado e o
momento em que é selecionado para executar. No entanto, essa
estratégia pode levar a inanição de processos com longos tempos
de execução caso processos curtos sejam continuamente
adicionados ao escalonador. Highest Response Ratio Next é um
algoritmo similar que resolve este problema ao levar em conta
o envelhecimento dos processos.[2]
Uma outra desvantagem do SJF é a necessidade de saber
previamente os tempos para execução dos processo. Embora seja
impossível prever os tempos de maneira exata, existem diversos
métodos que podem ser usados para estimá-los, tais como média
ponderada ou uso dos tempos de execução anteriores para
processos semelhantes.[3]

Você também pode gostar