CN100474240C - 用于在虚拟机环境中实现操作系统的系统和方法 - Google Patents

用于在虚拟机环境中实现操作系统的系统和方法 Download PDF

Info

Publication number
CN100474240C
CN100474240C CNB2005100760710A CN200510076071A CN100474240C CN 100474240 C CN100474240 C CN 100474240C CN B2005100760710 A CNB2005100760710 A CN B2005100760710A CN 200510076071 A CN200510076071 A CN 200510076071A CN 100474240 C CN100474240 C CN 100474240C
Authority
CN
China
Prior art keywords
operating system
virtual machine
effectively
described operating
carried out
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.)
Expired - Fee Related
Application number
CNB2005100760710A
Other languages
English (en)
Other versions
CN1716193A (zh
Inventor
R·A·维嘉
E·P·托劳特
M·内尔
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 CN1716193A publication Critical patent/CN1716193A/zh
Application granted granted Critical
Publication of CN100474240C publication Critical patent/CN100474240C/zh
Expired - Fee Related 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
    • 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
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06F9/4555Para-virtualisation, i.e. guest operating system has to be modified

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)
  • Processing Or Creating Images (AREA)
  • Manipulator (AREA)

Abstract

本发明包括用于实现一种操作系统的系统和方法,该操作系统能够确定它是否在虚拟机环境中操作,并且还能够修改其行为以在虚拟机环境中更有效地操作。本发明的实施例针对用于提供一种操作系统的系统和方法,该操作系统知道它们正在虚拟机环境中操作,并且作为这一认识的结果,能够减少与虚拟机环境相关联的某些性能额外开销。本发明放松了访客操作系统正在专用硬件上操作的假象,并描述了由访客操作系统由于该假象被放松而更有效地操作的方法。

Description

