管理程序可将系统分成多个 VM,并将 Windows Server 2008 的引导实例当作主分区(或根分区),以使其可直接访问各种硬件设备(如磁盘、网络适配器和图形处理器)。管理程序要求根分区执行电源管理并响应硬件即插即用事件。
当将 Windows Server 2008 配置为具有 Hyper-V 服务器角色时,Windows 将把 hypervisorimagelaunchtypeboot 引导配置数据库 (BCD) 设置设为 auto,并将 Hvboot.sys 设备驱动程序配置为在引导过程的前期启动。如果配置了该选项,Hvboot.sys 将使系统做好虚拟化准备,然后将 %Systemroot%\System32\Hvax64.exe 或 %Systemroot%\System32\Hvix64.exe 加载到内存中,具体加载哪个程序取决于系统是实现 AMD-V 虚拟化扩展还是 Intel VT CPU 虚拟化扩展。
加载完成后,管理程序使用虚拟化扩展将自身插入到 Windows Server 2008 中。用户模式的应用程序使用 x64 处理器的 Ring 3 权限级别,而内核模式代码则在 Ring 0 上运行,因此管理程序实际是在概念权限级别 Ring -1 上运行,因为它可控制 Ring 0 上运行的代码的执行环境。
当使用 Hyper-V 管理控制台创建或启动子分区时,它将利用 %Systemroot%\System32\Drivers\Winhv.sys 驱动程序来与管理程序通信,该驱动程序使用公开记录的 hypercall API 来指示管理程序创建指定物理内存大小的新分区和执行特征。根分区中的 VM 服务 (%Systemroot%\System32\Vmms.exe) 为每个子分区创建一个 VM 工作进程 (%Systemroot%\System32\Vmwp.exe) 以管理子分区的状态。
Windows 改善子 VM 操作系统性能的其中一种方法是 Windows Server 2008 和 Windows Vista 都已实现的启发方法(即仅当操作系统运行实现 Microsoft hypercall API 的管理程序时才会激活的代码序列)。通过直接请求管理程序的服务,子 VM 避免了在管理程序必须猜测子操作系统的意图时所产生的虚拟代码开销。
例如,未实现自旋锁(执行底层多处理器同步)启发方法的来宾操作系统将停在一个紧凑循环上旋转以等待其他虚拟处理器释放自旋锁。此旋转可能会阻塞其中一个硬件 CPU,直到管理程序调度第二个虚拟处理器。在启发式操作系统中,自旋锁代码会在将要发生旋转时通过 hypercall 通知管理程序,这样管理程序可以立即调度另一个虚拟处理器并降低不必要的 CPU 使用。
Windows Server 2008 改善 VM 性能的另一种方式是加速 VM 对设备的访问。可通过在子操作系统中安装统称为“VM 集成组件”的一个组件集合来增强性能。
如果运行未安装集成组件的 VM,则子操作系统将为管理程序所提供的模拟设备配置硬件设备驱动程序。当设备驱动程序试图使用硬件资源时,管理程序必须进行干预以便通知根分区,根分区将代表子 VM 操作系统使用标准 Windows 设备驱动程序执行设备 I/O。由于单独的高级 I/O 操作(例如读磁盘)可能包含多个离散的硬件访问,所以它可能导致管理程序和根分区中出现许多称为“截取”的转换。
Windows Server 2008 使用以下三种组件来最小化截取:虚拟机总线驱动程序 (%Systemroot%\System32\Drivers\Vmbus.sys)、虚拟服务客户端 (VSC) 和虚拟服务提供商 (VSP)。当利用受支持操作系统将集成组件安装到 VM 中时,VSC 将取代设备驱动程序的角色,并使用子 VM 中的 Vmbus.sys 驱动程序服务,通过管理程序的 hypercall 和内存共享服务将高级 I/O 请求发送到根分区中的虚拟机总线驱动程序。在根分区中,Vmbus.sys 将请求转发到相应的 VSP,然后它通过根分区的设备驱动程序来启动标准 Windows I/O 请求。
相关专题
- Windows操作系统安装 (15842篇文章)
- Windows权限设置 (10387篇文章)
- Windows操作系统安全集 (18958篇文章)
- 全面解析 Linux2.6内核 (621篇文章)
- Windows频道 (9951篇文章)
- Windows Server 2003 如何升级为域控 (69次浏览)
- 微软下一代操作系统Windows 7截图曝光 (63次浏览)
- windows 2003安全配置问题 (59次浏览)
- 量身定制 让Windows 2008系统为我所用 (52次浏览)
- 升级Windows 2003到Windows 2008活动目录 (47次浏览)
- 安装Windows Server 2008 with Hyper-V (39次浏览)
- Windows Server 2008应用 密码重设盘 (37次浏览)
- Windows 2003网络负载平衡全攻略 (36次浏览)
- 教你申请Windows Server 2008序列号 (35次浏览)
- 浅谈Windows Server 2003设置技巧 (30次浏览)



