O que é a sobrecarga do VMM?

1

Estou estudando virtualização. E a primeira coisa em que fiquei preso é a sobrecarga do Monitor de Máquina Virtual. Eu li em algum lugar: Por que não virtualizar - Sobrecarga de virtualização. E isso é na maioria das vezes menos de 5%. Mas basicamente eu quero entender é o que exatamente é essa sobrecarga? Qualquer definição adequada? Eu pesquisei mas não encontrei resposta satisfatória. Alguém sabe sobre isso?

    
por code.atodi 28.04.2013 / 14:29

1 resposta

4

Um sistema operacional típico é dividido em kernel e userspace. O kernel tem acesso direto ao hardware, o espaço do usuário (onde os programas são executados) não, e deve passar pelo kernel. Cada programa executa "dentro de" um espaço de usuário fornecido pelo kernel. (As CPUs modernas têm uma MMU que fisicamente impede que os userspaces façam coisas que o kernel não permite.)

Seria mais rápido se o espaço do usuário pudesse acessar o hardware diretamente, em vez de passar pelo kernel, mas seria significativamente menos seguro. Então, um sistema operacional apresenta alguma sobrecarga.

Máquinas virtuais estendem esse conceito um passo adiante. Sistemas operacionais, incluindo o kernel e seu espaço de usuário, executam "dentro" de um monitor de máquina virtual (VMM) - também conhecido como um hipervisor . Apenas o hipervisor tem acesso direto real ao hardware, e o kernel (dentro da VM, ou seja, o kernel do SO convidado) deve "passar" pelo hipervisor para acesso ao hardware. Normalmente, como as VMs são configuradas, o kernel nem sabe que está sendo executado em uma VM. No entanto, como o kernel precisa passar por outra camada para chegar ao hardware (mesmo que não saiba), é um pouco mais lento. Essa é a sobrecarga do VMM.

CPUs mais recentes suportam VMs em hardware e também suportam hardware "remapeamento" dentro de VMs (IOMMU), portanto a sobrecarga geralmente é muito pequena.

    
por 28.04.2013 / 14:45