用于在虚拟机环境中实现操作系统的系统和方法
参照
本申请主题涉及以下共同转让的申请中所揭示的发明:2003年10月14日提交的美国专利申请号10/685,051(代理案卷号MSFT-2570/305147.01),名为“SYSTEMS AND METHODS FOR USING SYNTHETIC INSTRUCTIONS IN AVIRTUAL MACHINE(在虚拟机中使用合成指令的系统和方法)”;2003年12月12日提交的美国专利申请号10/734,450(代理案卷号MSFT-2772/305423.01),名为“SYSTEMS AND METHODS FOR BIMODAL DEVICE VIRTUALIZATIONOF ACTUAL AND IDEALIZED HARDWARE-BASED DEVICES(实际和理想化基于硬件的设备的双模态设备虚拟化的系统和方法)”;以及2002年10月18日提交的美国专利申请号10/274,298(代理案卷号MSFT-2564/304108.01),名为“SOFTWARE LICENSE ENFORCEMENT MECHANISM FOR AN EMULATEDCOMPUTING ENVIRONMENT(仿真计算环境的软件许可证实施机制)”,所述专利申请全部通过引用结合于此。
技术领域
本发明一般涉及虚拟机(也称为“处理器虚拟化”)以及在虚拟机环境中执行的软件,尤其涉及用于实现能够确定它是否在虚拟机环境中运行并能够相应地修改其行为的操作系统的系统和方法。
背景技术
计算机包括被设计成执行特定的系统指令集的通用中央处理单元(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可在同一物理硬件上并排运行。
现有的虚拟机软件(如,可从微软公司购买的Virtual Server和Virtual PC)允许如上所述的虚拟化,但是有与允许虚拟化相关联的重大的性能额外开销。性能额外开销可以高达70%的水平,尤其是在具有繁重的I/O工作负载(具有繁重的盘存取或网络通信)的软件应用程序中。这一额外开销的水平在需要最大处理器速度的应用程序中是不可接受的。所需要的是减少虚拟机环境中的处理器额外开销的方法。
在常规的操作系统(OS)中,某些OS活动是在操作系统正在专用物理硬件上运行的假设下执行的。在虚拟机环境中,这些活动对并发地运行在同一物理硬件上的访客OS可能是有害的。这些有害活动捆绑住了操作系统资源(被设计成在专用物理硬件而非虚拟环境中运行),因为操作系统假定该硬件专用于这些资源,并且不知道使用这些资源或等待使用这些资源的其它操作系统。所需要的是修改访客OS的行为,使得它对运行在虚拟机环境中的其它访客OS无害的方法。
发明内容
本发明包括实现操作系统的系统和方法,该操作系统能够确定它是否在虚拟机环境中操作,并且还能够修改其行为,以更有效地在虚拟机环境中操作。
本发明的实施例针对提供一种操作系统的系统和方法,该操作系统知道其在虚拟机环境中操作,并且作为这一认识的结果,能够减少在历史上对虚拟机环境成问题的某些性能额外开销。主机操作系统和访客操作系统之间的共享通信区的引入提供了一种在访客和主机之间通信,而不用在主机和访客之间传递计算机的控制的机制。在访客操作系统和主机之间传递的通信类型的一个示例涉及线程调度。在认识到访客正在VM环境中运行,且引入了共享通信区之后,访客操作系统向主机操作系统发送附加信息(如执行优先级),从而允许主机操作系统作出更有效的线程调度决策,这是因为主机具有关于处理器时间的总体需求(包括访客的需求)的更多信息。
附图说明
当结合附图阅读时,可以更好地理解以上概述以及以下较佳实施例的详细描述。为说明本发明的目的,附图中示出了本发明的示例性构造;然而,本发明不限于所揭示的具体方法和手段。附图中:
图1所示是可结合本发明的各方面的计算机系统的框图;
图2示出了用于计算机系统中仿真的操作环境的硬件和软件体系结构的逻辑分层;
图3A示出了一虚拟化的计算系统;
图3B示出了一虚拟化的计算系统的替换实施例,它包括与主机操作系统并排运行的虚拟机监控程序;
图4示出了图3A的虚拟化计算系统,它还包括具有知晓VM(VM-aware)的访客操作系统的主机操作系统;
图5所示是实现知晓VM的访客操作系统的方法的流程图,该访客操作系统具有修改其行为以提高虚拟机环境中的效率的能力;
图6示出了一个示例性虚拟化计算系统,它包括具有在主机操作系统和知晓VM的访客操作系统之间的共享通信区的主机操作系统;以及
图7所示是依照本发明在知晓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′可以代替主机OS 104"或与其并排地运行,后一选项在图3B中示出。为了简明起见,后文所有的讨论(尤其是关于主机OS 104的讨论)应当针对图3A所示的实施例;然而,这些讨论的每一方面应当同等地应用于图3B的实施,其中图3B的VMM 104′本质上在功能层替换了下文描述的图3A的主机OS 104的角色。
对于图3,重要的是注意,VM A 108和VM B 110是虚拟化的计算机硬件表示,它们仅作为软件构造存在,并且由于专用软件代码的存在而是可能的,这些专用软件代码不仅分别向访客OS A 112和访客OS B 114呈现了VM A 108和VM B110,而且也执行访客OS A 112和访客OS B 114间接与真实的物理计算机硬件102交互所需的所有软件步骤。这一完整的功能一般可被称为虚拟机监控程序(VMM)(仅在图3B中示出),其中,对于某些实施例(如图3A中所示出的实施例),VMM包括主机操作系统104的部分。然而,在其它实施例(未示出)中,VMM可以是运行在主机操作系统104上,并且仅通过所述主机操作系统104与计算机硬件交互的应用程序。在又一实施例(如图3B所示的)中,VMM可包括部分独立的软件系统,它在某一层次上通过主机操作系统104间接与计算机硬件102交互,而在其它层次上VMM直接与计算机102交互(类似于主机操作系统主机直接与计算机硬件交互的方式)。在其它实施例(类似于图3B所示的)中,VMM可包括完全独立的软件系统,它在所有的层次上都直接与计算机硬件102交互(类似于主机操作系统直接与计算机硬件交互的方式),而不使用主机操作系统104(尽管在所述计算机硬件102的协调使用以及避免冲突等的程度上,仍与所述主机操作系统104交互)。
所有这些用于实现VMM的变化都被期望形成此处所描述的本发明的替换实施例,并且此处没有任何内容应当被解释为将本发明限于任何特定的VMM配置。另外,对分别通过VM A 108和/或VM B 110在应用程序116、118和120之间的交互的参考(假定在硬件仿真的情况下)应当被解释为实际上是应用程序116、118和120与VMM之间的交互。同样,对应用程序VM A 108和/或VM B 110与主机操作系统104和/或计算机硬件102之间的交互(假定直接或间接在计算机硬件102上执行计算机指令)的任何参考应当被解释为在适当时实际上是VMM和主机操作系统104或计算机硬件102之间的交互。
再次参考图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。
历史上,虚拟机基于访客OS(如访客OS A 112)运行在专用硬件上的假象,而实际上它们与其它访客OS(如,访客OS B 114)共享硬件。主机OS 104负责维持这一假象。本发明放松了这一假象,并允许访客OS能够确定它们是否运行在VM,并随后基于这一认识来改变其行为。描述了能够提高在VM环境中操作的访客OS的效率的行为修改。
VM环境中的操作
图4示出了类似于图3A所示的虚拟化计算系统,但是在图4中,知晓VM(VM-aware)的访客OS A 132和知晓VM的访客OS B 134分别替换了访客OS A112和访客OS B 114。知晓VM的访客OS A 132和知晓VM的访客OS B 134是能够确定它们是否在虚拟机环境中运行,并且如果是则能够修改其行为以更有效地操作的操作系统。
图4的知晓VM的访客OS A 132和知晓VM的访客OS B 134的操作参考图5来描述,图5所示是实现具有修改其行为以提高虚拟机环境中的效率的能力的知晓VM的操作系统的方法104的流程图。在步骤142,该方法首先包括起动知晓VM的操作系统(例如,知晓VM的访客OS A 132或知晓VM的访客OS B 134)。
在步骤144,知晓VM的OS确定它是否在VM环境中操作。这一确定是通过各种方法中的任一种来完成的,包括使用合成指令,如2003年10月14日提交的,名为“SYSTEMS ANS METHOD FOR USING SYNTHETIC INSTRUCTIONS IN AVIRTUAL MACHINE(在虚拟机中使用合成指令的系统和方法)”的美国专利申请号10/685,051(后文称为′051专利申请)中所描述的。’051专利申请描述了一种方法,该方法由操作系统用于通过执行返回表示中央处理单元的身份的值的合成指令(例如,VMCPUID),来确定它是运行在虚拟化处理器上还是直接运行在x86处理器上。如果返回了一个值,则访客OS得出结论,该操作系统运行在虚拟化处理器上;如果响应于合成指令出现了异常,则访客OS得出结论,该操作系统直接运行在x86处理器上。确定访客OS是否运行在VM环境中的另一种方法包括运行一系列测试线程,并将当前环境的性能与历史结果进行比较。在任何情况下,如果知晓VM的OS确定它不在VM环境中操作,则方法140前进到步骤146。或者,如果知晓VM的OS确定它运行在VM环境中,则方法140前进到步骤150。
在步骤146,知晓VM的OS以其“传统”方式操作,因为它在专用硬件上操作,而不在VM环境中。在步骤148,知晓VM的操作系统确定是否接收到一“关机”命令。如果接收到“关机”命令,则知晓VM的OS关机,并且方法130结束。如果没有接收到“关机”命令,则知晓VM的OS如步骤146中所描述的继续以“传统”方式执行。
在步骤150,知晓VM的OS修改其行为,以在VM环境中更有效地操作。行为修改的示例包括,但不限于,1)线程调度;2)使用双模态设备来提高设备的效率,如2003年12月12日提交的,名为“SYSTEMS AND METHODS FOR BIMODALDEVICE VIRTUALIZATION OF ACTUAL AND IDEALIZEDHARD WARE-BASED DEVICES(实际和理想化的基于硬件的设备的双模态设备虚拟化的系统和方法)”的美国专利申请号1-734,450(后文称为′450专利申请);以及3)使用包含主机OS 104的执行优先级的合成指令(如′051专利申请中)。
在步骤152,知晓VM的OS确定是否接收到“关机”命令。如果接收到“关机”命令,知晓VM的OS关机,并且方法130结束。如果没有接收到“关机”命令,则知晓VM的OS如步骤150中所描述的继续以其修改的、高效模式操作。
调度示例
在操作系统中,调度程序将处理器分配给执行环境或线程。调度程序审阅所有的就绪线程,然后调度这些线程以供处理。如果没有工作要完成,则调度程序循环,同时在最终进入忙碌等待(busy-wait)区之前的一段时间查找工作。当操作系统不在虚拟机上操作时,该行为对性能是无害的。然而,在虚拟机环境中,该行为对具有就绪工作,但用于该工作的处理器被占用的其它访客操作系统是有害的。这一循环和忙碌等待时间造成了与虚拟机环境中运行操作系统相关联的高额外开销水平。
图6所示的示例是用于行为修改的示例性系统和方法。然而,本发明不限于线程调度行为修改。
图6示出了一个虚拟化的计算系统,它包括在主机OS 104和知晓VM的访客OS A 132之间布置的共享通信区A 162。类似地,在主机OS 104和知晓VM的访客OS B 134之间布置了共享通信区B 164。该虚拟化计算系统为访客OS提供了一种更有效地操作的方法。在调度示例中,图6中描述的虚拟化计算系统包括由访客OS用于提供附加线程信息(例如,关于线程优先级以及线程运行的期望持续时间的信息)。当这一信息与来自其它访客OS的信息组合时,主机OS具有关于系统内的资源的所有需求的更清晰的描述,因此能够作出更大程度地提高系统效率的决策。
共享通信区A 162和B 164是向知晓VM的访客OS A 132和知晓VM的访客OS B 134提供向主机OS传输信息而不向主机OS 104传递控制的有效方法的机制。向主机OS传递控制是耗时的,因此对总体系统性能是有害的,并且因此若可能的话应被避免。在一个示例中,共享通信区A 162和共享通信区B 164用共享存储器空间来实施。在另一示例中,共享通信区A 162和共享通信区B 163分别由知晓VM的访客OS 132和知晓VM的访客OS B 134之间的直接通信链路来实施。
知晓VM的访客OS A 132和知晓VM的访客OS B 134还分别包含知晓VM的调度程序A 166和知晓VM的调度程序B 168。知晓VM的调度程序A 166和B168在具有执行属性(如,优先级、最终期限以及保留区(被分配给线程的处理器的一部分))的一组就绪的线程上操作。执行属性被放置在共享通信区A 162和B164中。
图6所示的虚拟化计算系统还包括主机OS 104内的主机调度程序172。主机调度程序172基于系统的以下两个新特征作出更有效的决策:首先,知晓VM的访客OS A 132和知晓VM的访客OS B 134都知道它们在VM环境中操作,并且能够向主机调度程序172发送执行优先级以使来自多个知晓VM的访客OS的所有线程能够更有效地执行;其次,共享通信区A 162和B 164提供了一种向主机OS 104发送信息而不向主机OS传递控制的有效方法。
主机调度程序172依照放置在共享通信区A 162和B 164中的执行优先级,分配多个虚拟处理器170A-170N以处理线程。主机调度程序172审阅所有知晓VM的访客OS(例如,知晓VM的访客OS A 132和知晓VM的访客OS B 134)的执行优先级、基于来自所有知晓VM的访客OS的优先级创建合成列表、并分配虚拟处理器170以相应地处理线程。
图6的知晓VM的访客OS的操作参考图7来描述,图7所示是依照本发明在操作系统中调度线程的示例性方法180的流程图。在步骤182,该方法以知晓VM的访客OS A 132确定它是否在VM环境中操作开始。该确定通过各种方法的任一种来作出,包括但不限于,使用如′051申请(上文描述)中所描述的合成指令。如果是,则方法1180前进到步骤192;如果否,则方法180前进到步骤184。
在步骤184—它是专用硬件上的操作系统的默认操作模式—知晓VM的访客OS A 132处理线程。在步骤186,知晓VM的访客OS A 132确定是否有更多的线程准备好被处理。如果是,则方法180返回到步骤184;如果否,则方法180前进到步骤188。在步骤188,知晓VM的访客OS A 132确定是否接收到“关机”命令;如果是,则知晓VM的访客OS A 132关机,并且方法180结束;如果没有接收到“关机”命令,则方法180前进到步骤190。在步骤190,知晓VM的访客OS A 132进入忙碌等待状态,同时等待要被处理的更多线程,并且在指定的时间量之后,方法180返回到步骤186,以由访客OS A 132检查要处理的更多线程。
在步骤192,知晓VM的访客OS A 132—它现在在增强的“知晓VM”模式中操作—通过处理线程来起动,并且然后在步骤194,知晓VM的访客OS A 132确定是否有更多的线程已准备好被处理。如果是,则方法180返回到步骤192以供进一步处理;如果否,则方法180前进到步骤195。在步骤195,访客OS A 132确定是否接收到“关机”命令,如果是,则访客OS A关机,并且方法180结束;如果否,则在步骤196,知晓VM的访客OS A 132向主机OS 104指示(或对于某些替换实施例,向VMM 104′指示),访客OS A 132当前没有任何工作要完成(即,没有线程要处理)。在一个示例中,这一指示由知晓VM的访客OS A 132通过如上所述的共享通信区A 162发送。在另一示例中,该指示通过知晓VM的访客OSA 132向主机OS 104发送合成指令(当然,它被编程为理解所述合成指令)来执行,然后,在步骤198,主机OS 104确定来自其它VM的工作是否已准备好被处理。
如果知晓VM的访客OS A 132在步骤196向主机OS 104指示(例如,通过共享通信区B 132或通过合成指令)它没有任何工作,则主机OS 104确定是否在别处有对处理器资源的需求,如果否,则主机OS允许访客OS A 132保持接收处理器资源,该处理器资源本质上使访客OS A 132即使在访客OS A 132当前没有工作要完成的情况下也能够继续处理,并且由此,访客OS A 132将在返回到步骤194来看是否还有线程要执行之前,在步骤199进入忙碌等待循环。另一方面,如果主机OS 104确定在别处有对处理器资源的需求,则在步骤200,主机OS 104取走用于访客OS A 132的处理器资源,并在将它们返回给主机OS A 104之前临时将它们给予运行在主机OS A 104上的另一进程(例如,另一VM和访客系统,如访客OS B 134),由此有效地挂起了访客OS A 132,直到主机OS 104向它再一次其提供处理器资源,在那时,访客OS A在返回到步骤194之前可任选地继续到忙碌等待状态(对于某些替换实施例,该状态被跳过)。
结论
此处所描述的各种系统、方法和技术可以用硬件或软件,或在适当时用两者的组合来实现。由此,本发明的方法和装置,或其某些方面,可以采用包含在有形介质,如软盘、CD-ROM、硬盘或任何其它机器可读存储介质中的程序代码(即,指令)的形式,其中,当程序代码被加载到诸如计算机等机器上并由其执行时,该机器变为用于实施本发明的装置。在可编程计算机上的程序代码执行的情况下,计算机一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。一个或多个程序较佳地以高级过程语言或面向对象的编程语言来实现,以与计算机系统通信。然而,如有需要,程序可以用汇编语言或机器语言来实现。在任何情况下,语言可以是已编译或已解释的语言,并与硬件实现相组合。
本发明的方法和装置也可以用程序代码的形式来实施,该程序代码通过某一传输介质来发送,如通过电线或电缆、通过光纤或通过任一其它形式的传输,其中,当程序代码由诸如EPROM、门阵列、可编程逻辑器件(PLD)、客户机计算机、录像机等机器接收被装载到其中由其执行时,该机器变为用于实施本发明的装置。当在通用处理器上实现时,程序代码与处理器相结合,以提供用于调用本发明的功能的唯一装置。
尽管结合各个附图的较佳实施例描述了本发明,然而可以理解,在不脱离本发明的情况下,可以使用其它类似的实施例,或对所描述的实施例作出修改和添加,以执行本发明的相同功能。例如,尽管本发明的示例性实施例是在仿真个人计算机的功能的数字设备的环境中描述的,然而本领域的技术人员可以认识到,本发明不限于这类数字设备,如本申请中所描述的,本发明可应用于任何数量的现有或新兴计算设备或环境,如游戏控制台、手持式计算机、便携式计算机等等,无论它们是有线还是无线的,并且本发明可应用于通过通信网络连接并在网络上交互的任何数量的这类计算设备。此外,应当强调,此处构想了各种计算机平台,包括手持式设备操作系统和其它应用专用硬件/软件接口系统,尤其是当无线联网的设备的数量持续增长时。因此,本发明不应当限于任何单个实施例,而是相反,应当依照所附权利要求书的宽度和范围来解释。
最后,此处所描述的揭示的实施例可适用于其它处理器体系结构、基于计算机的系统、或系统虚拟化,并且这些实施例由此处的揭示明确地考虑在内,因此,本发明不应限于此处所描述的具体实施例,而是相反,应当被更广泛地解释。同样,为除处理器虚拟化之外的目的而使用合成指令也由此处的揭示考虑在内,并且在除处理器虚拟化之外的环境中对合成指令的任何这样的使用应当被更广泛地包含在此处的揭示的意义之内。

