logo

Agendamento mais curto do Job First (SJF)

Até agora estávamos agendando os processos de acordo com o horário de chegada (no agendamento FCFS). Porém, o algoritmo de escalonamento SJF escalona os processos de acordo com seu tempo de burst.

No escalonamento SJF, o processo com menor tempo de burst, dentre a lista de processos disponíveis na fila de prontos, será escalonado em seguida.

No entanto, é muito difícil prever o tempo de rajada necessário para um processo, portanto este algoritmo é muito difícil de implementar no sistema.

exemplo de substring java

Vantagens do SJF

  1. Taxa de transferência máxima
  2. Tempo médio mínimo de espera e resposta

Desvantagens do SJF

  1. Pode sofrer com o problema da fome
  2. Não é implementável porque o tempo exato de Burst de um processo não pode ser conhecido antecipadamente.

Existem diferentes técnicas disponíveis pelas quais o tempo de pico da CPU do processo pode ser determinado. Iremos discuti-los mais tarde em detalhes.

Exemplo

No exemplo a seguir, existem cinco trabalhos denominados P1, P2, P3, P4 e P5. A hora de chegada e o tempo de burst são fornecidos na tabela abaixo.

PID Tempo de chegada Tempo de explosão Tempo de conclusão Tempo de resposta Tempo de espera
1 1 7 8 7 0
2 3 3 13 10 7
3 6 2 10 4 2
4 7 10 31 24 14
5 9 8 vinte e um 12 4

Desde então, nenhum processo chega no tempo 0; haverá um espaço vazio no gráfico de Gantt do tempo 0 a 1 (o momento em que chega o primeiro processo).

De acordo com o algoritmo, o SO escalona o processo que apresenta o menor tempo de burst dentre os processos disponíveis na fila de prontos.

Até agora, temos apenas um processo na fila de prontos, portanto, o escalonador irá agendá-lo para o processador, independentemente do tempo de burst.

Isso será executado até 8 unidades de tempo. Até então, temos mais três processos chegando na fila de prontos, portanto o escalonador escolherá o processo com menor tempo de burst.

converter uma data em uma string

Dentre os processos indicados na tabela, o P3 será executado em seguida por apresentar o menor tempo de burst dentre todos os processos disponíveis.

Então é assim que o procedimento continuará em trabalho mais curto primeiro (SJF) algoritmo de agendamento.

algoritmo de escalonamento SJF

Tempo médio de espera = 27/5