Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso
Capítulo 3: Funcionalidades dos Sistemas Operacionais Componentes de um Sistema Operacional Serviços do Sistema Operacional Chamadas ao Sistema Programas de Sistema Estrutura do Sistema Máquinas Virtuais Projeto e Implementação de Sistemas SO - Prof. Edilberto Silva 2
Componentes básicos de um Sistema Operacional Gerenciador de Processos; Gerenciador da Memória Principal; Gerenciador dos Meios de Armazenamento Secundários (Discos); Gerenciador do Sistema de E/S; Gerenciador de Arquivos; Proteção do Sistema; Suporte a Interconexão em Rede (protocolos, serviços, etc.), e Interpretador de Comandos. SO - Prof. Edilberto Silva 3
Gerenciador de Processos Um processo é um programa em execução e necessita de certos recursos, incluindo tempo de CPU, memória, arquivos e dispositivos de E/S etc. O S O é responsável pelas seguintes atividades relacionadas com o gerenciamento de processos: Criação e eliminação de processos. Suspensão e retomada de processos. SO - Prof. Edilberto Silva 4
Execução do MS-DOS At System Start-up Running a Program SO - Prof. Edilberto Silva 5
UNIX Executando Múltiplos Programas SO - Prof. Edilberto Silva 6
Gerenciador da Memória Principal Memória principal é um dispositivo de armazenamento volátil. Ela perde o seus conteúdo no caso de falha no sistema. O S O é responsável pelas seguintes atividades relacionadas com gerência de memória: Saber quais as partes da memória estão sendo utilizadas e por quem. Decidir quais processos carregar na memória, quando existe espaço disponível. Alocar e desalocar áreas de memória conforme necessário. SO - Prof. Edilberto Silva 7
Gerenciador de Arquivos Comumente, arquivos representam programas (tanto na forma de código fonte como objeto) e dados. O S O é responsável pelas seguintes atividades relacionadas com gerenciamento de arquivos: Criação e eliminação de arquivos. Criação e eliminação de diretórios. Mapeamento de arquivos no espaço de armazenamento secundário. Cópias de segurança (backup) de arquivos em mídia de armazenamento estável (não volátil). SO - Prof. Edilberto Silva 8
Gerenciamento do Sistema de E/S O sistema de E/S consiste de: Um sistema de memória intermediária (buffer-caching). Uma interface geral para drivers de dispositivos. Drivers para os dispositivos de hardware específicos. SO - Prof. Edilberto Silva 9
Suporte às Redes (Sistemas Distribuídos) Um sistema distribuído é uma coleção de processadores que não compartilham memória ou um clock. Os processadores no sistema estão conectados através de uma rede de comunicação. Acesso a recursos compartilhados permite: Aumento na velocidade da computação (computation speed-up); Aumento na disponibilidade dos dados, Aumento na confiabilidade. SO - Prof. Edilberto Silva 10
Sistema de Proteção Proteção diz respeito ao mecanismo para controlar o acesso pelos programas, processos, ou usuários de recursos do sistema e do próprio usuário. O mecanismo de proteção deve: Distinguir entre uso autorizado e não autorizado. Especificar os controles a serem impostos. Prover um meio de garantir a proteção. SO - Prof. Edilberto Silva 11
Interpretador de Comandos Muitos comandos são passados ao sistema operacional através de declarações de controle que tratam de: Criação e gerenciamento de processos; Manipulação de E/S; Gerenciamento de meio de armazenamento secundário; Gerência da memória principal; Acesso ao sistema de arquivos; Proteção; Suporte à comunicação em redes. SO - Prof. Edilberto Silva 12
Serviços do Sistema Operacional Execução de Programas capacidade do sistema de carregar um programa na memória e executá-lo. Operações de E/S uma vez que os programas do usuário não podem executar operações de E/S diretamente, o sistema operacional deve prover alguma forma de execução de tais operações. Manipulação de sistema de arquivos capacidade dos programas de ler, gravar, criar e apagar arquivos. Comunicações troca de informações entre processos executando tanto no mesmo computador quanto em sistemas diferentes interligados via rede. Implementado via memória compartilhada ou troca de mensagens. Detecção de erros garantir a correta computação, detectando erros no hardware (CPU e memória), nos dispositivos de E/S ou em programas do usuário. SO - Prof. Edilberto Silva 13
Chamadas ao Sistema Chamadas de sistemas fornecem a interface entre um programa em execução e o sistema operacional. Normalmente disponíveis como instruções em linguagem assembly. Alguns métodos são empregados na passagem de parâmetros entre programas em execução e o sistema operacional. Passagem de parâmetros em registradores. Armazenar os parâmetros em uma tabela na memória, e passar o endereço da tabela como parâmetro em um registrador. SO - Prof. Edilberto Silva 14
Passagem de Parâmetros como uma Tabela SO - Prof. Edilberto Silva 15
Modelos de Comunicação A comunicação acontece usando passagem de mensagens ou memória compartilhada. Message Passing Shared Memory SO - Prof. Edilberto Silva 16
Programas de Sistemas Programas de sistemas fornecem um ambiente conveniente para o desenvolvimento e execução de programas. Eles podem ser divididos em: Manipulação de Arquivos Informações (status) Modificação de Arquivos Suporte a Linguagens de Programação Execução e carga de programas Comunicações Programas Aplicativos (utilitários do sistema) Grande parte da visão do usuário de um sistema operacional é definida pelos programas de sistemas, e não pelas chamadas de sistemas. SO - Prof. Edilberto Silva 17
Estruturas de Sistema MS-DOS escrito para fornecer a maior funcionalidade no menor espaço. Não é dividido em módulos. Apesar do MS-DOS ter alguma estrutura, suas interfaces e níveis de funcionalidade não são bem separados. SO - Prof. Edilberto Silva 18
Estrutura em Camadas do MS-DOS SO - Prof. Edilberto Silva 19
Estrutura do UNIX UNIX Limitado pela funcionalidade do hardware, o sistema operacional. Ele consiste de duas partes separáveis. Programas do Sistema O kernel Abrange tudo abaixo da interface das chamadas de sistemas e acima do hardware físico. Provê o sistema de arquivos, escalonamento da CPU, gerenciamento de memória e outras funções do S O. SO - Prof. Edilberto Silva 20
Estruturas do UNIX SO - Prof. Edilberto Silva 21
Estruturas de Sistema Abordagem em Camadas O S O é dividido em um número de camadas (níveis), cada uma construída em cima das camadas inferiores. A camada mais abaixo (camada 0) é o hardware; a mais alta (camada N) é a interface com o usuário. Com modularidade, camadas são escolhidas de tal forma que cada função (operação) e serviços utilizados são somente das camadas de mais baixo nível. SO - Prof. Edilberto Silva 22
Uma camada de Sistema Operacional SO - Prof. Edilberto Silva 23
Estrutura em camadas do OS/2 SO - Prof. Edilberto Silva 24
Estruturas Microkernel A comunicação acontece entre os módulos dos usuários usando passagem de mensagens. Benefícios: - facilidade de estender o microkernel, - facilidade de portar o sistema operacional para outras arquiteturas, - mas confiança pois menos código roda no modo kernel, e - maior segurança. SO - Prof. Edilberto Silva 25
Estrutura Windows NT Client- Server SO - Prof. Edilberto Silva 26
Máquinas Virtuais Uma máquina virtual leva a abordagem em camadas ao extremo. Ela trata o hardware e o kernel do S O como se ambos fossem hardware. Uma máquina virtual fornece uma interface idêntica a do puro hardware abaixo. O S O cria a ilusão de múltiplos processos, cada um executando em seu próprio processador com sua própria memória (virtual). SO - Prof. Edilberto Silva 27
Modelos de Sistemas Non-virtual Machine Virtual Machine SO - Prof. Edilberto Silva 28
Vantagens/Desvantagens de Máquinas Virtuai O conceito de máquina virtual fornece proteção completa dos recursos do sistema uma vez que cada máquina virtual está isolada de todas as outras. Este isolamento, entretanto, não permite compartilhamento direto de recursos. Um sistema máquina virtual é o ambiente perfeito para pesquisa e desenvolvimento de S O. O conceito de máquina virtual é difícil de implementar devido ao trabalho necessário para fornecer um duplicação exata da máquina física. SO - Prof. Edilberto Silva 29
A Máquina Virtual Java A compilação dos programas em Java ocorrem na plataforma de Máquina Virtual Java(JVM). JVM consistes em: - carregador de classes; - verificador de classes; - interpretador runtime, e Compiladores Just-In-Time (JIT) aumentam a performance. SO - Prof. Edilberto Silva 30
Java Virtual Machine SO - Prof. Edilberto Silva 31
Implementação dos S Os Tradicionalmente escritos em linguagem assembly, S Os podem hoje ser escritos em linguagens de alto nível. Assim Podem ser escritos mais rapidamente. É mais compacto. É fácil de entender e depurar. Um S O é mais fácil de portar (mover para outro tipo de hardware) sendo escrito em uma linguagem de alto nível. SO - Prof. Edilberto Silva 32