Claims (15)

1.一种由操作系统用于在虚拟机上执行时提高效率的方法,所述方法包括确定所述操作系统是否在一虚拟机上执行,如果是,则所述操作系统修改其执行以在所述虚拟机上有效地操作,或者如果不是,则所述操作系统对于标准专用硬件环境有效地执行,
所述操作系统修改其执行以在所述虚拟机上有效地操作包括对所述操作系统和主机操作系统之间的至少一个共享通信区的使用,以传输信息而不传输控制。
2.如权利要求1所述的方法,其特征在于,所述操作系统修改其执行以在所述虚拟机上有效地操作包括对线程调度的至少一个元素的使用。
3.如权利要求1所述的方法,其特征在于,所述操作系统修改其执行以在所述虚拟机上有效地操作包括对至少一个双模态设备的使用。
4.如权利要求1所述的方法,其特征在于,所述操作系统修改其执行以在所述虚拟机上有效地操作包括对至少一个合成指令的使用。
5.如权利要求1所述的方法,其特征在于,所述操作系统修改其执行以在所述虚拟机上有效地执行包括对主机系统中的至少一个调度程序的使用,以有效地分配至少一个处理器资源。
6.一种由操作系统用于在虚拟机上执行时提高效率的系统,所述系统包括至少一个子系统,用于确定所述操作系统是否在虚拟机上执行,并且如果是,则所述操作系统修改其执行以在所述虚拟机上有效地操作,或者如果不是,则所述操作系统对于标准专用硬件环境有效地执行,
所述操作系统修改其执行以在所述虚拟机上有效地操作包括对所述操作系统和主机操作系统之间的至少一个共享通信区的使用,以传输信息而不传输控制。
7.如权利要求6所述的系统,其特征在于,还包括至少一个子系统,其中,所述操作系统通过使用线程调度的至少一个元素修改其执行以在所述虚拟机上有效地操作。
8.如权利要求6所述的系统,其特征在于,还包括至少一个子系统,其中,所述操作系统通过使用至少一个双模态设备修改其操作以在所述虚拟机上有效地操作。
9.如权利要求6所述的系统,其特征在于,还包括至少一个子系统,其中,所述操作系统通过使用至少一个合成指令修改其执行以在所述虚拟机上有效地操作。
10.如权利要求6所述的系统,其特征在于,还包括至少一个子系统,其中,所述操作系统通过使用主机操作系统中的至少一个调度程序以有效地分配至少一个处理器资源,来修改其执行以在所述虚拟机上有效地操作。
11.一种由操作系统用于在虚拟机上执行时提高效率的硬件控制设备,所述硬件控制设备包括装置,用于确定所述操作系统是否在虚拟机上执行,并且如果是,则所述操作系统修改其执行以在所述虚拟机上有效地操作,或者如果不是,则所述操作系统对于标准专用硬件环境有效地执行,
所述操作系统修改其执行以在所述虚拟机上有效地操作包括对所述操作系统和主机操作系统之间的至少一个共享通信区的使用,以传输信息而不传输控制。
12.如权利要求11所述的硬件控制设备,其特征在于,还包括装置,它由所述操作系统用于通过使用线程调度的至少一个元素来修改其执行以在所述虚拟机上有效地操作。
13.如权利要求11所述的硬件控制设备,其特征在于,还包括装置,它由所述操作系统用于通过使用至少一个双模态设备来修改其执行以在所述虚拟机上有效地操作。
14.如权利要求11所述的硬件控制设备,其特征在于,还包括装置,它由所述操作系统用于通过使用至少一个合成指令来修改其操作以在所述虚拟机上有效地操作。
15.如权利要求11所述的硬件控制设备,其特征在于,还包括装置,它由所述操作系统用于通过使用主机操作系统中的至少一个调度程序,以有效地分配至少一个处理器资源,来修改其执行以在所述虚拟机上有效地操作。
CNB2005100760710A 2004-06-30 2005-05-30 用于在虚拟机环境中实现操作系统的系统和方法 Expired - Fee Related CN100474240C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/882,979 US20060005190A1 (en) 2004-06-30 2004-06-30 Systems and methods for implementing an operating system in a virtual machine environment
US10/882,979 2004-06-30

