You are on page 1of 22

Sistemas Operacionais

Marcos Laureano

1/66

Roteiro
Mquinas virtuais Emuladores Propriedades Benefcios Futuro

2/66

Sistemas de Computadores
Os sistemas de computadores so projetados com basicamente 3 componentes:
hardware sistema operacional aplicaes

3/66

Sistemas de Computadores

Aplicaes Sistema Operacional Hardware


4/66

Plataformas diferentes
Aplicaes MacIntosh Aplicaes Windows Aplicaes Linux

MacOS

Windows

Linux

Power PC

x86

x86

5/66

Incompatibilidade
Aplicaes MacIntosh Aplicaes Windows

MacOS

Linux

x86

x86
6/66

Mquina Virtual
Cria uma camada para compatibilizar diferentes plataformas Esta camada chamada de virtualizao
Softwares que podem ser utilizados para fazer os recursos parecerem diferentes do que realmente so.
7/66

Definio de Mquina Virtual


Uma duplicata eficiente e isolada de uma mquina real A IBM define uma mquina virtual como uma cpia totalmente protegida e isolada de um sistema fsico Na dcada de 60, uma abstrao de software que enxerga um sistema fsico (mquina real)
8/66

Mquina Virtual
Aplicaes

Sistema Operacional Mquina Virtual Hardware


9/66

Camada de compatibilidade

Mquina Virtual
Aplicaes Linux Aplicaes Windows Aplicaes Windows Camada de hardware virtual

Aplicaes

Mquina Virtual Sistema Operacional

Aplicaes Software Camada de hardware fsico

Processador Perifrico Disco

Disquete

10/66

Emulador
o oposto da mquina real; Implementa todas as instrues realizadas pela mquina real em um ambiente abstrato de software Engana, fazendo com que todas as operaes da mquina real sejam implementadas em um software Interpreta um cdigo desenvolvido para outra plataforma.
11/66

Emulador e Mquina Virtual


A funcionalidade e o nvel de abstrao de uma mquina virtual encontra-se em uma posio intermediria entre uma mquina real e um emulador, na forma em que os recursos de hardware e de controle so abstrados e usados pelas aplicaes.

12/66

Mquina Virtual
um ambiente criado por um monitor de mquina virtual;

13/66

Virtual Machine Monitor VMM


Sistema operacional para sistemas operacionais; Tambm conhecida como hypervisor; O monitor pode criar uma ou mais mquinas virtuais sobre uma nica mquina real.

14/66

VMM e Emulador
Um emulador fornece uma camada de abstrao completa entre o sistema em execuo e o hardware; Um monitor fornece uma interface (atravs da multiplexao do hardware) que idntica ao hardware subjacente e controla uma ou mais mquinas virtuais; Um emulador tambm fornece uma abstrao do hardware idntico ao que est em uso, mas tambm pode simular outros diferentes do atual;
15/66

Abstrao e virtualizao
A abstrao uma forma simples de prover alguns recursos especficos de hardware para um software, enquanto a virtualizao prov um conjunto completo de recursos.

16/66

Abstrao e virtualizao
Somente operaes simples
Software Software

Software

Software

Virtualizao
Arquivo Arquivo Arquivo Arquivo

Abstrao

Permite operaes complexas


17/66

Tipos de Emuladores
(1 classificao)

Firmware
Um firmware pode ser definido como Programao em hardware;

Software
Toda a emulao feita por software;

Combinao ou emulao combinada ou combo


O emulador composto de hardware e software;
18/66

Tipos de Emuladores
(2 classificao)

Totalmente baseada em hardware; Parcialmente baseado em hardware; Parcialmente baseada em software; Totalmente baseada em software.

19/66

Tipos de Emuladores
De acordo com uso

Emulao do processador; Emulao de um sistema operacional; Emulao de uma plataforma de (hardware) especfico; Consoles de videogames.

20/66

Tipos de Mquinas Virtuais


Tipo I
o monitor implementado entre o hardware e os sistemas convidados (guest system)

Tipo II
o monitor implementado como um processo de um sistema operacional real subjacente, denominado sistema anfitrio (host system)

21/66

Tipo I

Aplicao Convidado

Aplicao Convidado

Monitor Hardware
22/66

Tipo II

Aplicao Aplicao Sistema convidado Monitor Sistema anfitrio Hardware Aplicao

23/66

Abordagens Hbridas
Os monitores de tipo I e II raramente so usados em sua forma conceitual em implementaes reais; Vrias otimizaes so inseridas com o objetivo principal de melhorar o desempenho das aplicaes nos sistemas convidados

24/66

Otimizaes em monitores de Tipo I


O sistema convidado (guest system) acessa diretamente o hardware. Essa forma de acesso implementada atravs de modificaes no ncleo do sistema convidado e no monitor.

25/66

Otimizaes em monitores de Tipo I

Aplicao Sistema Convidado 1 Monitor Hardware

