Baixe o app para aproveitar ainda mais
Prévia do material em texto
SJF (Shortest job fisrt) Se o sistema operacional ta executando um processo, esse algoritmo vai escolher o próximo processo previsto pelo Sistema Operacional que tem o menor uso de processamento do processador. Sendo baseado no menor tempo de execução do processador. Ou ainda no menor tempo de uso do processador com aquele processo. Podendo ser implementado numa lista ordenada, sendo crescente de tempo de utilização do processador. Ele pega o primeiro que tem o menor tempo de processamento do processador, fornecendo o menor tempo de espera pra um conjunto de processos. (ele é ótimo) Uma das dificuldades seria determinar o tempo do próximo ciclo de CPU de cada processo Processos I/O Bound são favorecidos - Pois é um fato que o menor tempo médio de processamento é obtido quando se executa primeiro os processos de menor ciclo de processador I/O Bound são processos que utilizam muito o processo de entrada e saída Tempo médio ex: (0 + 5 + 13 + 25) tempo médio seria de 10,75 u.t Processo A 12 (terceiro o 12) B 8 (segundo o 8) C 15 (quarto o 15) D 5 (primeiro o 5) Pode ser empregado em processos Batch, pois lá a previsão é mais fácil. O problema desse algoritmo é que ele pode causar Starvation (quando um processo fica morrendo de fome), pois podem acabar indo sempre ao final da fila de processos, acabando nunca usando o processador. processo preemptivo podemos interromper o processo por exemplo em SJF preemptivo, quando um processo menor do que estava sendo processado chega na fila, o processo seria executado pausando o maior que estava em processo. Pausa o maior, executa o menor. no processo não preemptivo não podemos interromper esse processo, somente liberando quando termina sua execução ou quando se bloqueia. Soluções: Como o processador é alocado ao processo com etapa de CPU mais breve. Em caso de empate se aplica outro algoritmo (normalmente o FIFO). Vantagens: Reduz o tempo de espera médio Minimiza o efeito de priorizar processo cpu-bound Desvantagens: É difícil determinar a prioridade qual será a duração da seguinte etapa de CPU dos processos. Pode ser resolvida alterando a prioridade dinamicamente O uso de um recurso como uma impressora pode ser melhorado com uma política de escalonamento Shortest Job First , ou SJF , privilegia os serviços menores, propiciando um tempo médio de espera menor Para forçar esta política, podemos criar uma fila de requisições, similar à TicketQueue usada para impor fairness no problema dos leitores e escritores. Nós vamos aqui procurar evitar o problema de eficiência causado ao se acordar todos os processos usando wakeup , sendo que apenas um deles terá condições de progresso, enquanto todos os outros voltarão para dormir. Como wakeup acorda todos os processos dormindo numa cama, vamos precisar de diversas camas para implementar o nosso escalonamento. Vamos acordar somente o processo selecionado pela política de escalonamento.
Compartilhar