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 do Sistema Operacional.

Apresentações semelhantes


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

1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 2: Estruturas do Sistema Operacional

2 2.2 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Objetivos Descrever os serviços providos pelos sistemas operacionais para os usuários, processos e outros sistemas Discutir as diversas formas de estruturação dos sistemas operacionais

3 2.3 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Serviços do sistema operacional Sistemas operacionais provêem um ambiente para execução de programas e serviços para programas e usuários Dois conjuntos de serviços do sistema operacional Funções que são úteis para o usuário Funções que são úteis para a eficiência do sistema

4 2.4 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Serviços do sistema operacional Funções que são úteis para o usuário: Interface do usuário – Quase todos os sistemas operacionais possuem uma interface de usuário Varia entre Command-Line (CLI), Graphics User Interface (GUI), e Batch Execução de programas – O sistema deve estar apto a carregar um programa na memória e executá-lo, tanto normalmente quanto anormalmente (indicando o erro) Operações de entrada e saída (E/S) - Um programa em execução pode requisitar operações de E/S, as quais envolvem um arquivo ou um dispositivo de entrada e saída Manipulação do sistema de arquivos - O sistema de arquivos é de interesse particular. Os programas precisam ler e escrever em arquivos e diretórios, criar e deletá-los, buscá-los, listar a informação de arquivos e gerenciamento de permissão

5 2.5 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Serviços de sistemas operacionais Funções que são úteis para o usuário (cont.): Comunicação – Processos podem trocar informações em um mesmo computador ou entre computadores Memória compartilhada Troca de mensagens – Pacotes enviados pelo sistema operacional Detecção de erros Monitoração constante de erros pelo sistema operacional – Podem ocorrer na CPU, memória, dispositivos de I/O e programas Ação diferenciada para cada tipo de erro – Garantia de computação correta e consistente Depuração pode aumentar as habilidades de usuários e programadores para usar eficientemente o sistema

6 2.6 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Serviços de sistemas operacionais Outro conjunto de funções que garantem a eficiência da operação do sistema através do compartilhamento de recursos Alocação de recursos Alocação de recursos na presença de múltiplos usuários ou múltiplos jobs concorrentes Diferentes tipos de recursos – Alguns recursos como ciclos de CPU, memória e sistema de arquivos podem ter um código de alocação especial – Recursos como dispositivos de E/S podem ter um código de alocação genérico Responsabilização Registrar quantos e quais recursos cada usuário utilizou Proteção e segurança Proteção envolve a garantia de que o acesso aos recursos do sistema são controlados Segurança garante que usuários de fora do sistema precisem se autenticar para utilizar os recursos do sistema

7 2.7 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Visão dos serviços do sistema operacional

8 2.8 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Interfaces com o usuário do sistema operacional - CLI Command Line Interface (CLI) ou interpretador de comandos Execução direta de comandos Implementado no kernel ou como programa do sistema Diversas implementações – shells Funcionamento – Recebe comando do usuário e executa » Built-in commands (ex: cd) » Outros programas – modificações independentes do shell

9 2.9 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Interfaces com o usuário do sistema operacional - GUI Graphical User Interface (GUI) Interface metafórica do desktop amigável ao usuário Usualmente, mouse, teclado e monitor Ícones representam arquivos, programas, ações, etc. Inventada pela Xerox PARC Muitos sistemas incluem ambas as interfaces CLI e GUI Microsoft Windows Apple Mac OS X Aqua GUI interface Kernel do UNIX com os respectivos shells Solaris CLI com GUI opcional (Java Desktop, KDE)

10 2.10 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Bourne Shell Command Interpreter

11 2.11 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes The Mac OS X GUI

12 2.12 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Chamadas de sistema Interface de programação para os serviços providos pelo sistema operacional Tipicamente escrita em linguagem de alto nível (C ou C++) Em geral, acessado por programas por meio de Application Program Interface (API) de alto nível ao invés de uso direto Três tipos mais comuns de APIs Win32 API Windows POSIX API Sistemas baseados em POSIX – Todas as versões de UNIX, Linux e Mac OS X Java API Java virtual machine (JVM) Por que usar APIs ao invés de usar as chamadas diretamente?

