Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Visão Geral: Estruturas do Sistema Operacional

8,750 views

Published on

Descrever os serviços que o sistema operacional oferece para usuários, processos e outros sistemas

Discutir as várias maneiras de estruturar um sistema operacional

Explicar como um sistema operacional é instalado, customizado e inicializado

Published in: Education
  • Be the first to comment

Visão Geral: Estruturas do Sistema Operacional

  1. 1. Visão Geral: Estruturas do SistemaOperacionalSistemas Operacionais IProf. Alexandre Duarte : http://alexandrend.comCentro de Informática | Universidade Federal da ParaíbaEstes slides são baseados no material que acompanha o livro OperatingSystems Concepts de Silberschatz, Galvin and Gagne
  2. 2. Objetivos Descrever os serviç os que o sistemaoperacional oferece para usuários, processos eoutros sistemas Discutir as várias maneiras de estruturar umsistema operacional Explicar como um sistema operacional éinstalado, customizado e inicializado
  3. 3. Serviços do sistema operacional
  4. 4. Serviços do sistema operacional:comodidade do usuário Interface do usuário Quase todo sistema operacional oferece uma Varia entre interface de linha de comando (CLI), interface gráfica (GUI) e Batch Execuç ão de programas O sistema deve ser capaz de carregar um programa na memó ria e iniciar efinalizar sua execuç ão com ou sem sucesso (indicando caso ocorra um erro) Operaç ões de E/S Um programa em execuç ão pode precisar realizar E/S, o que pode envolver umarquivo ou algum dispositivo de E/S Manipulaç ão do Sistema de Arquivos O sistema de arquivos é de particular interesse. Obviamente, programasprecisam realizar uma série de operaç ões envolvendo arquivos e diretó rios,incluindo: ler, gravar, criar, apagar, localizar, listar informaç ões e gerenciarpermissões
  5. 5. Serviços do sistema operacional:comodidade do usuário Comunicaç ão Processos podem trocar informaç ão em um mesmo computadorou através de uma rede A comunicaç ão pode ser realizada através de uma memó riacompartilhada ou por troca de mensagens Detecç ão de erros O SO precisa estar constantemente ciente sobre possíveis erros Podem ocorrer na CPU, no hardware de memó ria, nosdispositivos de E/S ou em um programa do usuário Para cada tipo de erro o SO deve tomar a medida apropriadapara garantir uma computaç ão correta e consistente Mecanismos de depuraç ão podem melhorar significativamente ahabilidade do usuário de fazer uso eficiente do sistema
  6. 6. Serviços do sistema operacional: operaçãoeficiente do sistema Alocaç ão de recursos Quando múltiplos usuários ou múltiplos jobs utilizam o sistema de formaconcorrente os recursos precisam ser alocados para cada um deles Contabilidade Controlar quanto de cada tipo de recurso os usuários utilizam Proteç ão e Seguranç a Os donos da informaç ão armazenada em um sistema com múltiplos usuários ouem um computador conectado a rede podem desejar controlar o uso dainformaç ão Proteç ão envolve garantir que todo acesso a qualquer recurso do sistema écontrole Seguranç a do sistema contra intrusos requer autenticaç ão e se estende paraproteger dispositivos de E/S externos contra acessos inválidos
  7. 7. Interface do usuário: CLI Uma interface de linha de comando (CLI) ouinterpretador de comandos permite ofornecimento direto de comandos ao sistema Algumas vezes são implementados no núcleo, algumasvezes são implementados como programas do usuário Algumas vezes têm-se muitas variaç ões: shells Inicialmente recebe um comando do usuário e o executa Os comandos podem ser comandos internos do SO ouapenas nomes de programas No segundo caso, adicionar novas funcionalidades aosistemas não requer alteraç ões no shell
  8. 8. Interface do usuário: GUI Uma metáfora mais amigável para a interface com o usuário(desktop) Geralmente inclui mouse, teclado e monitor Icones representam arquivos, programas, aç ões ,etc Diferentes botões do mouse causam aç ões diferentes no objetosda interface Conceito criado no Xerox PARC Muitos sistemas incluem tanto CLIs quanto GUIs Microsoft Windows tem uma GUI com um shell de comando Mac OS X da Apple usa a GUI “Aqua” com um kernel UNIX porbaixo e vários shells disponíveis Solaris tem uma CLI como GUIs opcionais (Java Desktop, KDE)
  9. 9. Interpretador de comando bash
  10. 10. GUI do Mac OS X
  11. 11. Chamadas de sistema Interface de programaç ão para os serviç os oferecidos pelo SO Geralmente escrita em uma linguagem de alto nível (C, C++) Na maioria das vezes são utilizadas pelos programas através deuma Application Program Interface (API) de mais alto nível ao invésde serem chamadas diretamente As três APIs mais comuns são Win32 API do Windows, POSIX APIpara sistemas POSIX-based (incluindo praticamente todas asversões do UNIX, Linux, e Mac OS X), e a API Java para a JavaVirtual Machine (JVM) Por que usar APIs ao invés de chamadas de sistema?
  12. 12. Implementação de chamadas desistema Tipicamente, cada chamada de sistema possui um númeroassociado A interface de chamada de sistemas mantém uma tabelaindexada com esses números A interface de chamada de sistema invoca a chamadadesejada no kernel do SO e retorna o estado e valores deretorno para o usuário Quem faz a chamada não precisa ter qualquer informaçãosobre como a chamada de sistema foi implementada Precisa apenas conhecer a interface e saber o que o SO farácomo resultado da chamada A maioria dos detalhes do SO ficam escondidos dos usuáriosatrás de APIs
  13. 13. Relação entre API e chamada desistema
  14. 14. Exemplo: biblioteca padrão de C Programa em C invocando a funç ão printf(), que utiliza achamada de sistema write()
  15. 15. Passagem de parâmetros em chamadas desistema Frequentemente a execuç ão de uma chamada desistema requer mais do que a identificaç ão da chamadadesejada Existem três métodos comuns para passagem deparâmetros para o SO Mais simples: passar os parâmetros em registradores Parâmetros armazenados em um bloco ou tabela na memó ria eo endereç o do bloco passado através de um registrador Parâmetros inseridos em uma pilha pelo programa edesempilhados pelo sistema operacional O método do bloco e da pilha não limitam o número outamanho dos parâmetros
  16. 16. Passagem de parâmetros via tabela
  17. 17. Tipos de chamadas de sistema Controle de processos Gerencia de arquivos Gerencia de dispositivos Manutenç ão da informaç ão Comunicaç ão Proteç ão
  18. 18. Exemplos de chamadas de sistema doWindows e Linux
  19. 19. Execução do MS-DOSApó s o boot Rodando um processo
  20. 20. FreeBSD rodando múltiplosprocessos
  21. 21. Programas de sistema Programas de Sistema fornecem um ambiente conveniente para odesenvolvimento e execuç ão de programas. Podem ser divididos em 7 categorias: Manipulaç ão de arquivos Informaç ões de estado Modificaç ão de arquivos Suporte a linguagens de programaç ão Carga e execuç ão de programas Comunicaç ão Aplicativos A visão que a maioria dos usuários tem do SO é definido pelos programasde sistema e não pelas chamadas de sistema
  22. 22. Programas de sistema Fornecem um ambiente conveniente para desenvolvimento e execuç ãode programas Alguns são apenas interfaces para chamadas de sistema; outros sãoconsideravelmente mais complexos Gerencia de arquivos: criar, remover, copiar, renomear, imprimir, listar,e manipular arquivos e diretó rios Informaç ões de estado Consulta de informaç ões do sistema: data, hora, quantidade de memó riadisponível, espaç o em disco, número de usuários Informaç ões detalhadas de desempenho, registro de execuç ão e depuraç ão Tipicamente estes programas formatam e imprimem informaç ões na saídapadrão Alguns sistemas podem implementar um registro, utilizado para armazenarinformaç ões de configuraç ão
  23. 23. Programas de sistema Modificaç ão de arquivos Editores de texto para criar e modificar arquivos Comandos especiais para localizar conteúdo em arquivos e realizartransformaç ões no texto Suporte a linguagens de programaç ão Compiladores, montadores, depuradores, interpretadores Carga e execuç ão de programas Carregadores absolutos, carregadores com relocaç ão, editores de ligaç ão Comunicaç ão Prover mecanismos para criar conexões virtuais entre processos, usuários esistemas computacionais Permitir que usuários enviem mensagens para outros usuários, naveguemem páginas na web, se conectem remotamente, transfiram arquivos de ummáquina para outra, etc
  24. 24. Projeto e implementação de sistemasoperacionais Não háuma soluç ão única universalmente aceita para o projeto edesenvolvimento de sistemas operacionais mas algumasabordagens têm sido utilizadas com sucesso A estrutura interna dos sistemas operacionais pode variaramplamente Inicia-se pela definiç ão de objetivos e especificaç ões Afetada pela escolha do hardware e pelo tipo do sistema Requisitos do usuário e Requisitos do Sistema Requisitos do usuário: o SO deve ser conveniente, fácil deaprender, confiável, seguro e rápido Requisitos do sistema: o SO deve ser fácil de projetar,implementar e manter e também flexível, confiável, sem erros eeficiente
  25. 25. Projeto e implementação de sistemasoperacionais Um princípio importante é separar política demecanismoPolítica: O que seráfeito?Mecanismo: Como fazer ? Mecanismos determinam como fazer algo,políticas decidem o que deve ser feito A separaç ão de política de mecanismo é importantepois permite uma maior flexibilidade caso decisõespolíticas precisem ser alteradas mais tarde
  26. 26. Estrutura simples MS-DOS – escrito para prover o máximo defuncionalidade utilizando o mínimo possível dememó ria Não foi dividido em mó dulos Apesar de o MS-DOS ter alguma estrutura, suasinterfaces e funcionalidades não são bemseparadas
  27. 27. Estrutura em camadas do MS-DOS
  28. 28. Abordagem de camadas O sistema operacional é dividido em um númerode camadas (níveis), cada uma construída sobrecamadas inferiores. A camada mais baixa (camada 0) é o hardware A camada mais alta (camada N) é a interface dousuário Como modularidade, camadas são selecionadasde forma que uma cada só utilize serviç os efunç ões de camadas de nível inferior
  29. 29. Camadas de um sistema operacional
  30. 30. UNIX Por conta de limitaç ões na funcionalidade dohardware, o UNIX original tinha estruturaç ãolimitada. O UNIX é composto por duas partes distintas Programas de sistema Núcleo (kernel) Formado por tudo localizado abaixo da interface dechamada de sistemas e acima do hardware Fornece o sistema de arquivos, escalonamento de CPU,gerenciamento de memó ria, e outras funç ões do SO Um número muito grande de funç ões para um único nível
  31. 31. Estrutura de um sistema UNIXtradicional
  32. 32. Estrutura de microkernel Move o máximo possível de funcionalidades do kernel para oespaço do usuário Utiliza mecanismos de comunicação por troca de mensagenspara permitir a interoperação dos mó dulos Benefícios: Mais fácil estender um microkernel Mais fácil portar o sistema operacional para novas arquiteturas Mais confiável (menos có digo rodando em modo kernel) Mais seguro Desvantagens: Perda de desempenho por conta da comunicaç ão entre osmó dulos em modo kernel e modo usuário
  33. 33. Módulos A maioria dos sistemas operacionaismodernos implementam mó dulos de kernel Abordagem orientada a objetos Cada componente chave é separado dos demais Conversam entre si através de interfaces bemdefinidas Cada um pode ser carregado no kernel apenasquando necessário De forma geral é similar ao uso de camadasmas mais flexível
  34. 34. Abordagem em módulos do Solaris
  35. 35. Máquinas virtuais Uma máquina virtual leva a abordagem de camadas ao seulimite. Ele trata o hardware e o kernel do sistema operacionalcomo se fossem ambos hardware A interface de uma máquina virtual fornece uma interfaceidêntica ao hardware O sistema operacional hospedeiro (host) cria a ilusão de queum processo tem seu pró prio processador e memó ria Cada convidado (guest) recebe sua pró pria có pia (virtual)do computador
  36. 36. Histórico e benefícios das máquinas virtuais Apareceram inicialmente em 1972 em mainframes da IBM Consiste, fundamentalmente, em múltiplos ambientes deexecuç ão (sistemas operacionais diferentes) compartilhando omesmo hardware Protege um ambiente do outro Permite compartilhamento de arquivos Se comunicam entre si e com outros sistemas através da rede Consolidaç ão de muitos sistemas com pouca demanda derecursos em poucos computadores com muitos recursos Muito útil para desenvolvimento e testes O padrão “Open Virtual Machine Format”, permite que umamáquina virtual possa ser executada por diferentesplataformas de virtualização
  37. 37. Máquinas virtuais
  38. 38. Para-virtualização Apresenta aos guests uma visão similar masnão idêntica do hardware Os guests precisam ser modificados pararodar em hardware para-virtualizado
  39. 39. Arquitetura do VMWare
  40. 40. A máquina virtual Java

×