Download - 625891 - sistemas operacionais - estacio

Transcript

SISTEMAS OPERACIONAIS

n  Prof. Gerhard Saboia

Capítulo 3: Estruturas do Sistema Operacional

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Capítulo 3: Estruturas do Sistema Operacional

n  Componentes do Sistema n  Serviços do Sistema Operacional n  Chamadas de Sistema (System Calls)‏ n  Programas do Sistema n  Estrutura do Sistema n  Máquinas Virtuais n  Projeto e Implementação do Sistema n  Geração do Sistema

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.1 Componentes do sistema

n  Gerênciamento de Processos n  Gerênciamento da Memória Principal n  Gerênciamento de Arquivos n  Gerênciamento do Sistema de E/S n  Gerênciamento do Armazenamento Secundário n  Conexão em Rede n  Sistema de Proteção n  Sistema Interpretador de Comandos

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Gerenciamento de Processos

n  Um processo é um programa em execução. Um processo precisa de certos recursos, incluindo tempo de CPU, memória, arquivos e dispositivos de E/S, para realizar sua tarefa.

n  O sistema operacional é responsável pelas seguintes atividades relacionadas ao gerenciamento de processos. n  Criar e remover processos. n  Suspender e retomar processos. n  Oferecer mecanismos para:

n  Sincronismo de processos n  Comunicação entre processos

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Gerenciamento da Memória Principal

n  Memória é um grande vetor de palavras ou bytes, cada um com seu próprio endereço. É um repositório de dados rapidamente acessíveis, compartilhado pela CPU e pelos dispositivos de E/S.

n  É um dispositivo de armazenamento volátil. Perde seu conteúdo em caso de falha do sistema.

n  O SO é responsável pelas seguintes atividades relacionadas ao gerenciamento de memória:

n  Controlar que partes da memória estão sendo usadas atualmente e por quem.

n  Decidir quais processos devem ser carregados para a memória quando o espaço de memória se tornar disponível.

n  Alocar e desalocar espaço de memória conforme a necessidade.

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Gerenciamento de arquivos

n  Um arquivo é uma coleção de informações relacionadas, definidas por seu criador. Normalmente, os arquivos representam programas (nos formatos de fonte e objeto) e dados.

n  O sistema operacional é responsável pelas seguintes atividades relacionadas ao gerenciamento de arquivos:

n  Criação e remoção de arquivos. n  Criação e remoção de diretórios. n  Suporte a primitivas para manipulação de arquivos e diretórios. n  Mapeamento de arquivos em armazenamento secundário. n  Backup de arquivos em meios de armazenamento estáveis (não voláteis).

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Gerenciamento do Sistema de E/S

n  O sistema de E/S consiste em: n  Um componente de gerenciamento de memória que inclui o uso de

buffers, caches e spools. n  Uma interface genérica para drivers de dispositivos. n  Drivers para dispositivos de hardware específicos.

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Gerenciamento do Armazenamento Secundário

n  Como a memória principal (armazenamento primário) é volátil e muito pequena para acomodar todos os dados e programas permanentemente, o sistema de computador precisa fornecer armazenamento secundário para apoiar a memória principal.

n  A maioria dos sistemas de computador modernos utiliza discos como o principal meio de armazenamento on-line para programas e dados.

n  O sistema operacional é responsável pelas seguintes atividades relacionadas ao gerenciamento de disco:

n  Gerenciamento do espaço livre n  Alocação do armazenamento n  Escalonamento do disco

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Conexão em Rede (Sistemas Distribuídos) ‏

n  Um sistema distribuído é um conjunto de processadores que não compartilham memória ou um relógio, cada processador possui sua própria memória local.

n  Os processadores são conectados por uma rede de comunicação. n  A comunicação ocorre através do uso de um protocolo. n  Um sistema distribuído fornece ao usuário acesso a vários recursos do

sistema. n  O acesso a um recurso compartilhado permite:

n  Maior velocidade de computação n  Maior disponibilidade de dados n  Maior confiabilidade

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Sistema de Proteção

n  Proteção se refere a um mecanismo para controlar o acesso dos programas, processos ou usuários aos recursos do sistema e do usuário.

n  O mecanismo de proteção precisa: n  distinguir entre uso autorizado e não autorizado n  especificar os controles a serem impostos n  fornecer um meio para a imposição

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Interpretador de Comandos‏

n  Muitos comandos são dados ao sistema operacional pelas instruções de controle, que cuidam de: n  Criação e gerenciamento de processos n  Tratamento de E/S n  Gerenciamento do armazenamento secundário n  Gerenciamento da memória principal n  Acesso ao sistema de arquivos n  Proteção n  Uso da rede

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Interpretador de Comandos‏

