A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 2: Estruturas de Sistemas Operacionais.

Apresentações semelhantes


Apresentação em tema: "Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 2: Estruturas de Sistemas Operacionais."— Transcrição da apresentação:

1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 2: Estruturas de Sistemas Operacionais

2 2.2 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 2: Estruturas de Sistemas Operacionais Serviços de Sistemas Operacionais Interface entre o Usuário e o Sistema Operacional Chamadas de Sistema Tipos de Chamada de Sistema Programas de Sistema Projeto e Implementação de Sistema Operacional Estrutura de Sistema Operacional Máquinas Virtuais Depuração do Sistema Operacional Geração do Sistema Operacional Inicialização do Sistema

3 2.3 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Objetivos Descrever os serviços que um sistema operacional fornece para usuários, processos e outros sistemas Discutir as diversas maneiras de estruturar um sistema operacional Explicar como os sistemas operacionais são instalados e personalizados e como são inicializados

4 2.4 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Serviços do Sistema Operacional SO fornece um ambiente para execução de programas e serviços para os programas e usuários Um conjunto de serviços do SO fornece funções que são úteis para o usuário: Interface do Usuário – Quase todos os SOs têm uma interface de usuário (UI – User interface).  Vária entre linha de Comando - Command-Line (CLI), Interface Gráfica de Usuário - Graphics User Interface (GUI), Batch Execução de Programa – O sistema deve ser capaz de carregar um programa na memória e executar esse programa, finalizando a sua execução, normalmente ou anormalmente (indicando o erro). Operações de I/O - Um programa em execução pode precisar de operações de I/O, que pode envolver um arquivo ou um dispositivo de I/O Manipulação de Sistema de arquivo - O sistema de arquivo é de particular interesse. Programas têm de ler e escrever arquivos e diretórios, criar e deletá-los, pesquisar, listas informações do arquivo, gerenciar permissões.

5 2.5 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Serviços do Sistema Operacional (Cont.) Comunicações – Processo precisa trocar informações. No mesmo computador ou entre computadores da rede  Comunicações pode ser via memória compartilhada ou por passagem de mensagem (pacotes movidos pelo SO) Detecção de Erros – SO tem que ter ciência das possibilidades de erros  Pode ocorrer na CPU, no hardware de memória, em dispositivos de I/O, no programa do usuário  Para cada tipo de erro, o SO deve disparar ações apropriadas para garantir a correção e computação consistência  Recursos de depuração podem melhorar muito a possibilidades de uso eficiente do sistema pelo usuário e pelo programador

6 2.6 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Serviços do Sistema Operacional (Cont.) Existe também um conjunto de funções do SO cujo objetivo é assegurar a operação eficiente do próprio sistema, via compartilhamento de recurso Alocação de Recurso – Quando há múltiplos usuários ou jobs ativos executando concorrentemente, os recursos devem ser alocados para cada um deles  Vários tipos de recursos – Alguns (tais como ciclos de CPU, memória principal e armazenamento de arquivo) pode ter código de alocação especial, outros (tais como, dispositivos de I/O) pode ter um código muito mais genérico de solicitação e liberação. Contabilização – Controla quais usuários utilizam que quantidade e que tipo de recursos do computador Proteção e Segurança – Os proprietários de informações armazenadas no sistema computacional de rede ou multiusuário pode querer controlar o uso da informação, de maneira que processos concorrentes não interfiram na execução dos outros  Proteção garante que todos os acessos aos recursos do sistema sejam controlados  Segurança do sistema contra ataques externos exigem a autonticação do usuário, estendendo à defesa de dispositivo externos de I/O de tentativas de acessos inválidos  Para um sistema ser protegido e seguro, preocupações devem ser tomadas em toda a sua extensão.

7 2.7 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Uma visão de Serviços dos SO

