Você está na página 1de 8

JULIANO ROCHA BARBOSA

Respostas Lista Cap. 1 e 2


1. Quais os dois principais objetivos dos sistemas operacionais?
Os dois objetivos principais dos sistemas operacionais so: criar uma camada de
abstrao entre o hardware e as aplicaes, com isso se tem uma interface mais bonita
disponvel para as aplicaes que rodaram no SO, e gerenciar os recursos de forma eficiente,
fornecendo uma alocao ordenada e controlada de processadores, memrias e dispositivos
de E/S entre os programas.
2. Por que a abstrao de recursos importante para os desenvolvedores de aplicaes?
Ela tem utilidade para os desenvolvedores do prprio sistema operacional?
Sistemas operacionais so camadas de software inseridas entre o hardware e as
aplicaes, capaz de orientar a utilizao desses recursos fsicos. O objetivo otimizar essa
utilizao. Ele responsvel por organizar o uso da mquina criando abstraes como, por
exemplo, um arquivo. Um arquivo no algo real, e sim apenas uma abstrao no nvel do
usurio que corresponde a um grupo especfico de bits armazenados em um local fsico
determinado. Essa abstrao de recursos serve para que o usurio possa usar a mquina
atravs de uma interface amigvel, ela chamada de virtualizao de recursos. Com a
utilizao dessa tcnica, cada programa tem a iluso de estar sendo executado sozinho,
enquanto na verdade est dividindo os recursos da mquina com outras aplicaes
simultneas.
A abstrao de recursos til pois minimiza os conflitos no uso de hardware. Os
programas executam mais rapidamente.
3. A gerncia de atividades permite compartilhar o processador, executando mais de
uma aplicao ao mesmo tempo. Identifique as principais vantagens trazidas por essa
funcionalidade e os desafios a resolver para implement-la.
A gerncia de atividades realiza o compartilhamento dos recursos de duas maneiras
distintas (no tempo e no espao).
Quando um recurso compartilhado no tempo, diferentes programas ou usurios
aguardam sua vez de us-lo. Por exemplo, com somente uma CPU e mltiplos programas
precisando ser executados nela, o sistema operacional aloca a CPU a um programa, e aps
este ser executado por tempo suficiente, outro programa obtm seu uso, ento outro e, por
fim, o primeiro programa novamente.
Quando um recurso compartilhado no espao, a memria principal dividida entre
vrios programas em execuo. Assim, cada um pode residir ao mesmo tempo na memria
(por exemplo, a fim de ocupar a CPU temporariamente). Existindo memria suficiente para
abrigar mltiplos programas, mais eficiente mant-los nela em vez de destinar toda a
memria a um o deles.

A vantagem que vrios programas podem ser executados ao mesmo tempo, e maneira
mais rpida. Um dos desafios para a implementao da gerncia de atividades a memria,
pois caso no exista memria suficiente para abrigar mltiplos programas, o processador no
funcionar de maneira to eficiente.

4. O que caracteriza um sistema operacional de tempo real? Quais as duas


classificaes de sistemas operacionais de tempo real e suas diferenas?
Um sistema operacional de tempo real tem o tempo como parmetro fundamental. Por
exemplo, em sistemas de controle de processos industriais, computadores de tempo real
devem coletar dados sobre o processo de produo e us-los para controlar as mquinas na
fbrica. Eles se classificam em dois:
a) Sistema de tempo real crtico: as aes precisam necessariamente ocorrer em
determinados instantes (ou em determinado intervalo de tempo). Por exemplo, se um carro
est se movendo por uma linha de montagem, certas aes devem ser realizadas em
momentos especficos. Se um rob roldador realizar seu trabalho soldar- muito cedo ou
muito tarde o carro estar perdido.
b) Sistema de tempo real no crtico: o descumprimento ocasional de um prazo,
embora no desejvel, aceitvel e no causa nenhum dano permanente. Sistemas de udio
digital ou multimdia pertencem essa categoria.
5. O que diferencia o ncleo do restante do sistema operacional?
O kernel responsvel por ser o elo do hardware (parte fsica) com o software (parte
lgica) do computador. Em outras palavras, o principal objetivo gerenciar o computador e
permitir que os aplicativos sejam executados e faam uso dos recursos que a mquina tem. O
ncleo tambm tem que garantir, por exemplo, que a memria RAM seja usada em seu
potencial sem risco para o computador.
Assim que voc liga o computador, o kernel acionado e comea a detectar todo o
hardware que ele possui e o que precisa para funcionar (monitor, placa de vdeo, etc.). Depois
que o sistema operacional carregado, o ncleo assume outras funes: gerenciar os
processos, os arquivos, a memria e os dispositivos perifricos, fazendo com que ele seja o
organizador de tudo o que acontece na mquina.
6. Seria possvel construir um sistema operacional seguro usando um processador que
no tenha nveis de privilgio? Por qu?
No, pois os nveis de privilgio so o que formam o sistema operacional.

