Prévia do material em texto
1. Durante a execução de um programa podem ocorrer eventos inesperados, que causam um desvio forçado no fluxo de execução de um programa. Esses eventos são conhecidos por interrupção. É correto afirmar que: As interrupções são eventos sincronos ou assincronos gerados pelo sistema operacional ou por outro processo de maior prioridde As interrupções são eventos assincronos gerados por um dispositivo de hardware As interrupções são eventos sincronos ou assincronos gerados somente pelo sistema operacional As interrupções são somente os eventos síncronos gerados por um dispositivo de hardware ou pelo sistema operacional. As interrupções são somente os eventos assíncronos gerados por um dispositivo de hardware ou pelo sistema operacional. Gabarito Comentado 2. Em um sistema multiprogramável, um processo ativo pode estar nos seguintes estados latência, espera ou atividade espera, pronto ou interrupção latência, pronto ou atividade espera, pronto ou execução interrupção, pronto ou execução 3. Um Sistema Operacional (SO) realiza o gerenciamento: (I)_________________, que inclui o fornecimento do sistema de arquivos para a representação de arquivos e diretórios e o gerenciamento do espaço em dispositivos com grande capacidade de armazenamento de dados. (II)________________, que são a unidade básica de trabalho do SO. Isso inclui a sua criação, sua exclusão e o fornecimento de mecanismos para a sua comunicação e sincronização. (III)_______________, controlando que partes estão sendo usadas e por quem. Além disso, é responsável pela alocação e liberação dinâmica de seu espaço. As lacunas I, II e III são, correta e respectivamente, preenchidas por: em memória secundária - de serviços - em memória principal de I/O - de tempos de CPU - de RAM de discos - de threads - de cache de arquivos - de barramentos - de discos de armazenamento - de processos - de memória Gabarito Comentado 4. Em relação aos tipos de Sistemas Operacionais, marque qual opção N Ã O faz sentido. Sistemas Monousuário e Multitarefas Sistemas Multiusuários e Multitarefas Sistemas Monotarefas com mais de um usuário Sistemas Multitarefas com Múltiplos usuários Sistemas Monousuários e Monotarefas 5. O que é multiprogramação? Processamento paralelo. Processamento centralizado. Técnica que permite a troca de informações entre a memória principal e a memória secundária. Processamento distribuído. Técnica que permite que vários processos estejam em memória ao mesmo tempo. Gabarito Comentado 6. A maioria dos autores classifica os sistemas operacionais entre os seguintes tipos: sistemas monotarefa ou multitarefa, sistemas monousuário ou multiusuário, sistemas monoprocessados ou multiprocessados. Em relação a essas classificações, marque a alternativa correta: Em sistemas operacionais multitarefa monoprocessados a execução de diferentes programas é simultânea. Todo sistema operacional multiusuário é ao mesmo tempo um sistema multitarefa. Um sistema operacional multitarefa é necessariamente um sistema multiprocessado. Um sistema operacional multiprocessado não é necessariamente um sistema multitarefa. Todo sistema operacional multitarefa é necessariamente um sistema multiusuário. 1. Um processo do tipo CPU-bound é aquele que faz poucas operações de entrada e saída. Por outro lado, processos do tipo I/O bound são aqueles que fazem muita leitura de disco ou requerem muita interação com o usuário. Desta forma, conclui-se que os processos que ficam a maior parte do tempo nos estados ¿pronto¿ e ¿executando¿ são os processos do tipo: CPU-bound e I/O-bound ao mesmo tempo I/O-bound Foreground CPU-bound Background 2. Suponha que um usuário acionou um programa que, ao ser carregado, solicitou a digitação de uma senha. Quando o programa foi acionado, o processo passou pelos estados "pronto" e "execução". Em seguida o programa ficou no estado "espera", pois dependia de uma operação de E/S (leitura do teclado) para prosseguir. Quando o usuário informar a senha o processo passará para qual estado? EXECUÇÃO TERMINADO ESPERA PRONTO CRIADO Gabarito Comentado 3. Para interromper a execução de um programa no sistema Linux utilizamos a combinação das teclas Ctrl + C. Nesse caso, podemos afirmar que: o sistema operacional trata este evento com a utilização da estrutura de sincronização - monitor, que sinaliza ao processo a ocorrência do evento. o sistema operacional trata este evento com a utilização da estrutura de sincronização - semáforo, que sinaliza ao processo a ocorrência do evento. o sistema operacional, a partir da rotina de tratamento da interrupção, gera um sinal sinalizando ao processo a ocorrência do evento. a combinação das teclas gera automaticamente um sinal ao processo, sem passar pelo sistema operacional, garantindo um melhor desempenho. a combinação das teclas gera um sinal para o processo, que por sua vez, gera uma interrupção para o sistema operacional, sinalizando assim a ocorrência do evento. Gabarito Comentado 4. Escolha qual transição NÃO pode ocorrer entre estados de um processo: De Em Execução para Bloqueado De Bloqueado para Pronto De Em Execução para Pronto De Pronto para Em Execução De Bloqueado para Em Execução 5. Em sistemas multiprogramáveis os processos podem assumir diferentes estados. Os três estados mais importantes são: running (execução); ready (pronto); e wait (espera). Mudanças entre esses estados podem ocorrer a qualquer momento. Assinale dentre as assertivas seguir a unica mudança de estado que NÃO pode acontecer: EXECUÇÃO para ESPERA PRONTO para EXECUÇÃO ESPERA para PRONTO EXECUÇÃO para PRONTO ESPERA para EXECUÇÃO Gabarito Comentado 6. Um processo muda de estado durante seu processamento em função de eventos originados por ele próprio (eventos voluntários) ou pelo sistema operacional (eventos involuntários). As seguintes mudanças entre estados existem, EXCETO: Pronto → Execução; Espera → Pronto; Execução → Pronto; Espera → Execução; Execução → Espera; 1. Sabe-se que cada processo tem seu próprio contexto de software, contexto de hardware e espaço de endereçamento. Já as threads de um mesmo processo compartilham o mesmo contexto de software e espaço de endereçamento, apesar de terem contexto de hardware próprio. Isto posto, marque a assertiva VERDADEIRA: O uso de threads representa ganhos em termos de desempenho, pois durante a interrupção de um thread apenas o contexto de hardware precisa ser salvo, já que o contexto de software e o espaço de endereçamento são os mesmos entre os vários threads. O uso de threads diminui o desempenho, pois durante a interrupção de um thread é necessário salvar contexto de hardware, de software e espaço deendereçamento. O uso de threads não influencia no desempenho, pois durante a interrupção de um thread é necessário salvar contexto de hardware, de software e espaço de endereçamento. O uso de threads representa ganhos em termos de desempenho, pois durante a interrupção de um thread apenas o contexto de software precisa ser salvo, já que o contexto de hardware e o espaço de endereçamento são os mesmos entre os vários threads. O uso de threads representa ganhos em termos de desempenho, pois durante a interrupção de um thread apenas o espaço de endereçamento precisa ser salvo, já que o contexto de software e de hardware são os mesmos entre os vários threads. Gabarito Comentado 2. Threads são fluxos de execução distintos dentro de um mesmo processo. Assinale a afirmativa que NÃO está de acordo com o conceito de threads. Economia de tempo de processamento Utilização de múltiplos processadores Compartilhamento de recursos Fornecem a interface entre os processos e o sistema operacional sendo um mecanismo de proteção ao núcleo Melhor aproveitamento na fatia de tempo 3. Podemos verificar informações sobre os processos em execução utilizando o gerenciador de tarefas do sistema operacional Windows e no Linux com o comando PS. Dentre as informações fornecidas podemos destacar o PID (process identificationou identificador do processo), que faz parte do gerenciamento de arquivo. do contexto de hardware do processo. do espaço de endereçamento do processo. do controle de memória do processo. do contexto de software do processo. 4. Threads são fluxos de execução distintos dentro de um mesmo processo. É a unidade de execução de um sistema. Qual das afirmativas abaixo não estão de acordo com o conceito de threads ? Economia de tempo de gerenciamento Fornecem a interface entre os processos e o sistema operacional sendo um mecanismo de proteção ao núcleo Utilização de múltiplos processadores Compartilhamento de recursos Melhor aproveitamento na fatia de tempo 5. Uma das diferenças entre threads em modo usuário e threads em modo kernel é: Uma thread em modo kernel não pode executar instruções privilegiadas e a em modo usuário pode. A thread em modo kernel é escalonada diretamente pelo sistema operacional e a de usuário não. Uma thread em modo kernel bloqueada bloqueia todo o processo obrigatoriamente e a em modo usuário não bloqueia. A thread em modo kernel depende de uma biblioteca para ser utilizada e a thread em modo usuário não depende. A thread em modo usuário não pode utilizar funções do sistema operacional e a thread em modo kernel pode. Gabarito Comentado 6. Um thread é Fluxo de execução e parte integrante de um processo e o multithreading é a associação de vários fluxos de execução a um único processo. Julgue as sentenças em verdadeiras (V) ou falsas (F). 1. Thread é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente. 2. Cada thread tem o mesmo contexto de hardware e compartilha o mesmo o espaço de memória (endereçado a um mesmo processo-pai), porém o contexto de software é diferente. 3.Um dos benefícios do uso das threads é que quando um thread espera por um recurso um outro do mesmo grupo pode estar sendo executado. Marque a opção correta. 1.V - 2.F - 3.V 1.F - 2.V - 3.F 1.F - 2.F - 3.V 1.V -2.F - 3.F 1.V -2.V - 3.V 1. Preciso de canetas e apagador para a aula. Peguei as canetas, mas parei para conversar um pouco. Ao tentar pegar o apagador fiquei sabendo que outro professor pegou o apagador para um reunião não programada e aguardava a caneta que não estava mais sobre a mesa para começar a reunião. Fiquei esperando que o apagador fosse devolvido e, como isso não aonteceu, resolvi guardar as canetas para a segunda aula e continuar aguardando o apagador. Fiquei sabendo que o outro professor também não começou a reunião pois ficou aguardando as canetas e também resolveu aguardar. Nesta situação podemos identificar a ocorrência de: Um deadlock que poderá ser solucionado se um dos professores tirar o recurso das mãos do outro. Um evento que será solucionado assim que terminar a aula Um deadlock em função da exclusão mútua no acesso aos dois recursos Um deadlock que poderá ser solucionado quando o professor desistir da aula. Uma condição de corrida 2. Embora ambos tenham seu escalonamento feito pelo gerenciamento de processos, threads e processos são estruturalmente distintos. Qual é a principal diferença entre eles? Escolha a alternativa correta. Processos executam mais rapidamente. Threads apenas podem ocorrer em processadores multicore. Apenas threads podem ser executados em paralelo. Processos apenas podem ocorrer em sistemas de grande porte. Threads possuem o mesmo contexto de software Gabarito Comentado 3. Sobre a ocorrência de impasses (deadlocks), marque a afirmativa correta. Uma abordagem utilizada para se lidar com impasses é simplesmente ignorar o fato de que possam ocorrer. O bloqueio em duas fases é uma estratégia especializada de prevenção de impasses que é aplicada em sistemas de tempo real. Uma vez ocorrido o impasse, não há algoritmos que permitam detectá-lo, o que sempre leva ao travamento do sistema, forçando o usuário a reinicializá-lo. A ocorrência de impasses depende do número de recursos e do número de processos envolvidos no procedimento. Pode-se evitar o impasse estabelecendo-se uma cadeia de espera circular, na qual um processo só pode aguardar o recurso mantido pelo seguinte. Gabarito Comentado 4. O trecho do código-fonte de um programa que, ao ser executado, requer um recurso e pode levar o sistema a uma condição de corrida é denominado: Região problemática Região restante Região de saída Região crítica Região de entrada 5. Starvation é uma situação que ocorre quando: O processo tenta mas não consegue acessar uma variável compartilhada. Quando Quantum está acima de 400 ms Pelo menos um evento espera por um evento que não vai ocorrer. A prioridade de um processo é ajustada de acordo com o tempo total de execução do mesmo. Pelo menos um processo é continuamente postergado e não executa. Gabarito Comentado 6. Qual das seguintes condições não é necessária para a ocorrência de um deadlock? Escolha a alternativa correta. Processos em espera circular. Escalonamento preemptivo de recursos. Uso mutuamente exclusivo de recursos por processos. Alocação parcial de recursos a processos. Haver compartilhamento de recursos por processos. 1. No âmbito de sistemas operacionais, uma seção ou região crítica é a: área do sistema operacional que contém o código do loader. área da memória que contém dados compartilhados. parte da memória usada para operações criptográficas. área do programaque é executada 80% do tempo. parte do programa que acessa dados compartilhados. Gabarito Comentado 2. A utilização de mecanismos de exclusão mútua é necessária para impedir o acesso a uma região crítica por mais de um processo evitando, assim, condições de corrida. Um dos mecanismos é o baseado em características de hardware e uma das soluções deste mecanismo é : Semáforos Algoritmo de Peterson Instruções TSL (test and set lock) Protocolo de acesso á região crítica Monitores Gabarito Comentado 3. São técnicas utilizadas na sincronização entre processos: I. Starvation II. Instruções TSL III. Semáforos IV. Monitores Somente as afirmativas I e II são verdadeiras. Somente as afirmativas II, III e IV são verdadeiras. Somente as afirmativas I, II, III são verdadeiras. Todas as afirmativas são verdadeiras. Somente as afirmativas II e III são verdadeiras. 4. O semáforo possui regras de acesso. Analise as regras abaixo que permitem o acesso adequado ao semáforo e, em seguida, assinale a alternativa correta: I. O semáforo deve ser inicializado com um valor não negativo. II. A operação DOWN decrementa o semáforo; III. A operação UP incrementa o semáforo; IV. Se o semáforo valer zero e for decrementado, o processo entra em estado de pronto Estão corretas as sentenças: II, III e IV I, II e III apenas I e IV apenas II e III I, III e IV 5. Diversos conceitos são fundamentais para que se implemente concorrência entre processos. Região Crítica é um desses conceitos, que pode ser melhor definido como sendo: Um trecho de programa onde existe algum recurso cujo acesso é dado por uma prioridade Um trecho de programa onde existe o compartilhamento de algum recurso que não permite o acesso concomitante por mais de um programa Um trecho de programa cujas instruções podem ser executadas em paralelo e em qualquer ordem Um trecho de programa onde existe algum recurso a que somente o sistema operacional pode ter acesso Um trecho de programa que deve ser executado em paralelo com a Região Crítica de outro programa Gabarito Comentado 6. A exclusão mútua deve afetar apenas os processos concorrentes quando um deles estiver fazendo acesso ao recurso compartilhado. A parte do código do programa onde é feito o acesso ao recurso compartilhado é denominada de: Aplicação Concorrente Espera Ocupada Região Crítica Exclusão Mútua de Execução Condição de Corrida