1) Quais as duas principais funções de um Sistema Operacional

Propaganda
1) Quais as duas principais funções de um Sistema Operacional?
Gerenciar Recursos – O sistema operacional deve gerenciar a utilização dos
recursos fornecidos pelo hardware, como processadores, memória, dispositivos de E/S, de
modo que mantenha o controle sobre qual usuário/programa utiliza qual recurso,
compartilhando os recursos entre os usuários/programas de modo seguro e sem conflitos.
Estender a máquina - O sistema operacional deve oferecer ao usuário uma maneira
mais acessível de programar/utilizar o hardware do que as próprias instruções que este
oferece. Por exemplo: o usuário não precisa saber qual a trilha e o setor do disco se deseja
gravar alguma informação, apenas faz uma chamada ao sistema que estende as instruções
de E/S, disponibilizando instruções mais amigáveis para estas e outras tarefas. Ou seja, o
sistema operacional atua como uma interface entre o hardware e o ambiente de software.
2) O que é multiprogramação? Cite duas razões para se ter multiprogramação?
Multiprogramação é uma técnica utilizada em sistemas operacionais para maximizar
o uso da CPU. Nesta técnica, a memória é dividida em várias partes que contém um job
cada. Enquanto um job está fazendo uma operação de E/S, a CPU passa a executar outro
job que esteja em outra parte da memória, evitando a ociosidade da CPU.
Uma razão para se ter multiprogramação é a maximização do uso da CPU obtida
por esta técnica. Outra razão é o uso mais inteligente dos recursos de hardware (CPU,
memória, E/S) que na época em que a técnica surgiu eram caros e não podiam ser
desperdiçados. Uma outra razão é o fato de aumentar o número de jobs concluídos por
unidade de tempo, melhorando a performance do sistema como um todo.
3) O que é Spooling?
È uma técnica que permite que os jobs fiquem armazenados em um buffer (no disco
magnético) para uso do CPU. Quando um job que está na memória termina de executar, um
outro é lido deste buffer e colocado na partição onde este (o que acabou) estava. Esta
técnica automatizou parte do processo de entrar com programas a serem executados (antes
eram fitas que eram gravadas e levadas de um equipamento para outro). A técnica de
Spooling (simultaneous peripheral operations on-line) é muito utilizada em impressão, onde
há um buffer (fila) onde os arquivos a serem impressos ficam armazenados e a impressora
os lê sequencialmente, liberando o PC para outro tipo de uso.
4) Defina as propriedades essenciais dos seguintes tipos de Sistemas Operacionais:
a. Batch
Execução contínua até o fim do processamento de um lote, ou até o uso de E/S;
Uso para aplicações CPU-Bound;
Maximizar o uso da CPU é o fator fundamental;
b. Time-Sharing
Compartilhamento da CPU entre os jobs (processos) ao longo do tempo;
Uso em sistemas multiusuários/multiprocessos;
Escalonamento de recursos;
c. Tempo-real
Tempo é o fator fundamental;
Prazos rígidos para o processamento das tarefas, nem antes, nem depois (críticos) ou
com uma certa folga (não crítico).
Controle de máquinas, áudio digital, multimídia.
d. Distribuído
Distribui a computação entre vários processadores físicos;
Compartilhamento de recursos;
Uso de redes;
5) Descreva as diferenças entre multiprocessamento simétrico e assimétrico. Quais as
vantagens e desvantagens dos sistemas multiprocessador?
Multiprocessamento assimétrico é uma técnica para sistemas multiprocessados, onde
somente um processador tem acesso ao núcleo (e suas estruturas) e realiza o papel de
escalonador dos outros processadores, formando uma estrutura mestre-escravo. Já no
multiprocessamento simétrico, cada processador executa uma cópia idêntica
do SO e muitos processos podem executar de uma vez sem deterioração do desempenho,
porém surgem problemas de sincronismo entre cada cópia do SO de cada processador.
A grande vantagem dos sistemas multiprocessador é o ganho de desempenho, ao
processar mais de uma tarefa ao mesmo tempo, além da confiabilidade e economia. Suas
desvantagens são os inconvenientes na gerência da execução paralela.
6) Porque sistemas distribuídos são desejáveis?
Para solucionar complexos problemas computacionais, no entanto atualmente vem
sendo largamente utilizado com outras finalidades, como em um sistema distribuído
conectando vários computadores pela internet o qual está tipicamente envolvido com
comunicação de dados.
7) Qual é a diferença entre um trap e uma interrupção? Qual é o uso de cada uma das
funções?
Ambas são exceções, ou seja, ambas desviam a CPU do fluxo de execução atual. A
principal diferença é que as interrupções caracterizam eventos assíncronos gerados
normalmente por algum dispositivo de hardware (I/O, relógio...) que interrompe a
ativividade atual da CPU para que este evento seja tratado, isto é feito normalmente, através
de rotinas pré-definidas no sistema operacional. Já a trap é gerada por software e indica
algum evento de erro ou exceção, é normalmente utilizada para mudar o modo de execução
do modo usuário para o modo kernel.
8) Para que tipos de operações o DMA é útil? Quais as implicações de uma organização
sem DMA na multiprogramação?
O DMA é útil para operações em que haja a necessidade da transferência de
informação em blocos de algum dispositivo para a memória principal, com o intuito do uso
posterior dos dados pela CPU. O DMA permite que os dados sejam transferidos sem a
necessidade do gasto de computação durante a transferência, liberando a CPU para outro
processamento durante este período. Após a conclusão da transferência, o chip DMA
manda um sinal de interrupção para a CPU, informando-a do fim.
Uma organização sem DMA na multiprogramação, torna mais lenta a transferência
de dados presente em uma operação de E/S, pois sempre que houver a transferência de
dados entre a memória e o dispositivo, haverá utilização da CPU; enquanto que através do
DMA, a configuração da transferência de vários blocos é feita somente no início da
transação.
9) Quais das seguintes instruções deveriam ser privilegiados?
a. Set valor do relógio X
b. Ler o relógio
c. Limpar memória X
d. Desligar interrupções X
e. Chavear modo usuário/sistema
10) Que características de hardware (máquina) são necessárias para suportar proteção para
o kernel do SO ? Explique brevemente cada característica e como elas permitem o kernel
controlar os programas de usuário.
Proteção de memória – não deixa uma área de memória ser afetada por programas
de outra área de memória. O kernel pode alocar os processos do usuário cada um com sua
área de memória, não permitindo a invasão de um processo à área do outro ou à área do
sistema. É feita através de registradores base e limite e do mapeamento de endereços físicos
para endereços virtuais através da MMU.
Modos de operação – Restringe algumas instruções da CPU ao sistema. A operação
em modo kernel tem acesso a todas as instruções do hardware, enquanto que em modo
usuário, boa parte das instruções, principalmente de E/S e configuração, não estão
disponíveis. Permite que somente o kernel tenha controle sobre os dispositivos de E/S, bem
como a outras configurações.
Timer e Interrupções – Não deixa que um único job tenha monopólio sobre o
sistema. Permite a execução de operações nos dispositivos de E/S em paralelo com o
processamento de outro job na CPU.
11) Qual é o propósito das chamadas de sistema?
Permitir a programas aplicativos o acesso a recursos e operações do sistema, dentre
os quais: operações de entrada e saída, comunicação inter-processos, leitura do relógio
interno, manipulação de arquivos em disco, serviços de impressão, etc.
12) Usando registrador de base e registrador limite, faça um desenho da unidade de
gerencia de memória (MMU) que possa prover proteção de memória entre processos?
13) O modelo cliente-servidor é popular em sistemas distribuídos. Ele pode ser usado em
um sistema single-computer?
Pode, pois este modelo apenas especifica a estrutura do sistema através de processos
clientes e processos servidores (que detém as funcionalidades do sistema) e ambos são
executados em modo usuário. Nesse modelo, o sistema apenas trataria da comunicação
entre estes processos e das políticas envolvidas nessa comunicação. Portanto, essa estrutura
pode ser implementada em modo local, e em sistemas distribuídos, apenas diferenciando-se
o modo de comunicação entre os processos.
Download