Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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
Mquina Virtual
Aplicaes
Camada de compatibilidade
Mquina Virtual
Aplicaes Linux Aplicaes Windows Aplicaes Windows Camada de hardware virtual
Aplicaes
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
12/66
Mquina Virtual
um ambiente criado por um monitor de mquina virtual;
13/66
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
Tipos de Emuladores
(1 classificao)
Firmware
Um firmware pode ser definido como Programao em hardware;
Software
Toda a emulao feita por software;
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
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
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
25/66
26/66
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
Aplicao
Aplicao
Aplicao
Aplicao
28/66
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
Aplicao
Aplicao
Aplicao
Aplicao
30/66
10
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
Aplicao
Aplicao
Aplicao
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
37/66
13
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
43/66
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
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 (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