Aplicao Sistema Convidado 1

26/66

Otimizaes em monitores de Tipo II


1 Abordagem

O sistema convidado (guest system) acessa diretamente o sistema anfitrio (host system). Essa otimizao implementada pelo monitor, oferecendo partes da API do sistema anfitrio ao sistema convidado.

27/66

Otimizaes em monitores de Tipo II


1 Abordagem

Aplicao

Aplicao

Aplicao

Sistema Convidado Monitor


1

Aplicao

Sistema Anfitrio Hardware

28/66

Otimizaes em monitores de Tipo II


2 Abordagem

O sistema convidado (guest system) acessa diretamente o hardware. Essa otimizao implementada parcialmente pelo monitor e parcialmente pelo sistema anfitrio, atravs de um device driver especfico.

29/66

Otimizaes em monitores de Tipo II


2 Abordagem

Aplicao

Aplicao

Aplicao

Sistema Convidado Monitor


2

Aplicao

Sistema Anfitrio Hardware

30/66

10

Otimizaes em monitores de Tipo II


3 Abordagem

O monitor acessa diretamente o hardware. Neste caso, um device driver especfico instalado no sistema anfitrio, oferecendo ao monitor uma interface de baixo nvel para acesso ao hardware subjacente.

31/66

Otimizaes em monitores de Tipo II


3 Abordagem

Aplicao

Aplicao

Aplicao

Sistema Convidado Monitor Sistema Anfitrio


3

Aplicao

Hardware

32/66

Virtualizao
a interposio do software (mquina virtual) em vrias camadas do sistema. uma forma de dividir os recursos de um computador em mltiplos ambientes de execuo.

33/66

11

Tipos de Virtualizao
Virtualizao do hardware Virtualizao do sistema operacional Virtualizao de linguagens de programao

34/66

Virtualizao do Hardware
Exporta o sistema fsico como uma abstrao do hardware; Qualquer software escrito para a arquitetura (x86, por exemplo) ir funcionar.

35/66

Virtualizao do Hardware
Aplicao Aplicao Sistema Operacional (Linux, Windows, Unix) cpu, ram, dispositivos de E/S Virtual Mquina Virtual Sistema Operacional (Linux, Windows, Unix)
cpu, ram, dispositivos de E/S - Real
36/66

12

Virtualizao do sistema operacional


Exporta um sistema operacional como abstrao de um sistema especfico; A mquina virtual roda aplicaes ou um conjunto de aplicaes de um sistema operacional especfico.

37/66

Virtualizao do sistema operacional


Aplicao Aplicao Sistema Operacional (Linux, Windows, Unix) - Virtual Mquina Virtual Sistema Operacional (Linux, Windows, Unix) cpu, ram, dispositivos de E/S - Real
38/66

Virtualizao de linguagens de programao


Cria uma aplicao no topo do sistema operacional; So desenvolvidas para computadores fictcios projetados para uma finalidade especfica; A camada exporta uma abstrao para a execuo de programas escritos para esta virtualizao.
39/66

13

Virtualizao de linguagens de programao

Aplicao Mquina Virtual Sistema Operacional (Linux, Windows, Unix) cpu, ram, dispositivos de E/S - Real
40/66

Poder da Virtualizao
O uso das mquinas virtuais e emuladores possibilitam:
Executar um sistema operacional (e suas aplicaes) sobre outro; Utilizar uma aplicao de outra plataforma operacional; Executar mltiplos sistemas operacionais; Flexibilizar uma plataforma complexa de trabalho.
41/66

Poder da Virtualizao
Aplicao Java Java Virtual Machine User-Mode Linux Linux VMware Windows Hardware (x86)
42/66

14

Poder da Virtualizao
Apl JAIL Apl JAIL Aplicao Mac Mac OS Aplicao Linux Aplicao Windows

FreeBSD

Aplicao

VMware Windows

JVM

UML Linux

QEMU

XEN Hardware (x86)

43/66

Tcnicas de virtualizao e emulao


Virtualizao total (full virtualization) Paravirtualizao (paravirtualization) Re-compilao dinmica (dynamic recompilation)

44/66

Virtualizao total
Uma estrutura completa de hardware virtualizado; Sistema convidado no precisa sofrer qualquer tipo de alterao; Grande compatibilidade; Perda de velocidade.

45/66

15

Virtualizao total
0000 00FF 0000 Memria Real Memria Virtual 0FFF 000F FFFF

Espao reservado pela mquina virtual para o sistema convidado.

46/66

Paravirtualizao
O sistema que vai ser virtualizado (sistema convidado) sofre modificaes para que a interao com o monitor de mquinas virtuais seja mais eficiente; Perda de compatibilidade; Ganho de velocidade.

47/66

Re-compilao dinmica
Explorao de informaes que normalmente no esto disponveis para um compilador esttico tradicional.

48/66

16

