Estruturas dos Sistemas
Operacionais
Assuntos
 Componentes
 Serviços
 Chamadas
 Estrutura
 Máquinas virtuais
 Projeto e implementação
 Geração
3.2
Componentes Comuns
 Gerência
Processos
Memória principal
Arquivos
Sistema de E/S
Memória secondária
 Rede
 Sistema de proteção
 Interpretador de comandos
3.3
Gerência de Processos
 Um processo é um programa
em execução
 Necessita de CPU, memória,
arquivos, dispositivos de E/S
 Papel do SO
Criar e terminar processos
Suspender e recomeçar processos
Prover mecanismos para
Sincronização
Comunicação entre processos
3.4
Gerência de Memória Principal
 Memória
Lista endereçável
Perde conteúdo se desligada
 Papel do SO
Manter dados sobre uso da memória
Que partes, quem é o dono
Decidir que processo carregar quando há
espaço
Alocar e desalocar memória
3.5
Gerência de Entrada e Saída
 O sistema de E/S consiste de
Um sistema de buffer-caching
Uma interface geral para
gerenciadores (drivers) de dispositivos
Gerenciadores (drivers) para dispositivos de
hardware
3.6
Gerência de Arquivos
 Um arquivo é um conjunto de
informações
Programas, dados
 Papel do SO:
Criar e apagar arquivos
Criar e apagar diretórios
Instruções para manipulação de arquivos e
diretórios
Mapear arquivos em armazenamento
secundário
Fazer backup
3.7
Gerência de Armazenamento
Secundário
 Para manter dados entre
acionamentos do computador
 Normalmente discos
 Papel do SO:
Gerência de espaço livre
Alocação de espaço
Escalonamento do acesso à disco
3.8
Rede (Sistemas Distribuídos)
 Um sistema distribuído é um
conjunto de CPUs
não compartilham memória
ou relógio
 Eles se comunicam via rede
usando protocolos
 Vantagens
Mais rápido
Maior disponibilidade
Maior confiabilidade
3.9
Sistema de Proteção
 Mecanismo para controlar
acesso de processos ou
usuários à recursos do sistema
ou de usuários
 O sistema de proteção precisa:
Distinguir uso autorizado do não autorizado
Especificar os controles a serem impostos
Prover uma maneira de manter obediência
3.10
Interpretador de Comandos
 Interface entre usuário e SO
 Chamado também de “shell”
 Busca um comando do console
e o executa
 Pode também ser gráfico
3.11
Serviços do Sistema
Operacional
 Execução de programas
 Operações de E/S
 Manipulações do sistema
de arquivos
 Comunicação entre processos
 Detecção de erros
3.12
Funções Adicionais
 Para permitir a operação
eficiente
Alocação de recursos
Contabilidade
Proteção
3.13
Chamadas ao Sistema
 Interface entre um processo
e o SO
Disponíveis como instruções
em assembly
Também em bibliotecas de linguagens de
alto nível
 Passagem de parâmetro
Registradores
Endereço de tabela em memória
Pilha (stack)
3.14
Execução em MS-DOS
No início
Rodando um Programa
3.15
Rodando Múltiplos
Programas em UNIX
Sistema Operacional
3.16
Modelos de Comunicação
Via Troca de Mensagens
Via Memória Compartilhada
3.17
Programas do SO
 Provêm ambiente para a
execução de programas
Manipulação de arquivos
Status
Suporte a linguagens de programação
Carga e execução de programas
Comunicação
 A interface com o usuário é definida pelos
programas do SO, e não pelas chamadas
3.18
Estrutura do MS-DOS
 DOS foi escrito para prover
máxima funcionalidade em
pouco espaço
 Não é dividido em módulos
 Monolítico
Interfaces e níveis de funcionalidade não são
bem divididos
3.19
Estrutura em Camadas do DOS
3.20
Estrutura do Unix
 Original: duas partes
Kernel
Tudo entre a interface de
chamadas ao sistema e o hardware
Prove sistema de arquivos, escalonamento
da CPU, gerência de memória, etc
Programas do sistema
Shell
Outros: ls, more, chmod, vi
3.21
Estrutura do Unix
3.22
Trabalhando em Camadas
 O SO pode ser dividido em
camadas (níveis) construidas
sobre outras camadas, da
interface com o hardware até o hardware
 Programando de forma modular, cada
nível só usa serviços do nível inferior, e
oferece serviços para o nível superior
3.23
A Estrutura em Camadas do
OS/2
3.24
O Microkernel
 O kernel é minimizado
 Funções são feitas no espaço
do usuário
 Comunicação usa passagem de
mensagems
 Vantagens
Facilmente extensível
Facilmente portável
Maid confiável
Mais seguro
3.25
Estrutura Cliente-Servidor do
Windows NT
3.26
Máquinas Virtuais
 Hardware+OS considerado
como hardware
 Interface idêntica à máquina
original (não necessariamente)
 OS cria a ilusão de múltiplas máquinas
independentes sobre uma única máquina
real
3.27
Máquinas Virtuais (VM)
 Recursos compartilhados
CPU é escalonada
Spooling gera impressoras
virtuais
Um terminal normal passa a ser o console do
operador
3.28
Modelo do Sistema
Non-virtual Machine
Virtual Machine
3.29
Vantagens/Desvantages das
VM
 Isolamento entre máquinas
virtuais
Proteção completa
Impossível compartilhamento de recursos
 Perfeita para desenvolvimento de SO
Não é necessário dedicar uma máquina
Maior controle
 Difícil de implementar
Cópia exata
3.30
Máquina Virtual Java (JVM)
 Programas java compilados
são bytecodes que podem
rodar em qualquer arquitetura
onde uma JVM exista
 A JVM consiste de
Class loader (carga)
Class verifier (verificação)
Runtime interpreter (interpretação)
 Compiladores de tempo real (just-in-time
JIT) aumentam a performance
3.31
Máquina Virtual Java (JVM)
3.32
Objetivos no Projeto de um SO
 Para o usuário
Conveniente, fácil, confiável,
seguro e rápido
 Para o projetista
Fácil de projetar, implementar, manter,
flexível, confiável, livre de erros e eficiente
3.33
Mecanismos e Políticas
 Mecanismos determinam
como fazer
 Políticas determina o que fazer
 Separação é importante
Permite a implementação de diferentes
políticas usando o mesmo mecanismo
3.34
Implementação de SO
 Tradicionalmente em assembly
 Hoje em linguagens de alto
nível (C, C++)
 Código em linguagens de alto nível
Mais rápido de escrever
Mais compacto
Mais fácil de entender e depurar
 É mais simples portar um SO (mudar a
arquitetura de hardware) se ele é escrito em
ling. de alto nível
3.35
Gerando um sistema
 Nova máquina
 cross-compiler gera código
para outra arquitetura
 Sistemas podem ser
configurados para uma determinada máquina
 SYSGEN e config
 BOOTING
 carregar o kernel
 Programa de Bootstrap
 código em ROM que encontra o kernel, carrega-o em
memória e inicial a sua execução
3.36
Download

Visão Geral