13 2.13 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exemplo de chamada de sistema Sequência de chamadas ao sistema para copiar o conteúdo de um arquivo para outro

14 2.14 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exemplo de API padrão Considere a função ReadFile () da API Win32 para ler um arquivo: Descrição dos parâmetros passados para a função ReadFile() HANDLE filearquivo a ser lido LPVOID buffer um buffer a partir do qual os dados serão lidos ou no qual os dados serão escritos DWORD bytesToReadnúmero de bytes a serem lidos do buffer LPDWORD bytesReadnúmero de bytes lidos durante a última leitura LPOVERLAPPED ovlIndica dados sobre o tipo de entrada e saída

15 2.15 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Implementação da chamada de sistema Tipicamente, um número é associado a cada chamada de sistema A interface de chamada ao sistema mantém uma tabela indexada de acordo com esses números A interface da chamada de sistema invoca a referida chamada no kernel do sistema operacional A interface retorna o status da chamada de sistema e outros valores retornados Quem faz a chamada de sistema não precisa saber nada sobre como ela é implementada Só é necessário obedecer a API e entender os resultados gerados pelo sistema operacional Maior parte dos detalhes da interface são escondidos do programador pela API

16 2.16 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes API – System Call – OS Relationship

17 2.17 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exemplo usando a biblioteca padrão de C Programa em C chamando a função de biblioteca printf(), a qual invoca a chamada de sistema write()

18 2.18 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Passagem de parâmetros para a chamada de sistema Três métodos gerais para a passagem de parâmetros para o sistema operacional Mais simples possível: passagem dos parâmetros em registradores Problema: em alguns casos, existem mais parâmetros do que registradores Parâmetros armazenados em um bloco ou tabela na memória e o endereço correspondente é colocado em um registrador Método usado por Linux e Solaris Parâmetros são colocados (pushed) em uma pilha pelo programa e retirados dessa pilha (popped) pelo sistema operacional Não limitam o número de parâmetros que podem ser passados

19 2.19 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Passagem de parâmetro via tabela

20 2.20 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes 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 arquivos create file, delete file open, close file read, write, reposition get and set file attributes

21 2.21 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Tipos de chamadas de sistema Gerenciamento de dispositivos request device, release device read, write, reposition get device attributes, set device attributes logically attach or detach devices Informação de manutenção get time or date, set time or date get system data, set system data get and set process, file, or device attributes Comunicação create, delete communication connection send, receive messages transfer status information attach and detach remote devices

22 2.22 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exemplos de chamadas de sistema no Windows e no Unix

23 2.23 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Programas do sistemas Programas do sistema provêem um ambiente conveniente para o desenvolvimento e a execução de programas Podem ser divididos em: Manipulação de arquivos Informação de status Modificação de arquivos Suporte a linguagem de programação Programas para carregar e executar Comunicações Aplicações A maior parte da visão do usuário sobre o sistema operacional é definida pelos programas do sistema e não pelas chamadas de sistema de fato

24 2.24 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Programas do sistema Provêem um ambiente conveniente para o desenvolvimento e execução de programas Alguns são interfaces simples para chamadas de sistema e outros são consideravelmente mais complexos Gerenciamento de arquivos – Criar, apagar, copiar, renomear, imprimir, despejar, listar e manipular arquivos e diretórios Informação de estado Alguns perguntam ao sistema sobre informações como data hora, quantidade de memória disponível, espaço de disco e número de usuários Outros provêem informação detalhada de desempenho, de registro (logging) e de depuração Tipicamente, esses programas formatam e imprimem a saída para o terminal e outros dispositivos de saída

