Gabarito - Midiacom

Propaganda
Gabarito da Lista de Exercícios da Aula 9
Obs: na versão original da lista 9 havia 3 erros de digitação (questões 10, 11 e 12),
nos quais a sigla SJF foi erradamente escrita JFS. Uma versão corrigida da lista foi
atualizada na página.
1. É um escalonador que não interrompe um processo uma vez que este seja colocado
no processador. Este tipo de escalonador age apenas quando os processos deixam o
processador voluntariamente.
2. Escalonadores não preemptivos são, em geral, mais simples que os preemptivos.
Isso tende a reduzir o overhead de processamento deles no sistema.
3. Quando um processo realiza esta, operação ele está voluntariamente abdicando do
processador.
4. O escalonador FIFO é um escalonador não-preemptivo. A cada oportunidade
de escalonamento, o FIFO seleciona o processo que está a mais tempo na fila de
processos aptos.
5. A ordem de escalonamento do FIFO é baseada na ordem de chegada dos
processos, algo que não é controlável pelo escalonador. Suas decisões, portanto, não
se baseiam em um critério bem definido visando alcançar algum objetivo.
6. O diagrama fica da seguinte forma:
7. Suponha um conjunto de 3 processos, A, B e C, que chegam ao sistema nos
instantes 0, 1 e 2 (respectivamente). Suponha que os processos tenham durações 5,
40 e 5 (respectivamente). O algoritmo FIFO realizaria o escalonamento A -> B -> C,
que resulta em um tempo de resposta médio de (5 + 44 + 48) / 3 = 33. O melhor tempo
de resposta, no entanto, seria obtido com o escalonamento A -> C -> B. O tempo
de resposta médio, neste caso, passa a ser (5 + 8 + 49) / 3 = 20,6, uma redução de
37,6% em relação ao escalonamento FIFO.
8. Em geral, não. Isso porque os processos são atendidos na ordem em que chegam à
fila de aptos do sistema. Então, eventualmente, todo processo terá sua chance de usar
o processador. No entanto, pode ocorrer de um processo atualmente em execução, por
algum motivo, entrar em loop, monopolizando indefinidamente o processador.
9. O escalonador FIFO é extremamente simples e rápido, introduzindo pouco overhead
no sistema.
10. O SJF é um escalonador não-preemptivo. Em cada oportunidade de
escalonamento ele seleciona o processo que tem o menor próximo ciclo de CPU.
11. O objetivo do SJF é minimizar o tempo médio de resposta do sistema.
12. Porque o SJF sempre coloca os menores processos para executar primeiro. Desta
forma, o tempo médio de espera dos processos na fila de aptos é minimizado. Como o
tempo médio de resposta é uma soma entre o tempo médio de execução e o tempo de
espera na fila, o SJF obtém sempre o melhor resultado possível.
13. O diagrama fica da seguinte forma:
14. Neste caso, o processo D seria indefinidamente postergado. Ou seja, ele ficaria em
um estado de starvation.
15. Sim. Um exemplo é dado na questão anterior.
16. Se o sistema em questão é bem controlado (apenas processos bem conhecidos
são executados, sempre com tempos de execução próximos), é possível medir
previamente os tempos de execução e armazená-los em uma tabela para o
escalonador. Mesmo em sistemas genéricos, é possível utilizar o SJF aplicando algum
método de estimativa da duração do próximo ciclo de CPU (como uma média movente
exponencialmente ponderada, por exemplo).
17. Neste caso, o SJF utiliza o conceito de próximo ciclo de processamento. Ao invés
de trabalhar com os tempos totais de execução dos processos, o SJF trabalha com os
tempos de utilização do processador entre cada requisição de E/S. Desta forma, a cada
oportunidade de escalonamento, o SJF seleciona o processo cujo próximo ciclo de
processamento (até uma requisição de E/S ou até o término do processo) seja o mais
curto.
Download