Os nveis de privilgio podem ser divididos em aplicao, bibliotecas, sistema


operacional e processador.
O nvel de aplicao responsvel por executar a aplicao desejada pelo usurio,
possivelmente trocando informaes com o mesmo.
As bibliotecas so conjuntos de funes usadas pelo programador para fazer o
programa acessar recursos protegidos da mquina.
O terceiro nvel, o sistema operacional, se encarrega de executar as instrues no
privilegiadas de forma a otimizar a utilizao de recursos da mquina.
O nvel de processador o principal, onde o computador realmente pensa. Tudo o
que acontece nos outros nveis serve para simplificar o uso do sistema atravs de instrues,
que o processador entende. O conjunto de instrues no-privilegiadas pode ser usado
diretamente por todos os nveis acima. O conjunto de instrues privilegiadas, porm, s
pode ser usado pelo sistema operacional. Esses dois conjuntos so as interfaces entre o
processador e os outros nveis.
7. O processador Pentium possui dois bits para definir o nvel de privilgio, resultando em 4
nveis distintos. A maioria dos sistemas operacionais para esse processador usa somente os nveis
extremos (0 e 3, ou 002 e 112 ). Haveria alguma utilidade para os nveis intermedirios?
Sim, os nveis intermedirios so usados em tcnicas de virtualizao nas plataformas
Intel/AMD, essa virtualizao se baseia na reduo de privilgios do sistema operacional convidado:
o hipervisor e o sistema operacional hospedeiro executam no nvel 0, o sistema operacional convidado
executa no nvel 1 ou 2 e as aplicaes do sistema convidadoe xecutam no nvel 3. Essas formas de
estruturao de sistema so denominadas modelo 0/1/3 e modelo 0/2/3, respectivamente.
A figura a seguir exemplifica o uso dos nveis de proteo em processadores AMD/Intel:

08) Quais as diferenas entre interrupes, excees e traps?


- Interrupo: causada por dispositivos externos ao processador. Nesse caso o processador suspende
seu fluxo de execuo corrente e desvia para um endereo pr-definido, onde se encontra uma rotina
de tratamento de interrupo.

- Excees: So eventos gerados pelo prprio processador, que podem ocasionar o desvio de execuo
usando o mesmo mecanismo das interrupes.
- Traps: So eventos causados pelo prprio processador. Pode-se dizer que uma interrupo que
comuta o processador para o nvel privilegiado e procede de forma similar ao tratamento de uma
interrupo.
09) Quais as implicaes de mascarar interrupes? O que pode ocorrer se o processador
ignorar interrupes por muito tempo? O que poderia ser feito para evitar o mascaramento de
interrupes?
Os processadores tm tipicamente uma mscara interna de interrupo com o que permite o
sotfware ignorar toda interrupo de hardware externo ao mesmo tempo que definido. Esta mscara
pode oferecer acesso mais rpido do que acessar o registro da mscara de interrupo (IMR) em um
PIC, ou desabilitar as interrupes do prprio dispositivo. Em alguns casos, como a da arquitetura
x86, desabilitar e habilitar as interrupes no prprio processador, como uma barreira de memria, ele
pode ser de fato mais lento.
Se o processador ignorar interrupes por demasiado tempo, ele processador perde tempo
para varrer todos os dispositivos do sistema para verificar se h eventos a serem tratados ou no.
Para evitar o mascaramento de interrupes, uma soluo seria construir funes de
entrada/sada assncronas, ou seja, o processador no precisa esperar a concluso de cada operao
solicitada a um dispositivo, pois o dispositivo gera uma interrupo para avisar o processador
quando a operao for concluda.
10. O comando em linguagem C fopen uma chamada de sistema ou uma funo de
biblioteca? Por qu?
O comando em linguagem C fopen uma funo de uma biblioteca.
Para abrir, alterar ou criar um arquivo em seu HD necessrio criar uma espcie de vnculo
entre seu programa e um determinado endereo de memria, onde est localizado (ou vai se localizar)
o arquivo. Essa ligao um pouco mais complexa e de 'baixo nvel', mas isso no ser motivo de
preocupao, pois na linguagem C existe um tipo de dado, o FILE, que serve para trabalharmos
especificamente com arquivos, e j est inclusive na biblioteca padro do C, assim, podemos usar sem
nos preocupar em incluir biblioteca ou criar algum cdigo.
A operao de associao conhecida como abertura do arquivo e executada pela funo
fopen (= file open). O primeiro argumento da funo o nome do arquivo e o segundo argumento
"r" ou "w" para indicar se o arquivo deve ser aberto para leitura (= read) ou para escrita (= write). A
funo fopen devolve o endereo de um file (ou null, se no encontrar o arquivo especificado).
11. Monte uma tabela com os benefcios e deficincias mais significativos das principais
arquiteturas de sistemas operacionais.