25 2.25 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Programas do sistema Modificação de arquivos Editores de texto Comandos especiais para buscar conteúdo de arquivos ou realizar transformações no texto Suporte de linguagem de programação Compiladores, assemblers, debuggers e interpretadores Carregamento e execução de programas Comunicações Mecanismos para criar conexões virtuais entre processos, usuários e sistemas de computadores Mecanismos para garantir que usuários troquem mensagens, naveguem na web, enviem s, façam login remoto, transfiram arquivos, etc.

26 2.26 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Sistemas operacionais em camadas Sistema operacional dividido camadas Menor camada (Camada 0) – harware Maior camada (Camada N) – Interface do usuário Camadas selecionadas de tal forma a usar funções apenas da camadas inferiores

27 2.27 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Estrutura tradicional do sistema UNIX

28 2.28 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes UNIX Sistema operacional UNIX consiste de duas partes Programas do sistema Kernel Consiste de tudo entre a interface de chamada de sistema e o hardware – Sistema de arquivos – Escalonamento de CPU – Gerenciamento de memória – Outras funções do sistema operacional

29 2.29 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Sistema operacional em camadas

30 2.30 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Estrutura de sistema microkernel Mover o máximo possível de funções do kernel para o espaço do usuário Vantagens: Mais simples para fazer extensões Mais simples portar o sistema para novas arquiteturas Mais confiável (menos código rodando em modo kernel) Mais seguro Desvantagem: Sobrecarga de desempenho do espaço de usuário para comunicação do espaço de usuário para espaço de kernel

31 2.31 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Estrutura do Mac OS X

32 2.32 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Sistemas operacionais em módulos Maioria dos sistemas operacionais modernos é implementada em módulos do kernel Utiliza abordagem orientada a objetos Cada componente do núcleo é separado Comunicação entre módulos por interfaces bem conhecidas Cada módulo é carregado de acordo com a necessidade no kernel De forma geral, mais flexível que camadas

33 2.33 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Abordagem modular do Solaris

34 2.34 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Máquinas virtuais Virtualização Consolidação Multiplexação do uso do hardware – Vários ambientes virtuais sendo executados sobre o mesmo hardware físico

35 2.35 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Máquinas virtuais Máquina virtual Simulação do hardware físico para o sistema operacional Interface idêntica à interface provida pelo hardware – Ilusão de que o sistema operacional possui processador, memória, e outros dispositivos próprios

36 2.36 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Máquinas virtuais Entidades Hospedeiro (host) Convidado (guest) Histórico Criado para os mainframes da IBM em 1972 Hardware sub-utilizado – União dos sistemas de diversas máquinas em uma única máquina física

37 2.37 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Máquinas virtuais Diversos níveis e tipos de virtualização Determinado por qual camada está sendo virtualizada

38 2.38 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Máquinas virtuais Conceitos Fundamentalmente, diversos ambientes, com diferentes sistemas operacionais, podem compartilhar o mesmo hardware Isolamento Idealmente, semelhante ao Show de Truman Compartilhamento de arquivos pode ser permitido, desde que seja controlado Comunicação entre máquinas virtuais e outros sistemas externos através da rede Rede virtual entre máquinas virtuais

39 2.39 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Máquinas virtuais Utilização da virtualização Consolidação de servidores Computação verde Manutenção e gerenciamento de servidores Teste e desenvolvimento Educação

40 2.40 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Máquinas virtuais (a) Nonvirtual machine (b) virtual machine

41 2.41 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Paravirtualização Sistemas convidados adaptados para a virtualização Assume uma interface de hardware modificada Objetivo Aumentar o desempenho no tratamento das instruções privilegiadas

42 2.42 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Implementação da virtualização Desafios para implementação Criar uma duplicata exata da máquina física Duplicata funciona em modo usuário – Simulação do modo kernel – Interceptação das instruções privilegiadas feitas em modo kernel virtual Temporização Tempo na máquina virtual é mais lento do que na máquina real Suporte via hardware Instruções para virtualização – Ex: AMD provê modos hospedeiro e convidado

