当前位置: 首页 > 专利查询>微软公司专利>正文

用于初始化单个虚拟机内多个虚拟处理器的系统和方法技术方案

技术编号:2856818 阅读:392 留言:0更新日期:2012-04-11 18:40
本发明专利技术是在虚拟机(VM)环境中初始化多个虚拟处理器的系统和方法。初始化多个虚拟处理器的方法包括以下步骤:即主机创建多处理器VM并激活“启动程序虚拟处理器”、“启动程序虚拟处理器”向下一个虚拟处理器发出启动命令,虚拟机监控程序(VMM)给予目标虚拟处理器用于访问硬件资源的最高优先级、VMM迫使“启动程序虚拟处理器”放弃对硬件资源的控制、VMM将硬件资源的控制交给目标虚拟处理器、目标虚拟处理器执行并完成其启动例程、VMM迫使目标虚拟处理器放弃对硬件资源的控制、以及VMM将硬件资源的控制交还给“启动程序虚拟处理器”,用于激活后续虚拟处理器。

【技术实现步骤摘要】

本专利技术一般涉及虚拟机(也称作“处理器虚拟化”)以及在虚拟机环境中执行的软件的领域。本专利技术尤其涉及初始化单个虚拟机内的多个虚拟处理器(VP)的系统和方法。
技术介绍
计算机包括被设计成执行特定的系统指令集的通用中央处理单元(CPU)。具有类似的体系结构或设计规范的一组处理器被认为是同一处理器家族的成员。当前的处理器家族的示例包括由亚利桑那州菲尼克斯市的Motorola公司生产的Motorola 680X0处理器家族;由加利福尼亚州桑尼维尔市的Intel公司生产的Intel80X86处理器家族;以及由Motorola公司生产的,并在由加利福尼亚州库珀蒂诺市的Apple计算机公司生产的计算机中使用的PowerPC处理器家族。尽管一组处理器由于其类似的体系结构和设计考虑可处于同一家族中,然而根据其时钟速度和其它参数性能,家族中的处理器也会有很大的不同。每一微处理器家族执行对该处理器家族唯一的指令。处理器或处理器家族可执行的一组集体的指令被称为处理器的指令集。作为一个示例,由Intel 80X86处理器家族使用的指令集与由PowerPC处理器家族使用的指令集不兼容。Inter 80X86指令集基于复杂指令集计算机(CISC)格式。Motorola Power PC指令集基于精简指令集计算机(RISC)格式。CISC处理器使用大量的指令,其中一些可执行相当复杂的功能,但是它一般需要许多时钟周期来执行。RISC处理器使用较少数量的可用指令,来执行以更高的速率执行的一组较简单的功能。处理器家族在计算机系统之中的唯一性通常导致计算机系统的硬件体系结构的其它元件之间的不兼容性。用来自Intel 80X86处理器家族的处理器制造的计算机系统具有与用来自PowerPC处理器家族的处理器制造的计算机系统的硬件体系结构不同的硬件体系结构。由于处理器指令集以及计算机系统的硬件体系结构的唯一性,应用软件程序通常被书写成在运行特定操作系统的特定计算机系统上运行。计算机制造商希望通过令更多而不是更少的应用程序运行在与计算机制造商的产品线相关联的微处理器家族上来将其市场份额最大化。为扩展可运行在计算机系统上的操作系统和应用程序的数量,开发了一种
,其中,称为主机的具有一种类型CPU的给定计算机将包括一仿真器程序,它允许主机计算机仿真一种称为访客的CPU的不相关类型指令。由此,主机计算机将执行促使一个或多个主机指令响应于给定访客指令而被调用的应用程序。由此,主机计算机可运行为其自己的硬件体系结构设计的软件和为具有不相关硬件体系结构的计算机书写的软件两者。作为一个更具体的示例,例如,由Apple计算机制造的计算机系统可运行为基于PC的计算机系统书写的操作系统和程序。也可能使用一仿真器程序以在单个CPU上并发地操作多个不兼容的操作系统。在这一装置中,尽管每一操作系统与其它操作系统不兼容,但是仿真器程序可主宿两个操作系统之一,从而允许不兼容的操作系统在同一计算机系统上并发地运行。当在主机计算机系统上仿真访客计算机系统时,访客计算机系统被称为“虚拟机”,因为访客计算机系统仅作为一种特定硬件体系结构的纯软件表示存在于主机计算机系统中。术语仿真器、虚拟机和处理器仿真有时可互换地使用,以表示模仿或仿真一个完整的计算机系统的硬件体系结构的能力。作为一个示例,由加利福尼亚州圣马特奥市的Connectix公司创建的Virtual PC软件仿真包括Intel 80X86Pentium处理器和各种主板组件和卡的整个计算机。这些组件的操作在运行于主机上的虚拟机中仿真。在诸如具有PowerPC处理器的计算机系统等主机计算机的操作系统软件和硬件体系结构上执行的仿真器程序模仿整个访客计算机系统的操作。仿真器程序担当主机机器的硬件体系结构和由运行在被仿真的环境中的软件发送的指令之间的交换点。该仿真器程序可以是一主机操作系统(HOS),它是直接运行在物理计算机硬件上的操作系统。或者,被仿真的环境也可以是虚拟机监控程序(VMM),它是一软件层,其直接运行在硬件之上,并通过展示与VMM正在虚拟化(允许VMM不被其上运行的操作系统层注意)的硬件相同的接口来虚拟化该机器的所有资源。主机操作系统和VMM可在同一物理硬件上并排运行。在“实际”物理/非虚拟计算环境中,存在包括计算机硬件内的多个物理处理器的计算系统。一般而言,多处理器系统的初始状态是这样的,即一个处理器用作“启动程序处理器”,它将启动消息发送到系统中存在的每个其它的处理器。更具体的说,在BIOS或OS中编码后,发生与本地先进可编程中断控制器(APIC)设备的通信,以指引启动消息从启动程序处理器到每个存在的处理器。(本地APIC设备处理来自并有关多个处理器的中断。)最初,在启动程序处理器和所有其它的处理器之间存在主从关系,但是一旦所有的处理器被启动,则处理器就在对等级别上运行。用于启动处理器的机制在x86体系结构中被定义得很宽泛。存在消息来启动处理器,但是没有定义的体系结构装置向启动器处理器指示目标处理器是否被成功启动。假定是这样的,则用于决定目标处理器是否被成功启动的传统机制就是基本输A/输出系统(BIOS),它是最前面的第一软件片断,其在计算机被通电时运行。为了开始,在启动程序处理器上执行的BIOS码向另一处理器(称为目标处理器)发出启动消息,这表示应该在哪个共享存储器位置开始启动程序的执行。然后,留在共享存储器内的启动程序代码的执行由目标处理器开始,且目标处理器设置一标志。启动程序处理器的OS寻找存储器中该位置的变化。当启动程序处理器的BIOS代码检测到共享存储器位置已经改变时,它就知道目标处理器已经启动了。对目标处理器未启动的启动程序BIOS代码的仅有指示是代码在有限的时间内没有检测到存储器内的位置变化,这样,假定该处理器有问题,并且因此该处理器是不可用的。这个超时时间段是短暂的——几毫秒。当前,绝大多数的VM一般使用单个虚拟处理器(VP),但是多个处理器VM(MPVM)可能是需要的。在VM环境中,初始化多个VP的一种方法是VMM创建仿真多VP,这是通过主机计算机系统上的多个线程执行的。然而,由于这些VP对应于主机环境中的单独的执行线程,并且由于系统中可能有多个VM来竞争有限的系统资源,所以代表VP的线程的执行时间由于时间片而是任意的。因此,在初始化之后,期望给定VP不立即起动。然而,假定访客操作系统(并且更具体的说,为操作系统的一部分的BIOS)可在具有实际多个处理器以及用于实际处理器的非常快速的启动时间的物理硬件上执行而开发了这类访客操作系统,因此访客OS仅向初始化的处理器提供很少的有限实际时间,以在对实际处理器硬件而言适当的超时之前实际启动。然而,这在虚拟化环境中是有点问题的,这是因为VP的初始化和启动可能要花费几毫秒(由于线程执行等),并且实际上启动VP所花费的时间几乎总是超过访客OS的超时时间。用于处理超时问题的一个简单且直接的方法是修改访客OS的BIOS,以延长超时,但是这个解决方案需要所有的访客OS被维护(即,其超时均得被修改),而且这进而包含VM利益之一——即,运行现成操作系统的能力(假定被开发成用于实际硬件)。而且,进行这个维护的必要——如在逐例或逐OS的基础上——也是有问本文档来自技高网
...