Nome

Vantagens

Desvantagens

Sistemas Monolticos

Grande desempenho.

O sistema pode parar por causa


de um erro.

Sistemas em Camadas

Domnio das redes de


computadores.

Demora no pedido da
aplicao, prejudicando o
desempenho do sistema.

Sistemas Microncleos

Robustez e flexibilidade.

Custo associado s trocas de


mensagens muito elevado.

Mquinas Virtuais

Evita a construo de novas


aplicaes ou adaptao das j
existentes.

Custo adicional de execuo


dos processos na mquina
virtual em comparao com a
mquina real.

12. Relacione as afirmaes aos respectivos tipos de sistemas operacionais: distribudo (D),
multi-usurio (M), desktop (K), servidor (S), embarcado (E) ou de tempo-real (T):
[ T ] Deve ter um comportamento temporal previsvel, com prazos de resposta claramente definidos.
[ S ] Sistema operacional usado por uma empresa para executar seu banco de dados corporativo.
[ E ] So tipicamente usados em telefones celulares e sistemas eletrnicos dedicados.
[ D ] Neste tipo de sistema, a localizao fsica dos recursos do sistema computacional transparente
para os usurios.
[ M ] Todos os recursos do sistema tm proprietrios e existem regras controlando o acesso aos
mesmos pelos usurios.
[ E ] A gerncia de energia muito importante neste tipo de sistema.
[ K ] Sistema que prioriza a gerncia da interface grfica e a interao com o usurio.
[ S ] Construdo para gerenciar de forma eficiente grandes volumes de recursos.
[ K ] O MacOS X um exemplo tpico deste tipo de sistema.
[ E ] So sistemas operacionais compactos, construdos para executar aplicaes especficas sobre
plataformas com poucos recursos.
13. A operao em modo usurio permite ao processador executar somente parte
das instrues disponveis em seu conjunto de instrues. Quais das seguintes
operaes no deveriam ser permitidas em nvel usurio? Por qu?
(a) Ler uma porta de entrada/sada
(b) Efetuar uma diviso inteira
(c) Escrever um valor em uma posio de memria
(d) Ajustar o valor do relgio do hardware
(e) Ler o valor dos registradores do processador

(f) Mascarar uma ou mais interrupes


Resposta: Letras c - Escrever um valor em uma posio de memria, e f - Mascarar uma ou mais
interrupes, pois o hardware ao realizar a tentativa de execuo dessas operaes ir gerar uma
exceo e abortar as operaes solicitadas pelo nvel de usurio e no caso do windows mostrar a
seguinte mensagem: este programa executou uma instruo ilegal e ser finalizado.
14,15
16. Considere as afirmaes a seguir, relativas aos diversos tipos de sistemas operacionais:
I. Em um sistema operacional de tempo real, a rapidez de resposta menos importante que a
previsibilidade do tempo de resposta.
II. Um sistema operacional multi-usurios associa um proprietrio a cada recurso do sistema e
gerencia as permisses de acesso a esses recursos.
III. Nos sistemas operacionais de rede a localizao dos recursos transparente para os usurios.
IV. Um sistema operacional de tempo real deve priorizar as tarefas que interagem com o usurio.
V. Um sistema operacional embarcado projetado para operar em hardware com poucos recursos.
Indique a alternativa correta:
(a) As afirmaes II e III esto corretas.
(b) Apenas a afirmao V est correta.
(c) As afirmaes III e IV esto erradas.
(d) As afirmaes III, IV e V esto erradas.
(e) Todas as afirmaes esto erradas.
Resposta: Letra e.
CAPTULO 2
1. Um PCB uma estrutura que contm informaes pertinentes ao processo relacionado a ele, ele
usado durante a troca de contexto e criado no momento da criao de um processo. Ele contm
dados como identificador do processo, prioridade, estado (sleeping, ativo), o espao de memria
associado a ele, entre outras informaes.
2. um conceito que foi criado para impedir a monopolizao do processador por parte de
um processo quando este passa um longo tempo sem terminar sua execuo(Ou nucna
termina) e sem executar tarefas e entrada/sada. Nessa soluo cada tarefa recebe um
tempo limite, denominado quantum, quando este tempo termina a tarefa suspensa e volta
para a fila de tarefas pendentes.
6. Relacione as afirmaes abaixo aos respectivos estados no ciclo de vida das tarefas (N: Nova,
P: Pronta, E: Executando, S: Suspensa, T: Terminada):
[ N ] O cdigo da tarefa est sendo carregado.
[ P ] A tarefas so ordenadas por prioridades.
[ E ] A tarefa sai deste estado ao solicitar uma operao de entrada/sada.
[ T ] Os recursos usados pela tarefa so devolvidos ao sistema.
[ P ] A tarefa vai a este estado ao terminar seu quantum.
[ P ] A tarefa s precisa do processador para poder executar.
[ S ] O acesso a um semforo em uso pode levar a tarefa a este estado.
[ E ] A tarefa pode criar novas tarefas.