Publications (2)

Publication Number Publication Date
CN1716193A CN1716193A (zh) 2006-01-04
CN100474240C true CN100474240C (zh) 2009-04-01

Family

ID=35457286

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100760710A Expired - Fee Related CN100474240C (zh) 2004-06-30 2005-05-30 用于在虚拟机环境中实现操作系统的系统和方法

Country Status (7)

Country Link
US (1) US20060005190A1 (zh)
EP (1) EP1628214B1 (zh)
JP (1) JP5005191B2 (zh)
KR (1) KR20060046260A (zh)
CN (1) CN100474240C (zh)
AT (1) ATE472135T1 (zh)
DE (1) DE602005021940D1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849327B2 (en) * 2005-01-19 2010-12-07 Leung Hin L Technique to virtualize processor input/output resources
US7363463B2 (en) * 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
US20060277546A1 (en) * 2005-06-02 2006-12-07 Rothman Michael A Detecting virtualization
US8909946B2 (en) 2005-11-15 2014-12-09 Microsoft Corporation Efficient power management of a system with virtual machines
US7434003B2 (en) * 2005-11-15 2008-10-07 Microsoft Corporation Efficient operating system operation on a hypervisor
EP1814028A1 (de) * 2006-01-27 2007-08-01 Siemens Aktiengesellschaft Verfahren zum Implementieren von Applikationen in unabhängigen Partitionen mit optimierten Betriebsystemen
US20070271560A1 (en) * 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
US7725305B2 (en) * 2006-06-08 2010-05-25 Microsoft Corporation Partial virtualization on computing device
US20070294707A1 (en) * 2006-06-15 2007-12-20 Microsoft Corporation Enhancing or replacing host operating system functionality by leveraging guest operating system functionality
US8024727B2 (en) * 2006-06-15 2011-09-20 Microsoft Corporation Enhancing or replacing host operating system functionality by leveraging guest operating system functionality
US8214828B2 (en) * 2006-06-30 2012-07-03 Microsoft Corporation Module state management in a virtual machine environment
US8447936B2 (en) * 2006-06-30 2013-05-21 Microsoft Corporation Module state management in a virtual machine environment
US20080104586A1 (en) * 2006-10-27 2008-05-01 Microsoft Corporation Allowing Virtual Machine to Discover Virtual Status Thereof
US8694712B2 (en) * 2006-12-05 2014-04-08 Microsoft Corporation Reduction of operational costs of virtual TLBs
US8261284B2 (en) * 2007-09-13 2012-09-04 Microsoft Corporation Fast context switching using virtual cpus
CA2699565C (en) * 2007-09-20 2014-07-15 C&S Operations, Inc. Computer system with multiple terminals
US9116734B1 (en) * 2011-01-14 2015-08-25 Dispersive Networks Inc. Dispersive storage area networks
CN101493781B (zh) * 2008-01-24 2012-02-15 中国长城计算机深圳股份有限公司 一种虚拟机系统及其启动方法
US8539499B1 (en) * 2008-02-18 2013-09-17 Parallels IP Holdings GmbH Symmetric multiprocessing with virtual CPU and VSMP technology
US8291426B2 (en) * 2008-06-02 2012-10-16 Microsoft Corporation Memory allocators corresponding to processor resources
US9262194B2 (en) * 2008-06-10 2016-02-16 Apple Inc. Virtual machine communications
US20090319740A1 (en) * 2008-06-18 2009-12-24 Fujitsu Limited Virtual computer system, information processing device providing virtual computer system, and program thereof
US20100251250A1 (en) * 2009-03-30 2010-09-30 Microsoft Corporation Lock-free scheduler with priority support
JP5469940B2 (ja) * 2009-07-13 2014-04-16 株式会社日立製作所 計算機システム、仮想計算機モニタ及び仮想計算機モニタのスケジューリング方法
JP5320440B2 (ja) * 2010-06-29 2013-10-23 サムソン エスディーエス カンパニー リミテッド クライアントハイパーバイザー基盤の端末装置及びその動作方法
JP5648544B2 (ja) 2011-03-15 2015-01-07 富士通株式会社 スケジューリングプログラム、および情報処理装置
CN102799480B (zh) * 2012-06-21 2015-06-17 华为技术有限公司 虚拟化系统中关闭中断的方法和装置
JP5941868B2 (ja) * 2013-04-18 2016-06-29 株式会社日立製作所 仮想計算機システムおよび仮想計算機におけるi/o実施方法
JP2015210688A (ja) * 2014-04-28 2015-11-24 株式会社日立製作所 サーバ仮想化システム
US10235809B2 (en) * 2016-06-30 2019-03-19 Microsoft Technology Licensing, Llc Reality to virtual reality portal for dual presence of devices
US11054894B2 (en) 2017-05-05 2021-07-06 Microsoft Technology Licensing, Llc Integrated mixed-input system
CN109032029B (zh) * 2018-08-14 2020-12-08 北京东土科技股份有限公司 工业服务器对外通信方法、系统、装置及工业服务器
KR102327587B1 (ko) * 2020-02-14 2021-11-17 엔에이치엔 주식회사 모바일 게임 매크로 사용자 감시 방법 및 그 시스템

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456954A (en) * 1981-06-15 1984-06-26 International Business Machines Corporation Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations
JPH0731609B2 (ja) * 1985-09-18 1995-04-10 日本電気株式会社 Vmモード変更装置
JPS62125438A (ja) * 1985-11-27 1987-06-06 Hitachi Ltd 仮想入出力装置
JPH04213733A (ja) * 1990-12-12 1992-08-04 Nec Corp 仮想プロセッサ方式
US5548783A (en) * 1993-10-28 1996-08-20 Dell Usa, L.P. Composite drive controller including composite disk driver for supporting composite drive accesses and a pass-through driver for supporting accesses to stand-alone SCSI peripherals
US5604887A (en) * 1994-01-21 1997-02-18 Microsoft Corporation Method and system using dedicated location to share information between real and protected mode device drivers
JPH09114683A (ja) * 1995-10-16 1997-05-02 Hitachi Ltd 計算機システムの制御方法
US5790664A (en) * 1996-02-26 1998-08-04 Network Engineering Software, Inc. Automated system for management of licensed software
US5940613A (en) * 1996-05-01 1999-08-17 Sun Microsystems, Inc. Method for creating a single binary virtual device driver for a windowing operating system
JPH10232788A (ja) * 1996-12-17 1998-09-02 Fujitsu Ltd 信号処理装置及びソフトウェア
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6056786A (en) * 1997-07-11 2000-05-02 International Business Machines Corp. Technique for monitoring for license compliance for client-server software
US6086628A (en) * 1998-02-17 2000-07-11 Lucent Technologies Inc. Power-related hardware-software co-synthesis of heterogeneous distributed embedded systems
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6324578B1 (en) * 1998-12-14 2001-11-27 International Business Machines Corporation Methods, systems and computer program products for management of configurable application programs on a network
US6785894B1 (en) * 1999-04-09 2004-08-31 Sun Microsystems, Inc. Virtual device driver
JP2000347883A (ja) * 1999-06-03 2000-12-15 Matsushita Electric Ind Co Ltd 仮想計算機装置
US6658657B1 (en) * 2000-03-31 2003-12-02 Intel Corporation Method and apparatus for reducing the overhead of virtual method invocations
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
US7308717B2 (en) * 2001-02-23 2007-12-11 International Business Machines Corporation System and method for supporting digital rights management in an enhanced Java™ 2 runtime environment
US6980946B2 (en) * 2001-03-15 2005-12-27 Microsoft Corporation Method for hybrid processing of software instructions of an emulated computer system
US7272831B2 (en) * 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US20030061401A1 (en) * 2001-09-25 2003-03-27 Luciani Luis E. Input device virtualization with a programmable logic device of a server
US7103529B2 (en) * 2001-09-27 2006-09-05 Intel Corporation Method for providing system integrity and legacy environment emulation
JP2003256234A (ja) * 2002-03-05 2003-09-10 Communication Research Laboratory 抗脆弱性サーバ装置及びソフトウェア
US20030187908A1 (en) * 2002-03-26 2003-10-02 Sun Microsystems, Inc. Methods and systems for customer based resource priority control
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7210144B2 (en) * 2002-08-02 2007-04-24 Microsoft Corporation Method for monitoring and emulating privileged instructions of programs in a virtual machine
US7313512B1 (en) * 2002-10-18 2007-12-25 Microsoft Corporation Software license enforcement mechanism for an emulated computing environment
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
US20050076186A1 (en) * 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
US7552426B2 (en) * 2003-10-14 2009-06-23 Microsoft Corporation Systems and methods for using synthetic instructions in a virtual machine
US7558723B2 (en) * 2003-12-12 2009-07-07 Microsoft Corporation Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices
US7590982B1 (en) * 2003-12-17 2009-09-15 Vmware, Inc. System and method for virtualizing processor and interrupt priorities
US7877747B2 (en) * 2004-02-20 2011-01-25 Hewlett-Packard Development Company, L.P. Flexible operating system operable as either native or as virtualized

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Analysis of the Intel Pentium's Ability to SupportaSecureVirtual Machine Monitor. John Scott Robin,Cynthia E. Irvine.Proceedings of the 9th USENIX Seurity Symposium Denver,Co,USA. 2000
Analysis of the Intel Pentium's Ability to SupportaSecureVirtual Machine Monitor. John Scott Robin,Cynthia E. Irvine.Proceedings of the 9th USENIX Seurity Symposium Denver,Co,USA. 2000 *
Denali:Lightweight Virtual Machines for Distribute. Andrew Whitaker,Mariannne Showa,Steven D.Gribble.Technical Report,University of Washingtion. 2002
Denali:Lightweight Virtual Machines for Distribute. Andrew Whitaker,Mariannne Showa,Steven D.Gribble.Technical Report,University of Washingtion. 2002 *
Xen and the Art of Virtualizaiton. Paul Barham,Boris Dragovid,Keir Fraser et al.SOSP'03. 2003
Xen and the Art of Virtualizaiton. Paul Barham,Boris Dragovid,Keir Fraser et al.SOSP'03. 2003 *

