Prévia do material em texto
1) A figura abaixo apresenta um diagrama da transição de estado entre os processos de um SO. a) Apresente pelo menos três transições de estados possíveis explicando-as. · New → Ready Em New, recursos já foram alocados pelo sistema operacional, porém isso não garante que o processo será executado. · Ready → Running Seu funcionamento acontecerá de acordo com a política de escalonamento que o sistema operacional irá trabalhar. · Blocked → Suspend Quando nenhum dos processos na memória principal está no estado Ready o sistema operacional manda um dos processos bloqueados para o disco, e o coloca numa fila de processos suspensos. Por isso, o estado blocked -> suspend, é o processo que está em memória secundária aguardando por um evento. b) Mostre três transições que não poderiam ocorrer justificando cada uma delas. · Ready → Blocked Não acontece porque em ready os processos estão prontos para serem escalonados para a CPU, já para blocked são encaminhados os processos que estão aguardando recursos. · Blocked → Running Não acontece porque um processo em blocked, após ter o recurso solicitado disponibilizado precisa aguardar numa fila, no estado de ready, para que possa ser escalonado pela CPU. · Suspend → Running Processos em suspend não vão para running, porque não seria a melhor escolha, pois poderia ter um processo muito mais importante em ready, consequentemente o processo em ready haveria que esperar o outro processo menos importante acabar sua execução. É melhor ir de suspend para ready para o sistema operacional decidir qual é o melhor processo que deverá ir para running. 2) Considere um SO que possui os estados de Pronto e Pronto/Suspenso e que no mínimo um processo na fila Pronto/Suspenso possui prioridade de escalonamento mais alta do que qualquer um dos processos na fila de Pronto. Duas políticas de escalonamento extremas podem ser: 1) Sempre escalonar processos da fila de Pronto para evitar swapping; 2) Sempre é dada preferência para o processo de maior prioridade, podendo acontecer swapping, mesmo que este possa ser evitado. Proponha uma política intermediária que considere a prioridade e o desempenho do sistema. Avalie sua política comparando-a com as políticas 1 e 2 descritas. Uma possível solução intermediária seria a criação de um algoritmo condicional que solucione ambos os casos quando necessário, verificando caso a caso sua melhor otimização para cada processo requisitado. Tendo em vista que esse algoritmo irá tomar como norte a colocação de processos na fila de aptos, quando verificada sua prioridade, se ela for mais alta que a do processo que está atualmente no processador, este irá tomar sua vez na fila, assim, ao escolher um novo processo os de alta prioridade vencem a disputa. Porém mesmo com aumento da eficiência da gerência de memória, muitas vezes alguns desses processos não conseguem ser executados por falta de espaço na memória. Com isso temos a técnica swapping, onde o sistema leva o processo da memória para o disco, retornando posteriormente para a memória principal RAM para ser finalmente processado. 3) Considere um algoritmo de escalonamento preemptivo com prioridade baseado em mudança de prioridade dinâmica. Números maiores implicam em maior prioridade. Quando um processo está esperando pela CPU (está na fila de prontos mas não executando) a prioridade muda de acordo com uma taxa A. Quando o processo está executando, sua prioridade muda de acordo com a taxa B. Todos os processos possuem prioridade 0 quando eles chegam na fila de prontos. Os parâmetros A e B podem ser setados para dar diferentes algoritmos de escalonamento. a) Qual algoritmo resulta se B > A > 0? Explique. Algoritmos Não-Preemptivos. Já que a prioridade é sobre um processo em Execução, o algoritmo não precisa interromper um processo para servir outro. “Shortest Job First” e “First Come, First Served” são exemplos desses algoritmos. b) Qual algoritmo resulta se A > B > 0? Explique. (qual algoritmo tem prioridade nos em espera) Algoritmos Preemptivos. A prioridade nesse caso é sobre os processos em Espera. O algoritmo deve dividir o seu tempo de execução para todos os processos, seja utilizando “Round-Robin” ou “Fair-Share”, por exemplo. 4) Considere o conjunto de processos abaixo com seus respectivos tempos de execução (burst de CPU). Considere que todos chegaram no tempo 0. a) Apresente o gráfico de Gantt gerado pelos processos quando utilizadas as seguintes políticas de escalonamento: 1) FCFS; 2) SJF, Prioridade não-preemptiva (maior prioridade são os processos com valores menores); 3) RR com quantum igual a 1. b) Apresente o turnaround e o tempo de espera de cada processo nas políticas descritas em a. Turnaround FCFS SJF RR Processo 1 10 Processo 1 19 Processo 1 19 Processo 2 11 Processo 2 1 Processo 2 2 Processo 3 13 Processo 3 4 Processo 3 7 Processo 4 14 Processo 4 2 Processo 4 4 Processo 5 19 Processo 5 9 Processo 5 14 Tempo de Espera FCFS SJF RR Processo 1 0 Processo 1 9 Processo 1 9 Processo 2 10 Processo 2 0 Processo 2 1 Processo 3 11 Processo 3 2 Processo 3 5 Processo 4 13 Processo 4 1 Processo 4 3 Processo 5 14 Processo 5 4 Processo 5 9 c) Qual algoritmo apresenta o melhor tempo de resposta médio. Explique. Entre os algoritmos propostos, o SJF (Shortest Job First) tem o melhor tempo de resposta médio . Nesse algoritmo os processos menores são executados primeiro, por consequência entregam uma resposta mais rapidamente, já que os tempos de espera a serem acumulados por essas tarefas também tendem a serem pequenos.