43 2.43 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Solaris 10 with Two Containers

44 2.44 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes VMware Architecture

45 2.45 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes The Java Virtual Machine

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

47 2.47 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exercícios A Figura a seguir representa um esquema geral de um sistema operacional em camadas. Explique cada uma das camadas e as interfaces entre camadas destacadas. Como seria esse esquema se o SO fosse modular ao invés de ser em camadas? Qual a diferença entre um sistema modular e um sistema em camadas?

48 2.48 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exercícios Diferencie os conceitos de monotarefa e multitarefa. Por que os sistemas evoluíram de monotarefa para multitarefa? Em que contexto seria mais interessante ter um sistema monotarefa ao invés de um multitarefa? Diferencie um sistema multitarefa preemptivo de um sistema multitarefa cooperativo. A cooperação é utilizada em sistemas operacionais de tempo real ao invés da preempção. Por que a cooperação não pode ser utilizada em sistemas operacionais de propósito geral?

49 2.49 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exercícios Um sistema operacional multitarefa preemptivo está executando dois processos, P1 e P2, que possuem a mesma prioridade. A execução de P1 exige no mínimo 5 slots de tempo de execução ativa na CPU, enquanto que a execução de P2 exige, no mínimo, 3 slots de tempo. P1 faz uma chamada de E/S durante o seu primeiro e durante o seu quarto slot de execução ativa na CPU, enquanto que P2 faz uma chamada de E/S durante o seu primeiro slot de execução. O processamento da atividade de E/S dura pelo menos 2 slots de tempo e o processamento da interrupção dura 1 slot de tempo. Faça uma linha do tempo para a CPU e uma para o dispositivo de E/S representando: O momento que cada processo é executado O tempo de processamento das interrupções Os pedidos de E/S e as interrupções OBS: As duas linhas do tempo devem estar correlacionadas Qual o perfil de um processo P3 para que a eficiência da CPU aumente? Se a execução do E/S durasse apenas 1 slot de tempo, essa afirmação ainda seria válida?

50 2.50 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exercícios Imagine um computador muito simples com um cache que possui espaço para 3 palavras de memória, uma memória com 10 endereços e um disco magnético. Suponha também que inicialmente o cache e a memória estejam vazios e que a política de substituição seja a de eliminar a entrada mais antiga. O programa executado realiza as seguintes requisições: Leia o endereço de 1 a 10 do disco Modifique o conteúdo do endereço 2 do disco Leia os endereços 13 e 14 do disco Modifique os endereços 13 e 3 do disco Leia o endereço 15 do disco. Diga qual o estado da memória principal e do cache da CPU após cada uma das requisições. Explique o porquê de cada configuração de acordo com os princípios do caching.

51 2.51 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exercícios O que é uma chamada de sistema? Explique a relação entre modo kernel, modo usuário e as chamadas de sistema. Um programa de usuário faz uma chamada que é referenciada no sistema operacional pelo número 10. Essa chamada possui três parâmetros com o tamanho de uma palavra de memória cada. Faça um esquema e explique sucintamente o funcionamento dessa ação, representando os fluxos de dados, as interfaces, o programa do usuário e o tratamento de chamadas do sistema operacional. Faça um esquema e explique representando a passagem de parâmetros via tabela, representando registradores, a memória, na qual deve constar o programa do usuário, o sistema operacional e qualquer outra estrutura que seja importante para o processo.

52 2.52 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exercícios Faça um desenho simplificado dos dois modelos com apenas uma máquina virtual Supondo um desenvolvimento adequado e bem planejado, qual modelo permite um maior desempenho?

53 2.53 Adaptado de Silberschatz, Galvin and Gagne ©2009 Fundamentos de Sistemas Operacionais – Natalia C. Fernandes Exercícios Em que sentidos a propriedade isolamento é essencial para um sistema virtualizado? É possível ter isolamento em um sistema paravirtualizado?


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

Apresentações semelhantes


Anúncios Google