Capítulo 3: Estruturas dos
Sistemas Operacionais
Video
Assuntos
 Componentes
Video
 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
Video
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
Video
Gerência de Memória Principal
 Memória
Video
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
Video
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
Video
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
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
Video
Rede (Sistemas Distribuídos)
 Um sistema distribuído é um
conjunto de CPUs
Video
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:
Video
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
Video
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
Video
Funções Adicionais
 Para permitir a operação
eficiente
Alocação de recursos
Contabilidade
Proteção
3.13
Video
Chamadas ao Sistema
 Interface entre um processo
e o SO
Video
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
Passagem usando Tabela
Video
3.15
Execução em MS-DOS
Video
No início
Rodando um Programa
3.16
Rodando Múltiplos
Programas em UNIX
Video
Sistema Operacional
3.17
Modelos de Comunicação
Video
Via Troca de Mensagens
Via Memória Compartilhada
3.18
Programas do SO
 Provêm ambiente para a
execução de programas
Video
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.19
Estrutura do MS-DOS
 DOS foi escrito para prover
máxima funcionalidade em
pouco espaço
 Não é dividido em módulos
 Monolítico
Video
Interfaces e níveis de funcionalidade não são
bem divididos
3.20
Estrutura em Camadas do DOS
Video
3.21
Estrutura do Unix
 Original: duas partes
Video
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.22
Estrutura do Unix
Video
3.23
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.24
Video
Visão das Camadas
Video
3.25
A Estrutura em Camadas do
OS/2
Video
3.26
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.27
Video
Estrutura Cliente-Servidor do
Windows NT
Video
3.28
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.29
Video
Máquinas Virtuais (VM)
 Recursos compartilhados
Video
CPU é escalonada
Spooling gera impressoras
virtuais
Um terminal normal passa a ser o console do
operador
3.30
Modelo do Sistema
Video
Non-virtual Machine
Virtual Machine
3.31
Vantagens/Desvantages das
VM
 Isolamento entre máquinas
virtuais
Video
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.32
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
Video
Class loader (carga)
Class verifier (verificação)
Runtime interpreter (interpretação)
 Compiladores de tempo real (just-in-time
JIT) aumentam a performance
3.33
Máquina Virtual Java (JVM)
Video
3.34
Objetivos no Projeto de um SO
 Para o usuário
Conveniente, fácil, confiável,
seguro e rápido
Video
 Para o projetista
Fácil de projetar, implementar, manter,
flexível, confiável, livre de erros e eficiente
3.35
Mecanismos e Políticas
 Mecanismos determinam
como fazer
 Políticas determina o que fazer
 Separação é importante
Video
Permite a implementação de diferentes
políticas usando o mesmo mecanismo
3.36
Implementação de SO
 Tradicionalmente em assembly
 Hoje em linguagens de alto
Video
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
3.37
Gerando um sistema
 Nova máquina
 cross-compiler gera código
para outra arquitetura
Video
 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.38
Download

português