Você está na página 1de 69

Sistemas

Operacionais
Danilo Rangel

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

MacOS

Power PC

Aplicaes Windows

Aplicaes Linux

Windows

Linux

x86

x86

5/66

Incompatibilidade
Aplicaes MacIntosh

MacOS

Aplicaes Windows

Linux

x86

x86
6/66

Mquina Virtual

7/66

Mquina Virtual

8/66

Mquina Virtual

9/66

10/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.
11/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)
12/66

Mquina Virtual
Aplicaes

Sistema
Operacional
Mquina Virtual

Camada de compatibilidade

Hardware
13/66

Mquina Virtual
Aplicaes
Linux

Aplicaes
Windows

Aplicaes
Windows
Camada de hardware virtual

Aplicaes

Mquina Virtual
Sistema Operacional

Processador Perifrico Disco

Disquete

Aplicaes
Software
Camada de hardware
fsico

14/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.
15/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.

16/66

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

17/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.

18/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;
19/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.

20/66

Abstrao e virtualizao
Software

Somente operaes simples

Software

Software

Software

Virtualizao
Arquivo

Arquivo

Arquivo

Arquivo

Abstrao

Permite operaes complexas


21/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;
22/66

Tipos de Emuladores
(2 classificao)

Totalmente baseada em hardware;


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

23/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.

24/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)

25/66

Tipo I

Aplicao
Convidado

Aplicao
Convidado

Monitor
Hardware
26/66

Tipo II

Aplicao
Aplicao
Sistema convidado
Monitor
Sistema anfitrio

Aplicao

Hardware

27/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

28/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.

29/66

Otimizaes em monitores de Tipo I

Aplicao

Aplicao

Sistema Convidado

Sistema Convidado

Monitor

Hardware

30/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.

31/66

Otimizaes em monitores de Tipo II


1 Abordagem

Aplicao

Aplicao

Aplicao

Sistema Convidado
Monitor
1

Aplicao

Sistema Anfitrio
Hardware

32/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.

33/66

Otimizaes em monitores de Tipo II


2 Abordagem

Aplicao

Aplicao

Aplicao

Sistema Convidado
Monitor
2

Aplicao

Sistema Anfitrio
Hardware

34/66

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.

35/66

Otimizaes em monitores de Tipo II


3 Abordagem

Aplicao

Aplicao

Aplicao

Sistema Convidado
Monitor

Aplicao

Sistema Anfitrio
3

Hardware

36/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.

37/66

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

38/66

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

39/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
40/66

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.

41/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
42/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.
43/66

Virtualizao de linguagens de
programao

Aplicao
Mquina Virtual
Sistema Operacional (Linux, Windows,
Unix)
cpu, ram, dispositivos de E/S - Real
44/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.
45/66

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

46/66

Poder da Virtualizao
Apl

Apl

JAIL

JAIL

Aplicao
Mac
Mac OS

FreeBSD

VMware

Aplicao

Aplicao
Linux

Aplicao
Windows

JVM

UML

QEMU

Windows

Linux
XEN
Hardware (x86)

47/66

Tcnicas de virtualizao e emulao


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

48/66

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

49/66

Virtualizao total
0000

00FF

0FFF

0000
Memria
Real

FFFF

000F

Memria
Virtual

Espao reservado pela mquina


virtual para o sistema convidado.

50/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.

51/66

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

52/66

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;

53/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);

54/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.
55/66

Propriedades de monitores de mquinas


virtuais

Isolamento
Inspeo
Interposio
Eficincia
Gerenciabilidade
Compatibilidade do software
Encapsulamento
Desempenho
56/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.
57/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.
58/66

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.
59/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.
60/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;

61/66

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;

62/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);
63/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;

64/66

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.

65/66

Dificuldades para o uso de mquinas virtuais

Processador no Virtualizado;
Diversidade de equipamentos;
Pr-existncia de softwares.

66/66

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).
67/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.

68/66

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

69/66