n  O programa que lê e interpreta instruções de controle é chamado diferentemente de: n  interpretador de linha de comando n  shell (no UNIX)‏

n  Sua função é apanhar e executar a próxima instrução de comando.

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.2 Serviços do Sistema Operacional

n  Execução de programa – capacidade do sistema para carregar um programa na memória e executá-lo.

n  Operações de E/S – como os programas do usuário não podem executar operações de E/S diretamente, o sistema operacional precisa prover meios para realizar a E/S.

n  Manipulação do sistema de arquivos – capacidade do programa para ler, gravar, criar e excluir arquivos.

n  Comunicações – troca de informações entre processos sendo executados no mesmo computador ou em sistemas diferentes ligados por uma rede. Implementadas através de memória compartilhada ou pela troca de mensagens.

n  Detecção de erro – assegura computação correta detectando erros na CPU e no hardware da memória, nos dispositivos de E/S ou nos programas do usuário.

Facilitando a vida do programador !!!!!

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Funções adicionais do Sistema Operacional

n  As funções adicionais existem, não para auxiliar o usuário, mas para garantir operações eficientes do sistema. n  Alocação de recursos – os recursos são alocados a diversos

usuários ou a múltiplas tarefas sendo executadas ao mesmo tempo. n  Contabilidade – controla e registra que usuários usam quanto e que

tipo de recursos do computador para contabilizar cobrança ou para acumular estatísticas de uso.

n  Proteção – assegura que todo o acesso aos recursos do sistema seja controlado.

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.3 Chamadas de sistema

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.3 Chamadas de sistema

n  As chamadas de sistema (system calls) fornecem a interface entre um programa em execução e o sistema operacional.

n  Geralmente disponíveis como instruções em linguagem assembly. n  Linguagens definidas para substituir a linguagem assembly para a

programação de sistemas permitem que as system calls sejam feitas diretamente (por exemplo, C, C++).

n  Três métodos são usados para passar parâmetros entre um programa em execução e o sistema operacional:

n  Passar parâmetros via registradores. n  Armazenar os parâmetros em uma tabela na memória, e o endereço na

tabela é passado como um parâmetro em um registrador. n  O programa coloca (push) os parâmetros na pilha e o Sistema Operacional

retira (pop) os parâmetros da pilha.

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Passagem de Parâmetros por Tabelas

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Tipos de Chamada de Sistema

n  Controle de processos n  Gerência de arquivos n  Gerência de dispositivos n  Manutenção de informações

n  Data/hora, atributos de processos e arquivos (get/set)‏

n  Comunicações

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Execução do MS-DOS: monotarefa

At System Start-up Running a Program

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Unix Executando Vários Programas

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Comunicação

n  A comunicação pode ocorrer usando a troca de mensagens ou memória compartilhada

Msg Passing" Shared Memory"

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.4 Programas de Sistema

n  Os programas de sistema oferecem um ambiente conveniente para desenvolvimento e execução de programas. Podem ser divididos em:

n  Manipulação de arquivos n  Informações de status n  Suporte para linguagem de programação n  Carga e execução de programas n  Comunicações n  Aplicações (ou aplicativos)‏ n  Interpretador de comandos

n  A visão do Sistema Operacional pela maioria dos usuários é definida pelos programas de sistema e não pelas suas chamadas de sistema

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.5 Estrutura do Sistema‏

n  SO: sistema grande e complexo n  Deve ser cuidadosamente desenvolvido

n  Funcionar corretamente n  Ser facilmente modificado (atualizado)‏

n  MS-DOS n  Estrutura monolítica n  Escrito para fornecer o máximo de funcionalidade no menor

espaço possível n  Não dividido em módulos n  Embora o MS-DOS tenha alguma estrutura, suas interfaces e

níveis de funcionalidade não são bem separados

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura de Camadas do MS-DOS ‏

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura do UNIX‏

n  UNIX – Limitado pela funcionalidade do hardware, o Sistema Operacional UNIX original possuía estrutura limitada. O UNIX consiste em duas partes separadas. n  Os programas de sistema n  O Kernel

n  Consiste em tudo abaixo da interface da chamada de sistema e acima do hardware.

n  Provê o sistema de arquivos, escalonamento de CPU, gerência de memória e outras funções de Sistema Operacional; um grande número e funções para um único nível.

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura do Sistema UNIX

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Abordagem em Camadas

