Nenhum recurso de CPU único permite diretamente um microprocessador para executar vários sistemas operacionais * ao mesmo tempo * da maneira que alguns podem entender intuitivamente (como a verdadeira execução paralela dos kernels do sistema operacional). Em vez disso, é uma combinação de recursos e técnicas que permitem a * aparência * da execução simultânea. Os principais recursos são:
*
Suporte de virtualização (por exemplo, Intel VT-X, AMD-V): Este é o recurso mais crucial. Ele permite que a CPU crie máquinas virtuais isoladas (VMs). Cada VM possui seus próprios recursos de hardware virtualizado (CPU, memória, E/S) e pode executar um sistema operacional separado. A CPU alterna rapidamente entre essas VMs, dando a ilusão de execução simultânea. Isso não é verdadeiro paralelismo no nível do kernel do sistema operacional; É uma rápida troca de contexto.
*
Unidade de Gerenciamento de Memória (MMU): O MMU é essencial para a virtualização e a multitarefa geral. Ele mapeia endereços virtuais usados por cada sistema operacional e aplicativo para endereços de memória física, garantindo que cada sistema operacional ache que tenha acesso exclusivo à memória.
*
Mudança de contexto rápida: A capacidade da CPU de alternar rapidamente entre diferentes processos e VMs também é crucial para a capacidade de resposta de um sistema executando vários sistemas operacionais.
É importante observar que, embora a virtualização permita a execução de vários sistemas operacionais, eles geralmente não correm * simultaneamente * em um sentido paralelo de processamento em que vários núcleos do sistema operacional estão executando instruções exatamente no mesmo instante no mesmo núcleo da CPU (a menos que utilize a tecnologia hiper-threading ou multi-core). Em vez disso, a CPU alterna rapidamente entre os SOs, dando a impressão de operação simultânea.