Also Published As

Publication number Publication date
EP1628214A3 (en) 2007-10-24
ATE472135T1 (de) 2010-07-15
JP5005191B2 (ja) 2012-08-22
US20060005190A1 (en) 2006-01-05
KR20060046260A (ko) 2006-05-17
DE602005021940D1 (de) 2010-08-05
JP2006018820A (ja) 2006-01-19
EP1628214A2 (en) 2006-02-22
CN1716193A (zh) 2006-01-04
EP1628214B1 (en) 2010-06-23

Similar Documents

Publication Publication Date Title
CN100474240C (zh) 用于在虚拟机环境中实现操作系统的系统和方法
CN100527085C (zh) 用于初始化单个虚拟机内多个虚拟处理器的系统和方法
CN100511150C (zh) 用于虚拟机环境中的仿真设备的开发的系统和方法
CN1794177B (zh) 用于为虚拟机揭示处理器拓扑结构的系统和方法
CN1831775B (zh) 虚拟机环境中用于多级截取处理的系统和方法
CN100530102C (zh) 用于在64位x86处理器上运行传统32位x86虚拟机的系统和方法
CN109814986B (zh) 任务并行处理方法、存储介质、计算机设备、装置和系统
CN103069389B (zh) 混合计算环境中的高吞吐量计算的方法和系统
EP3614260A1 (en) Task parallel processing method, apparatus and system, storage medium and computer device
CN103064746B (zh) 基于当前credit进行预测调度的处理器资源精确分配方法
KR102162749B1 (ko) 뉴럴 네트워크 프로세서
CN102053870A (zh) 亲和性驱动的分布式调度并行计算的系统和方法
CN103593323A (zh) 一种MapReduce任务资源配置参数的机器学习方法
Yoo et al. Integrated scheduling of real-time and interactive tasks for configurable industrial systems
CN115543577B (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
CN112416585A (zh) 面向深度学习的gpu资源管理与智能化调度方法
CN104615487A (zh) 并行任务优化系统和方法
CN109032788B (zh) 预留资源池动态调度方法、装置、计算机设备及存储介质
CN101971141A (zh) 用于管理混合计算环境的系统和方法
Harichane et al. KubeSC‐RTP: Smart scheduler for Kubernetes platform on CPU‐GPU heterogeneous systems
CN104794000B (zh) 一种作业调度方法及系统
CN103440159B (zh) 进程调度方法和系统
Xiang et al. Optimizing job reliability through contention-free, distributed checkpoint scheduling
CN103631648A (zh) 一种任务处理方法及系统
CN114510319A (zh) 一种基于Kubernetes集群GPU空间共享的方法

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: 20150515

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150515

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

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: 20090401

Termination date: 20190530