Title: Cap
1Capítulo 3 Estruturas dos Sistemas Operacionais
2Assuntos
- Componentes
- Serviços
- Chamadas
- Estrutura
- Máquinas virtuais
- Projeto e implementação
- Geração
3Componentes Comuns
- Gerência
- Processos
- Memória principal
- Arquivos
- Sistema de E/S
- Memória secondária
- Rede
- Sistema de proteção
- Interpretador de comandos
4Gerê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
5Gerê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
6Gerê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
7Gerência de Arquivos
- Um arquivo é um conjunto de informações
- Programas, dados
- Papel do SO
- Criar e apagar arquivos
- Criar e apagar diretórios
- Intruções para manipulação de arquivos e
diretórios - Mapear arquivos em armazenamento secundário
- Fazer backup
8Gerê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
9Rede (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
10Sistema 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
11Interpretador 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
12Serviç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
13Funções Adicionais
- Para permitir a operação eficiente
- Alocação de recursos
- Contabilidade
- Proteção
14Chamadas 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)
15Passagem usando Tabela
16Execução em MS-DOS
Rodando um Programa
No início
17Rodando Múltiplos Programas em UNIX
Sistema Operacional
18Modelos de Comunicação
Via Troca de Mensagens
Via Memória Compartilhada
19Programas 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
20Estrutura 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
21Estrutura em Camadas do DOS
22Estrutura 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
23Estrutura do Unix
24Trabalhando 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
25Visão das Camadas
26A Estrutura em Camadas do OS/2
27O 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
28Estrutura Cliente-Servidor do Windows NT
29Máquinas Virtuais
- HardwareOS 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
30Máquinas Virtuais (VM)
- Recursos compartilhados
- CPU é escalonada
- Spooling gera impressoras virtuais
- Um terminal normal passa a ser o console do
operador
31Modelo do Sistema
Non-virtual Machine
Virtual Machine
32Vantagens/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
33Má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
34Máquina Virtual Java (JVM)
35Objetivos 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
36Mecanismos 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
37Implementação de SO
- Tradicionalmente em assembly
- Hoje em linguagens de alto nível (C, C)
- Código em liguagens 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
38Gerando um sistema
- Nova máquina
- cross-compiler gera códigopara 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