Você está na página 1de 35

Estrutura de um S.O.

Prof.ª Marcia Henke

henke@redes.ufsm.br

DPADI0016– SISTEMAS OPERACIONAIS


Agenda

‣ INTRODUÇÃO
↳ Histórico dos SOs
↳ Conceitos de SOs
↳ Chamadas de Sistema
↳ Estrutura de um SO

2
INTRODUÇÃO: Estrutura de um SO
Introdução – Estrutura de um SO

Teve-se uma visão externa do S.O.

Neste momento se olhará para a estrutura


interna

4
Estrutura de um S.O.
Um S.O. NÃO é um bloco único e fechado de
software executando sobre o hardware.

É composto por diversos componentes, cada


um com objetivos e funcionalidades
complementares.

5
Estrutura de um S.O.
Os componentes são:
↳ Núcleo (Kernel)
↳ Drivers
↳ Código de inicialização
↳ Programas utilitários

6
Estrutura de um S.O.
Núcleo
↳ Coração de um S.O.
↳ Responsável pela gerência de recursos do
hardware usados pelas aplicações.
↳ Também implementa as principais
abstrações utilizadas

7
Estrutura de um S.O.
Drivers
↳ Módulos de código específicos para acessar
dispositivos físicos.
⇾Exemplos: drivers de disco rígidos IDE,
SCSI, portas USB, impressoras, placa de
vídeo.
↳ Tipicamente construído pelo fabricante do
hardware.
↳ Deve ser compilado para ser acoplado ao
S.O.

8
Estrutura de um S.O.
Códigos de inicialização
↳ Tem a função de executar uma série de
tarefas complexas para iniciar (ativar) o
hardware.
⇾Reconhecer os dispositivos instalados,
testá-los e configurá-los.
↳ Outra tarefa é carregar o núcleo do S.O. em
memória e iniciar sua operação

9
Estrutura de um S.O.
Programas utilitários
↳ Facilitam o uso do sistema computacional,
provendo funcionalidades complementares ao
núcleo.
⇾Formatação de discos e mídias,
configuração de dispositivos, manipulação
de arquivos, interpretar comandos, terminal,
interface gráfica, gerência de janelas....

10
Estrutura de um S.O.

11
Introdução – Estrutura de um SO
A partir de todos os componentes descritos
os SOs apresentam estruturas diferentes.
As estruturas abordados serão os seguintes:

Sistemas monolíticos
Sistemas em camadas
Micronúcleo
Modelo cliente-servidor
Máquinas virtuais
Exonúcleo
12
Introdução – Estrutura de um SO
SISTEMAS MONOLÍTICOS

Todos os componentes do núcleo operam


dentro de um único núcleo e interagem sem
restrição de acesso e por demanda.
Todos os módulos do sistema são compilados
individualmente e depois ligados uns aos
outros em um único arquivo-objeto
Simples
Desempenho
Primeiros sistemas: MS-DOS e UNIX 13
Introdução – Estrutura de um SO
SISTEMAS MONOLÍTICOS

Para cada chamada de sistema há uma rotina de serviço que se


encarrega dela. As rotinas utilitárias realizam tarefas necessárias
para varias rotinas de serviço, como buscar dados dos programas
dos usuários.
14
Introdução – Estrutura de um SO
SISTEMAS MONOLÍTICOS
1. Um programa principal executa a rotina
requerida.
2. Um conjunto de rotinas de serviço que
executa as chamadas de sistema.
3. Um conjunto de rotinas de utilidade que
ajudam as rotinas de serviço.

15
Introdução – Estrutura de um SO
SISTEMAS MONOLÍTICOS

Carregado quando o
computador é iniciado

Executam as chamadas do
sistemas

Realizam tarefas necessárias


para as varias rotina de serviço
16
Introdução – Estrutura de um SO
SISTEMAS DE CAMADAS

Trata-se de uma generalização da abordagem


monolítica
Organização do S.O. em hierarquias de
camadas
Primeiro sistema a contemplar a estrutura em
camadas é o THE (Technische Hogeschool
Eindhoven) com 6 camadas
Cada camada usa funções e serviços
implementados da camada abaixo.
17
Introdução – Estrutura de um SO
SISTEMAS CAMADAS

18
Introdução – Estrutura de um SO
SISTEMAS CAMADAS

A camada 0 tratava da alocação do


processador, realizando chaveamento dos
processos.
A camada 1 encarregava-se do gerenciamento
de memória.
A camada 2 encarregava-se da comunicação
entre cada processo e o console de operação.

19
Introdução – Estrutura de um SO
SISTEMAS CAMADAS

A camada 3 encarregava-se do gerenciamento


