Você está na página 1de 3

UNIVERSIDADE FEDERAL DA BAHIA

INSTITUTO DE MATEMÁTICA E ESTATÍSTICA


DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
SISTEMAS OPERACIONAIS (MATA58 E MAT566) / PROFESSOR: DR. ALIRIO SÁ

LISTA DE EXERCÍCIOS 01
1. Quais os dois principais objetivos de um sistema operacional?
2. Por que a abstração de recursos é importante para os desenvolvedores de aplicações? Ela tem alguma utilidade para os desenvolvedores do
próprio sistema operacional?
3. A gerência de atividades permite compartilhar o processador, executando mais de uma aplicação ao mesmo tempo. Identifique as principais
vantagens trazidas por essa funcionalidade e os desafios a resolver para implementá-la.
4. O que caracteriza um sistema operacional de tempo real? Quais as duas classificações de sistemas operacionais de tempo real e suas
diferenças?
5. Relacione as afirmações aos respectivos tipos de sistemas operacionais: distribuído (D), multiusuário (M), desktop (K), servidor (S),
embarcado (E) ou de tempo real (T):
 Deve ter um comportamento temporal previsível, com prazos de resposta claramente definidos.
 Sistema operacional usado por uma empresa para executar seu banco de dados corporativo.
 São tipicamente usados em telefones celulares e sistemas eletrônicos dedicados.
 Neste tipo de sistema, a localização física dos recursos do sistema computacional é transparente para os usuários.
 Todososrecursosdosistematêmproprietárioseexistemregrascontrolando o acesso aos mesmos pelos usuários.
 A gerência de energia é muito importante neste tipo de sistema.
 Sistema que prioriza a gerência da interface gráfica e a interação com o usuário.
 Construído para gerenciar de forma eficiente grandes volumes de recursos.
 O MacOS X é um exemplo típico deste tipo de sistema.
 São sistemas operacionais compactos, construídos para executar aplicações específicas sobre plataformas com poucos recursos.
6. Sobre as afirmações a seguir, relativas aos diversos tipos de sistemas operacionais, indique quais são incorretas, justificando sua resposta:
a. Em um sistema operacional de tempo real, a rapidez de resposta é menos importante que a previsibilidade do tempo de resposta.
b. Um sistema operacional multiusuários associa um proprietário a cada recurso do sistema e gerencia as permissões de acesso a
esses recursos.
c. Nos sistemas operacionais de rede a localização dos recursos é transparente para os usuários.
d. Um sistema operacional de tempo real deve priorizar as tarefas que interagem com o usuário.
e. Um sistema operacional embarcado é projetado para operar em hardware com poucos recursos.
7. O que diferencia o núcleo do restante do sistema operacional?
8. Seria possível construir um sistema operacional seguro usando um processador que não tenha níveis de privilégio? Por quê?
9. Como a separação entre as funções em modo kernel e modo de usuário pode atuar como um sistema de proteção (segurança) rudimentar?
10. Qual das instruções seguintes deveriam executar em modo privilegiado?
a. Definir o valor de um temporizador
b. Ler o valor do relógio
c. Limpar a memória
d. Disparar uma instrução de trap
e. Desabilitar interrupções
f. Modificar as entradas na tabela de status dos dispositivos de E/S
g. Chavear entre modo kernel e modo usuário
h. Acessar um dispositivo de E/S
11. Alguns dos primeiros computadores protegiam o sistema operacional o colocando em uma partição de memória que não poderia ser
modificada por um job de usuário ou pelo próprio sistema operacional. Descreva duas dificuldades que você acha que poderiam aparecer
neste esquema.
12. Algumas CPUs provêm mais de dois modos de operação. Determine dois possíveis usos desses múltiplos modos de operação?
13. Temporizadores podem ser usados para calcular o tempo atual. Apresente uma breve descrição de como isto poderia ser implementado.
14. O que é multiprogramação?

Questões traduzidas / adaptadas de:


• Tanenbaum, A. S. "Modern Operating Systems" (Chapter 1), 3rd ed, Pearson Hall, 2008. Página 1/3
• Mazeiro, A. C. Sistemas Operacionais: Conceitos e Mecanismos (Capítulos 1 a 3), DINF/UFPR, setembro, 2020.
UNIVERSIDADE FEDERAL DA BAHIA
INSTITUTO DE MATEMÁTICA E ESTATÍSTICA
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
SISTEMAS OPERACIONAIS (MATA58 E MAT566) / PROFESSOR: DR. ALIRIO SÁ

