Você está na página 1de 6

Estrutura do Sistema Operacional

Um sistema tão grande e complexo quanto um sistema operacional


moderno deve ser cuidadosamente construido para que funcione bem e
posssa ser facilmente modificado.

Uma abordagem comum é dividir a tarefa em pequenos componentes em


vez de ter um sistema monolítico.

• Sistemas monolíticos – Não há nenhuma estrutura, o SO é escrito


como uma coleção de procedimentos.

• Sistemas em camadas - Hierarquias de camadas construídas uma


sobre a outra.

• Máquinas virtuais - Camada idêntica ao hardware que executa vários


sistemas operacionais.

• Modelo cliente-servidor - Remover código para camadas mais altas.


Gerenciar processo cliente e processo servidor.

• Multiprogramação (Sistema multiprogramado)


 Diversos programas são mantidos na memória ao mesmo tempo.
 Pode-se ter, por exemplo, a execução ao mesmo tempo do
programa 1 que espera por uma solicitação de E/S e do programa
2 que necessita apenas de cálculos do processador.
 Pseudo-paralelismo: Vários programas são executados em uma
unidade de tempo (sistema com um processador) dando a
sensação de que são executados ao mesmo tempo.
 Paralelismo real: sistema multiprocessado onde cada processador
executa um programa.
Sistemas Operacionais – Aula 3 18
Estrutura simples

Existem vários sistemas comerciais que não possuem uma estrutura


bem definida. Frequentemente, tais sistemas operacionais começaram
como sistemas pequenos, simples e limitados, crescendo além do seu
escopo original. Exemplo MS-DOS.
É escrito pra prover maior funcionalidade em menor espaço. Não é
dividido em módulos.

UNIX
O sistema operacional UNIX original possuia estrutura limitada pelas
funcionalidades do hardware. O SO UNIX consiste em duas partes
separadas:
• Programas de sistema
• Kernel
Tudo o que está abaixo da interface de chamadas do sistema e acima
do hardware físico é o Kernel.
Sistemas Operacionais – Aula 3 19
O Kernel fornece sistema de arquivos, escalonamento de CPU,
gerência de memória e outras funções do SO através de chamadas de
sistema.

Abordagem em camadas

A modularização de um sistema pode ser feita de muitas formas; um


método é a abordagem em camadas, na qual o sistema operacional é
dividido em uma série de camadas (níveis), cada qual construída sobre
camadas inferiores. A camada inferior (camada 0) é o hardware; a camada
superior (camada N) é a interface de usuário.
A principal vantagem da abordagem em camadas é a modularidade. As
camadas são selecionadas de forma que cada uma utilize as funções
(operações) e serviços apenas das camadas de nível mais baixo.
A principal dificuldade da abordagem em camadas está na definição
adequada das várias camadas. Como uma camada só pode usar as camadas
que estão em um nível inferior, é preciso haver um planejamento
cuidadoso.
Sistemas Operacionais – Aula 3 20
Um último problema com implementações em camada é que elas
tendem a ser menos eficientes que outros tipos.
Essas limitações causaram alguma reação contra a estrutura em
camadas nos últimos anos. Menos camadas com mais funcionalidades estão
sendo projetadas, fornecendo a maior parte das vantagens do código
modularizado e evitando os difíceis problemas da definição e interação em
camadas.

Microkernels

Esse método estrutura o sistema operacional removendo todos os


componentes não-essencias do kernel e implementando-os como programas
de sistema e de nível de usuário. O resultado é um kernel menor.
Os benefícios da abordagem do microkernel incluem a facilidade de
expandir o sistema operacional.
Sistemas Operacionais – Aula 3 21
Todos os novos serviços são adicionados ao espaço de usuário e,
consequetemente, não exigem modificação do kernel. Quando o kernel
precisa ser modificado, as alteraçoes tendem a ser menores, porque o
microkernel é um kernel menor.
O microkernel também fornece mais segurança e confiabilidade, pois
a maior parte dos serviços estão sendo executados como processos de
usuário, em vez de kernel. Se um serviço falhar, o resto do sistema
operacional permanece inalterado.

Máquinas Virtuais

Uma máquina virtual leva a abordagem em camadas a sua conclusão


lógica. Ela trata o hardware e o kernel do SO como se ambos estivessem
no mesmo nível.
A abordagem de máquina virtual não fornece funcionalidade adicional,
em vez disso, fornece uma interface idêntica ao hardware subjacente.

(a) máquina não-virtual (b) máquina virtual


Sistemas Operacionais – Aula 3 22
Usando as técnicas de escalonamento de CPU e de memória virtual,
um sistema operacional pode criar a ilusão de que um processo tem seu
próprio processador com sua própria memória (virtual).

Benefícios:
o O conceito de máquina virtual fornece proteção completa dos
recursos do sistema uma vez que cada máquina virtual é isolada
de todas as outras máquinas virtuais. Este isolamento,
entretanto, não permite compartilhamento direto dos recursos.
o Um sistema de máquina virtual é um veículo perfeito para
pesquisa e desenvolvimento de sistemas operacionais. O
desenvolvimento do sistema é feito na máquina virtual, em vez
de na máquina física, sem perturbar as operações normais do
sistema.
Embora o conceito de máquina virtual seja útil, ele é difícil de
implementar. Muito trabalho é necessário para fornecer uma duplicata
exata da máquina subjacente.

Sistemas Operacionais – Aula 3 23

Você também pode gostar