Prévia do material em texto
1) (1 ponto) Considere um sistema multiprogramado com grau de 6 (isto é, seis programas na memória ao mesmo tempo). Presuma que cada processo passa 40% do seu tempo esperando pelo dispositivo de E/S. Qual será a utilização da CPU? 2) (1 ponto) Quantas mensagens “Hello World” serão exibidas a partir do programa abaixo? Justifique sua resposta. 3) (1 ponto) Um dos principais problemas em se utilizar threads implementadas no espaço de usuário são as chamadas bloqueantes. O que acontece em um Instituto Federal de Brasília Campus Taguatinga Superior em Computação Atividade Avaliativa 2 Gerenciamento de Processos Sistemas Operacionais - 2/2020 Professor João Victor de A. Oliveira processo quando uma de suas threads realiza uma chamada de sistema bloqueante? Cite duas possíveis soluções para esse problema. 4) (2 pontos) O jogo Super Mario Kart (Figura abaixo) de 1992, desenvolvido e publicado pela Nintendo® é um jogo de corrida que se diferencia dos demais pela possibilidade de usar itens e atalhos durante a competição, seja para atrapalhar ou obter vantagens em relação a seus oponentes. O jogo, em uma visão minimalista de uma única fase, poderia ser implementado com os seguintes subsistemas: a. Jogador: controlado por um ser humano a partir de um controle de videogame (entrada), sendo suas ações impressas na parte superior da tela (saída); b. 7 oponentes: controlados por algum algoritmo de inteligência artificial, que deve, através da observação do que acontece no jogo, agirem de modo a vencer a partida; c. Gerenciador de corrida: responsável por coletar informações sobre tempo da volta, vidas, quantidades de moedas coletadas, item coletado e a localização em tempo real do jogador e seus adversários no mapa (parte inferior da tela); d. Renderizador de vídeo: Responsável por atualizar a tela do jogo a cada 1/30 segundos, exibindo informações coletadas pelo gerenciador de corrida. Descreva como poderia ser implementado este jogo (versão minimalista de uma única fase com os subsistemas citados acima) usando threads de modo eficiente. 5) (2 pontos) No problema do jantar dos filósofos, deixe o protocolo a seguir ser usado: um filósofo de número par sempre pega o seu garfo esquerdo antes de pegar o direito; um filósofo de número ímpar sempre pega o garfo direito antes de pegar o esquerdo. Esse protocolo vai garantir uma operação sem impasse? Jantar dos filósofos 6) (1 ponto) A solução de espera ocupada usando a variável turn, funciona quando os dois processos estão executando em um multiprocessador de memória compartilhada, isto é, duas CPUs compartilhando uma memória comum? 7) (1 ponto) Escalonadores circulares em geral mantêm uma lista de todos os processos executáveis, com cada processo ocorrendo exatamente uma vez na lista. O que aconteceria se um processo ocorresse duas vezes? Você consegue pensar em qualquer razão para permitir isso? 8) (1 ponto) O algoritmo de envelhecimento com a=½ está sendo usado para prever tempos de execução. As quatro execuções anteriores, da mais antiga à mais recente, são 40, 20, 40 e 15 ms. Qual a previsão para o próximo tempo? Bons estudos!