LISTA DE EXERCÍCIOS 01
15. No início dos computadores, todo byte de dados lidos ou escritos eram manipulados pela CPU (i.e., não existia DMA). Que implicações disto
para a multiprogramação?
16. Existem vários objetivos de projeto na construção de sistemas operacionais, por exemplo: uso de recursos, garantias temporais (timeliness),
robustez etc. Dê um exemplo de dois objetivos de projeto que podem ser conflitantes.
17. Quais das seguintes instruções deveriam ser permitidas apenas em modo kernel?
a. Desabilitar interrupções
b. Ler o horário do dia no relógio
c. Definir o horário do dia no relógio
d. Mudar o mapa de memória
18. Coloque na ordem correta as ações abaixo, que ocorrem durante a execução da função printf("Hello world") por um processo (observe que
nem todas as ações indicadas fazem parte da sequência).
a. A rotina de tratamento da interrupção de software é ativada dentro do núcleo.
b. A função printf finaliza sua execução e devolve o controle ao código do processo.
c. A função de biblioteca printf recebe e processa os parâmetros de entrada (a string “Hello world”).
d. A função de biblioteca printf prepara os registradores para solicitar a chamada de sistema write()
e. O disco rígido gera uma interrupção indicando a conclusão da operação.
f. O escalonador escolhe o processo mais prioritário para execução.
g. Uma interrupção de software é acionada.
h. O processo chama a função printf da biblioteca C.
i. A operação de escrita no terminal é efetuada ou agendada pela rotina de tratamento da interrupção.
j. O controle volta para a função printf em modo usuário.
19. Quando um programa de usuário faz uma chamada de sistema (system call) para ler ou escrever um arquivo no disco, ele provê uma
indicação de qual arquivo deseja, um ponteiro para o buffer dos dados e o contador. O controle é então transferido para o sistema
operacional, o qual chama o driver apropriado. Suponha que um driver inicie o disco e não finalize até que uma interrupção ocorra. No caso
da leitura do disco, obviamente o chamador irá ter que ficar bloqueado (porque não existem dados para o mesmo ainda). O que acontece no
caso da escrita em disco? É preciso que o chamador bloqueie aguardando a finalização da transferência para o disco?
20. O que é uma instrução de trap? Explique seu uso no sistema operacional.
21. Quais as diferenças entre trap, exceção e interrupção?
22. Por que a tabela de processo é necessária em sistemas de tempo compartilhado (timesharing)? A mesma também é necessária em
computadores pessoais no quais apenas um processo existe, o qual controla toda a máquina até ser finalizado?
23. Qual é o propósito de uma chamada de sistema em um sistema operacional?
24. Para cada uma das seguintes chamadas de sistema, dê a condição que causa a sua falha: 𝒇𝒐𝒓𝒌, 𝒆𝒙𝒆𝒄, 𝒖𝒏𝒍𝒊𝒏𝒌.
25. É possível que a chamada "𝒄𝒐𝒖𝒏𝒕 = 𝒘𝒓𝒊𝒕𝒆(𝒇𝒅, 𝒃𝒖𝒇𝒇𝒆𝒓, 𝒏𝒃𝒚𝒕𝒆𝒔);" retorne qualquer valor em 𝒄𝒐𝒖𝒏𝒕 que seja diferentes do valor de 𝒏𝒃𝒚𝒕𝒆𝒔?
Se sim, porque?
26. O modelo cliente/servidor é popular em sistemas distribuídos. É possível usá-lo em um sistema com um único computador?
27. Para um programador, uma chamada de sistema se parecer como uma chamada a um procedimento de uma biblioteca (library). É importante
que o programador saiba quais procedimentos de bibliotecas resultam em chamadas de sistema? Sobre quais circunstância e porquê?
28. Um sistema operacional portável é um sistema que pode ser portado de uma arquitetura para outra sem a necessidade de qualquer
modificação. Explique porque é impraticável construir um sistema operacional completamente portável. Descreva duas camadas de alto nível
que você teria ao projetar um sistema operacional altamente portável.
29. Explique como a separação entre política (policy) e mecanismo auxilia na construção de sistemas operacionais baseados em micro-kernel.
30. Monte uma tabela com os benefícios e deficiências mais relevantes das principais arquiteturas de sistemas operacionais.
31. O sistema operacional Linux possui “tarefas de núcleo” que executam, em modo privilegiado, como gerenciadores (serviço), uma arquitetura
similar a dos sistemas operacionais com micronúcleo. No entanto, o núcleo do Linux é dito monolítico. Por quê? Discuta.
32. Sobre as afirmações a seguir, relativas às diversas arquiteturas de sistemas operacionais, indique quais são incorretas, justificando sua
resposta:
a. Uma máquina virtual de sistema é construída para suportar uma aplicação escrita em uma linguagem de programação específica,
como Java.

Questões traduzidas / adaptadas de:


• Tanenbaum, A. S. "Modern Operating Systems" (Chapter 1), 3rd ed, Pearson Hall, 2008. Página 2/3
• Mazeiro, A. C. Sistemas Operacionais: Conceitos e Mecanismos (Capítulos 1 a 3), DINF/UFPR, setembro, 2020.
UNIVERSIDADE FEDERAL DA BAHIA
INSTITUTO DE MATEMÁTICA E ESTATÍSTICA
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
SISTEMAS OPERACIONAIS (MATA58 E MAT566) / PROFESSOR: DR. ALIRIO SÁ

LISTA DE EXERCÍCIOS 01
b. Um hipervisor convidado executa sobre um sistema operacional hospedeiro.
c. Em um sistema operacional micronúcleo, os diversos componentes do sistema são construídos como módulos interconectados
executando dentro do núcleo.
d. Núcleos monolíticos são muito utilizados devido à sua robustez e facilidade de manutenção.
e. Em um sistema operacional micronúcleo, as chamadas de sistema são implementadas através de trocas de mensagens.

Questões traduzidas / adaptadas de:


• Tanenbaum, A. S. "Modern Operating Systems" (Chapter 1), 3rd ed, Pearson Hall, 2008. Página 3/3
• Mazeiro, A. C. Sistemas Operacionais: Conceitos e Mecanismos (Capítulos 1 a 3), DINF/UFPR, setembro, 2020.

Você também pode gostar