Prévia do material em texto
Questão 01. Defina sistema operacional e liste cinco serviços oferecidos por um sistema operacional moderno. Definição: Máquina estendida e simplificada. Opera em modo núcleo fornecendo aos programadores um conjunto de recursos abstratos de hardware e gerenciando esses recursos de hardware. Serviços oferecidos: Processadores, memória, temporizadores, discos e interface de rede. Questão 02. O sistema operacional pode ser visto como um gerenciador de recursos ou como uma máquina estendida. Explique o que são estas diferentes visões e dê características de cada uma. Gerenciador de recursos: O sistema operacional tem como tarefa principal manter o controle sobre quem está usando qual recurso, garantindo suas requisições de recursos, controlando as contas e mediando conflitos de requisições entre diferentes programas e usuários. Máquina estendida: O sistema operacional é responsável por criar abstrações e, em seguida, implementar e gerenciar os objetos abstratos criados. Questão 03. Os primeiros sistemas operacionais eram monoprogramáveis. Dê características desse tipo de sistema e explique o motivo destes terem sido os primeiros a serem desenvolvidos. O sistema operacional só irá permitir que apenas um programa/tarefa seja executado por vez. Ou seja, enquanto um programa aguarda por um evento, o processador permanece ocioso, sem realizar qualquer tipo de processamento. Questão 04. O que são sistemas multiprogramáveis? Dê características desse tipo de sistema. O sistema operacional permite que enquanto um programa espera determinada operação, outros programas podem estar sendo processados neste mesmo intervalo de tempo. Nesse caso, existe o compartilhamento da memória e do processador. O sistema operacional se preocupa em gerenciar o acesso concorrente aos seus diversos recursos de forma ordenada e protegida. Questão 05. Como sistemas multiprogramáveis podem ser classificados? Dê características de cada um desses tipos. Sistemas Batch: Consiste em submeter ao computador um batch(lote) de programas de uma só vez. Os jobs (script com lote de programas) dos usuários são submetidos em ordem sequencial para a execução. Os programas, nesse tipo de sistema operacional, eram submetidos para a execução por meio de cartões perfurados e armazenados em disco ou fito, onde aguardavam para ser processados. Posteriormente, em função da disponibilidade de espaço na memória principal, os programas são executados, produzindo uma saída em disco ou fita. O processamento batch não exige interação do usuário com a aplicação. Sistemas de Tempo Compartilhado: Permitem que diversos programas sejam executados a partir da divisão do tempo do processador em pequenos intervalos, denominados fatias de tempo. Caso a fatia de tempo não seja suficiente para a conclusão do programa, ele é interrompido pelo sistema operacional e substituído por um outro, enquanto fica aguardando por uma nova fatia de tempo. Sistemas de Tempo Real: Permitem que diversos programas sejam executados a partir da prioridade da execução do programa, que é definida pela própria aplicação. É bastante semelhante aos Sistemas de Tempo Compartilhado. O que caracteriza a diferença entre os dois tipos de sistemas é o tempo exigido no processamento das aplicações. Nos sistemas de Tempo Real não existe as fatias de tempo. Enquanto em Sistemas de Tempo Compartilhado o tempo de processamento pode variar sem afetar as aplicações em execução, nos Sistemas de Tempo Real os tempos de processamento devem estar dentro de limites rígidos. Questão 06. Atualmente, a maioria dos computadores possui processadores com mais de um núcleo. Quais as vantagens que um sistema operacional, que explore esta característica, pode ter sobre um sistema multiprogramável comum? A vantagem deste tipo de sistema é permitir que vários programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em partes para serem executadas simultaneamente em mais de um processador. Além disso, possui algumas vantagens específicas sobre os sistemas multiprogramáveis, tais como, escalabilidade, disponibilidade e balanceamento de carga. Escalabilidade: capacidade de aumentar o poder computacional do sistema apenas adicionando novos processadores. Disponibilidade: capacidade de manter o sistema em operação mesmo em caso de falhas. Balanceamento de carga: possibilidade de distribuir o processamento entre os diversos processadores da configuração, a partir da carga de trabalho de cada processador melhorando o desempenho do sistema como um todo. Questão 07. Qual a diferença entre sistemas fortemente acoplados e sistemas fracamente acoplados? Nos sistemas fortemente acoplados existem vários processadores compartilhando uma única memória física e dispositivos de E/S sendo gerenciados por um único sistema operacional. Nos sistemas fracamente acoplados existem dois ou mais sistemas computacionais conectados através de linhas de comunicação. Cada sistema funciona de forma independente possuindo seu próprio sistema operacional e gerenciando seus próprios recursos. Questão 08. O que são chamadas de sistemas? Cite 4 exemplos. São funções que solicitam um serviço do núcleo do sistema operacional sobre o qual ele está sendo executado. Exemplos: read(); fork(); printf(); exit(). Questão 09. Um processador opera sobre modo núcleo e modo usuário. Explique a diferença entre estes dois modos e por que eles existem. No modo Kernel é possível acesso irrestrito ao conjunto de instruções da máquina. Um processo deixa de executar em modo usuário e passa a executar em modo Kernel quando executa uma chamada de sistema. Para passar do modo usuário ao modo kernel, não é suficiente que um processo precise ou queira fazer acesso privilegiado ao hardware. É necessário que ele execute uma chamada de sistema. Com essa infraestrutura os programas em modo usuário não acessam toda a memória e, desta forma, previne que, por exemplo, programas sobrescrevam o sistema operacional. Questão 10. Descreva resumidamente o procedimento que ocorre quando uma chamada de sistema é realizada por um processo de usuário qualquer. Se um processo estiver executando um programa de usuário em modo usuário e precisar de um serviço do sistema, terá de executar uma instrução TRAP para transferir o controle ao sistema operacional. Este verifica os parâmetros para, então, descobrir o que quer o processo que está chamando. Questão 11. Os sistemas operacionais podem ser construídos de diferentes maneiras. Descreva as principais características de: a) Sistemas Monolíticos: O sistema operacional inteiro é executado como um único programa no modo núcleo; é escrito como uma coleção de rotinas, ligadas a um único grande problema binário executável; cada rotina tem uma interface bem definida quanto a parâmetros e resultados e cada uma delas é livre para chamar qualquer outra, se esta oferecer alguma computação útil de que a primeira necessite. b) Sistemas de camadas: Organização do sistema operacional como uma hierarquia de camadas, cada uma delas construída sobre a camada imediatamente inferior. 0. Alocação do processador e multiprogramação; 1. Memória e gerenciamento de tambor; 2. Comunicação operador-processo; 3. Gerenciamento de entrada/saída; 4. Programas do usuário; 5. O operador. c) Micronúcleos: O sistema operacional é dividido em módulos pequenos, bem definidos, e apenas um desses módulos - o micronúcleo - é executado no modo núcleo e o restante é executado como processos do usuário comuns relativamente sem potência. d) Modelo cliente-servidor: Variação da ideia do Micronúcleo. Há duas classes de processos, os servidores, que prestam algum serviço, e os clientes, que usam esses serviços. Questão 12. O que uma máquina virtualfaz? Executa diferentes sistemas operacionais. Questão 13. Máquinas virtuais, ou hipervisores, podem ser classificadas em dois tipos: tipo 1 e tipo 2. Explique a diferença entre elas. Hipervisores tipo 1 são instalados diretamente sobre o hardware. Hipervisores tipo 2 são implementados para funcionarem como se fossem uma aplicação do sistema operacional hospedeiro operando em modo usuário, onde serão criadas as máquinas virtuais. Ou seja, um programa do sistema hospedeiro que oferece um ambiente para simular máquinas reais. Questão 14. Compare sistemas operacionais estruturados em exonúcleos com máquinas virtuais. Utilizando-se exonúcleo é poupado uma camada de mapeamento, pois é necessário apenas manter o registro de para qual máquina virtual foi atribuído qual recurso. Nos outros projetos, cada Máquina Virtual pena que tem seu próprio disco, com blocos indo de 0 a um valor máximo, de modo que o monitor de máquina virtual deve manter tabelas para remapear os endereços de disco.