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