【技术保护点】
一种用于在虚拟机环境中启动虚拟处理器的方法,所述虚拟机环境包含在对应于第一执行线程的第一虚拟处理器上执行的访客操作系统,所述方法包含:向对应于第二执行线程的第二虚拟处理器发出启动命令;向所述第二虚拟处理器及其对应的第二执行线 程提供用于使用硬件资源的最高优先级;所述第二虚拟处理器及其对应的第二执行线程完成启动。

【技术特征摘要】
US 2004-6-30 10/882,9671.一种用于在虚拟机环境中启动虚拟处理器的方法,所述虚拟机环境包含在对应于第一执行线程的第一虚拟处理器上执行的访客操作系统,所述方法包含向对应于第二执行线程的第二虚拟处理器发出启动命令;向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级;所述第二虚拟处理器及其对应的第二执行线程完成启动。2.如权利要求1所述的方法,其特征在于,还包含,在所述第二虚拟处理器及其对应的第二执行线程完成启动之后,向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级。3.如权利要求1所述的方法,其特征在于,包含,迫使所述第一虚拟处理器及其对应的第一执行线程放弃对至少一个硬件资源的控制,并向所述第二虚拟处理器及其对应的第二执行线程提供对同一硬件资源的控制。4.如权利要求1所述的方法,其特征在于,还包含,迫使所述第二虚拟处理器及其对应的第二执行线程放弃对至少一个硬件资源的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对同一硬件资源的控制。5.一种用于在虚拟机环境中启动虚拟处理器的方法,所述虚拟机环境包含在由虚拟机监控程序仿真的虚拟机上执行的访客操作系统,所述虚拟机包含多个虚拟处理器,它们被实现为单独的执行线程,所述访客操作系统包含用于发出启动处理器的命令的子系统(如,BIOS),所述方法包含在对应于第一执行线程的第一虚拟处理器上执行的所述访客操作系统将通过所述第一虚拟处理器向对应于第二执行线程的第二虚拟处理器发出启动命令;所述虚拟机监控程序向所述第二虚拟机处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级,从而防止对应于所述操作系统的所述第一执行线程继续执行,并由此防止对应于所述启动命令的超时;所述虚拟机监控程序迫使所述第一虚拟处理器及其对应的第一执行线程放弃对所有硬件资源组的控制,并向所述第二虚拟控制器及其对应的第二执行线程提供对同一硬件资源组的控制;所述第二虚拟处理器及其对应的第二执行线程完成启动;所述虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级;以及所述虚拟机监控程序迫使所述第二虚拟处理器及其对应的第二执行线程放弃对所述所有硬件资源组的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对同一硬件资源组的控制。6.如权利要求5所述的方法,其特征在于,所述虚拟机监控程序是主机操作系统的一个组成部分。7.如权利要求5所述的方法,其特征在于,所述第一执行线程和所述第二执行线程均在第一物理处理器上执行。8.如权利要求5所述的方法,其特征在于,所述第一执行线程在第一物理处理器上执行,而所述第一执行线程在第二物理处理器上执行,所述方法还包含挂起所述第一线程的执行,该执行与向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级的元素基本上是并发的;以及继续所述第二线程的执行,该执行与向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级的所述虚拟机监控程序的元素基本上是并发的。9.一种用于在虚拟机环境中启动虚拟处理器的系统,所述虚拟机环境包含在对应于第一执行线程的第一虚拟机上执行的访客操作系统,所述系统包含至少一个子系统,用于向对应于第二执行线程的第二虚拟机发出启动命令;向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级;所述第二虚拟处理器及其对应的第二执行线程完成启动。10.如权利要求9所述的系统,其特征在于,包含至少一个子系统,它用于在所述第二虚拟处理器及其对应的第二执行线程完成启动之后,向所述第二虚拟处理器及其对应第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级。11.如权利要求9所述的系统,其特征在于,还包含至少一个子系统,它用于迫使所述第一虚拟处理器及其对应的第一执行线程放弃控制对至少一个硬件资源的控制,向所述第二虚拟处理器及其对应的第二执行线程提供对同一硬件资源的控制。12.如权利要求9所述的系统,其特征在于,还包含至少一个子系统,它用于迫使所述第二虚拟处理器及其对应的第二执行线程放弃对至少一个硬件资源的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对同一硬件资源的控制。13.一种用于在虚拟机环境中启动虚拟处理器的系统,所述虚拟机环境包含在由虚拟机监控程序仿真的虚拟机上执行的访客操作系统,所述虚拟机包含多个虚拟处理器,它们被实现为单独的执行线程,所述访客操作系统包含用于发出启动处理器的命令的子系统(如,BIOS),所述系统包含至少一个子系统,用于在对应于第一执行线程的第一虚拟处理器上执行的所述访客操作系统通过所述第一虚拟处理器向对应于第二执行线程的第二虚拟处理器发出启动命令;所述虚拟机监控程序向所述第二虚拟机处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级,从而防止对应于所述操作系统的所述第一执行线程继续执行,并由此防止对应于所述启动命令的超时;所述虚拟机监控程序迫使所述第一虚拟处理器及其对应的第一执行线程放弃对所有硬件资源组的控制,并向所述第二虚拟控制器及其对应的第二执行线程提供对同一硬件资源组的控制;所述第二虚拟处理器及其对应的第二执行线程完成启动;所述虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级;以及所述虚拟机监控程序迫使所述第二虚拟处理器及其对应的第二执行线程放弃控制对所述所有硬件资源组的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对同一硬件资源组的控制。14.如权利要求13所述的系统,其特征在于,还包含至少一个子系统,其中,所述虚拟机监控程序是主机操作系统的一个组成部分。15.如权利要求13所述的系统,其特征在于,还包含至少一个子系统,其中,所述第一执行线程和所述第二执行线程均在第一物理处理器上执行。16.如权利要求13所述的系统,其特征在于,还包含至少一个子系统,其中,所述第一执行线程在第一物理处理器上执行,而所述第二执行线程在第二物理处理器上执行,所述系统还包含至少一个子系统,用于挂起所述第一线程的执行,该执行与向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级的元素基本上是并发的;以及继续所述第二线程的执行,该执行与向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级的所述虚拟机监控程序的元素基本上是并发的。17.一种计算机可读介质,包含用于在虚拟机环境中启动虚拟处理器的计算机可读指令,所述虚拟机环...

【专利技术属性】
技术研发人员:EP特罗特迈克内尔瑞内安东尼奥维加
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利