二级页面映射
已完成
- 4 分钟
与传统系统中的 OS 相反,借助系统虚拟化,虚拟机监控程序为创建的每个 VM(而不是进程)分配一个连续的可寻址内存空间。 为每个 VM 分配的这个内存空间称为实际内存。 作为交换,VM 中运行的每个来宾 OS 在其实际内存中为每个进程分配一个连续的可寻址内存空间。 为每个进程分配的这个内存空间称为虚拟内存(与传统系统中的名称相同)。 每个来宾 OS 将其进程的虚拟内存映射到底层 VM 的实际内存,而虚拟机监控程序将其 VM 的实际内存映射到系统物理内存。 显然,与传统 OS 相比,这需要在 三种地址(虚拟、实际和物理)之间进行两个级别的映射。 实际上,这些虚拟到实际和实际到物理的映射定义了系统内存虚拟化。 以下视频总结了通过二级页面映射实现内存虚拟化的基本思路:
图 2:本机系统 VM 中的内存虚拟化
与所有常规用途 OS 类似,来宾 OS 仍拥有一组页表。 此外,虚拟机监控程序将拥有另一组页表,用于将实际地址映射到物理地址。 虚拟机监控程序中的页表称为实际映射表。 图 2 演示了本机系统 VM 中的系统内存虚拟化。 它显示了由来宾 VM 维护的页表和由虚拟机监控程序维护的实际映射表。 页表中的每个条目将程序的虚拟页面映射到相应 VM 中的实际页面。 同样,实际映射表中的每个条目都会将 VM 中的实际页面映射到物理内存中的物理页面。 当来宾 OS 尝试在其页表中建立有效的映射条目时,它会被虚拟机监控程序捕获。 随后,虚拟机监控程序会在相关 VM 的实际映射表中建立相应的映射。