Você está na página 1de 27

Sistemas Operacionais

Parte 03 – principais componentes, estrutura e


chamadas ao sistema

Prof. Kleber Vieira Cardoso


Tópicos
● Principais componentes de um SO
● Estrutura de um SO
● Chamadas ao sistema
Principais componentes
Gerência de processos
● Processo é um programa em execução
● Basicamente, é um contêiner que mantém as
informações necessárias para executar o programa
● Cada processo possui seu espaço de
endereçamento
– Inclui o executável, dados e pilha
● Cada processo possui um conjunto de recursos
– Registradores, lista de arquivos abertos, lista de
processos relacionados, etc.
Gerência de processos (cont.)
● Cria e destrói processos
● Controla modos de execução
● Escalona os processos
● Trata o chaveamento de contexto
● Controla prioridades
● ...
Gerência de memória
● Controla o acesso à memória principal
● Armazena espaço para os processos
● Isola os processos
● Auxilia na comunicação entre processos
● ...
Sistema de arquivos
● Persiste os dados em uma memória secundária
● Traz programas da memória secundária para
se tornarem processos na memória principal
● Pode auxiliar na implementação da memória
virtual
● ...
Gerência de dispositivos
● Controla os dispositivos de hardware
● Avisa à gerência de processos quando algum
dispositivo precisa de atenção (e.g., conclusão
de uma operação ou falha)
● Cria uma camada de abstração para o próprio
SO
● ...
Tópicos
● Principais componentes de um SO
● Estrutura de um SO
● Chamadas ao sistema
Estrutura de um SO
● Há várias abordagens para a estruturação:
● Sistemas monolíticos
● Sistemas de camadas
● Micronúcleo
● Híbrido
● Sistemas cliente-servidor
● Máquinas virtuais
● Exonúcleo
Estrutura de um SO (cont.)
● Sistema monolítico – coleção de rotinas ligadas
a um grande executável binário
● Módulos carregados dinamicamente melhoram o
desempenho, mas não alteram o projeto do SO
● Exemplos: Linux e FreeBSD
Estrutura de um SO (cont.)
● Sistema de camadas – uma generalização para
organizar o SO em uma hierarquia
● Exemplo: THE (Technische Universiteit Eindhoven)
Estrutura de um SO (cont.)
● MULTICS aperfeiçoa a generalização das
camadas através de seus anéis com diferentes
privilégios
● THE introduziu um novo projeto, mas ainda era um
único grande executável
Ring 3

Ring 2 Least privileged

Ring 1

Ring 0

Kernel

Most privileged
Device drivers

Device drivers

Applications
Estrutura de um SO (cont.)
● Micronúcleo
● Principal objetivo é buscar alta confiabilidade
através de um conjunto pequeno de módulos que
executam em modo núcleo
– O restante do SO executa em modo usuário, assim como
os demais programas
● Motivação: grande quantidade de falhas (bugs)
encontrados comumente em SOs
– Especialmente, em controladores de dispositivos (device
drivers) fornecidos pelos fabricantes de hardware
● Exemplo: QNX, L4 e MINIX 3
Estrutura de um SO (cont.)
● Micronúcleo (cont.)
● Fora do núcleo, o sistema pode ser estruturado em
camadas com diferentes privilégios
– Por exemplo, MINIX 3 utilizada três camadas
Estrutura de um SO (cont.)
● Híbrido – intermediário entre monolítico e
micronúcleo
● Exemplo: família Microsoft NT (Windows NT,
Windows 2000, Windows XP, Windows Vista,
Windows 8...) e Mac OS X
Estrutura de um SO (cont.)
● Sistema cliente-servidor
● Uma generalização do micronúcleo
● Exemplo: GNU Hurd
● Em um equipamento

● Distribuído
Estrutura de um SO (cont.)
● Monitor de máquina virtual (hipervisor)
● Estende os conceitos de máquina virtual e
multiprogramação do SO
– SO pode ser um programa executado sobre um
hipervisor
– Múltiplos SOs podem ser escalonados sobre o mesmo
hardware
● Exemplo: VM/370 (de 1972)
Estrutura de um SO (cont.)
● Redescoberta da virtualização
● Motivação: execução de diferentes serviços (e-mail,
Web, FTP, etc.) com isolamento adequado,
terceirização de recursos computacionais, execução de
aplicação que existe apenas para determinado SO
● Tipos de hipervisores

Não depende de um SO Depende de um SO


Estrutura de um SO (cont.)
● Exonúcleo
● Ao invés de clonar o hardware e mapear as
solicitações de recursos, como na virtualização, o
hardware é apenas particionado, isto é, os recursos
são divididos
● Gerenciamento dos recursos é feito fora do núcleo,
enquanto a proteção é mantida dentro do núcleo
– Reduz a transparência no acesso ao hardware
– Melhora o desempenho
– Exemplo: MIT Xok
Tópicos
● Principais componentes de um SO
● Estrutura de um SO
● Chamadas ao sistema
Conceito importante
● Chamada ao sistema (ou chamada de sistema)
● Oferece acesso aos serviços do SO
– Permite ao SO controlar o acesso aos recursos de
hardware e software (do próprio SO e de outros
programas)
● Semelhante a uma chamada de sub-rotina (função,
procedimento), porém o controle é passado para o
SO
– É o núcleo que implementa as chamadas de sistema
Chamada ao sistema
● Passo-a-passo de uma chamada: read
count = read(fd, buffer, nbytes);
Chamada ao sistema
● Exemplos:
Chamada ao sistema (cont.)
● Algumas chamadas da interface API Win32
Exercícios
1) Compare a estrutura de núcleo monolítico com
um micronúcleo, citando uma vantagem e uma
desvantagem de cada um.
2) Um SO portável é aquele que pode ser
portado de uma arquitetura de sistema para
outra sem modificações. Explique porque não é
factível construir um SO completamente
portável.
3) Máquinas virtuais se tornaram muito populares
por múltiplas razões. No entanto, elas também
possuem desvantagens. Comente sobre uma
delas.
Exercícios (cont.)
4) SOs modernos desacoplam o espaço de
endereço de um processo do endereço físico
da memória. Liste duas vantagens dessa
abordagem.
5) Para um programador, uma chamada ao
sistema se parece com qualquer outra
chamada a um procedimento/função de uma
biblioteca. É importante que um programador
saiba quais procedimentos resultam em uma
chamada ao sistema? Sob quais circunstâncias
e por que?

Você também pode gostar