dos dispositivos de E/S
Na camada 4 encontravam-se os programas
de usuários
Na camada 5 encontravam-se o processo
operador do sistema.

20
Introdução – Estrutura de um SO

SISTEMAS CAMADAS

Vantagem: isolar as funções do sistema


operacional, facilitando manutenção e depuração
Desvantagem: cada nova camada implica uma
mudança no modo de acesso

21
Introdução – Estrutura de um SO
MICRONÚCLEO

Objetivo com micronúcleo é alcançar alta


confiabilidade por meio da divisão do S.O. em
pequenos módulos
Apenas um módulo é executado em modo
núcleo
Os demais executado como processos do
usuário

22
MICRONÚCLEO
Modo usuário com os
servidores, trabalho do
S.O.

Drivers dos dispositivos

Executado em três camadas de processos


Todas executando em modo usuário
23
Introdução – Estrutura de um SO
MODELO CLIENTE-SERVIDOR

Trata-se de uma ligeira variação da ideia do


micronúcleo (servidores e os clientes)
Distingue-se entre duas classes de processos,
os SERVIDORES e os CLIENTES

Comunicação entre um cliente e servidor


acontece por meio de mensagens

24
Introdução – Estrutura de um SO

MODELO CLIENTE-SERVIDOR

Um processo cliente constrói uma mensagem


dizendo o que deseja e a envia ao servidor
apropriado

25
Introdução – Estrutura de um SO
MODELO CLIENTE-SERVIDOR

Abaixo é apresentada uma generalização


dessa ideia executando clientes e servidores
em computadores diferentes

26
Introdução – Estrutura de um SO
MODELO CLIENTE-SERVIDOR

Cada vez mais sistemas envolvem usuários


em seus computadores pessoais, como
clientes e máquinas grandes em outros
lugares, como servidores

Ex.: web opera dessa forma.

27
Introdução – Estrutura de um SO
MÁQUINAS VIRTUAIS

Extensão da abordagem de camadas.

O kernel S.O. é tratado com se fosse parte do


hardware.

Uma VM provê uma interface similar ao do


hardware da máquina.
o S.O. cria a ilusão de múltiplos processadores cada
um com a sua própria memória virtual.
28
Introdução – Estrutura de um SO
MÁQUINAS VIRTUAIS
Provêm completo isolamento dos recursos do sistema
uma vez que as VMs são isoladas umas das outras.
o O isolamento, no entanto, impede o compartilhamento direto
de recursos.

Plataforma ideal para desenvolvimento de sistemas


operacionais pois não põe em risco a operação do
sistema real.

Difíceis de implementar devido ao esforço em emular


a interface da máquina real.

29
Introdução – Estrutura de um SO
MÁQUINAS VIRTUAIS
Máquinas virtuais de sistema
↳ Suporte a um ou mais S.O. completos
↳ Exemplos: VMWare, Xen e VirtualBox

30
Introdução – Estrutura de um SO
MÁQUINAS VIRTUAIS
Divididas em VMs de aplicação ou de
sistema
Máquinas virtuais de aplicação
↳ Suporte a apenas um processo ou aplicação.
↳ Geralmente usadas por linguagens de programação
↳ Java, C#, Python, Perl, Lua e Ruby

31
Introdução – Estrutura de um SO
EXONÚCLEO

Dar a cada usuário um subconjunto de


recursos, possibilitando a execução em modo
núcleo na camada mais inferior denomina
esse programa de EXONÚCLEO.

Tarefa do EXONÚCLEO é alocar recursos às


máquinas virtuais e verificar se alguma
máquina esta tentando usar recurso de outra

32
Introdução – Estrutura de um SO
EXONÚCLEO

Principal vantagem é não existir mais


necessidade de mapeamento.

Por exemplo:
↳ Cada maquina virtual pensa que tem seu próprio disco, com blocos
indo de 0 a um valor máximo, de modo que o monitor de maquina
virtual deve manter tabelas para remapear os endereços de disco.

Com o EXONUCLEO esse mapeamento


deixa de existir
33
Introdução – Estrutura de um SO
EXONÚCLEO

Precisa somente o registro de para qual


máquina virtual foi atribuído o recurso.
Como vantagem adicional separa, com menor
custo, a multiprogramação do código do S.O.
do usuário
Mantem as MV umas fora do alcance das
outras.

34
Referências

MAZIERO, Carlos, Sistemas Operacionais: conceitos e


mecanismos, 8 Ago 2014. DAINF UTFPR
TANENBAUM, A. S. Sistemas Operacionais Modernos.
Prentice-Hall, 2009. 3ª edição

35