Visão Geral: Estruturas do Sistema Operacional

7.262 visualizações

Publicada em

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

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
7.262
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
358
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Monolítico: Linux, Microkernel: GNU Hurd (Debian Hurd, Gentoo Hurd) Híbrido: Windows NT, Windows 8, Windows Server 2012, Windows Phone, OS X, iOS
  • 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

    ×