CN100527085C - 用于初始化单个虚拟机内多个虚拟处理器的系统和方法 - Google Patents

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

Info

Publication number
CN100527085C
CN100527085C CNB2005100760763A CN200510076076A CN100527085C CN 100527085 C CN100527085 C CN 100527085C CN B2005100760763 A CNB2005100760763 A CN B2005100760763A CN 200510076076 A CN200510076076 A CN 200510076076A CN 100527085 C CN100527085 C CN 100527085C
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.)
Active
Application number
CNB2005100760763A
Other languages
English (en)
Other versions
CN1716205A (zh
Inventor
E·P·特罗特
迈克·内尔
瑞内
安东尼奥
维加
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1716205A publication Critical patent/CN1716205A/zh
Application granted granted Critical
Publication of CN100527085C publication Critical patent/CN100527085C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

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软件仿真包括Intel80X86Pentium处理器和各种主板组件和卡的整个计算机。这些组件的操作在运行于主机上的虚拟机中仿真。在诸如具有PowerPC处理器的计算机系统等主机计算机的操作系统软件和硬件体系结构上执行的仿真器程序模仿整个访客计算机系统的操作。
仿真器程序担当主机机器的硬件体系结构和由运行在被仿真的环境中的软件发送的指令之间的交换点。该仿真器程序可以是一主机操作系统(HOS),它是直接运行在物理计算机硬件上的操作系统。或者,被仿真的环境也可以是虚拟机监控程序(VMM),它是一软件层,其直接运行在硬件之上,并通过展示与VMM正在虚拟化(允许VMM不被其上运行的操作系统层注意)的硬件相同的接口来虚拟化该机器的所有资源。主机操作系统和VMM可在同一物理硬件上并排运行。
在“实际”物理/非虚拟计算环境中,存在包括计算机硬件内的多个物理处理器的计算系统。一般而言,多处理器系统的初始状态是这样的,即一个处理器用作“启动程序处理器”,它将启动消息发送到系统中存在的每个其它的处理器。更具体的说,在BIOS或OS中编码后,发生与本地先进可编程中断控制器(APIC)设备的通信,以指引启动消息从启动程序处理器到每个存在的处理器。(本地APIC设备处理来自并有关多个处理器的中断。)最初,在启动程序处理器和所有其它的处理器之间存在主从关系,但是一旦所有的处理器被启动,则处理器就在对等级别上运行。用于启动处理器的机制在x86体系结构中被定义得很宽泛。存在消息来启动处理器,但是没有定义的体系结构装置向启动器处理器指示目标处理器是否被成功启动。假定是这样的,则用于决定目标处理器是否被成功启动的传统机制就是基本输入/输出系统(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(或VMM104′)上的是两个虚拟机(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到AN140的其中一个,执行并完成其启动例程。在步骤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 (12)

1.一种用于在虚拟机环境中启动虚拟处理器的方法,所述虚拟机环境包含在对应于第一执行线程的第一虚拟处理器上执行的访客操作系统,所述方法包含:
所述第一虚拟处理器向对应于第二执行线程的第二虚拟处理器发出启动命令;
一虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级;
所述虚拟机监控程序迫使所述第一虚拟处理器及其对应的第一执行线程放弃对至少一个硬件资源的控制,并向所述第二虚拟处理器及其对应的第二执行线程提供对所述至少一个硬件资源的控制;
所述第二虚拟处理器及其对应的第二执行线程完成启动;以及
所述虚拟机监控程序迫使所述第二虚拟处理器及其对应的第二执行线程放弃对至少一个硬件资源的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对所述至少一个硬件资源的控制。
2.如权利要求1所述的方法,其特征在于,还包含,在所述第二虚拟处理器及其对应的第二执行线程完成启动之后,向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级。
3.一种用于在虚拟机环境中启动虚拟处理器的方法,所述虚拟机环境包含在由虚拟机监控程序仿真的虚拟机上执行的访客操作系统,所述虚拟机包含多个虚拟处理器,它们被实现为单独的执行线程,所述访客操作系统包含用于发出启动处理器的命令的子系统,所述方法包含:
在对应于第一执行线程的第一虚拟处理器上执行的所述访客操作系统将通过所述第一虚拟处理器向对应于第二执行线程的第二虚拟处理器发出启动命令;
所述虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级,从而防止对应于所述操作系统的所述第一执行线程继续执行,并由此防止对应于所述启动命令的超时;
所述虚拟机监控程序迫使所述第一虚拟处理器及其对应的第一执行线程放弃对所有硬件资源组的控制,并向所述第二虚拟处理器及其对应的第二执行线程提供对所述所有硬件资源组的控制;
所述第二虚拟处理器及其对应的第二执行线程完成启动;
所述虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级;以及
所述虚拟机监控程序迫使所述第二虚拟处理器及其对应的第二执行线程放弃对所述所有硬件资源组的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对所述所有硬件资源组的控制。
4.如权利要求3所述的方法,其特征在于,所述虚拟机监控程序是主机操作系统的一个组成部分。
5.如权利要求3所述的方法,其特征在于,所述第一执行线程和所述第二执行线程均在第一物理处理器上执行。
6.如权利要求3所述的方法,其特征在于,所述第一执行线程在第一物理处理器上执行,而所述第二执行线程在第二物理处理器上执行,所述方法还包含:
挂起所述第一执行线程的执行,该执行与向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级基本上是并发的;以及
继续所述第二执行线程的执行,该执行与所述虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级基本上是并发的。
7.一种用于在虚拟机环境中启动虚拟处理器的系统,所述虚拟机环境包含在对应于第一执行线程的第一虚拟处理器上执行的访客操作系统,所述系统包含:
用于所述第一虚拟处理器向对应于第二执行线程的第二虚拟处理器发出启动命令的装置;
用于一虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级的装置;
用于所述虚拟机监控程序迫使所述第一虚拟处理器及其对应的第一执行线程放弃对至少一个硬件资源的控制,向所述第二虚拟处理器及其对应的第二执行线程提供对所述至少一个硬件资源的控制的装置;
用于所述第二虚拟处理器及其对应的第二执行线程完成启动的装置;
用于所述虚拟机监控程序迫使所述第二虚拟处理器及其对应的第二执行线程放弃对至少一个硬件资源的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对所述至少一个硬件资源的控制的装置。
8.如权利要求7所述的系统,其特征在于,进一步包含用于在所述第二虚拟处理器及其对应的第二执行线程完成启动之后,向所述第二虚拟处理器及其对应第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级的装置。
9.一种用于在虚拟机环境中启动虚拟处理器的系统,所述虚拟机环境包含在由虚拟机监控程序仿真的虚拟机上执行的访客操作系统,所述虚拟机包含多个虚拟处理器,它们被实现为单独的执行线程,所述访客操作系统包含用于发出启动处理器的命令的子系统,所述系统包含:
用于在对应于第一执行线程的第一虚拟处理器上执行的所述访客操作系统通过所述第一虚拟处理器向对应于第二执行线程的第二虚拟处理器发出启动命令的装置;
用于所述虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级,从而防止对应于所述操作系统的所述第一执行线程继续执行,并由此防止对应于所述启动命令的超时的装置;
用于所述虚拟机监控程序迫使所述第一虚拟处理器及其对应的第一执行线程放弃对所有硬件资源组的控制,并向所述第二虚拟处理器及其对应的第二执行线程提供对所述所有硬件资源组的控制的装置;
用于所述第二虚拟处理器及其对应的第二执行线程完成启动的装置;
用于所述虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级的装置;以及
用于所述虚拟机监控程序迫使所述第二虚拟处理器及其对应的第二执行线程放弃对所述所有硬件资源组的控制,并向所述第一虚拟处理器及其对应的第一执行线程提供对所述所有硬件资源组的控制的装置。
10.如权利要求9所述的系统,其特征在于,所述虚拟机监控程序是主机操作系统的一个组成部分。
11.如权利要求9所述的系统,其特征在于,所述第一执行线程和所述第二执行线程均在第一物理处理器上执行。
12.如权利要求9所述的系统,其特征在于,所述第一执行线程在第一物理处理器上执行,而所述第二执行线程在第二物理处理器上执行,所述系统还包含:
用于挂起所述第一执行线程的执行的装置,该执行与向所述第二虚拟处理器及其对应的第二执行线程提供用于使用硬件资源的最高优先级基本上是并发的;以及
用于继续所述第二执行线程的执行的装置,该执行与所述虚拟机监控程序向所述第二虚拟处理器及其对应的第二执行线程提供除用于使用硬件资源的最高优先级之外的优先级基本上是并发的。
CNB2005100760763A 2004-06-30 2005-05-30 用于初始化单个虚拟机内多个虚拟处理器的系统和方法 Active CN100527085C (zh)

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 CN1716205A (zh) 2006-01-04
CN100527085C true CN100527085C (zh) 2009-08-12

Family

ID=35134601

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100760763A Active 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)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007197B2 (en) * 2002-05-31 2006-02-28 Microsoft Corporation Virtual logging system and method
US8955104B2 (en) * 2004-07-07 2015-02-10 University Of Maryland College Park 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
CN100464302C (zh) * 2006-04-20 2009-02-25 联想(北京)有限公司 虚拟机系统及其显卡访问方法
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
US7996835B2 (en) * 2006-10-10 2011-08-09 International Business Machines Corporation System, method and program for managing communication with multiple configurations for virtual machine
US8584109B2 (en) 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
US8621459B2 (en) * 2006-12-22 2013-12-31 Intel Corporation Method and apparatus for multithreaded guest operating system execution through a multithreaded host virtual machine monitor
CN101241445B (zh) * 2007-02-08 2011-07-27 联想(北京)有限公司 虚拟机系统及其访问显卡的方法
US8225315B1 (en) * 2007-07-23 2012-07-17 Oracle America, Inc. Virtual core management
CN101689127B (zh) * 2008-04-28 2013-10-09 松下电器产业株式会社 虚拟计算机控制装置、虚拟计算机控制方法及虚拟计算机控制程序
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
CN101403983B (zh) * 2008-11-25 2010-10-13 北京航空航天大学 基于虚拟机的多核处理器的资源监控方法及系统
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 삼성전자주식회사 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
CN101807056B (zh) * 2010-03-16 2012-05-23 新疆威奥科技股份有限公司 无线数控焊接工作站的控制方法及其控制装置
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
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
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
US8751781B2 (en) 2010-05-28 2014-06-10 Dell Products, Lp System and method for supporting secure subsystems 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
WO2012103517A1 (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
US9454548B1 (en) 2013-02-25 2016-09-27 Emc Corporation Pluggable storage system for distributed file systems
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
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
US9606818B2 (en) * 2013-03-14 2017-03-28 Qualcomm Incorporated Systems and methods of executing multiple hypervisors using multiple sets of processors
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 上海慧控信息技术有限公司 控制系统虚拟化方法
US9213569B2 (en) 2014-03-27 2015-12-15 International Business Machines Corporation Exiting 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
US9195493B2 (en) 2014-03-27 2015-11-24 International Business Machines Corporation Dispatching multiple threads in a computer
US9772867B2 (en) 2014-03-27 2017-09-26 International Business Machines Corporation Control area for managing 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
JP6530816B2 (ja) 2016-03-25 2019-06-12 深▲せん▼前海達闥雲端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co., Ltd. アプリケーション起動方法及びその装置
US10250498B1 (en) 2016-10-03 2019-04-02 Sprint Communications Company L.P. Session aggregator brokering of data stream communication
CN106776065B (zh) * 2016-11-29 2020-09-08 北京元心科技有限公司 多系统使用Mtp功能的方法及装置
CN108363918B (zh) * 2017-04-28 2022-02-18 清华大学 处理器操作系统的引导启动方法、装置及处理器系统
CN109408193B (zh) * 2017-08-15 2020-11-17 龙芯中科技术有限公司 虚拟机实现方法、装置及计算机设备
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)

* Cited by examiner, † Cited by third party
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
GB2203572B (en) * 1987-03-24 1991-11-27 Insignia Solutions Limited Improvements in data processing means
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
US5757386A (en) * 1995-08-11 1998-05-26 International Business Machines Corporation Method and apparatus for virtualizing off-screen memory of a graphics engine
US5742797A (en) * 1995-08-11 1998-04-21 International Business Machines Corporation Dynamic off-screen display memory manager
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
US6766474B2 (en) * 2000-12-21 2004-07-20 Intel Corporation Multi-staged bios-based memory testing
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
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

Also Published As

Publication number Publication date
JP2006018813A (ja) 2006-01-19
KR20060047772A (ko) 2006-05-18
EP3125113B1 (en) 2019-02-20
JP4806212B2 (ja) 2011-11-02
EP1622014A3 (en) 2008-01-02
EP1622014B1 (en) 2016-08-24
EP3125113A1 (en) 2017-02-01
EP1622014A2 (en) 2006-02-01
US8271976B2 (en) 2012-09-18
CN1716205A (zh) 2006-01-04
US20060005188A1 (en) 2006-01-05

Similar Documents

Publication Publication Date Title
CN100527085C (zh) 用于初始化单个虚拟机内多个虚拟处理器的系统和方法
CN100474240C (zh) 用于在虚拟机环境中实现操作系统的系统和方法
CN100511150C (zh) 用于虚拟机环境中的仿真设备的开发的系统和方法
CN100530102C (zh) 用于在64位x86处理器上运行传统32位x86虚拟机的系统和方法
US7313793B2 (en) Method for forking or migrating a virtual machine
CN1831775B (zh) 虚拟机环境中用于多级截取处理的系统和方法
CN100472389C (zh) 使用仿真计算环境收集操作系统许可证收益的系统和方法
CN102177509B (zh) 虚拟化存储分配方法
EP2053509B1 (en) System for and method of migrating one or more virtual machines
CN102207886B (zh) 虚拟机快速仿真辅助
US9141417B2 (en) Methods and systems for integrated storage and data management using a hypervisor
US7383405B2 (en) Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity
US7555596B2 (en) Systems and methods for attaching a virtual machine virtual hard disk to a host machine
US9489274B2 (en) System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI)
CN103019802B (zh) 一种虚拟机管理方法及平台
CN102307208B (zh) 基于云计算的虚拟机运行控制装置及其运行控制方法
CN115988217A (zh) 一种虚拟化视频编解码系统、电子设备和存储介质
CN102609324B (zh) 一种虚拟机死锁后的恢复方法、装置及系统
CN112463296A (zh) 一种创建虚拟机的方法及装置
US20150347172A1 (en) Virtual machine (vm) sequencer and scheduler to avoid boot storm
Chang et al. Private small-cloud computing in connection with winCE thin client
Englander A Novel and Efficient Introduction to Clustering using a Classroom Laptop-based Computer Cluster
INFRASTRUCTURE VMware View on NetApp Deployment Guide

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: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.