8 2.8 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Interface do Sistema Operacional - CLI Interface de linha de Comando (CLI) ou interpretador de comando permite que os usuários insiram diretamente os comandos  Alguns implementados no kernel, em outros em Programas  Programas especiais – shells  Primeiramente, captura um comando do usuário e executa – Duas abordagens: (1) o próprio intepretador executa os comandos, (2) os comandos são implementados como programas do sistema

9 2.9 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Interface do Sistema Operacional - GUI Interface de usuário gráfica – simulando uma área de trabalho (desktop) Integram mouse, teclado, e monitor Icons representa os arquivos, programas e ações, etc Várias botões do mouse sobre o objetos desencadeiam ações diferentes Desenvolvido inicialmente pela Xerox PARC Vários sistemas incluem interfaces CLI and GUI Microsoft Windows é GUI com CLI o shell “command” Apple Mac OS X interface GUI com linha de comando do kernel UNIX Solaris é CLI com interface GUI opcional (Java Desktop, KDE)

10 2.10 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Interpretador de Comando Bourne Shell

11 2.11 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition The Mac OS X GUI

12 2.12 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chamadas de Sistema Interface de Programação para os serviços providos pelo SO Geralmente, escrito em linguagem de alto nível (C or C++) Normalmente acessados pelos programas via Application Program Interface (API) de alto nível, ao invés de diretamente usar as chamadas de sistema Três APIs mais comuns Win32 API para Windows, POSIX API para sistemas POSIX (incluindo todas as versões de UNIX, Linux, e Mac OS X), and API Java API para Máquina Virtual Java (JVM)

13 2.13 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Exemplos de Chamadas de Sistema Sequência de chamada de sistema para copiar o conteúdo de um arquivo para outro

14 2.14 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Exemplo de API Padrão Considere a função ReadFile() na Win32 API—uma função para leitura de de arquivo Descrição dos parâmetros passados para ReadFile() HANDLE file—o arquivo a ser lido LPVOID buffer—um buffer onde o dado ser lido e escrito DWORD bytesToRead—o número de bytes a ser lido para o buffer LPDWORD bytesRead—o número de bytes lido durante a última leitura LPOVERLAPPED ovl—indica se overlapped I/O está sendo usado

15 2.15 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Iimplementação de Chamada de Sistema Geralmente, um número associado a cada chamada de sistema A interface de Sistema mantêm uma tabela indexada de acordo com estes números A interface de chamada de sistema invoca a chamada de sistema associada no kernel do SO e retorna o status da chamada de sistema e o valor de retorno O chamador não necessita conhecer com as chamada de sisetma são implementadas Necessita respeitar a API e conhecer o que o SO faz como resultado da chamada Muitos detalhes da interface do SO são ocultados do programador pela API  Gerenciado pela biblioteca de suporte de run-time (conjunto de funções incluído com o compilador)

16 2.16 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition API – Chamada de Sistema – Relacionamento SO

17 2.17 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Exemplo de Biblioteca C padrão Programa C invocando a chamada de biblioteca printf(), que chama a chamada de sistema write()

18 2.18 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Passagem de Parâmetro via Chamada de Sistema Frequentemente, mais informações são necessárias além de identificar simplesmente a chamada desejada O tipo exato e a quantidade de informção varia de acordo com o SO e a chamada Três métodos são usados para passar parâmetros para o SO Mais simples: passar os parâmetros nos registradors  Em alguns casos, pode ter mais parâmetros do que registradores Parâmetros armazenados em um bloco, ou tabela, na memória, e o endereço do bloco é passado como parâmetro em um registrador  Esta abordagem é adotada pelo Linux e Solaris Parâmetros colocados no stack pelo programa e retirados do stack pelo SO Métodos de bloco e stack não estão limitados pelo número ou tamanho dos parâmetros

19 2.19 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Passagem de Parâmetro via Tabela

20 2.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Tipos de Chamadas de Sistema Controle de Processo end, abort load, execute create process, terminate process get process attributes, set process attributes wait for time wait event, signal event allocate and free memory Gerenciamento de Arquivo create file, delete file open, close file read, write, reposition get and set file attributes

