CN1716205A - 用于初始化单个虚拟机内多个虚拟处理器的系统和方法 - Google Patents
用于初始化单个虚拟机内多个虚拟处理器的系统和方法 Download PDFInfo
- Publication number
- CN1716205A CN1716205A CNA2005100760763A CN200510076076A CN1716205A CN 1716205 A CN1716205 A CN 1716205A CN A2005100760763 A CNA2005100760763 A CN A2005100760763A CN 200510076076 A CN200510076076 A CN 200510076076A CN 1716205 A CN1716205 A CN 1716205A
- Authority
- CN
- China
- Prior art keywords
- execution thread
- processor
- virtual
- virtual processor
- virtual machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 239000004615 ingredient Substances 0.000 claims 4
- 239000007858 starting material Substances 0.000 abstract description 5
- 230000003213 activating effect Effects 0.000 abstract 2
- 239000010410 layer Substances 0.000 description 12
- 230000015654 memory Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 239000002346 layers by function Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 240000005373 Panax quinquefolius Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000032798 delamination Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
Abstract
本发明是在虚拟机(VM)环境中初始化多个虚拟处理器的系统和方法。初始化多个虚拟处理器的方法包括以下步骤:即主机创建多处理器VM并激活“启动程序虚拟处理器”、“启动程序虚拟处理器”向下一个虚拟处理器发出启动命令,虚拟机监控程序(VMM)给予目标虚拟处理器用于访问硬件资源的最高优先级、VMM迫使“启动程序虚拟处理器”放弃对硬件资源的控制、VMM将硬件资源的控制交给目标虚拟处理器、目标虚拟处理器执行并完成其启动例程、VMM迫使目标虚拟处理器放弃对硬件资源的控制、以及VMM将硬件资源的控制交还给“启动程序虚拟处理器”,用于激活后续虚拟处理器。
Description
参照
本申请主要涉及下面共同转让的申请中揭示的发明:美国专利申请号09/747492(代理案卷号MSFT-2519/304103.01),其提交于2000年12月21日,标题为“SYSTEM AND METHOD FOR THE LOGICAL SUBSTITUTION OFPROCESSOR CONTROL IN AN EMULATED COMPUTING ENVIRONMENT(仿真计算环境中处理器控制的逻辑替代的系统和方法)”,所述专利申请的整体通过引用合并于此。
技术领域
本发明一般涉及虚拟机(也称作“处理器虚拟化”)以及在虚拟机环境中执行的软件的领域。本发明尤其涉及初始化单个虚拟机内的多个虚拟处理器(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的基础上——也是有问题的,因为若没有正确应用维护的话,则有故障风险。因此,所需要的是一种在VM环境中初始化多个VP而没有超时,也无需修改并维护每个访客OS和/或诸如BIOS等其相关联的组件的方法。
发明内容
本发明是一种用于在VM环境中初始化多个虚拟处理器的系统和方法。为防止初始化时访客OS内的超时情况,本发明的多处理器VM系统和方法提供了一种在VM环境中初始化多个虚拟处理器而无需修改并维护每个访客OS和/或其相关组件(如BIOS)的方法,从而提供了VM环境中更高的效率。
初始化多个虚拟处理器的方法包括以下步骤:主机创建多个处理器VM并激活“启动程序虚拟处理器”、“启动程序虚拟处理器”将向下一虚拟处理器发出启动命令、虚拟机监控程序(VMM)给予目标虚拟处理器最高的优先级来访问硬件资源、VMM迫使“启动程序虚拟处理器”放弃对硬件资源的控制、VMM将硬件资源的控制交给目标虚拟处理器、目标虚拟处理器执行并完成其启动例程、VMM迫使目标虚拟处理器放弃对硬件资源的控制、以及VMM将硬件资源的控制交还给“启动程序虚拟处理器”用于激活后续虚拟处理器。
附图说明
当结合附图阅读时,可以更好地理解以上概述以及以下较佳实施例的详细描述。为说明本发明的目的,附图中示出了本发明的示例性构造;然而,本发明不限于所揭示的具体方法和手段。附图中:
图1所示是其中可结合本发明的各方面的计算机系统的框图;
图2示出了用于计算机系统中仿真操作环境的硬件和软件体系结构的逻辑分层;
图3A示出了一种虚拟化计算系统;
图3B示出了虚拟化计算系统的一个替换实施例,它包含与主机操作系统并排运行的虚拟机监控程序;
图4示出了图3B的系统的各部分,其进一步包含多个虚拟处理器;以及
图5所示是依照本发明初始化多处理器VM的方法的流程图。
具体实施方式
本发明的主题是用细节来描述的,以满足法定要求。然而,该描述本身并不制造限制本专利的范围。相反,发明人构想所要求保护的本发明也可结合其它现有或未来技术用其它方法来实现,以包括不同的步骤或类似于本文档中所揭示的那些步骤的组合。此外,尽管此处使用了术语“步骤”意味着所采用方法的不同元素,然而该术语不应当被揭示为暗示此处所揭示的各个步骤之中或之间的任何特定顺序,除非当明确地描述了个别步骤的顺序。
计算机环境
本发明的许多实施例可以在计算机上执行。图1及以下讨论旨在提供对适于在其中实现本发明的计算环境的简要概括描述。尽管并非所需,但本发明将在诸如由客户机工作站或服务器等计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。此外,本领域的技术人员可以理解,本发明可以用其它计算机系统配置来实施,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子设备、网络PC、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
如图1所示,示例性通用计算系统包括常规计算机20或类似装置,包括处理单元21、系统存储器22以及将包括系统存储器的各类系统组件耦合至处理单元21的系统总线23。系统总线23可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构的局部总线。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26,包含如在启动时协助在计算机20内的元件之间传输信息的基本例程,可储存在ROM 24中。个人计算机20也可包括用于对硬盘(未示出)进行读写的硬盘驱动器27、用于对可移动磁盘29进行读写的磁盘驱动器28以及用于对可移动光盘31如CD ROM或其它光介质进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28以及光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接至系统总线23。驱动器及其相关的计算机可读介质为计算机20提供了计算机可执行指令、数据结构、程序模块和其它数据的非易失性存储。尽管这里描述的示例环境采用了硬盘39、可移动磁盘29以及可移动光盘31,然而本领域的技术人员可以理解,在示例性操作环境中也可以使用可储存可由计算机访问的数据的其它类型的计算机可读介质,如盒式磁带、闪存卡、数字视频盘、Bernoulli盒式磁盘、随机存取存储器(RAM)、只读存储器(ROM)等等。
多个程序模块可储存在硬盘、磁盘29、光盘31、ROM 24或RAM 25中,包括操作系统35、一个或多个应用程序36、其它程序模块37以及程序数据38。用户可以诸如通过键盘40和定位设备42等输入设备向计算机420输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常通过耦合至系统总线23的串行端口接口46连接到处理单元21,但也可以通过其它接口连接,如并行端口、游戏端口或通用串行总线(USB)。监视器47或其它类型的显示设备也通过接口,如视频适配器48连接到系统总线23。除监视器47之外,个人计算机通常包括其它外围输出设备(未示出),如扬声器和打印机。图1的示例性系统也包括主机适配器55、小型计算机系统接口(SCSI)总线56以及连接到SCSI总线56的外部存储设备62。
个人计算机20可以在使用到一个或多个远程计算机,如远程计算机49的逻辑连接的网络化环境中操作。远程计算机49可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有相对于计算机20所描述的元件,尽管在图1中仅示出了存储器存储设备50。图1描述的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,个人计算机20通过网络接口或适配器53连接至LAN 51。当在WAN网络环境中使用时,计算机20可包括调制解调器54或用于通过广域网52,如因特网建立通信的其它装置。调制解调器54可以是内置或外置的,通过串行端口接口46连接至系统总线23。在网络化环境中,相对于个人计算机20所描述的程序模块或其部分可储存在远程存储器存储设备中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。此外,尽管预想本发明的多个实施例尤其适合于计算机化的系统,然而本文档中没有任何内容旨在将本发明限于这样的实施例。
虚拟机
从概念上的观点来看,计算机系统一般包括运行在硬件的功能层上的一个或多个软件层。这一分层是为了抽象的原因而完成的。通过为给定软件层定义接口,该层可由其上的其它层来不同地实现。在设计良好的计算机系统中,每一层仅知道(并且仅依赖于)紧靠其之下的那一层。这允许层或“栈”(多个邻接的层)被替换,而不会对所述层或栈上的层产生消极的影响。例如,软件应用程序(较高层)通常依赖于操作系统的较低层(较低层)来将文件写入某一形式的永久存储中,并且这些应用程序不需要理解将数据写入软盘、硬盘驱动器或网络文件夹之间的区别。如果较低层用用于写文件的新操作系统来替换,则较高层软件应用程序的操作保持不受影响。
分层软件的灵活性允许虚拟机(VM)呈现一虚拟硬件层,它实际上是另一软件层。以此方式,VM可为其上的软件层创建所述软件层正运行在其自己的专用计算机系统上的假象,并且由此,VM可允许多个“访客系统”并发地运行在单个“主机系统”上。
图2所示是用于计算机系统中仿真的操作环境的硬件和软件体系结构的逻辑分层的图示。仿真程序94运行在主机操作系统和/或硬件体系结构92上。仿真程序94仿真访客硬件体系结构96和访客操作系统98。软件应用程序100进而运行在访客操作系统98上。在图2的被仿真操作环境中,由于仿真程序94的操作,即使软件应用程序100被设计成运行在一般与主机操作系统和硬件体系结构92不兼容的操作系统上,软件应用程序100也可运行在计算机系统90上。
图3A示出了一个虚拟化的计算系统,它包括直接运行在物理计算机硬件102上的主机操作系统软件层104,并且主机操作系统(主机OS)通过展示与主机OS正在虚拟化(令主机OS能够不被其上运行的操作系统层注意到)的硬件相同的接口,来虚拟化机器的所有资源。
或者,虚拟机监控程序,或VMM软件层104′可以代替主机操作系统104″或与其并排地运行,后一选项在图3B中示出。为了简明起见,后文所有的讨论(尤其是关于主机操作系统104的讨论)应当针对图3A所示的实施例;然而,这些讨论的每一方面应当同等地应用于图3B的实施,其中图3B的VMM 104′本质上在功能层替换了下文描述的图3A的主机操作系统104的角色。
再次参考图3A,在主机OS 104(或VMM 104′)上的是两个虚拟机(VM)实现-VM A 108,它可以是,例如虚拟化的Intel 386处理器;以及VM B 110,它可以是,例如Motorola 680X0处理器家族之一的虚拟化版本。在每一VM A 108和110之上的分别是访客操作系统(访客OS)A 112和B 114。在访客OS A 112上运行两个应用程序-应用程序A1 116和应用程序A2 118,在访客OS B 114上的是应用程序B1 120。
初始化多个虚拟处理器
图4示出图3B的系统的各部分,它进一步包含多个虚拟处理器(VP)。如本领域的技术人员已知和理解的,VP是虚拟化设备,它逻辑上等效于物理处理器,它是虚拟机对客户操作系统进行的仿真。在图4的多处理器VM系统中,VM A 108包含VP A1 124、VP A2 126,直到VP AN 128,比如VM A 108可为客户OS A 112仿真,以便分别执行如应用程序A1 116、应用程序A2 118,直到AN 122。另外,每个VP具有相关联的虚拟本地APIC,它处理进程,一个处理器可用此进程来中断另一个处理器,并且进程也使一个处理器能够启动另一个处理器,如所公知的。当由处理器访问时,本地APIC设备执行诸如屏蔽中断、启用中断或生成处理器间中断等动作。更具体的说,在图4的多处理器VM系统中,VM A 108进一步包含与VP A1 124相关联的虚拟本地APIC A1 130、与VP A2 126相关联的虚拟本地APIC A2 132、以及与VP AN 128相关联的虚拟本地APIC AN 134。同样的,VM B110可包括多个VP和虚拟本地APIC设备,但是为简单起见,这些没有被示出。
每个VP具有VMM中其自己的执行线程,如所公知的。线程是与在处理器上运行的特定程序或应用程序相关联的自主进程。处理器表面上并行地运行程序或应用程序,但是实际上,处理器基于优先级而在各个线程之间是有时间片的。因此继续参考图4,VMM 104′进一步包含与VP A1 124相关联的线程A1 136和与VP A2126相关联的线程A2 138,直到与VP AN 128相关联的线程AN 140。每个并发运行的线程依照VMM 104′分配给每个线程的任何东西(即时间片)而被分配用于访问硬件资源(即,计算机硬件102)的优先级。
为防止在初始时访客OS内的超时情况,图4所示的本发明的多处理器VM系统提供在VM环境中初始化多个虚拟处理器而不必修改或维户每个访客OS和/或诸如BIOS等相关联的组件的方法。参考图5,将详细地描述初始化多个处理器VM的方法。
图5是依照本发明并继续参考图4而示出初始化多个处理器VM的方法150的流程图。在步骤152处,主机OS 104″创建多个处理器VM,如图4中所示的VMA 108,并激活“启动程序虚拟处理器”,例如激活VP A1 124作为“启动程序虚拟处理器”。在步骤154处,VP A1 124(在此示例中是“启动程序虚拟处理器”)将启动命令发布到下一虚拟处理器,比如虚拟处理器VP A2 126到VP AN 128的其中一个。
在步骤156处,VMM 104′向与目标虚拟处理器相关联的线程,如分别是虚拟处理器VP A2 126到VP AN 128的线程A2 138到AN 140的其中一个,给予用于访问包括一个或多个物理处理器(未示出)的硬件资源(即计算机硬件102)的最高优先级。在步骤158处,VMM 104′迫使与VP A1 124相关联的线程A1 136放弃对硬件资源(即计算机硬件102)的控制。在步骤160处,VMM 104′将硬件资源的控制交给与目标虚拟处理器相关联的线程,如分别是虚拟处理器VP A2 126到VPAN 128的线程A2 138到AN 140的其中一个。
在步骤162处,与目标虚拟处理器相关联的线程,如分别是虚拟处理器VP A2126到VP AN 128的线程A2 138到AN 140的其中一个,执行并完成其启动例程。在步骤164处,VMM 104′迫使与目标虚拟处理器相关联的线程,如分别是虚拟处理器VP A2 126到VP AN 128的线程A2 138到AN 140的其中一个放弃对硬件资源(即计算机硬件102)的控制。在步骤166处,VMM 104′将硬件资源的控制交还给线程A1 136,其与“启动程序虚拟处理器”VP A1 124相关联。
在判别步骤168处,VMM 104′确定是否剩下任何虚拟处理器要初始化。如果是的话,则方法150返回到步骤154;如果不是的话,则方法150结束。
结论
此处所描述的各种系统、方法和技术可以用硬件或软件,或在适当时用两者的组合来实现。由此,本发明的方法和装置,或其某些方面,可以采用包含在有形介质,如软盘、CD-ROM、硬盘或任何其它机器可读存储介质中的程序代码(即,指令)的形式,其中,当程序代码被加载到诸如计算机等机器上并由其执行时,该机器变为用于实施本发明的装置。在可编程计算机上的程序代码执行的情况下,计算机一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。一个或多个程序较佳地以高级过程语言或面向对象的编程语言来实现,以与计算机系统通信。然而,如有需要,程序可以用汇编语言或机器语言来实现。在任何情况下,语言可以是已编译或已解释的语言,并与硬件实现相组合。
本发明的方法和装置也可以用程序代码的形式来实施,该程序代码通过某一传输介质来发送,如通过电线或电缆、通过光纤或通过任一其它形式的传输,其中,当程序代码由诸如EPROM、门阵列、可编程逻辑器件(PLD)、客户机计算机、录像机等机器接收被装载到其中由其执行时,该机器变为用于实施本发明的装置。当在通用处理器上实现时,程序代码与处理器相结合,以提供用于调用本发明的功能的唯一装置。
尽管结合各个附图的较佳实施例描述了本发明,然而可以理解,在不脱离本发明的情况下,可以使用其它类似的实施例,或对所描述的实施例作出修改和添加,以执行本发明的相同功能。例如,尽管本发明的示例性实施例是在仿真个人计算机的功能的数字设备的环境中描述的,然而本领域的技术人员可以认识到,本发明不限于这类数字设备,如本申请中所描述的,本发明可应用于任何数量的现有或新兴计算设备或环境,如游戏控制台、手持式计算机、便携式计算机等等,无论它们是有线还是无线的,并且本发明可应用于通过通信网络连接并在网络上交互的任何数量的这类计算设备。此外,应当强调,此处构想了各种计算机平台,包括手持式设备操作系统和其它应用专用硬件/软件接口系统,尤其是当无线联网的设备的数量持续增长时。因此,本发明不应当限于任何单个实施例,而是相反,应当依照所附权利要求书的宽度和范围来解释。
最后,此处所描述的揭示的实施例可适用于其它处理器体系结构、基于计算机的系统、或系统虚拟化,并且这些实施例由此处的揭示明确地考虑在内,因此,本发明不应限于此处所描述的具体实施例,而是相反,应当被更广泛地解释。同样,为除处理器虚拟化之外的目的而使用合成指令也由此处的揭示考虑在内,并且在除处理器虚拟化之外的环境中对合成指令的任何这样的使用应当被更广泛地包含在此处的揭示的意义之内。
Claims (32)
1.一种用于在虚拟机环境中启动虚拟处理器的方法,所述虚拟机环境包含在对应于第一执行线程的第一虚拟处理器上执行的访客操作系统,所述方法包含:
向对应于第二执行线程的第二虚拟处理器发出启动命令;
向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级;
所述第二虚拟处理器及其对应的第二执行线程完成启动。
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.一种计算机可读介质,包含用于在虚拟机环境中启动虚拟处理器的计算机可读指令,所述虚拟机环境包含在对应于第一执行线程的第一虚拟处理器上执行的访客操作系统,所述计算机可读指令包含指令,用于:
向对应于第二执行线程的第二虚拟处理器发出启动命令;
向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级;
所述第二虚拟处理器及其对应的第二执行线程完成启动。
18.如权利要求17所述的计算机可读指令,其特征在于,还包含指令,用于在所述第二虚拟处理器及其对应的第二执行线程完成启动之后,向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级。
19.如权利要求17所述的计算机可读指令,其特征在于,还包含指令,用于迫使所述第一虚拟处理器及其对应的第一执行线程放弃对至少一个硬件资源的控制,并向所述第二虚拟处理器及其对应的第二执行线程提供对同一硬件资源的控制。
20.如权利要求17所述的计算机可读指令,其特征在于,还包含指令,用于迫使所述第二虚拟处理器及其对应的第二执行线程放弃对至少一个硬件资源的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对同一硬件资源的控制。
21.一种计算机可读介质,包含用于在虚拟机环境中启动虚拟处理器的计算机可读指令,所述虚拟机环境包含在由虚拟机监控程序仿真的虚拟机上执行的访客操作系统,所述虚拟机包含多个虚拟处理器,它们被实现为单独的执行线程,所述访客操作系统包含用于发出启动处理器的命令的子系统(如BIOS),所述计算机可读指令包含指令,用于:
在对应于第一执行线程的第一虚拟处理器上执行的所述访客操作系统通过所述第一虚拟处理器向对应于第二执行线程的第二虚拟处理器发出启动命令;
所述虚拟机监控程序向所述第二虚拟机处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级,从而防止对应于所述操作系统的所述第一执行线程继续执行,并由此防止对应于所述启动命令的超时;
所述虚拟机监控程序迫使所述第一虚拟处理器及其对应的第一执行线程放弃控制对所有硬件资源组的控制,并向所述第二虚拟控制器及其对应的第二执行线程提供对同一硬件资源组的控制;
所述第二虚拟处理器及其对应的第二执行线程完成启动;
所述虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级;以及
所述虚拟机监控程序迫使所述第二虚拟处理器及其对应的第二执行线程放弃控制对所有硬件资源组的控制,并向所述第一虚拟处理器及其对应第一执行线程提供对同一硬件资源组的控制。
22.如权利要求21所述的计算机可读指令,其特征在于,还包含指令,其中,所述虚拟机监控程序是主机操作系统的一个组成部分。
23.如权利要求21所述的计算机可读指令,其特征在于,还包含指令,其中,所述第一执行线程和所述第二执行线程均在第一物理处理器上执行。
24.如权利要求21所述的计算机可读指令,其特征在于,还包含指令,其中,所述第一执行线程在第一物理处理器上执行,而所述第二执行线程在第二物理处理器上执行,并且还包含指令,用于:
挂起所述第一线程的执行,该执行与向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级的元素基本上是并发的;以及
继续所述第二线程的执行,该执行与向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级的所述虚拟机监控程序的元素基本上是并发的。
25.一种用于在虚拟机环境中启动虚拟处理器的硬件控制设备,所述虚拟机环境包含在对应于第一执行线程的第一虚拟处理器上执行的访客操作系统,所述硬件控制设备包含装置,用于:
向对应于第二执行线程的第二虚拟处理器发出启动命令;
向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级;
所述第二虚拟处理器及其对应的第二执行线程完成启动。
26.如权利要求25所述的硬件控制设备,其特征在于,还包含装置,用于在所述第二虚拟处理器及其对应的第二执行线程完成启动之后,向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级。
27.如权利要求25所述的硬件控制设备,其特征在于,还包含装置,用于迫使所述第一虚拟处理器及其对应的第一执行线程放弃对至少一个硬件资源的控制,并向所述第二虚拟处理器及其对应的第二执行线程提供对同一硬件资源的控制。
28.如权利要求25所述的硬件控制设备,其特征在于,还包含装置,用于迫使所述第二虚拟处理器及其对应的第二执行线程放弃对至少一个硬件资源的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对同一硬件资源的控制。
29.一种用于在虚拟机环境中启动虚拟处理器的硬件控制设备,所述虚拟机环境包含在由虚拟机监控程序仿真的虚拟机上执行的访客操作系统,所述虚拟机包含多个虚拟处理器,它们被实现为单独的执行线程,所述访客操作系统包含用于发出启动处理器的命令的子系统(如BIOS),所述硬件控制设备包含装置,用于:
在对应于第一执行线程的第一虚拟处理器上执行的所述访客操作系统通过所述第一虚拟处理器向对应于第二执行线程的第二虚拟处理器发出启动命令;
所述虚拟机监控程序向所述第二虚拟机处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级,从而防止对应于所述操作系统的所述第一执行线程继续执行,并由此防止对应于所述启动命令的超时;
所述虚拟机监控程序迫使所述第一虚拟处理器及其对应的第一执行线程放弃对所有硬件资源组的控制,并向所述第二虚拟控制器及其对应的第二执行线程提供对同一硬件资源组的控制;
所述第二虚拟处理器及其对应的第二执行线程完成启动;
所述虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级;以及
所述虚拟机监控程序迫使所述第二虚拟处理器及其对应的第二执行线程放弃对所述所有硬件资源组的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对同一硬件资源组的控制。
30.如权利要求29所述的硬件控制设备,其特征在于,还包含装置,其中,所述虚拟机监控程序是主机操作系统的一个组成部分。
31.如权利要求29所述的硬件控制设备,其特征在于,还包含装置,其中,所述第一执行线程和所述第二执行线程均在第一物理处理器上执行。
32.如权利要求29所述的硬件控制设备,其特征在于,还包含装置,其中,所述第一执行线程在第一物理处理器上执行,而所述第二执行线程在第二物理处理器上执行,所述硬件控制设备还包含装置,用于:
挂起所述第一线程的执行,该执行与向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级的元素基本上是并发的;以及
继续所述第二线程的执行,该执行与向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级的所述虚拟机监控程序的元素基本上是并发的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/882,967 | 2004-06-30 | ||
US10/882,967 US8271976B2 (en) | 2004-06-30 | 2004-06-30 | Systems and methods for initializing multiple virtual processors within a single virtual machine |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1716205A true CN1716205A (zh) | 2006-01-04 |
CN100527085C CN100527085C (zh) | 2009-08-12 |
Family
ID=35134601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100760763A Expired - Fee Related CN100527085C (zh) | 2004-06-30 | 2005-05-30 | 用于初始化单个虚拟机内多个虚拟处理器的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8271976B2 (zh) |
EP (2) | EP3125113B1 (zh) |
JP (1) | JP4806212B2 (zh) |
KR (1) | KR20060047772A (zh) |
CN (1) | CN100527085C (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100464302C (zh) * | 2006-04-20 | 2009-02-25 | 联想(北京)有限公司 | 虚拟机系统及其显卡访问方法 |
CN101689127A (zh) * | 2008-04-28 | 2010-03-31 | 松下电器产业株式会社 | 虚拟计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序 |
CN101807056A (zh) * | 2010-03-16 | 2010-08-18 | 新疆威奥科技股份有限公司 | 无线数控焊接工作站的控制方法及其控制装置 |
CN101403983B (zh) * | 2008-11-25 | 2010-10-13 | 北京航空航天大学 | 基于虚拟机的多核处理器的资源监控方法及系统 |
CN101162432B (zh) * | 2006-10-10 | 2011-03-30 | 国际商业机器公司 | 管理与虚拟机的多个配置的通信的系统和方法 |
CN101241445B (zh) * | 2007-02-08 | 2011-07-27 | 联想(北京)有限公司 | 虚拟机系统及其访问显卡的方法 |
CN101256503B (zh) * | 2006-12-22 | 2012-01-18 | 英特尔公司 | 通过多线程主虚拟机监视器来实现多线程客户操作系统执行的方法和装置 |
CN105190552A (zh) * | 2013-03-14 | 2015-12-23 | 高通股份有限公司 | 执行多个管理程序的系统和方法 |
CN106776065A (zh) * | 2016-11-29 | 2017-05-31 | 北京元心科技有限公司 | 多系统使用Mtp功能的方法及装置 |
CN108363918A (zh) * | 2017-04-28 | 2018-08-03 | 清华大学 | 处理器操作系统的引导启动方法、装置及处理器系统 |
CN109408193A (zh) * | 2017-08-15 | 2019-03-01 | 龙芯中科技术有限公司 | 虚拟机实现方法、装置及计算机设备 |
US10430207B2 (en) | 2016-03-25 | 2019-10-01 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Method and electronic device for directly starting application on second virtual machine in operating environment of first virtual machine |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007197B2 (en) * | 2002-05-31 | 2006-02-28 | Microsoft Corporation | Virtual logging system and method |
WO2006014554A2 (en) * | 2004-07-07 | 2006-02-09 | University Of Maryland | Method and system for monitoring system memory integrity |
US20060212840A1 (en) * | 2005-03-16 | 2006-09-21 | Danny Kumamoto | Method and system for efficient use of secondary threads in a multiple execution path processor |
US8732824B2 (en) * | 2006-01-23 | 2014-05-20 | Microsoft Corporation | Method and system for monitoring integrity of running computer system |
US20080127181A1 (en) * | 2006-06-30 | 2008-05-29 | Microsoft Corporation | Use of fixed-function device as general-purpose platform through virtualization |
US8756607B2 (en) * | 2006-08-14 | 2014-06-17 | Lsi Corporation | Method and system for creating and utilizing virtual hardware resources |
US8584109B2 (en) | 2006-10-27 | 2013-11-12 | Microsoft Corporation | Virtualization for diversified tamper resistance |
US8225315B1 (en) * | 2007-07-23 | 2012-07-17 | Oracle America, Inc. | Virtual core management |
US8650570B2 (en) * | 2008-06-02 | 2014-02-11 | Microsoft Corporation | Method of assigning instructions in a process to a plurality of scheduler instances based on the instruction, in which each scheduler instance is allocated a set of negoitaited processor resources |
US8453149B2 (en) * | 2010-01-21 | 2013-05-28 | International Business Machines Corporation | Efficient multi-core processing of events |
KR20110094764A (ko) * | 2010-02-17 | 2011-08-24 | 삼성전자주식회사 | 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법 |
US8751781B2 (en) | 2010-05-28 | 2014-06-10 | Dell Products, Lp | System and method for supporting secure subsystems in a client hosted virtualization system |
US8458490B2 (en) | 2010-05-28 | 2013-06-04 | Dell Products, Lp | System and method for supporting full volume encryption devices in a client hosted virtualization system |
US8527761B2 (en) | 2010-05-28 | 2013-09-03 | Dell Products, Lp | System and method for fuse enablement of a secure client hosted virtualization in an information handling system |
US8990584B2 (en) * | 2010-05-28 | 2015-03-24 | Dell Products, Lp | System and method for supporting task oriented devices in a client hosted virtualization system |
US9733963B2 (en) * | 2010-09-17 | 2017-08-15 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Optimizing virtual graphics processing unit utilization |
CA2825811A1 (en) * | 2011-01-27 | 2012-08-02 | L-3 Communications Corporation | Internet isolation for avoiding internet security threats |
US9026630B2 (en) * | 2011-06-14 | 2015-05-05 | Vmware, Inc. | Managing resources in a distributed system using dynamic clusters |
US8856784B2 (en) | 2011-06-14 | 2014-10-07 | Vmware, Inc. | Decentralized management of virtualized hosts |
US8701107B2 (en) | 2011-06-14 | 2014-04-15 | Vmware, Inc. | Decentralized management of virtualized hosts |
WO2013032495A1 (en) | 2011-08-30 | 2013-03-07 | Hewlett-Packard Development Company , L.P. | Communication with a virtual trusted runtime bios |
CN103294494B (zh) * | 2012-02-29 | 2018-07-03 | 中兴通讯股份有限公司 | 一种虚拟系统自动化部署的方法和系统 |
KR101387986B1 (ko) * | 2012-05-24 | 2014-04-22 | 성균관대학교산학협력단 | 가상화 장치 |
US9122780B2 (en) * | 2012-06-20 | 2015-09-01 | Intel Corporation | Monitoring resource usage by a virtual machine |
US9578664B1 (en) | 2013-02-07 | 2017-02-21 | Sprint Communications Company L.P. | Trusted signaling in 3GPP interfaces in a network function virtualization wireless communication system |
US9984083B1 (en) | 2013-02-25 | 2018-05-29 | EMC IP Holding Company LLC | Pluggable storage system for parallel query engines across non-native file systems |
US9898475B1 (en) | 2013-02-25 | 2018-02-20 | EMC IP Holding Company LLC | Tiering with pluggable storage system for parallel query engines |
US10437591B2 (en) | 2013-02-26 | 2019-10-08 | Qualcomm Incorporated | Executing an operating system on processors having different instruction set architectures |
US10114756B2 (en) | 2013-03-14 | 2018-10-30 | Qualcomm Incorporated | Externally programmable memory management unit |
US9396012B2 (en) | 2013-03-14 | 2016-07-19 | Qualcomm Incorporated | Systems and methods of using a hypervisor with guest operating systems and virtual processors |
CN103631228A (zh) * | 2013-11-27 | 2014-03-12 | 上海慧控信息技术有限公司 | 控制系统虚拟化方法 |
US9772867B2 (en) | 2014-03-27 | 2017-09-26 | International Business Machines Corporation | Control area for managing multiple threads in a computer |
US9195493B2 (en) * | 2014-03-27 | 2015-11-24 | International Business Machines Corporation | Dispatching multiple threads in a computer |
US9223574B2 (en) | 2014-03-27 | 2015-12-29 | International Business Machines Corporation | Start virtual execution instruction for dispatching multiple threads in a computer |
US9213569B2 (en) | 2014-03-27 | 2015-12-15 | International Business Machines Corporation | Exiting multiple threads in a computer |
US9280375B1 (en) | 2014-04-30 | 2016-03-08 | Google Inc. | Dynamically adjustable virtual machine |
US9389897B1 (en) | 2014-12-18 | 2016-07-12 | International Business Machines Corporation | Exiting multiple threads of a simulation environment in a computer |
US9565168B1 (en) * | 2015-05-05 | 2017-02-07 | Sprint Communications Company L.P. | System and method of a trusted computing operation mode |
US9686240B1 (en) | 2015-07-07 | 2017-06-20 | Sprint Communications Company L.P. | IPv6 to IPv4 data packet migration in a trusted security zone |
US9749294B1 (en) | 2015-09-08 | 2017-08-29 | Sprint Communications Company L.P. | System and method of establishing trusted operability between networks in a network functions virtualization environment |
US9998284B2 (en) | 2015-09-24 | 2018-06-12 | Intel Corporation | Methods and apparatus to provide isolated execution environments |
US10542115B1 (en) | 2015-10-01 | 2020-01-21 | Sprint Communications Company L.P. | Securing communications in a network function virtualization (NFV) core network |
US9811686B1 (en) | 2015-10-09 | 2017-11-07 | Sprint Communications Company L.P. | Support systems interactions with virtual network functions in a trusted security zone |
US9781016B1 (en) | 2015-11-02 | 2017-10-03 | Sprint Communications Company L.P. | Dynamic addition of network function services |
US10250498B1 (en) | 2016-10-03 | 2019-04-02 | Sprint Communications Company L.P. | Session aggregator brokering of data stream communication |
US10348488B1 (en) | 2017-08-25 | 2019-07-09 | Sprint Communications Company L.P. | Tiered distributed ledger technology (DLT) in a network function virtualization (NFV) core network |
US10733005B1 (en) * | 2017-10-10 | 2020-08-04 | Parallels International Gmbh | Providing access to mobile applications by heterogeneous devices |
US10733121B2 (en) * | 2018-05-10 | 2020-08-04 | Qualcomm Incorporated | Latency optimized I3C virtual GPIO with configurable operating mode and device skip |
JP6877388B2 (ja) | 2018-07-09 | 2021-05-26 | 株式会社東芝 | 情報処理装置、移動体、情報処理方法、およびプログラム |
CN110025957B (zh) * | 2019-03-04 | 2023-04-21 | 深圳威尔视觉传媒有限公司 | 一种云游戏服务器端架构、客户端和系统 |
US11379295B1 (en) * | 2019-05-15 | 2022-07-05 | Amazon Technologies, Inc. | Recovery protocols for system malfunctions in virtual computing environments |
US11847205B1 (en) | 2020-10-26 | 2023-12-19 | T-Mobile Innovations Llc | Trusted 5G network function virtualization of virtual network function elements embedded on a system-on-chip |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4779188A (en) | 1983-12-14 | 1988-10-18 | International Business Machines Corporation | Selective guest system purge control |
JPH0731609B2 (ja) | 1985-09-18 | 1995-04-10 | 日本電気株式会社 | Vmモード変更装置 |
JPH0814795B2 (ja) * | 1986-01-14 | 1996-02-14 | 株式会社日立製作所 | マルチプロセッサ仮想計算機システム |
US4875186A (en) | 1986-02-28 | 1989-10-17 | Prime Computer, Inc. | Peripheral emulation apparatus |
DE3788877T2 (de) | 1987-03-24 | 1994-06-23 | Insignia Solutions Ltd | Einrichtung zur software-emulation. |
US4843541A (en) | 1987-07-29 | 1989-06-27 | International Business Machines Corporation | Logical resource partitioning of a data processing system |
US5063499A (en) | 1989-01-09 | 1991-11-05 | Connectix, Inc. | Method for a correlating virtual memory systems by redirecting access for used stock instead of supervisor stock during normal supervisor mode processing |
US5278973A (en) | 1989-03-27 | 1994-01-11 | Unisys Corporation | Dual operating system computer |
JPH04213733A (ja) | 1990-12-12 | 1992-08-04 | Nec Corp | 仮想プロセッサ方式 |
US5448264A (en) | 1991-03-15 | 1995-09-05 | Hewlett-Packard Company | Method and apparatus for separate window clipping and display mode planes in a graphics frame buffer |
US5301277A (en) | 1991-04-10 | 1994-04-05 | Seiko Epson Corporation | Method and apparatus for communicating peripheral data to/from minor operating systems running as subprocesses on a main operating system |
JPH04348434A (ja) | 1991-05-27 | 1992-12-03 | Hitachi Ltd | 仮想計算機システム |
JPH05189574A (ja) | 1991-07-23 | 1993-07-30 | Internatl Business Mach Corp <Ibm> | レンダリング構成要素における複数コマンド支援を行うための方法およびその装置 |
JP2878499B2 (ja) | 1991-10-15 | 1999-04-05 | 株式会社日立製作所 | マルチウィンドウ表示方法およびウィンドウシステム |
JP2682770B2 (ja) * | 1992-05-15 | 1997-11-26 | 富士通株式会社 | 仮想計算機システムのcpu制御方式 |
JP3186244B2 (ja) | 1992-09-18 | 2001-07-11 | 株式会社日立製作所 | 仮想計算機システム |
US5666521A (en) | 1992-12-07 | 1997-09-09 | Intel Corporation | Method and apparatus for performing bit block transfers in a computer system |
US5452456A (en) | 1992-12-18 | 1995-09-19 | Apple Computer, Inc. | Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment |
JPH06242975A (ja) | 1993-02-17 | 1994-09-02 | Hitachi Ltd | 多重情報処理システムの仮想計算機ディスパッチ方式 |
US6199176B1 (en) | 1993-03-11 | 2001-03-06 | International Business Machines Corporation | Method and apparatus for storage resource reassignment utilizing an indicator to enhance the likelihood of successful reconfiguration |
JPH0784562A (ja) | 1993-09-16 | 1995-03-31 | Nec Corp | イメージ格納装置 |
US5515525A (en) | 1993-09-28 | 1996-05-07 | Bull Hn Information Systems Inc. | Emulating the memory functions of a first system on a second system |
US5460644A (en) * | 1993-12-14 | 1995-10-24 | The O'brien Corporation | Stain-blocking and mildewcide resistant coating compositions |
US5692193A (en) | 1994-03-31 | 1997-11-25 | Nec Research Institute, Inc. | Software architecture for control of highly parallel computer systems |
US5541862A (en) | 1994-04-28 | 1996-07-30 | Wandel & Goltermann Ate Systems Ltd. | Emulator and digital signal analyzer |
US5640562A (en) | 1995-02-27 | 1997-06-17 | Sun Microsystems, Inc. | Layering hardware support code on top of an existing operating system |
US5752275A (en) | 1995-03-31 | 1998-05-12 | Intel Corporation | Translation look-aside buffer including a single page size translation unit |
US5742797A (en) | 1995-08-11 | 1998-04-21 | International Business Machines Corporation | Dynamic off-screen display memory manager |
US5757386A (en) | 1995-08-11 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for virtualizing off-screen memory of a graphics engine |
US5790825A (en) | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
US5831607A (en) | 1996-01-25 | 1998-11-03 | International Business Machines Corporation | Method for adapting multiple screens of information for access and use on a single graphical panel in a computer system |
US6026476A (en) | 1996-03-19 | 2000-02-15 | Intel Corporation | Fast fully associative translation lookaside buffer |
US5815686A (en) | 1996-09-12 | 1998-09-29 | Silicon Graphics, Inc. | Method and apparatus for address space translation using a TLB |
US5860147A (en) | 1996-09-16 | 1999-01-12 | Intel Corporation | Method and apparatus for replacement of entries in a translation look-aside buffer |
US5940872A (en) | 1996-11-01 | 1999-08-17 | Intel Corporation | Software and hardware-managed translation lookaside buffer |
US5928322A (en) * | 1996-11-20 | 1999-07-27 | Silicon Graphics, Inc. | Low-latency real-time dispatching in general purpose multiprocessor systems |
US6269391B1 (en) | 1997-02-24 | 2001-07-31 | Novell, Inc. | Multi-processor scheduling kernel |
US6298370B1 (en) | 1997-04-04 | 2001-10-02 | Texas Instruments Incorporated | Computer operating process allocating tasks between first and second processors at run time based upon current processor load |
US6075938A (en) | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6142682A (en) | 1997-06-13 | 2000-11-07 | Telefonaktiebolaget Lm Ericsson | Simulation of computer processor |
US6014170A (en) | 1997-06-20 | 2000-01-11 | Nikon Corporation | Information processing apparatus and method |
US6058466A (en) * | 1997-06-24 | 2000-05-02 | Sun Microsystems, Inc. | System for allocation of execution resources amongst multiple executing processes |
JP4634548B2 (ja) | 1997-11-04 | 2011-02-16 | ヒューレット・パッカード・カンパニー | マルチプロセッサコンピュータシステム及びその動作方法 |
US6681238B1 (en) | 1998-03-24 | 2004-01-20 | International Business Machines Corporation | Method and system for providing a hardware machine function in a protected virtual machine |
US6067618A (en) | 1998-03-26 | 2000-05-23 | Innova Patent Trust | Multiple operating system and disparate user mass storage resource separation for a computer system |
US6496847B1 (en) | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6795966B1 (en) * | 1998-05-15 | 2004-09-21 | Vmware, Inc. | Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction |
JP4072271B2 (ja) | 1999-02-19 | 2008-04-09 | 株式会社日立製作所 | 複数のオペレーティングシステムを実行する計算機 |
US6668287B1 (en) | 1999-12-15 | 2003-12-23 | Transmeta Corporation | Software direct memory access |
US7069205B1 (en) | 2000-07-17 | 2006-06-27 | Microsoft Corporation | System and method for emulating the operation of a video graphics adapter |
US6651132B1 (en) | 2000-07-17 | 2003-11-18 | Microsoft Corporation | System and method for emulating the operation of a translation look-aside buffer |
US7506265B1 (en) | 2000-07-17 | 2009-03-17 | Microsoft Corporation | System and method for displaying images of virtual machine environments |
US7085705B2 (en) | 2000-12-21 | 2006-08-01 | Microsoft Corporation | System and method for the logical substitution of processor control in an emulated computing environment |
US6766474B2 (en) | 2000-12-21 | 2004-07-20 | Intel Corporation | Multi-staged bios-based memory testing |
US6980946B2 (en) | 2001-03-15 | 2005-12-27 | Microsoft Corporation | Method for hybrid processing of software instructions of an emulated computer system |
US7428485B2 (en) * | 2001-08-24 | 2008-09-23 | International Business Machines Corporation | System for yielding to a processor |
US7158972B2 (en) | 2001-12-11 | 2007-01-02 | Sun Microsystems, Inc. | Methods and apparatus for managing multiple user systems |
US7069442B2 (en) | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7310724B2 (en) * | 2003-06-30 | 2007-12-18 | Intel Corporation | Parallel execution of enhanced EFI based BIOS drivers on a multi-processor or hyper-threading enabled platform |
US20050060704A1 (en) * | 2003-09-17 | 2005-03-17 | International Business Machines Corporation | Managing processing within computing environments including initiation of virtual machines |
-
2004
- 2004-06-30 US US10/882,967 patent/US8271976B2/en not_active Expired - Fee Related
-
2005
- 2005-05-11 KR KR1020050039320A patent/KR20060047772A/ko not_active Application Discontinuation
- 2005-05-30 CN CNB2005100760763A patent/CN100527085C/zh not_active Expired - Fee Related
- 2005-05-31 EP EP16181968.5A patent/EP3125113B1/en active Active
- 2005-05-31 EP EP05104658.9A patent/EP1622014B1/en active Active
- 2005-05-31 JP JP2005158858A patent/JP4806212B2/ja not_active Expired - Fee Related
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100464302C (zh) * | 2006-04-20 | 2009-02-25 | 联想(北京)有限公司 | 虚拟机系统及其显卡访问方法 |
CN101162432B (zh) * | 2006-10-10 | 2011-03-30 | 国际商业机器公司 | 管理与虚拟机的多个配置的通信的系统和方法 |
CN101256503B (zh) * | 2006-12-22 | 2012-01-18 | 英特尔公司 | 通过多线程主虚拟机监视器来实现多线程客户操作系统执行的方法和装置 |
CN101241445B (zh) * | 2007-02-08 | 2011-07-27 | 联想(北京)有限公司 | 虚拟机系统及其访问显卡的方法 |
CN101689127A (zh) * | 2008-04-28 | 2010-03-31 | 松下电器产业株式会社 | 虚拟计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序 |
CN101689127B (zh) * | 2008-04-28 | 2013-10-09 | 松下电器产业株式会社 | 虚拟计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序 |
CN101403983B (zh) * | 2008-11-25 | 2010-10-13 | 北京航空航天大学 | 基于虚拟机的多核处理器的资源监控方法及系统 |
CN101807056A (zh) * | 2010-03-16 | 2010-08-18 | 新疆威奥科技股份有限公司 | 无线数控焊接工作站的控制方法及其控制装置 |
CN105190552A (zh) * | 2013-03-14 | 2015-12-23 | 高通股份有限公司 | 执行多个管理程序的系统和方法 |
CN105190552B (zh) * | 2013-03-14 | 2018-10-23 | 高通股份有限公司 | 执行多个管理程序的系统和方法 |
US10430207B2 (en) | 2016-03-25 | 2019-10-01 | Cloudminds (Shenzhen) Robotics Systems Co., Ltd. | Method and electronic device for directly starting application on second virtual machine in operating environment of first virtual machine |
CN106776065A (zh) * | 2016-11-29 | 2017-05-31 | 北京元心科技有限公司 | 多系统使用Mtp功能的方法及装置 |
CN108363918A (zh) * | 2017-04-28 | 2018-08-03 | 清华大学 | 处理器操作系统的引导启动方法、装置及处理器系统 |
CN109408193A (zh) * | 2017-08-15 | 2019-03-01 | 龙芯中科技术有限公司 | 虚拟机实现方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100527085C (zh) | 2009-08-12 |
JP4806212B2 (ja) | 2011-11-02 |
EP3125113A1 (en) | 2017-02-01 |
JP2006018813A (ja) | 2006-01-19 |
EP3125113B1 (en) | 2019-02-20 |
EP1622014A2 (en) | 2006-02-01 |
US20060005188A1 (en) | 2006-01-05 |
EP1622014A3 (en) | 2008-01-02 |
EP1622014B1 (en) | 2016-08-24 |
US8271976B2 (en) | 2012-09-18 |
KR20060047772A (ko) | 2006-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100527085C (zh) | 用于初始化单个虚拟机内多个虚拟处理器的系统和方法 | |
CN100474240C (zh) | 用于在虚拟机环境中实现操作系统的系统和方法 | |
CN100511150C (zh) | 用于虚拟机环境中的仿真设备的开发的系统和方法 | |
CN100530102C (zh) | 用于在64位x86处理器上运行传统32位x86虚拟机的系统和方法 | |
JP6826586B2 (ja) | 従属性に基づくコンテナ・デプロイメント方法、システム、およびプログラム | |
CN1831775B (zh) | 虚拟机环境中用于多级截取处理的系统和方法 | |
EP2053509B1 (en) | System for and method of migrating one or more virtual machines | |
JP5599804B2 (ja) | 仮想ストレージの割り当て方法 | |
US8612633B2 (en) | Virtual machine fast emulation assist | |
US7555596B2 (en) | Systems and methods for attaching a virtual machine virtual hard disk to a host machine | |
EP4050477B1 (en) | Virtual machine migration techniques | |
US20040010787A1 (en) | Method for forking or migrating a virtual machine | |
US8364643B2 (en) | Method and system thereof for restoring virtual desktops | |
CN102307208B (zh) | 基于云计算的虚拟机运行控制装置及其运行控制方法 | |
US20110320556A1 (en) | Techniques For Migrating A Virtual Machine Using Shared Storage | |
US20150205542A1 (en) | Virtual machine migration in shared storage environment | |
CN102193824A (zh) | 虚拟机均质化以实现跨异构型计算机的迁移 | |
WO2012054197A2 (en) | Coordinated upgrades in distributed systems | |
CN112463296B (zh) | 一种创建虚拟机的方法及装置 | |
US11194476B2 (en) | Determining an optimal maintenance time for a data storage system utilizing historical data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150506 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150506 Address after: Washington State Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC Address before: Washington State Patentee before: Microsoft Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090812 |