[ E ] H uma tarefa neste estado para cada processador do sistema.


[ S ] A tarefa aguarda a ocorrncia de um evento externo.
7. RESPOSTA:
8.
9. O que so threads e para que servem?
Threads so cada fluxo de execuo em um programa, cada fluxo desse pode ser associado ao
ncleo (threads de ncleo) do sistema ou a um processo (threads de usurio). As threads permitem
paralelismo de forma mais simples que a criao de novos processos, sendo cada thread uma linha de
execuo diferente em um programa, o usurio pode criar vrias execues simultneas mais
facilmente.
10. Quais as principais vantagens e desvantagens de threads em relao
a processos?
Vantagens:
So mais fceis de criar e finalizar do que processos.
Permite que os processos sejam divididos em mltiplas linhas de
execuo, o que melhora o desempenho.
Facilita o desempenho no ponto de que torna-se mais fcil testar e
desenvolver o programa em mdulos.
Desvantagens:
Usar threads pode adicionar um nvel de complexidade a mais ao
programa, por exemplo, se as threads precisarem se comunicar.
Dependendo do modelo de implementao (por conta das formas gerencia
de threads), se uma thread solicitar uma operao de entrada/sada todas
as threads tero de ficar esperando esta operao ser concluda.
Quando as threads no so tratadas diretamente pelo sistema
operacional, um programa com 100 threads ter o mesmo tempo de
processador de um programa de 1 nica thread.
11. Fornea dois exemplos de problemas cuja implementao multi-thread no tem desempenho
melhor que a respectiva implementao sequencial.
O modelo de threads 1:1 adequado para a maioria das situaes e serve bem a maioria das
aplicaes. Porm, pouco escalvel: a criao de um grande nmero de threads impe um carga
significativa ao ncleo do sistema, inviabilizando aplicaes com muitas tarefas.
12. Associe as afirmaes a seguir aos seguintes modelos de threads: a) many-to-one (N:1); b)
one-to-one (1:1); c) many-to-many (N:M):
[ a ] Tem a implementao mais simples, leve e eficiente.
[ c ] Multiplexa os threads de usurio em um pool de threads de ncleo.
[ b ] Pode impor uma carga muito pesada ao ncleo.
[ a ] No permite explorar a presena de vrias CPUs pelo mesmo processo.
[ c ] Permite uma maior concorrncia sem impor muita carga ao ncleo.
[ a ] Geralmente implementado por bibliotecas.
[ b ] o modelo implementado no Windows NT e seus sucessores.
[ a ] Se um thread bloquear, todos os demais tm de esperar por ele.
[ c ] Cada thread no nvel do usurio tem sua correspondente dentro do ncleo.

[ c ] o modelo com implementao mais complexa.


13.

14. Ele atribui fraes de tempo para cada processo em partes iguais e de forma circular, RoundRobin um dos algoritmos mais simples e fceis de implementar usado para agendamento de
processos.
15. E = tq / tq + ttc
16. Serve para evitar a inanio e garantir a proporcionalidade expressa atravs das
prioridades
estticas. Este mtodo indica h quanto tempo uma tarefa est aguardando o
processador
e aumenta sua prioridade proporcionalmente. Assim ele evita que processos com
prioridade mais baixa nunca sejam executados.
17.
18.
19. A inverso de prioridades ocorre quando um processo de baixa prioridade
usa um recurso e impede que um processo de alta prioridade que tambm
necessita desse recurso continue sua execuo, dessa forma o processo de mais
alta prioridade fica suspenso esperando o de baixa prioridade concluir sua
operao.
O
protocolo
de
herana
de prioridade mais simples consiste em aumentar temporariamente a prioridade
do
processo de menor prioridade que detm o recurso de uso exclusivo do recurso
em uso. Isso faz com que o processo que est usando o recurso seja executado
mais rapidamente, liberando o recurso o quanto antes.