21 2.21 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Tipos de Chamadas de Sistema (Cont.) Gerenciamento de Dispositivo request device, release device read, write, reposition get device attributes, set device attributes logically attach or detach devices Manutenção de Informação get time or date, set time or date get system data, set system data get and set process, file, or device attributes Comunicações create, delete communication connection send, receive messages transfer status information attach and detach remote devices

22 2.22 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Exemplos do Windows e Chamada de Sistema UNIX

23 2.23 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Exemplo: MS-DOS Única tarefa O Shell é invocado quando o sistema é bootado Método simples para executar um programa Nenhum processo é criado Um único espaço de memória Carrega o programa na memória, sobrepondo todos menos o kernel Programa exit -> shell recarregado

24 2.24 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Execução do MS-DOS (a) At system startup (b) running a program

25 2.25 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Exemplo : FreeBSD Variante do Unix Multitasking User login -> invoca o shell escolhido pelo usuário Shell executa o chamada de sistema fork() para criar o processo Executa o exec() para carregar o programa para o processo Shell espera pelo fim do processo ou continua com os comandos dos usuários Processo sai com código 0– nenhum erro ou > 0 – código de erro

26 2.26 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Programas Múltiplos executando em FreeBSD

27 2.27 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Programas de Sistema Programas de sistema provém um ambiente conveniente para desenvolvimento de programa e execução. Podem ser divididos em: Manipulação de Arquivo Informação de Status Modificação de Arquivo Suporte a linguagem de Programação Carregamento de execução de Programa Comunicações Programas de aplicação A visão do usuário do SO é definida pelos programas de sistema, não pelas chamadas de sistema

28 2.28 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Programas de Sistemas Provêm um ambiente para o desenvolvimento e execução de programa Alguns deles são interfaces para as chamadas de sistema; outras são mais complexas Gerenciamento de Arquivo - Create, delete, copy, rename, print, dump, list, e geralmente manipulate arquivos e diretórios Informação de Status Solicita informações do sistema - date, time, quantidade de memória disponível, disk space, número de usuários Outras provêm informações de performance, logging, and debugging Geralmente, estes programas formatam e imprimem a saída para o terminal ou outros dispositivos de saída Alguns sistemas implementam um registrador – usado para armazenar e recuperar informação de configuração

29 2.29 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Programas de Sistemas (Cont.) Modificação de Arrquivo Editores de texto para criar e modificar arquivos Comandos especiais para pesquisar conteúdo de arquivos ou executar transformações do texto Suporte a linguagem de Programação - Compilers, assemblers, debuggers and interpreters Carregamento de Programa e execução - Absolute loaders, relocatable loaders, linkage editors, and overlay-loaders, debugging systems for higher-level and machine language Comunicações – Provêm mecanismos para criar conexões virtuais entre processos, usuários e sistemas computacionais Permite aos usuários enviar mensagens para outros através de tela, browse web pages, send electronic-mail messages, log in remotely, transfer files from one machine to another

30 2.30 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Projeto de Implementação de Sistema Operacional Não existe consenso no Projeto e implementação de OS, mas algumas abordagem tem prevalecido Estrutura interna dos SOs diferem Iniciando pelos objetivos e especificações Afetados pela escolha de hardware, tipo de sistema Objetivos do User e Objetivos do System Objetivos do Usuário – o SO deve ser conveniente para usar, facil de aprender, confiável, seguro e rápido Objetivos do sistema – o SO deve ser fácil de projetar, implementar e manter, bem como ser flexível, confiável, livre de erro e eficiente.

31 2.31 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Projeto de Implementação de Sistema Operacional (Cont.) Princípios importantes a serem separados Política: O quê deve ser feito? Mecanismo: Como será feito? Mecanismos determinam como fazer alguma coisa, política define o que ser feito A separação da política do mecanismo é um importante princípio, ele permite a flexibilização se a decisão da política mudar mais tarde.

