Escolar Documentos
Profissional Documentos
Cultura Documentos
Operacionais
Marcos Laureano
1/66
Roteiro
• Máquinas virtuais
• Emuladores
• Propriedades
• Benefícios
• Futuro
2/66
Sistemas de Computadores
3/66
1
Sistemas de Computadores
Aplicações
Sistema
Operacional
Hardware
4/66
Plataformas diferentes
Windows Linux
MacOS
5/66
Incompatibilidade
MacOS
Linux
x86 x86
6/66
2
Máquina Virtual
7/66
Máquina Virtual
Aplicações
Sistema
Operacional
Hardware
9/66
3
Máquina Virtual
Aplicações Aplicações Aplicações
Linux Windows Windows
Sistema Operacional
Software
Camada de hardware
Processador Periférico Disco Disquete físico
10/66
Emulador
11/66
12/66
4
Máquina Virtual
13/66
14/66
VMM e Emulador
15/66
5
Abstração e virtualização
16/66
Abstração e virtualização
Software Software
Somente operações simples
Software Software
Virtualização
Abstração
Tipos de Emuladores
(1ª classificação)
• Firmware
– Um firmware pode ser definido como
Programação em hardware;
• Software
– Toda a emulação é feita por software;
• Combinação ou “emulação combinada” ou
“combo”
– O emulador é composto de hardware e
software;
18/66
6
Tipos de Emuladores
(2ª classificação)
19/66
Tipos de Emuladores
De acordo com uso
• Emulação do processador;
• Emulação de um sistema operacional;
• Emulação de uma plataforma de
(hardware) específico;
• Consoles de videogames.
20/66
• 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 anfitrião (host system)
21/66
7
Tipo I
Aplicação Aplicação
Convidado Convidado
Monitor
Hardware
22/66
Tipo II
Aplicação Aplicação
Sistema convidado
Monitor Aplicação
Sistema anfitrião
Hardware
23/66
Abordagens Híbridas
24/66
8
Otimizações em monitores de Tipo I
25/66
Aplicação Aplicação
Monitor
1 1
Hardware
26/66
27/66
9
Otimizações em monitores de Tipo II
1ª Abordagem
Sistema Convidado
Monitor Aplicação
Sistema Anfitrião
1
Hardware
28/66
29/66
Sistema Convidado
Monitor Aplicação
Sistema Anfitrião
2
Hardware
30/66
10
Otimizações em monitores de Tipo II
3ª Abordagem
31/66
Sistema Convidado
Monitor Aplicação
Sistema Anfitrião
Hardware
3
32/66
Virtualização
33/66
11
Tipos de Virtualização
• Virtualização do hardware
• Virtualização do sistema operacional
• Virtualização de linguagens de
programação
34/66
Virtualização do Hardware
35/66
Virtualização do Hardware
Aplicação Aplicação
Sistema Operacional
(Linux, Windows, Unix)
cpu, ram, dispositivos de E/S -
Virtual
Máquina Virtual
Sistema Operacional (Linux, Windows,
Unix)
cpu, ram, dispositivos de E/S - Real
36/66
12
Virtualização do sistema operacional
37/66
Aplicação Aplicação
Sistema Operacional (Linux,
Windows, Unix) - Virtual
Máquina Virtual
Virtualização de linguagens de
programação
39/66
13
Virtualização de linguagens de
programação
Aplicação
Máquina Virtual
Sistema Operacional (Linux, Windows,
Unix)
cpu, ram, dispositivos de E/S - Real
40/66
Poder da Virtualização
41/66
Poder da Virtualização
Aplicação Java
User-Mode Linux
Linux
VMware
Windows
14
Poder da Virtualização
Apl Apl
Aplicação
JAIL JAIL Mac
Aplicação Aplicação
FreeBSD Mac OS Aplicação Linux Windows
VMware JVM UML QEMU
Windows Linux
XEN
Hardware (x86)
43/66
44/66
Virtualização total
45/66
15
Virtualização total
0000 000F
Memória
Real Memória
Virtual
46/66
Paravirtualização
47/66
Re-compilação dinâmica
48/66
16
Re-compilação dinâmica
49/66
Re-compilação dinâmica
50/66
Re-compilação dinâmica
51/66
17
Propriedades de monitores de máquinas
virtuais
• Isolamento
• Inspeção
• Interposição
• Eficiência
• Gerenciabilidade
• Compatibilidade do software
• Encapsulamento
• Desempenho
52/66
Propriedades (1)
• Isolamento
– Um software em execução em uma máquina
virtual não acessa ou modifica outro software
em execução no monitor ou em outra
máquina virtual.
• Inspeção
– O monitor tem acesso e controle sobre todas
as informações do estado da máquina virtual,
como estado da CPU, conteúdo de memória,
eventos, etc.
53/66
Propriedades (2)
• Interposição
– O monitor pode intercalar ou acrescentar
instruções em certas operações de uma
máquina virtual, como por exemplo, quando
da execução de instruções privilegiadas por
parte da máquina virtual.
• Eficiência
– Instruções inofensivas podem ser executadas
diretamente no hardware, pois não irão afetar
outras máquinas virtuais ou aplicações.
54/66
18
Propriedades (3)
• Gerenciabilidade
– Como cada máquina virtual é uma entidade
independente das demais, a administração
das diversas instâncias é simplificada e
centralizada.
• Compatibilidade de Software
– A máquina virtual fornece uma abstração
compatível 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 execução do software na máquina virtual.
– Pode também usar esta ação indireta para dar
prioridade ao software ou fornecer um ambiente
melhor para execução.
• Desempenho
– Adicionar uma camada de software a um sistema
pode afetar o desempenho do software que funciona
na máquina virtual, mas os benefícios
proporcionados pelo uso de sistemas virtuais
compensam a perda de desempenho.
56/66
57/66
19
Benefícios ao utilizar máquinas virtuais (2)
58/66
60/66
20
Benefícios ao utilizar máquinas virtuais (5)
61/66
62/66
Futuro – CPU
63/66
21
Futuro – Memória
Futuro – E/S
65/66
Dúvidas
• “Se o conhecimento pode criar problemas,
não é através da ignorância que podemos
solucioná-los.” – Isaac Asimov
66/66
22