虚拟机是真实计算环境的抽象和模拟。VMM需要为每个虚拟机分配一组数据结构,来管理其状态,包括虚拟处理器进程、物理内存使用情况、虚拟机状态使用情况的完整表等。当VMM调度虚拟机时,它会将其部分状态返回给主机系统。并非所有状态都要恢复。例如,主机CR3寄存器存储的是VMM设置的页表物理地址,而不是GuestOS设置的值。主机进程直接执行GuestOS机器的指令。当GuestOS运行在低权限级别时,权限不足的情况下访问主机系统的特权状态(例如写入GDT注册表)会导致主机进程自动产生异常。这将返回到VMM。另外,外国人的到来也干扰了VMM运行的理由。
VMM需要首先将虚拟机的当前状态写回给定的状态结构,分析虚拟机被挂起的原因,然后执行GuestOS所需的特权操作。最简单的情况,如果GuestOS修改了Cr3的注册表,只需要更新虚拟机的数据结构的状态即可。一般来说,在大多数情况下,VMM最初需要经过复杂的流程来执行简单的操作。最后,VMM将当前权限返回给GuestOS,GuestOS从上次中断的地方继续执行,或者处理VMM“塞”进去的虚拟中断和异常。这种经典的虚拟机运行模式称为Trap-And-Emulate。虚拟机对GuestOS完全透明,不需要修改。