32 2.32 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Estrutura Única MS-DOS – escrito para prover as funcionalidades em um espaço mínimo Não divido em módulos Embora o MS-DOS tenha alguma estrutura, suas interfaces e níveis de funcionalidades não são bem separadas

33 2.33 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Estrutura em Camada MS-DOS

34 2.34 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Abordagem em Camada O SO é dividido em vários camadas (níveis), cada um construído no topo do nível mais baixo. A cada de baixo (camada 0), é o hardware e a mais alta (camada N) é a interface do usuário. Com modularidade, as camadas são selecionadas de maneira que cada uma usa as funções (operacões) e serviços da camada imediatamente inferior

35 2.35 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Estrutura do sistema do Sistema UNIX Tradicional UNIX

36 2.36 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition UNIX UNIX – limitado pelas funcionalidades de hardware, o SO UNIX original tinha uma estrutura limitada. O SO UNIX consiste de duas partes separadas Programas de sistema O kernel  Consiste de tudo que está abaixo da interface de chamada de sistema e acima do hardware  Provém o sistema de arquivo, escalonamento de CPU, gerenciamento de memória e outros funções do SO

37 2.37 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Sistema Operacional em Camada

38 2.38 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Estrutura de Sistema Microkernel Move tudo que não é kernel para o espaço do usuário Comunicações são realizadas entre os módulos usuários usando passagem de mensagem Benefícios: Facil de estender um microkernel Mais fácil de portar um SO para novas arquiteturas Mais confiável (menos código está executando em modo kernel) Mais seguro Desvantagens: Overhead de desempenho na comunicação do espação do usuário para o espaço kernel

39 2.39 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Estrutura do Sistema Mac OS X

40 2.40 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Módulos Muito dos Sistemas Operacionais modernos implementam módulos de kernel Usam abordagem orientada a objeto Cada componente core é separado Cada um interage com os outros com interfaces bem conhecidas Cada módulo é carregado quando necessário Em linhas gerais é similar a camadas mas mais flexível

41 2.41 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Abordagem Modular Solaris

42 2.42 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Máquinas Virtuais Máquina Virtual é uma evolução lógica da abordagem de camada. Ela tata o hardware e o kernel do SO como se tudo fosse hardware Uma máquina virtual provém uma interface indêntica para o hardware. O SO cria a ilução que um processo tem seu próprio processador e memória virtual Cada guest é provido com uma cópia (virtual) do computador

43 2.43 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Máquinas Virtuais (Cont.) (a) Nonvirtual machine (b) virtual machine

44 2.44 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Máquina Virtual Java

45 2.45 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Depuração de Sistema Operacional Debugging é realizado para encontrar e fixar os erros, ou bugs OS geram arquvivos de log contendo informação de erro Falhas de uma aplicação pode gerar arquivo de core dump que captura a memória dos processos Falha do SO pode gerar arquivo de crash dump contendo a memória do kernel

46 2.46 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chamada de Sistema dtrace

47 2.47 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Geração do Sistema Operacional SO são projetados para ser executados em qualquer classe de máquina; o sistema deve ser configurado para cada computador específico Programa SYSGEN obtém informação relacionada a configuração específica do hardware Booting – inicia uma computador por meio do carregamento do kernel Programa Bootstrap program – código armazenado em ROM que é capaz de localizar o kernel, carregá-lo na memória, e iniciar sua execução

48 2.48 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition System Boot SO deve estar disponível para cada hardware Parte pequena de código – bootstrap loader, localiza o kernel, carrega na memória, e inicia Algumas vezes existem dois processos um o bloco de boot é fixado em uma localização e carrega o botstrap Quando o sistema é iniciado, a execução inicia em um local fixo da memória  Firmware é usado para carregar o código inicial

49 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Fim do capítulo 2


Carregar ppt "Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 2: Estruturas de Sistemas Operacionais."

Apresentações semelhantes


Anúncios Google