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

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

Embed Size (px)

Citation preview

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

Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Capítulo 2: Estruturas do Sistema Operacional

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

2.2 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.3 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.4 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.5 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.6 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.7 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Visão dos serviços do sistema operacional

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

2.8 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.9 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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)

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

2.10 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Bourne Shell Command Interpreter

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

2.11 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

The Mac OS X GUI

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

2.12 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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?

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

2.13 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.14 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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 file—arquivo 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 bytesToRead—número de bytes a serem lidos do buffer LPDWORD bytesRead—número de bytes lidos durante a última leitura LPOVERLAPPED ovl—Indica dados sobre o tipo de entrada e saída

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

2.15 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.16 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

API – System Call – OS Relationship

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

2.17 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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()

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

2.18 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.19 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Passagem de parâmetro via tabela

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

2.20 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.21 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.22 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Exemplos de chamadas de sistema no Windows e no Unix

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

2.23 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.24 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.25 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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 e-mails, façam login remoto, transfiram arquivos, etc.

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

2.26 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.27 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Estrutura tradicional do sistema UNIX

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

2.28 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.29 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Sistema operacional em camadas

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

2.30 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.31 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Estrutura do Mac OS X

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

2.32 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.33 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Abordagem modular do Solaris

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

2.34 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.35 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.36 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.37 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Máquinas virtuais

Diversos níveis e tipos de virtualização

Determinado por qual camada está sendo virtualizada

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

2.38 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.39 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.40 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Máquinas virtuais

(a) Nonvirtual machine (b) virtual machine

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

2.41 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.42 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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

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

2.43 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

Solaris 10 with Two Containers

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

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

VMware Architecture

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

2.45 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos de Sistemas Operacionais – Natalia C. Fernandes

The Java Virtual Machine

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

Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Fim do Capítulo 2

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

2.47 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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?

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

2.48 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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?

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

2.49 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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?

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

2.50 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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.

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

2.51 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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.

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

2.52 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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?

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

2.53 Adaptado de Silberschatz, Galvin and Gagne ©2009Fundamentos 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?