Escalonamento circular
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.
Algoritmo SJF
Associa a cada processo a duração de seu próximo surto de CPU;
A CPU é atribuída ao processo que tem o menor próximo surto de CPU;
Quando a informação sobre o tempo de execução(CPU
8/15
burst) não se encontra disponível, o ciclo deve ser estimado ou usa-se o anterior.
Surtos iguais, usa-se FCFS ou FIFO para desempate.
Vantagens:
• Fornece o menor tempo médio de espera possível entre os processos ativos;
• Pode ser implementada de forma preemptiva ou não;
•