3.2 Quanto à Técnica
3.2.1
Virtualização Completa
Como o nome sugere, o hardware hospedeiro é
completamente abstraído e todas as características de um equipamento
virtual
são emulados, ou seja, todas as instruções solicitadas pelo sistema
convidado
são interpretados no Monitor de Máquina Virtual. O sistema hospedado
ignora a
existência da máquina virtual e opera como se funcionasse diretamente
sobre o
sistema operacional para o qual foi projetado para funcionar.
3.2.2
Paravirtualização
Nessa técnica, a máquina virtual não é
idêntica ao
equipamento físico original, para que o sistema hospedado possa enviar
as
instruções mais simples diretamente para o hardware, restando apenas as
instruções de nível mais alto para serem interpretadas pelo MMV. Entretanto,
esse procedimento requer que o sistema operacional convidado seja
modificado
para interagir com o MMV e selecionar quais instruções devem ser
interpretadas
nele ou diretamente no hardware hospedeiro.
3.2.3
Recompilação Dinâmica
Na recompilação dinâmica, as instruções
são traduzidas
durante a execução do programa da seguinte forma: as instruções do
programa são
identificadas em forma de sequência de bits. Em seguida, as sequências
são
agrupadas em instruções mais próximas do sistema operacional
hospedeiro. Por
último, essas instruções são reagrupadas em um código de mais alto
nível, que,
por sua vez, é compilado na linguagem nativa do sistema hospedeiro.
3.2.4
Vantagens e Desvantagens de cada técnica
A virtualização completa é mais flexível em termos de
SO convidados, uma vez que este não precisa ser modificado para
implementação
dessa técnica. Todas as instruções são interpretadas pelo monitor de
máquina
virtual. Em compensação, essa interpretação de cada instrução provoca
perda de
desempenho de processamento, uma vez que o monitor de máquina virtual
se
utiliza de dispositivos de virtualização que atendem a uma gama de
aplicativos
e, por isso, possuem uma baixa especialização. Assim, não é possível
ter o
máximo desempenho desse aplicativo.
A paravirtualzação é menos flexível,
pois carece de
modificações no sistema operacional convidado, para que este possa
trabalhar
perfeitamente nas condições descritas em 3.2.2. Porém, o fato de o
sistema
operacional convidado saber que opera sobre uma máquina virtual e, com
isso,
mandar as instruções mais simples diretamente para o hardware diminui a
sobrecarga no MMV e permite uma maior especialização dos dispositivos
de
virtualização. Dessa forma os aplicativos operam mais próximos de sua
capacidade
máxima, melhorando seu desempenho em comparação à virtualização
completa. Além
disso, na paravirtualização, a complexidade das máquinas virtuais a
serem
desenvolvidas diminui consideravelmente.
A
recompilação dinâmica tem como principal vantagem a
melhor adequação do código gerado ao ambiente de virtualização, que,
com a
compilação durante a execução, pode refletir melhor o ambiente original
do
aplicativo. Isso acontece porque durante a execução, há novas
informações
disponíveis, às quais um compilador estático não teria acesso. Dessa
forma o
código gerado se torna mais eficiente. Em contrapartida, essa técnica
exige
maior capacidade de processamento, visto que a recompilação acontece em
tempo
real de execução do programa.
| Top
| Next