O documento descreve diferentes modelos de estruturação de sistemas operacionais: sistemas monolíticos sem organização interna, sistemas em camadas hierárquicas, sistemas em anéis concêntricos e o modelo cliente-servidor. Exemplos como Linux, THE, MULTICS, Windows NT e Mac OS X são citados para ilustrar cada modelo.
2. 29/04/14
Sistemas Monolíticos:
● Não existe nenhuma organização dentro do núcleo do
sistema operacional:
Um sistema operacional
monolítico caracteriza-se por
não possuir nenhuma estrutura
interna no seu núcleo. O núcleo
do sistema é composto por um
conjunto de procedimentos,
compilados em um único
arquivo, que podem chamar uns
aos outros. Alguns
procedimentos implementam
chamadas ao sistema
operacional, e outros são
procedimentos utilitários, usados
para executar tarefas comuns a
estas chamadas.
3. 29/04/14
Sistemas Monolíticos:
● O projeto do sistema não é estruturado:
– O sistema é um conjunto de procedimentos compilados
num único arquivo objeto.
– Os procedimentos possuem uma interface bem definida.
– Os procedimentos podem chamar uns aos outros.
– Os procedimentos dependem da implementação dos
outros para funcionar.
4. 29/04/14
Sistemas Monolíticos:
● O modelo de chamadas ao sistema permite
uma estruturação:
– Um processo que usa os procedimentos de serviço.
– Um conjunto de procedimentos de serviço que
implementam a chamada de sistema.
– Um conjunto de procedimentos de utilitários usados pelos
procedimentos de serviço.
5. 29/04/14
Sistemas Monolíticos:
● O núcleo o Linux é um exemplo de
sistema monolítico:
– O acesso ao hardware é feito a partir dos
controladores de dispositivos.
– É dividido em cinco subsistemas.
6. 29/04/14
O núcleo do Linux é monolítico e
possui 5 subsistemas principais:
Escalonador;
Comunicação entre
processos;
Gerente de memória;
Sistema de arquivo virtual;
Interface de rede.
7. 29/04/14
Sistema em Camadas:
● O sistema operacional é estruturado
com uma hierarquia em camadas, onde
cada camada implementa uma parte
do sistema.
8. 29/04/14
Sistema em Camadas(2):
● O primeiro Sistema Operacional a adotar tal
modelagem foi oTHE, desenvolvido por
Edsger Dijkstra e seus alunos, a fim de que
funcionasse em um computador holandês,
denominado de Electrologica X8.
9. 29/04/14
Sistema em Camadas:
● OTHE possui a seguinte estrutura de seis camadas:
– Camada 0: Alocação do processador e responsável pela
multiprogramação;
– Camada 1: Gerenciamento (alocação) de memória para os
processos;
– Camada 2: Comunicação entre operador-processo
(Interpretador de Comandos e o Sistema Operacional) e
comunicação entre processos;
– Camada 3: Gerenciamento de Entrada/Saída;
– Camada 4: Programas de Usuário;
– Camada 5: Operador de Sistema;
10. 29/04/14
Sistema em Camadas:
Na estruturação do sistema
como uma hierarquia em
camadas, o núcleo do
sistema operacional é
dividido em camadas, sendo
que cada uma delas trata
do gerenciamento de
alguma parte do hardware,
fornecendo para as
camadas superiores uma
visão abstrata da parte do
hardware gerenciada por
esta camada.
11. 29/04/14
Sistema em Camadas:
● A hierarquia em camadas fornece uma
estruturação para o núcleo do sistema
operacional, mas um nível não é
obrigado a usar os serviços de um nível
inferior.
12. 29/04/14
Sistema em Anéis:
● O modelo em camadas inspirou o Sistema
MULTICS, onde ao invés de camadas, o sistema
foi estruturado em uma série de Anéis
Concêntricos, onde o mais interno tinha maior
privilégio que o mais externo.
13. 29/04/14
Sistema em Anéis:
● Semelhante ao Sistema Monolítico, quando um
Anel Externo necessitava de um procedimento
contido em um Anel Interno, era necessário
executar uma Chamada de Sistema, também
conhecida comoTRAP. No caso do MULTICS, tal
modelagem não era somente um auxílio, mas
estava realmente presente no sistema e inclusive
era protegido por hardware.
14. 29/04/14
Sistema em Anéis:
● A estrutura baseada em anéis tem as
seguintes vantagens sobre a estrutura em
camadas:
– Cada anel possui uma prioridade de acesso.
– A prioridade do anel depende da posição do anel na
hierarquia.
– A proteção do acesso é assegurada pelo hardware.
16. 29/04/14
Modelo cliente-servidor:
● Baseado no conceito de cliente e
servidor.
● O núcleo do sistema, chamado de
micronúcleo ou microkernel,
essencialmente trata da troca de
mensagens entre clientes e servidores.
18. 29/04/14
Modelo cliente-servidor:
● O microkernel trata somente da troca de
mensagens entre os processos rodando no
modo usuário, e do acesso aos dispositivos
físicos, mas não do seu gerenciamento.
● As outras partes do sistema são processos que
executam em modo usuário.
20. 29/04/14
Modelo cliente-servidor:
● Existem processos servidores, rodando no modo
usuário, executando quase todos os serviços do
sistema.
● O processo cliente que deseja um serviço do
sistema envia uma mensagem ao processo
servidor que executa o serviço.
● Ao receber a mensagem de um cliente, o
processo servidor executa o serviço, e depois
envia uma resposta ao cliente.
21. 29/04/14
Modelo cliente-servidor:
● Vantagens do modelo:
– O sistema é dividido em partes menores que são
mais fáceis de manter e gerenciar;
– Como os servidores executam em modo usuário,
um erro de programação não compromete o
sistema;
– Facilita a implementação de sistemas
distribuídos, pois os servidores não precisam
estar na mesma máquina.
23. 29/04/14
Modelo cliente-servidor:
● OWindows NT é um exemplo de sistema operacional
baseado no modelo cliente-servidor.
● Assim como o Mac OS X.
O sistema Mac OS X, que executa nos
computadores da linha Machintosh, é
baseado no sistema NeXTStep, que usa o
microkernel Mach para gerencial o
hardware do computador. Existe um único
servidor rodando no sistema, que é uma
versão do sistema BSD (baseado no
UNIX). O BSD acessa o hardware através
do Mach, e não diretamente através de
driver de dispositivos. Os programas ou
usam as chamadas BSD, ou as chamadas
ao Mach.