Os algoritmos de escalonamento por prioridades (PRIO) e Shortest Job First (SJF) podem gerar starvation (inanição).
No escalonamento cooperativo, a tarefa libera o processador quando ela termina, solicita uma entrada/saída, indo para o estado suspensa ou quando libera explicitamente a CPU por meio de uma chamada de sistema. No escalonamento cooperativo não existe um limite de tempo para tarefa permanecer no processador. As tarefas devem cooperar entre si para utilizarem o processador. Se não houver cooperação, o uso do processador pode ser injusto (ou seja, uma tarefa pode dominar o processador enquanto outras estão aguardando no estado de Pronta).
Starvation (inanição) significa que uma tarefa está no estado de pronta mas nunca recebe o processador para executar. Algoritmos de escalonamento que permitem que uma tarefa que chegou recentemente na fila de prontos passe na frente de outras tarefas mais antigas podem gerar inanição. Para resolver este problema, pode-se utilizar a técnica de envelhecimento (aging).
Para otimizar a operação do Sistema Operacional, o despachante (dispatcher) precisa de executar a cada troca de contexto pois é ele quem efetivamente faz a troca. A troca é feita com base na fila definida pelo escalonador.
Os algoritmos de escalonamento por prioridades (PRIO) e Shortest Job First (SJF) podem gerar starvation (inanição). Como o algoritmo PRIO escolhe a tarefa com maior prioridade para ser executada, uma tarefa de baixa prioridade pode esperar indefinidamente pelo processador. O mesmo raciocínio ocorre para o SJF pois ele escolhe sempre a menor tarefa (em termos de tempo) para ser executada. Caso tarefas pequenas cheguem continuamente no sistema, uma tarefa que demanda mais tempo nunca ganhará o processador.
A métrica “Tempo de Vida”, utilizada para avaliar escalonadores, diz respeito ao tempo entre a criação da tarefa e o seu encerramento.
A métrica “Tempo de Espera”, utilizada para avaliar escalonadores, diz respeito ao tempo gasto pela tarefa na fila de prontos. O tempo de espera é o tempo que a tarefa poderia estar no processador, mas deve ficar aguardando no estado de pronta.
Para otimizar a operação do Sistema Operacional, o escalonador não precisa ser executado a cada troca de contexto. O escalonador pode definir uma fila de tarefas que serão executadas pelos próximos N milissegundos e, a cada troca de contexto, o despachante utiliza essa lista para executar a troca.
São tipos de métricas para avaliar diferentes escalonadores:
- Tempo de vida
- Tempo de espera
- Tempo de resposta
- First Come, First Served
- Round robin
- Shortest job first
COMENTÁRIOS