虚拟化技术:Hyper-V 调度器深度解析
1. 动态内存管理
在虚拟化环境中,动态内存管理是一项重要的功能。系统会收集如脏页数量、每秒页面错误数、空闲和清零页面列表中的页面数量等内存状态信息,并将报告发送到根分区。根分区中的 VM Worker 进程会利用 VmCompute 服务组件 VMMS 均衡器提供的服务,计算是否可以执行热添加操作。
1.1 热添加操作步骤
- 根分区预留物理内存 :在根分区中预留适当数量的物理内存。
- 映射物理页面 :调用管理程序,将根分区预留的系统物理页面映射到子虚拟机中映射的某些来宾物理页面,并设置适当的保护。
- 启动热添加操作 :向动态内存驱动程序发送消息,启动对管理程序先前映射的某些来宾物理页面的热添加操作。子分区中的动态内存驱动程序使用 NT 内核公开的 MmAddPhysicalMemory API 执行热添加操作。
1.2 热移除操作
当 VMMS 均衡器检测到子虚拟机有大量可用物理页面时,可能会要求子分区热移除一些物理页面。动态内存驱动程序使用 MmRemovePhysicalMemory API 执行热移除操作。NT 内核会验证均衡器指定范围内的每个页面是否在清零或空闲列表中,或者是否属于可以安全换出的堆栈。如果所有条件都满足,动态内存驱动程序会将“热移除”页面范围返回给 VM Worker 进程,该进程将使用 VID 驱动程序提供的服务从子分区取消映射物理页面,并将其释放回 NT 内核。
需要注意的是
超级会员免费看
订阅专栏 解锁全文

66

被折叠的 条评论
为什么被折叠?