n  O sistema operacional é dividido em uma série de camadas (níveis), cada uma construída sobre as camadas inferiores. A camada mais baixa (camada 0) é o hardware; a mais alta (camada N) é a interface com o usuário.

n  Com a modularidade, as camadas são selecionadas de modo que cada uma utilize funções (operações) e serviços apenas de camadas de nível mais baixo.

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Uma Camada do Sistema Operacional

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura em Camadas do OS/2

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura de microkernel

n  Move bastante do núcleo para o espaço do “usuário”. n  A comunicação entre os módulos do usuário usa a troca de

mensagens. n  Benefícios:

n  Facilidade de estender um microkernel n  Facilidade de portar para novas arquiteturas n  Maior confiabilidade (menos código rodando no modo kernel)‏ n  Maior segurança

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Estrutura Cliente-Servidor do Windows NT

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.6 Máquinas Virtuais

n  Máquina virutual: programa que simula hardware n  Sob esse aspecto hardware (emulado) e kernel estão no mesmo nível

n  Uma máquina virtual oferece uma interface que é idêntica à do hardware básico.

n  O sistema operacional cria a ilusão de múltiplos processos, cada um sendo executado em seu próprio processador, com sua própria memória (virtual).

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Máquinas Virtuais

n  Os recursos do computador físico são compartilhados para criar as máquinas virtuais. n  O escalonamento de CPU pode criar a aparência de que os usuários

possuem seus próprios processadores n  O spooling e um sistema de arquivos podem oferecer leitoras de

cartões virtuais e impressoras de linha virtuais n  Um terminal de usuário normal de tempo compartilhado age como o

console do operador da máquina virtual

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Máquinas virtuais

Non-virtual Machine" Virtual Machine"

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Vantagens e Desvantagens das Máquinas Virtuais

n  O conceito de máquina virtual provê proteção completa dos recursos do sistema, uma vez que cada máquina virtual é completamente isolada de todas as outras máquinas virtuais. Esse isolamento, entretanto, não permite qualquer compartilhamento direto dos recursos.

n  Um sistema de máquina virtual é um veículo perfeito para pesquisa e desenvolvimento de Sistemas Operacionais. O desenvolvimento do sistema é feito na máquina virtual, e não em uma máquina física, e não interrompe a operação normal do sistema.

n  O conceito de máquina virtual é difícil de implementar devido ao esforço necessário para oferecer uma duplicata exata da máquina utilizada.

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Máquina Virtual Java

n  Os programas Java compilados são bytecodes para plataforma neutra executados por uma máquina virtual Java (JVM).

n  A JVM consiste em n  Carregador de classes n  Verificador de classe n  Interpretador de tempo de execução

n  Os compiladores Just-In-Time (JIT) aumentam a performance n  Tradução para linguagem nativa da máquina

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Máquina Virtual Java

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.7 Projeto e implementação do sistema

n  Objetivos do usuário – o sistema operacional deve ser conveniente no uso, fácil de aprender, confiável, seguro e veloz.

n  Objetivos do sistema – o sistema deve ser fácil de projetar, implementar e manter, além de ser flexível, confiável, livre de erros e eficiente.

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Mecanismos e Políticas

n  Os mecanismos determinam como fazer algo, as políticas decidem o que será feito. n  Política: escalonador de processos justo n  Mecanismo: melhor algoritmo que implementa o escalonamento

n  A separação entre política e mecanismo é um princípio muito importante, pois permite máxima flexibilidade se as decisões da política precisarem ser modificadas posteriormente.

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

Implementação do Sistema

n  Tradicionalmente escritos em linguagem assembly, os sistemas operacionais agora podem ser escritos em linguagens de alto nível (C, C++) ‏

n  Código escrito em uma linguagem de alto nível: n  Pode ser escrito mais rápido n  É mais compacto n  É mais fácil de entender e depurar

n  Um sistema operacional é muito mais fácil de portar (passar para outro hardware) se for escrito em uma linguagem de alto nível

Tradução de Operating Systems Concepts de Silberschatz, Galvin e Gagne (c) 2002

3.8 Geração do Sistema

n  Os sistemas operacionais são projetados para execução em qualquer uma dentre uma classe de máquinas n  O sistema precisa ser configurado ou gerado para cada instalação de

computador específica.

n  O programa SYSGEN obtém informações referentes à configuração específica do sistema de hardware. n  Que CPU é utilizada e/ou quantas? n  Quanto há de memória física disponível? n  Quais são os dispositivos dispooníveis? n  Que opções do SO são desejadas (número máximo de processos,

quantidade de disco, algoritmo de escalonamento, serviços, etc.)‏