Re-compilao dinmica
1. Agrupamento de bits: Usando o conhecimento sobre o formato do executvel e tcnicas heursticas, conjuntos de bits so recuperados do executvel e re-ordenados; 2. Desmontagem (disassembling): Os bits so desmontados e transformados para um conjunto de instrues e operadores ordenados em pares;

49/66

Re-compilao dinmica
3. Gerao intermediria do cdigo: As instrues so transformadas para uma representao de mquina independente; 4. Decompilao: A representao gerada transformada em uma linguagem de alto nvel (como o cdigo na linguagem C);

50/66

Re-compilao dinmica
5. Compilao: O cdigo gerado novamente compilado para a nova plataforma; 6. Montagem (assembling): Os cdigos so novamente montados; 7. Armazenagem dos bits: Os bits so agrupados de forma a gerar o novo executvel.
51/66

17

Propriedades de monitores de mquinas virtuais


Isolamento Inspeo Interposio Eficincia Gerenciabilidade Compatibilidade do software Encapsulamento Desempenho
52/66

Propriedades (1)
Isolamento
Um software em execuo em uma mquina virtual no acessa ou modifica outro software em execuo no monitor ou em outra mquina virtual.

Inspeo
O monitor tem acesso e controle sobre todas as informaes do estado da mquina virtual, como estado da CPU, contedo de memria, eventos, etc.
53/66

Propriedades (2)
Interposio
O monitor pode intercalar ou acrescentar instrues em certas operaes de uma mquina virtual, como por exemplo, quando da execuo de instrues privilegiadas por parte da mquina virtual.

Eficincia
Instrues inofensivas podem ser executadas diretamente no hardware, pois no iro afetar outras mquinas virtuais ou aplicaes.
54/66

18

Propriedades (3)
Gerenciabilidade
Como cada mquina virtual uma entidade independente das demais, a administrao das diversas instncias simplificada e centralizada.

Compatibilidade de Software
A mquina virtual fornece uma abstrao compatvel de modo que todo o software escrito para ela funcione.
55/66

Propriedades (4)
Encapsulamento
Esta camada pode ser usada para manipular e controlar a execuo do software na mquina virtual. Pode tambm usar esta ao indireta para dar prioridade ao software ou fornecer um ambiente melhor para execuo.

Desempenho
Adicionar uma camada de software a um sistema pode afetar o desempenho do software que funciona na mquina virtual, mas os benefcios proporcionados pelo uso de sistemas virtuais compensam a perda de desempenho.
56/66

Benefcios ao utilizar mquinas virtuais (1) Facilitar o aperfeioamento e testes de novos sistemas operacionais; Auxiliar no ensino prtico de sistemas operacionais e programao ao permitir a execuo de vrios sistemas para comparao no mesmo equipamento;

57/66

19

Benefcios ao utilizar mquinas virtuais (2) Executar diferentes sistemas operacionais sobre o mesmo hardware, simultaneamente; Simular configuraes e situaes diferentes do mundo real, como por exemplo, mais memria disponvel ou a presena de outros dispositivos de E/S;

58/66

Benefcios ao utilizar mquinas virtuais (3) Simular alteraes e falhas no hardware para testes ou re-configurao de um sistema operacional, provendo confiabilidade e escalabilidade para as aplicaes; Garantir a portabilidade das aplicaes legadas (que executariam sobre uma mquina virtual simulando o sistema operacional original);
59/66

Benefcios ao utilizar mquinas virtuais (4) Desenvolvimento de novas aplicaes para diversas plataformas, garantindo a portabilidade destas aplicaes; Diminuio de custos com hardware, atravs da consolidao de servidores;

60/66

20

Benefcios ao utilizar mquinas virtuais (5) Facilidades no gerenciamento, migrao e replicao de computadores, aplicaes ou sistemas operacionais; Prover um servio dedicado para um cliente especfico com segurana e confiabilidade.

61/66

Dificuldades para o uso de mquinas virtuais Processador no Virtualizado; Diversidade de equipamentos; Pr-existncia de softwares.

62/66

Futuro CPU
AMD e Intel anunciaram tecnologias (Pacifica e Vanderpool respectivamente) para que a virtualizao sobre a plataforma x86 ocorra de forma mais natural e tranqila.

63/66

21

Futuro Memria
Vrias tcnicas tem permitido que a virtualizao da memria seja mais eficiente. Pesquisas futuras devem levar aos sistemas operacionais convidados a gerenciar a memria juntamente com o monitor de mquinas virtuais (gerncia cooperativa).
64/66

Futuro E/S
Os dispositivos de E/S sero projetados para fornecer suporte a virtualizao atravs de devices de alta-performance. A responsabilidade pelo acesso aos dispositivos dever passar do monitor para o sistema convidado.

65/66

Dvidas
Se o conhecimento pode criar problemas, no atravs da ignorncia que podemos solucion-los. Isaac Asimov

66/66

22

You might also like