Definir formalmente a virtualização
- 6 minutos
Formalmente, a virtualização envolve a construção de um isomorfismo que mapeia um sistema de convidado virtual para um sistema de host real1. O vídeo e a figura a seguir ilustram o processo de virtualização.
A função V na figura mapeia o estado do convidado ao estado do anfitrião. Para uma sequência de operações (e) que modifica um estado convidado, há uma sequência correspondente de operações (e') no host que executa modificações equivalentes. Informalmente, a virtualização cria recursos virtuais e os mapeia para recursos físicos. Os recursos virtuais são criados com base em recursos físicos e, essencialmente, funcionam como proxies deles.

Figura 1: Isomorfismo de virtualização
O conceito de virtualização pode ser aplicado a um componente do sistema ou a um computador inteiro. A virtualização geralmente é aplicada somente ao componente de memória em SOs (sistemas operacionais) de uso geral. Essa forma de virtualização é o que possibilita a memória virtual. Reconsiderando o exemplo de disco rígido da Figura 1, alguns aplicativos podem desejar vários discos rígidos. Para atender a esse requisito, o disco rígido físico pode ser particionado em vários discos virtuais, como mostra a Figura 2. Cada disco virtual recebe cilindros lógicos, setores e faixas. Isso mantém o nível de detalhamento análogo ao que é oferecido pelos sistemas operacionais de uso geral, ainda que em uma interface diferente e sem estar dissociado. O hipervisor pode mapear um disco virtual (a função V no isomorfismo) para um único arquivo grande no disco físico. Posteriormente, para executar uma operação de leitura/gravação em um disco virtual (a função e no isomorfismo), o hipervisor reflete a operação como uma leitura/gravação de arquivo seguida por uma leitura/gravação de disco real (a função e' no isomorfismo).

Figura 2: Construir um disco virtual mapeando seu conteúdo para arquivos grandes
Por outro lado, quando a virtualização é aplicada a um computador inteiro, ela fornece o que é chamado de VM (máquina virtual). Especificamente, um conjunto completo de recursos de hardware, incluindo processadores, memória e dispositivos de E/S, é virtualizado para fornecer a VM. Como mostra a Figura 3, um computador de hardware subjacente geralmente é chamado de host e um sistema operacional em execução em uma VM é chamado de SO convidado. Uma VM pode ser executada somente em um host por vez. Em comparação com um host, uma VM pode ter recursos diferentes na quantidade e no tipo. Por exemplo, uma VM pode obter mais processadores do que o oferecido por um host e pode executar um ISA diferente daquele do host. Por fim, cada VM pode ser inicializada, desligada e reinicializada assim como um host normal. Forneceremos mais detalhes sobre as VMs e os diferentes tipos na próxima página.

Figura 3: virtualização aplicada a um sistema físico inteiro. Um sistema operacional em execução em uma VM é chamado de SO convidado e cada computador físico é chamado de host. Em comparação com um host, uma VM pode ter recursos virtuais diferentes na quantidade e no tipo.
Referências
- Popek, J., e Goldberg, R. (1974). Requisitos formais para arquiteturas virtualizáveis de terceira geração Commun. ACM, Vol. 17, Nº 7.