Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Faculdade de Computação Sistemas Operacionais 3a Lista de Exercícios Prof. Cláudio C. Rodrigues data de entrega: 14/01/2015 Problemas: P1) Considere as seguintes afirmativas relativas à ocorrência de "deadlocks" (ou impasses). I. A estratégia de tratamento de "deadlocks" conhecida como prevenção requer que se determine uma condição suficiente a que eles ocorram. Uma vez determinada a condição, os algoritmos de manipulação dos recursos compartilhados em questão devem ser projetados de forma que, garantidamente, ela jamais ocorra. II. A estratégia de tratamento de "deadlocks" conhecida como detecção requer que se determine uma condição suficiente a que eles ocorram. Uma vez determinada a condição, o tratamento por detecção consiste em verificar sua validade e, em caso afirmativo, concluir que existe um "deadlock". III. As estratégias conhecidas como prevenção e detecção para o tratamento de "deadlocks" são complementares uma à outra: Enquanto a primeira guia o projeto dos algoritmos de compartilhamento de recursos para que "deadlocks" jamais ocorram, a segunda trata de impedir que ocorram quaisquer condições necessárias à ocorrência de "deadlocks". IV. Para que ocorra um "deadlock" é necessário que haja um ciclo de espera envolvendo um determinado conjunto de processos. Uma estratégia comum de prevenção é a criação de algoritmos de compartilhamento de recursos que impeçam a ocorrência desses ciclos. Assinale a alternativa CORRETA: A). Apenas a afirmativa I é verdadeira. B). Apenas a afirmativa II é verdadeira. C). Apenas as afirmativas I e III são verdadeiras. D). Apenas as afirmativas II e III são verdadeiras. E). Apenas as afirmativas II e IV são verdadeiras. P2) Os projetistas de Sistemas Operacionais podem recorrer a quatro tipos de estratégias para o tratamento de deadlocks: V. Ignorar o problema (algoritmo do avestruz). I. Detecção (permitir a ocorrência do deadlock, detectar sua ocorrência, e tentar a recuperação). II. Prevenção (tomar estruturalmente impossível a ocorrência de deadlocks). III. Evitar a ocorrência de deadlocks (política de alocação de recursos bastante cuidadosa). a) Responda: as estratégias listadas acima são potencialmente aplicáveis aos sistemas? Apresente os prós e contras para sua utilização. Sistemas Operacionais 1 P3) Considere um sistema consistindo em quatro recursos do mesmo tipo, que são compartilhados por três processos, cada um precisando no máximo de dois recursos. Mostre que o sistema está livre de deadlock. P4) Analise a seguinte solução do problema de exclusão mútua de dois processos, com apenas duas variáveis compartilhadas q e vez onde q vale 0 fora da RC e q e vez recebem o valor i quando Pi quer entrar na RC. P1 P2 loop forever loop loop while ( q > 0) vez := 1 q := 1 while ( vez # 1) RC q := 0 loop forever loop loop while ( q > 0 ) vez := 2 q := 2 while (vez # 2) RC q := 0 RNC endloop RNC endloop Analise os seguintes pontos: a) garantia de exclusão mútua b) ausência de deadlock c) ausência de inanição (starvation). P5) Considere um sistema consistindo em quatro recursos do mesmo tipo, que são compartilhados por três processos, cada um precisando no máximo de dois recursos. Mostre que o sistema está livre de deadlock. P6) Um escalonamento baseado em prioridade __________ incorre em menos sobrecarga que um escalonamento baseado em prioridade __________ e, este por sua, vez é mais responsivo à mudanças na orientação do processo (I/O bound x CPU bound). A. dinâmica, estática B. estática, dinâmica C. preemptiva, não preemptiva D. não preemptiva, preemptiva Sistemas Operacionais 2 P7) O objetivo da multiprogramação é ter sempre algum processo em execução para maximizar a utilização da CPU. Para um sistema uniprocessador, nunca haverá mais de um processo em execução. Se houver mais processos, o restante terá que esperar até que a CPU esteja livre e possa ser reescalonada. Com relação à multiprogramação e ao escalonamento de CPU é correto afirmar que A. uma decisão de escalonamento de CPU nunca poderá ocorrer quando um processo termina. B. no escalonamento não-preemptivo, depois que a CPU é alocada a um processo, ele mantém a CPU até liberá-la devido ao seu término ou ao passar para o estado de espera. C. o escalonamento first-come, first-served (FCFS) é o algoritmo de escalonamento preemptivo que tem uma característica especial: antes de atender ao primeiro processo da fila ele atende ao menor processo na fila. D. o algoritmo de escalonamento nãopreemptivo Round-Robin (RR) consiste em colocar os processos em uma lista circular ordenados por tamanho e, em seguida, executá-los do menor para o maior. E. no algoritmo de escalonamento nãopreemptivo Round-Robin (RR) é definida uma unidade de tempo igual a um ciclo de máquina denominada quantum de tempo, onde cada processo deverá ocupar a CPU no mínimo por um quantum e no máximo por 1000 quanta. Processos com duração menor que um quantum são considerados prontos ou em estado de espera. P8) A. B. C. D. E. Dos seguintes critérios de desempenho, quais o escalonador deverá tentar otimizar? Rendimento (throughput) Latência Utilização do processador Justiça no atendimento Todas as opções anteriores P9) Quando o quantum de tempo usado no algoritmo RR (round robin) é muito ________ , a sobrecarga envolvida no(na) ________ impera e, com isso, o desempenho se degrada. A. grande, troca de contexto B. pequeno, troca de contexto C. grande, ajuste de prioridades D. pequeno, ajuste de prioridades P10) A(O) ____________ ocorre quando um processo de prioridade baixa momentaneamente recebe uma prioridade mais alta. A. processamento batch B. adiamento indefinido C. inversão de prioridade D. envelhecimento P11) Algoritmo de escalonamento do tipo ____________ garante que as restrições de tempo de um processo sejam sempre cumpridas A. preemptivo B. não preemptivo C. tempo real crítico D. tempo real não crítico P12) Descreva as diferenças entre short-term, medium-term e long-term scheduling. P13) Defina turnaround time e throughput. P14) O que é um programa I/O-bound? E um programa CPU-bound? P15) Descreve o significado, finalidade, vantagens e desvantagens de preemptive scheduling. P16) O que é um time-slice? Qual o seu interesse prático? Sistemas Operacionais 3 P17) Qual é a condição necessária para que um esquema de preemptive scheduling possa ser implementado? Justifique. P18) A maioria dos escalonadores Round Robin usa um quantum de tamanho fixo. Dê um argumento em favor de um quantum pequeno. Agora pense em um argumento que justifique um quantum grande. P19) Como funciona o escalonamento por múltiplas filas com realimentação? Qual a relação entre o quantum e o nível de prioridade de cada fila nesse esquema? P20) Crie um algoritmo de escalonamento baseado em múltiplas filas com realimentação. Devem existir duas filas. O algoritmo entre filas deve trabalhar de forma que, com o passar do tempo, processos I/O-bound vão para a fila 1, e processos CPU-bound para a fila 2. Não deve ser possível a ocorrência de postergação indefinida de nenhum processo. P21) Qual dos métodos de escalonamento discutidos em sala de aula poderia ser modificado para acomodar alguns processos de tempo real (processos que devem ter uma resposta dentro de certo período de tempo) misturados com os outros? Para aqueles métodos que você poderia modificar, explique como você faria isso. Para aqueles que isso não é possível, explique o por quê? P22) Cinco batch jobs A, B, C, D e E chegaram a um centro de computação na ordem especificada, essencialmente ao mesmo tempo. Eles têm as seguintes estimativas para o tempo de execução: Job CPU (min) A 7 B 5 C 3 D 4 E 6 Para cada um dos algoritmos seguintes, determine o tempo de espera médio. a) Round Robin b) FIFO c) SJF Para (a), assuma que o sistema é de tempo compartilhado, com quantum de tempo de 1 unidade. Para (b) e (c) assuma que não há preempção. Todos os jobs são totalmente CPU bound. P23) Medidas em certo sistema têm mostrado que em média processos executam por um tempo T antes de bloquearem devido a uma operação de I/O. Um chaveamento de processos requer um tempo S, que é efetivamente gasto (overhead). Para uma política de escalonamento round-robin com quantum de tempo Q, determine uma formula para eficiência da CPU para cada um dos seguintes casos. Assuma que há processos suficientes para manter a CPU sempre “rodando”, além do mais, cada processo, se deixado sozinho e sem operações de I/O, executaria para sempre. a) Q = infinity b) Q >= T c) Q<T Para ser considerado um bom algoritmo de escalonamento (scheduling), este algoritmo deve obedecer alguns critérios. Descreva-os. Sistemas Operacionais 4 P24) De que maneira deve selecionar um algoritmo de escalonamento de CPU para um sistema particular? Para selecionar um algoritmo, nós devemos definir primeiro a importância relativa das medidas, nosso critério pode incluir diversas medidas. Que medidas são estas? P25) Intuitivamente demonstre e ordene estas opções em termos de tempo de espera médio possíveis de serem experimentados por processos, quando FCFS scheduling é usado em todos os casos e nenhuma preempção é permitida. P26) A política de escalonamento Shortest-Job-First (SJF) é a) b) c) não-preemptiva não-realista ótima. Explique cada um destes termos. P27) Cinco batch jobs A - E, chegam em um centro de computação quase ao mesmo tempo. Com tempo estimado de execução de 10, 6, 2, 4, e 8 minutos, respectivamente. Suas prioridades (externamente determinadas) são 3, 5, 2, 1, e 4, respectivamente, com 5 sendo a mais alta prioridade. Para cada um dos seguintes algoritmos de scheduling, determine o turnaround time médio dos processos. a) Round robin (quantum 1 min.) b) Priority scheduling. c) FCFS (First-Come, First-Served) - rodando na ordem 10,6,2,4,8. d) Shortest Job First. P28) Assuma que você tem os seguintes jobs para executar com um processador: Tempo de Prioridade Execução 1 5 1 2 3 3 3 4 2 4 3 4 5 2 2 Assume-se que os jobs chegaram na seguinte ordem 1, 2, 3, 4, 5. Job a) b) Faça um Gantt chart ilustrando a execução destes jobs, usando FCFS, Round robin (quantum = 1), Shortest-Job-First, e o non-preemptive Priority scheduling. Qual é o turnaround time de cada job para cada um dos algoritmos acima? P29) Muitos algoritmos de scheduling são parametrizados. Por exemplo, o algoritmo round robin requer um parâmetro para indicar a fatia de tempo (quantum). Multi-level queues requer parâmetros para definir o número de filas (queues), o algoritmo de scheduling para cada fila e o critério usado para mover jobs entre filas, e assim por diante. Isto significa que um dado algoritmo inclua outros (por exemplo, FCFS é um round robin com um quantum de tempo infinito). Qual relação (se alguma) existe entre os seguintes pares de algoritmos? a) Priority, Shortest-job-first b) Multi-level queue, FCFS c) Priority, FCFS d) Round robin, Shortest-job-first. Sistemas Operacionais 5