Prévia do material em texto
Fazer teste: Semana 3 - Exercício de apoio 1 PERGUNTA 1 I. Desabilitar interrupções, o uso de primitivas de lock e alternância cíclica são soluções para exclusão mútua que utilizam espera ocupada. II. Semáforos e monitores são soluções que podem ser utilizadas para resolver o problema da espera ocupada. III. Monitor é uma primitiva (unidade básica de sincronização) de alto nível para sincronizar processos. IV. Chamadas remotas de procedimentos (RPC) não são uma forma de comunicação entre processos. V. Semáforos e monitores são duas soluções que são adequadas tanto para CPUs com memória distribuída quanto em memória compartilhada. No que diz respeito à comunicação entre processos, analise as a�rmações a seguir: Assinale a alternativa correta: Somente a a�rmação II está correta. As a�rmações III, IV e V estão corretas. As a�rmações I, II e III estão corretas. As a�rmações I e II estão corretas. 0 pontos PERGUNTA 2 As threads são unidades básicas de utilização de CPU, sendo importantes para melhorar a execução das aplicações. Além disso, por serem uma rami�cação do �uxo de controle, elas podem compartilhar o mesmo espaço de endereçamento do processo. Assinale a alternativa correta em relação às threads: Threads em modo usuário são implementadas diretamente pelo núcleo do sistema operacional, por meio de chamadas a rotinas do sistema, que oferecem todas as funções de gerenciamento e sincronização As threads podem reduzir a alocação de recursos do sistema, além de diminuir o overhead na criação, troca e eliminação de processos. Threads e processos não compartilham o mesmo espaço de endereçamento. Threads em modo kernel são implementadas pelos usuários, e não pelo sistema operacional. Apesar disso, tais threads são gerenciadas e sincronizadas pelo sistema operacional. 0 pontos PERGUNTA 3 A maioria dos escalonadores Round-robin usa um quantum de tamanho �xo. O que pode acontecer se o quantum for muito pequeno ou muito grande? Se for muito grande, pode haver muitas trocas de contexto. Se for muito pequeno, pode haver poucas trocas de contexto. 0 pontos Se o quantum for muito pequeno, ocorrem muitas trocas, diminuindo a e�ciência da CPU. Por outro lado, se for muito grande, o tempo de resposta é comprometido. Independentemente do tamanho do quantum, as trocas de contexto sempre vão ocorrer com o mesmo custo computacional. PERGUNTA 4 (Adaptado de CESPE - 2008 - IPEA - Analista de Sistemas) Ao considerar o algoritmo Round-robin, este pode ser empregado nos sistemas operacionais com múltiplas �las de processos prontos. Dessa forma, pode ser usado tanto como algoritmo de escalonamento de determinadas �las como também entre �las. Uma outra opção é utilizar um algoritmo preemptivo embasado em prioridades para o escalonamento entre �las, o que faz que cada �la possa ter uma prioridade. Errado Certo 0 pontos PERGUNTA 5 I. Em um sistema preemptivo, quem está com a CPU deve, voluntariamente, devolvê-la ao sistema operacional após o término de sua fatia de tempo. II. Ao utilizar interrupções em um hardware protegido, o sistema operacional pode de�nir por quanto tempo a CPU é cedida, pegando-a de volta quando esse tempo acabar. III. No escalonamento time sharing, o tempo de CPU é dividido entre ciclos CPU bound e I/O bound. Assim, o sistema é preemptivo quando ele possui muito mais do tipo CPU bound e poucos do tipo I/O bound e de memory bound. Considerando o escalonamento realizado por um SO (Sistema Operacional), considere as seguintes proposições: Está(ão) correta(s), apenas: II. I e II. I e III. I. I, II e III. 0 pontos PERGUNTA 6 Os processos no sistema operacional que possuem um relógio, chamado de quantum, no qual todos os processos ganham o mesmo valor de quantum para executarem na CPU, indicam o escalonamento de processos do tipo: Round-robin – RR. First In, First Out – FIFO. Shortest Job First – SJF. First Come, First Served – FCFS. Shortest Remaining Time – SRT. 0 pontos PERGUNTA 7 Dentre as principais características dos sistemas operacionais, destacam-se: Sistemas Windows e Linux diferem entre si, pois o primeiro opera somente em modo usuário enquanto o segundo opera em modo usuário e modo kernel. A vantagem da arquitetura de micro-kernel é o seu forte acoplamento entre os módulos que compõem o núcleo do SO. As duas principais funções dos sistemas operacionais são realizar o gerenciamento de recursos e prover uma interface padronizada para a utilização por parte dos usuários. Não há diferença entre as estruturas monolíticas, de micro-kernel e baseada em camadas. 0 pontos PERGUNTA 8 Com relação a tipos de sistemas operacionais, utilização de recursos e forma como esses tipos são estruturados, assinale a alternativa correta: No sistema operacional do tipo monotarefa, as aplicações são executadas de maneira simultânea, ou seja, o tempo de processamento é dividido entre as aplicações em execução. O sistema operacional do tipo batch organiza-se em camadas, cada uma das quais faz referência apenas aos módulos das camadas anteriores. No sistema operacional do tipo multiprogramado, um único processo é executado de cada vez na máquina. No sistema operacional do tipo monolítico, uma coleção de rotinas pode chamar qualquer outra rotina, uma vez que cada uma delas possui interface de�nida. No sistema operacional do tipo cliente-servidor, utiliza-se uma máquina virtual criada por um programa que simule o processador e outros recursos. 0 pontos Para acessar a barra de ferramentas, pressione ALT+F10 (PC) ou ALT+FN+F10 (Mac). PERGUNTA 9 Explique o grande problema da solução de exclusão mútua de desabilitar as interrupções. Apesar dos problemas existentes com essa solução, explique o porquê dela ser considerada útil em sistemas uniprocessados. O grande problema com essa solução é que a memória continua sendo compartilhada quando desabilitamos a interrupção em um ambiente de múltiplos processadores. A desabilitação afeta apenas um único processador que usa essa solução. Porém, a memória continua sendo acessada por outros processos (rodando em outros processadores), o que pode não resolver o problema da exclusão mútua. Entretanto, a solução é útil para ambientes uniprocessados porque este consegue desabilitar a interrupção em um único processador, o que faz com que nenhum outro processo entre em uma região crítica. Isso porque desabilitando a interrupção não haverá mudança de contexto de processos enquanto persistir a desabilitação. P 104 PALAVRAS OFERECIDO POR TINY 0 pontos (Crédito extra) PERGUNTA 10 0 pontos (Crédito extra) Parágrafo Arial 14px https://www.tiny.cloud/?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce&utm_content=v5 Para acessar a barra de ferramentas, pressione ALT+F10 (PC) ou ALT+FN+F10 (Mac). Explique como a solução da passagem de mensagem resolve o problema da memória compartilhada. Na solução da passagem de mensagem, os dados são enviados e recebidos (isto é, intercambiados) por um canal de comunicação entre os processos. Assim, os dados não são mais compartilhados em uma memória, mas, em vez disso, eles são compartilhados (lidos e escritos) através de um canal de comunicação previamente criado para essa finalidade, em que apenas os processos envolvidos usam tal canal. P 63 PALAVRAS OFERECIDO POR TINY Para acessar a barra de ferramentas, pressione ALT+F10 (PC) ou ALT+FN+F10 (Mac). PERGUNTA 11 Por que a solução usando monitores é bastante usada pelos desenvolvedores de softwares paralelos e/ou concorrentes? A solução com monitores é relativamente simples, e isso se torna um atrativo para os desenvolvedores de softwares. Nessa solução, toda a região crítica é inserida dentro da cláusula “monitor”, e a própria linguagem dá o suporte necessário para implementar a exclusão mútua de forma a não permitir que outros processos entrem na região crítica simultaneamente. P 56 PALAVRAS OFERECIDO POR TINY 0 pontos (Crédito extra) Para acessar a barra de ferramentas,pressione ALT+F10 (PC) ou ALT+FN+F10 (Mac). PERGUNTA 12 /*Outro código*/ while (turn != 0) {} /* Não fazer nada e esperar */ Critical Section /* ... */ turn = 0; /* Outro código */ Considere a solução a seguir para o problema da exclusão mútua envolvendo dois processos P0 e P1. Presuma que a variável turn seja inicializada para 0. O código do processo P0 é apresentado a seguir: Para o processo P1, substitua 0 por 1 no código anterior. Determine se a solução atende a todas as condições exigidas para uma solução de exclusão mútua. Não. Com essa solução o processo P1 nunca poderá entrar na sua região crítica e sofrerá de inanição. O processo P1 estará em espera ocupada, visto que a variável turn foi inicializada com 0. Nesse código, o processo P0 poderá entrar na sua região crítica, porém como ele atribui zero para turn repetidamente, ele não deixará P1 entrar na sua região crítica. Consequentemente, o código viola a quarta condição para uma boa solução de exclusão mútua. 0 pontos (Crédito extra) Parágrafo Arial 14px Parágrafo Arial 14px Parágrafo Arial 14px https://www.tiny.cloud/?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce&utm_content=v5 https://www.tiny.cloud/?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce&utm_content=v5 P 76 PALAVRAS OFERECIDO POR TINY https://www.tiny.cloud/?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce&utm_content=v5