CN101256503A - 通过多线程主虚拟机监视器来实现多线程客户操作系统执行的方法和装置 - Google Patents
通过多线程主虚拟机监视器来实现多线程客户操作系统执行的方法和装置 Download PDFInfo
- Publication number
- CN101256503A CN101256503A CNA2007103035816A CN200710303581A CN101256503A CN 101256503 A CN101256503 A CN 101256503A CN A2007103035816 A CNA2007103035816 A CN A2007103035816A CN 200710303581 A CN200710303581 A CN 200710303581A CN 101256503 A CN101256503 A CN 101256503A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- operating system
- hardware thread
- hardware
- environment
- 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
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
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Abstract
用于对客户操作系统(OS)进行虚拟化的方法和装置,包括分配虚拟机(VM)。虚拟机被分配给各个可用的硬件线程,并被恢复或首次启动。如果需要在退出虚拟机环境时调度另一虚拟机,则选择另一虚拟机,并将该另一虚拟机分配给硬件线程以恢复或启动。在防止主操作系统对硬件线程进行控制时,使用虚拟机监视器恢复或启动虚拟机。加载虚拟机环境结构。线程被设置为客户操作系统的状态,并且恢复或启动虚拟机环境。在进行到虚拟机监视器的环境切换期间,在本地保存客户操作系统的状态。然后,清除虚拟机环境结构,并且允许主操作系统再次对硬件线程进行控制。
Description
技术领域
本公开一般涉及多线程微处理器领域。具体地,本公开涉及在主操作系统中使用虚拟机监视器,以在多线程处理器执行线程时对多操作系统的执行进行调度。
背景技术
众所周知,管理程序(hypervisor)是一种在大型机(mainframe)上执行多操作系统的早期技术。管理程序允许多个部门计算机合并成一个单独的大型计算机,并通过对超级用户(在操作系统内核时所使用的术语)的状态进行虚拟化来同时运行多操作系统。多个操作系统中的每一个都在虚拟机(VM)上运行,并且即使一个操作系统崩溃,其余的操作系统也将继续工作。
今天高端服务器经常支持虚拟化和一些形式的管理程序技术,但是经常会是服务器级的价格(多达几百万美元)。
过去,基于微处理器的平台已经支持一些类型的虚拟机环境,但是经常用于支持不同操作系统的应用程序,而不是支持同时执行多个操作系统。通过管理程序进行的个人计算机的完全虚拟化需要在复杂性和运行时间性能上付出非常大的代价。
替代方案需要修改客户操作系统,以使系统调用(有时称作超级调用、诊断代码或部分虚拟化)到管理程序,而不是执行机器I/O指令。然后通过管理程序模拟这样的准虚拟化(paravirtualization)调用。
一些微处理器供应商也已经引进了硬件虚拟化支持。例如,由加州SantaClara市的Intel公司开发的Vanderpool技术(VT),对一些虚拟化辅助提供体系级和指令级支持,所述虚拟化辅助否则会效率不高或者需要修改客户操作系统。另外,目前的一些微处理器为多线程、同时发生的多线程和/或多处理器内核提供支持,这在理论上可以提供多操作系统的更高性能的执行。到现在为止,还没有完全利用这些并行硬件和虚拟化特性的优点。
附图说明
本发明通过实施例进行说明,但并不局限于所附附图。
图1描述使用虚拟机(VM)监视器执行客户操作系统(OS)的多处理系统的一个实施例。
图2描述在多处理主平台的可用硬件线程上对一个或多个多处理客户操作系统进行虚拟化的处理过程的一个实施例的流程图。
图3描述在多线程主平台上的临界区(critical section)内部对使用虚拟机(VM)监视器的虚拟机(VM)的启动顺序进行保护的处理过程的一个实施例的流程图。
图4描述用于对一个或多个多处理客户操作系统进行虚拟化和在临界区内部保护使用虚拟机(VM)监视器的虚拟机(VM)的启动顺序的多处理系统的另一个实施例。
具体实施方式
此处所公开的是用于在多处理主平台上对一个或多个多处理客户操作系统(OS)进行有效虚拟化的过程和装置。虚拟机被分配给每个多处理客户OS处理器。还从主多处理系统中可用的硬件执行线程中分配硬件执行线程。每个硬件执行线程分配有其中一个虚拟器,并且恢复这些虚拟机(如果之前已启动)或者否则对这些虚拟机进行首次启动。如果在退出虚拟机环境时需要调度另一虚拟机,则选择另一虚拟机,并且将当前的硬件线程分配给该另一虚拟机以便恢复或首次启动。
此外,还公开了用于通过在专用临界区内部使用虚拟机监视器启动或恢复虚拟机环境来支持客户操作系统执行的过程和装置。清除中断标志以禁止主操作系统对多个硬件线程中的一个硬件线程进行控制。然后,加载虚拟机环境结构,并且将硬件线程设置成客户操作系统的状态。虚拟机环境或者恢复或者首次启动。然后,在本地保存客户操作系统的状态,并且进行到虚拟机监视器环境的环境切换。从硬件线程中清除虚拟机环境结构,然后将中断标志设置为允许主操作系统再次控制硬件线程。
通过应用所公开的过程和装置的实施例,虚拟机可以利用所有可用的主机硬件来运行多处理器客户操作系统。因此,可以提高虚拟化客户软件的性能以及客户执行线程的同步性。可在平台模拟器中应用一些公开的实施例,以提高多线程软件应用程序的性能。
本发明的这些和其它实施例可以根据以下的教导进行实现,显然可以在不脱离本发明的精神和范围的情况下对下述教导作出不同的修改和改变。因此,说明书和附图被认为是一种描述性的而非限制性的,本发明仅仅根据权利要求及其等价物来限定。
一些实施例可使用的Vanderpool技术(IA-32处理器的Vanderpool技术(VT-x)规范草案,序号C97063-001;安腾(Itanium)处理器的Vanderpool技术(VT-i)规范草案,序号NO.305942-002;可以通过FTP在download.intel.com/technology/computing/vptech上得到)。一些已知的结构、电路、体系特定的特性等等没有进行详细描述,以避免对本发明造成不必要的混淆。
图1描述了多处理系统101的实施例,用于使用虚拟机(VM)管理器170在多处理系统101的可得到的硬件线程110-111上对一个或多个客户多处理操作系统(OS)120-150进行虚拟化,以执行所述客户OS 120-150。所述一个或多个客户多处理OS包括Ng个虚拟处理器,并且因此在初始化期间创建虚拟机:为客户OS线程120创建VM1,为客户OS线程130创建VM2,为客户OS线程140创建VM3,……,以及为客户OS线程150创建VMNg。创建虚拟机监视器170以在主OS 160下运行和管理虚拟机。虚拟机监视器170的其中一个任务是在多处理系统101的每一个可用的硬件线程110-111上并发地启动虚拟机。
可以理解的是,多线程硬件的可用性和如Vanderpool技术的体系支持,使得可以对多处理客户操作系统进行有效虚拟化,其可以利用多处理主平台上所有可用的硬件执行线程。
图2描述用于在多处理主平台的可用硬件执行线程上对一个或多个多处理客户操作系统进行虚拟化的处理过程201的一个实施例的流程图。处理过程201和此处公开的其它处理都是由处理块执行的,所述处理块可能包括专用的硬件或软件或固件操作代码,所述操作代码可以由通用机器或专用机器或两者结合来执行。
在处理块211中,为一个或多个客户多处理OS的处理器分配Ng个虚拟机。在处理块212中,从多处理主平台的可用硬件线程中分配Nh个硬件执行线程。然后,在处理块213中,选择Ng个虚拟机中的虚拟机(VM)以分配给所述可用的Nh硬件执行线程中的各个硬件执行线程。在处理块214中,恢复分配给硬件线程的Nh个虚拟机(如果之前已启动),否则首次启动所述Nh个虚拟机。在处理块215中,开始特定虚拟机VM内部的执行。一旦在处理块216中退出每一个硬件执行线程的虚拟机VM环境,在处理块217就进行是否需要调度另一个虚拟机的判断。如果确定为需要调度另一个虚拟机,则在处理块218中执行继续,其中选择另一个虚拟机,以分配给特定的硬件执行线程。否则,直接执行处理块219,其中恢复分配给当前硬件执行线程的虚拟机(如果之前已启动)或进行首次启动。然后,在处理块215,在特定虚拟机内部执行恢复,随后进行处理块216-219的另一次重复操作。
可以理解的是,为了例如在虚拟机监视器正在将一个虚拟机控制结构附加到硬件执行线程上时禁止主OS重调度线程,需要禁止中断虚拟机的启动顺序。这样的中断可能对虚拟机监视器、硬件执行线程和/或主OS具有潜在的毁坏性影响。因此,在一些实施例中,使用虚拟机监视器进行的虚拟机的启动顺序在禁止中断的受保护的临界区中执行。
图3描述了在多线程主平台上的临界区内部对使用虚拟机(VM)监视器的虚拟机(VM)的启动顺序进行保护的处理过程的一个实施例的流程图。在处理块311中,禁止主操作系统对硬件执行线程中的一个硬件执行线程进行控制。对于一个实施例,这可以通过清除中断标志(IF)以禁止中断来实现。可以提供一个指令,例如CLI,以专门清除中断标志。在一些实施例中,在允许清除中断标志之前,可以检查当前优先级。
接着,在处理块312中,加载或激活虚拟机环境结构(virtual machinecontext structure,VMCS)。在一些实施例中,这可以通过执行一个指令(VMPTRLD)来实现,其中该指令专门用于标记VMCS有效且从指向VMCS的指针地址进行加载。在一些实施例中,为了完成这样一个指令,可能需要一个指定的优先级(例如零级,在保护模式或在64位模式时)。在处理块313中,硬件执行线程的处理器状态被设定为客户操作系统的状态。对于一些实施例,在VM进入时,可以将VMCS中客户状态区域加载到处理器状态,并且在VM退出时,可以将处理器状态保存到该客户状态区域。客户OS的一些附加状态可以通过对VM进入时的特殊控制来确定,其在VMCS中设定。其它状态,如页目录指针,可以基于特定控制寄存器的值进行加载。在处理块314中恢复虚拟机环境(如果之前已启动),否则首次启动虚拟机环境。在一些实施例中,可以提供虚拟机进入指令(VMRESUME)以专门恢复虚拟机环境,和虚拟机进入指令(VMLAUNCH)以专门启动虚拟机环境。同样,为了完成这些指令,一些实施例可能需要指定的优先级(例如零级)。
在处理块315中,在本地保存客户操作系统的状态。对于一些实施例,可以由虚拟机退出引起该操作。在处理块316中,进行到虚拟机监视器环境的环境切换。在一些实施例中,可能提供虚拟机退出指令(VMCALL)以专门执行这样的虚拟机监视器环境切换。在替换实施例中,可以通过设置任务门或通过进入调试(debug)模式,如单步,来外部调用任务切换。在其它替换实施例中,事件,例如访问控制寄存器或执行I/O指令,可以被设置来触发任务切换。在处理块317中,清除硬件执行线程中的VMCS。在一些实施例中,可以提供指令(VMCLEAR)以专门从硬件执行线程中清除当前VMCS。最后,在处理块318中,中断标志(IF)被复位以允许主操作系统再次控制硬件执行线程。由此,可以通过这样的临界区来保护虚拟机的启动顺序,以防止主OS再次调用线程。
图4描述了用于对一个或多个多处理客户操作系统420进行虚拟化的多处理系统401的另一个实施例。多处理系统401可以包括用于存储数据和可执行程序的可寻址存储器、本地存储装置403、高速缓存存储装置404、图形存储装置、图形控制器和各种系统,所述各种系统可选地包括外设系统、盘片和I/O系统、网络系统、外部存储系统,其中所述网络系统包括存储到可寻址存储器中的数据流的网络接口,其中所述外部存储系统包括磁存储设备,以存储多条软件执行线程的指令,其中通过处理器402访问这些指令,从而使得处理器对多条软件执行线程的指令进行处理。本地存储装置403,例如,可以存储一个或多个客户操作系统OS 420,所述一个或多个客户操作系统OS具有在虚拟处理器上执行的多条软件执行线程。本地存储装置403还存储与虚拟处理器相关的客户状态480以及多线程主操作系统460、多线程虚拟机监视器470和虚拟机控制结构490。
关于处理器201和301在可用的硬件线程410-411上对客户操作系统420进行虚拟化,多处理系统401如上所述地使用虚拟机监视器470在受保护的临界区内部执行一个或多个客户多处理操作系统420。为一个或多个客户多处理操作系统420的虚拟处理器创建虚拟机。虚拟机监视器470在主操作系统460下运行,以管理用于对客户操作系统420进行虚拟化的虚拟机。虚拟机监视器470的一个任务是在多处理系统401中每一个可得到的硬件线程410-411上并发地启动虚拟机。
特定虚拟机内部的执行在处理器402中并发地开始,其中存储在高速缓存存储装置404和/或高速缓存存储装置405上的多线程主操作系统460、多线程虚拟机监视器470和多线程客户操作系统420的可执行指令的副本,可以在线程选择逻辑414指导下通过指令取回逻辑415取回,并且为执行逻辑412而被分配给合适的硬件线程410-411。在退出与多线程客户操作系统420相关的每一个硬件执行线程410-411的虚拟机环境时,在多线程虚拟机监视器470的环境中判断是否需要调度与多线程客户操作系统420相关的另一虚拟机,如果需要,则可以选择另一虚拟机以分配给特定的硬件执行线程。否则恢复已经分配给硬件执行线程的虚拟机。
由此实现了对多线程客户操作系统的有效虚拟化,其可以利用多处理主平台上的所有可用的硬件执行线程。
以上说明用于描述本发明的优选实施例。根据以上讨论,显而易见的是,尤其在这样一个技术领域,其中发展十分迅速且今后的发展不容易预见,本发明通过本领域技术人员可以在所附权利要求及其等价物范围内,在没有脱离本发明的精神的情况下,在组成和细节上进行修改。
Claims (16)
1、一种用于恢复或启动虚拟机的计算机化方法,所述方法包括:
禁止主操作系统对多个硬件线程中的第一硬件线程进行控制;
加载第一虚拟机环境结构;
将所述第一硬件线程设置成第一客户操作系统的状态;
恢复或启动第一虚拟机环境;
在本地保存所述第一客户操作系统的状态;
执行到虚拟机监视器环境的环境切换;
从所述第一硬件线程中清除所述第一虚拟机环境结构;以及
设置中断标志以允许所述主操作系统对所述第一硬件线程进行控制。
2、如权利要求1所述的方法,其中禁止所述主操作系统对所述第一硬件线程进行控制是通过清除中断标志实现的。
3、如权利要求2所述的方法,其中允许所述主操作系统对所述第一硬件线程进行控制是通过设置所述中断标志实现的。
4、一种制品,包括:
机器可访问介质,其包括数据,当被机器访问时,所述数据使所述机器执行如权利要求3所述的方法。
5、如权利要求1所述的方法,其中加载第一虚拟机环境结构包括:执行VMPTRLD指令,以将所述第一虚拟机环境结构标记为有效,并从存储器中的特定地址对其进行加载。
6、如权利要求5所述的方法,其中将所述第一硬件线程设置成第一客户操作系统的状态包括:加载所述虚拟机环境结构的客户状态区域。
7、一种制品,包括:
机器可访问介质,其包括数据,当被机器访问时,所述数据使所述机器执行如权利要求6所述的方法。
8、一种用于在多处理主平台上对一个或多个多处理客户操作系统进行虚拟化的计算机化方法,所述方法包括:
分配第一多个虚拟机;
分配第二多个硬件线程;
为所述第二多个硬件线程中的每一个硬件线程,选择所述第一多个虚拟机中的一个虚拟机以将其分配给该硬件线程;
恢复或启动分配给所述第二多个硬件线程的虚拟机;
在退出所述第二多个硬件线程的每一个硬件线程的虚拟机环境时,确定是否需要调度另一个虚拟机;
如果需要调度,则选择所述第一多个虚拟机中的另一个虚拟机,以将其分配给该硬件线程;并且
恢复或启动分配给该硬件线程的虚拟机。
9、如权利要求8所述的方法,其中从所述第一多个虚拟机中选择一个虚拟机并将其分配给该硬件线程以及恢复或启动虚拟机,是在虚拟机监视器的环境内部执行的。
10、如权利要求9所述的方法,其中由所述虚拟机监视器执行的恢复或启动所述虚拟机,是在禁止中断的受保护的临界区内执行的。
11、一种制品,包括:
机器可访问的有形介质,其包括可执行指令,当由机器访问时,所述可执行指令使所述机器执行:
清除中断标志,以禁止主操作系统对多个硬件线程中的第一硬件线程进行控制;
加载第一虚拟机环境结构;
将所述第一硬件线程设置成第一客户操作系统的状态;
恢复或启动第一虚拟机环境;
在本地保存所述第一客户操作系统的状态;
执行到虚拟机监视器环境的环境切换;
从所述第一硬件线程中清除所述第一虚拟机环境结构;以及
设置所述中断标志以允许所述主操作系统对所述第一硬件线程进行控制。
12、如权利要求11所述的制品,其中所述有形介质包括用于将所述第一虚拟机环境结构标记为有效,并从存储器中的特定地址对其进行加载的可执行指令。
13、如权利要求11所述的制品,其中通过加载所述虚拟机环境结构的客户状态区域,将所述第一硬件线程设置成所述第一客户操作系统的状态。
14、一种计算系统,包括:
处理器,其包括多个硬件执行线程;
主操作系统,其可在处理器上执行;
多线程客户操作系统,其可在所述处理器的多个虚拟机上执行;
多线程虚拟机监视器,其可在所述主操作系统下,在所述处理器上执行,以调度所述多个硬件执行线程上的虚拟机,所述多线程虚拟机监视器用于:
清除中断标志,以禁止所述主操作系统对所述多个硬件执行线程中的第一硬件执行线程进行控制;
为所述多个虚拟机中之一加载第一虚拟机环境结构;
将所述第一硬件执行线程设置成所述多线程客户操作系统的第一状态;
恢复或启动第一虚拟机环境;
在本地保存所述多线程客户操作系统的第一状态;
执行到所述多线程虚拟机监视器环境的环境切换;
从所述第一硬件执行线程中清除所述第一虚拟机环境结构;以及
设置所述中断标志以允许所述主操作系统对所述第一硬件执行线程进行控制。
15、如权利要求14所述的计算系统,其中所述多线程虚拟机监视器包括用于将所述第一虚拟机环境结构标记为有效,并从存储器中的特定地址对其进行加载的可执行指令。
16、如权利要求15所述的计算系统,其中通过加载所述虚拟机环境结构的客户状态区域,将所述第一硬件线程设置成所述第一客户操作系统的状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/615,821 US8621459B2 (en) | 2006-12-22 | 2006-12-22 | Method and apparatus for multithreaded guest operating system execution through a multithreaded host virtual machine monitor |
US11/615,821 | 2006-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101256503A true CN101256503A (zh) | 2008-09-03 |
CN101256503B CN101256503B (zh) | 2012-01-18 |
Family
ID=39313043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103035816A Expired - Fee Related CN101256503B (zh) | 2006-12-22 | 2007-12-21 | 通过多线程主虚拟机监视器来实现多线程客户操作系统执行的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8621459B2 (zh) |
EP (1) | EP1939739A3 (zh) |
CN (1) | CN101256503B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110217B (zh) * | 2009-12-28 | 2013-07-24 | 北京安码科技有限公司 | 一种通过虚拟机岗位轮换实现自动修复的方法 |
CN103677989A (zh) * | 2013-12-13 | 2014-03-26 | Tcl集团股份有限公司 | 一种利用linux内核实现多系统的装置及方法 |
CN103778016A (zh) * | 2012-10-17 | 2014-05-07 | 瑞萨电子株式会社 | 多线程处理器 |
WO2017008594A1 (en) * | 2015-07-15 | 2017-01-19 | Huawei Technologies Co., Ltd. | Device and method for hardware virtualization support |
CN107924442A (zh) * | 2015-09-28 | 2018-04-17 | 英特尔公司 | 用于轻量级虚拟化上下文的方法和设备 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8656386B1 (en) * | 2007-03-13 | 2014-02-18 | Parallels IP Holdings GmbH | Method to share identical files in a common area for virtual machines having the same operating system version and using a copy on write to place a copy of the shared identical file in a private area of the corresponding virtual machine when a virtual machine attempts to modify the shared identical file |
US8091086B1 (en) * | 2007-07-20 | 2012-01-03 | Parallels Holdings, Ltd. | System and method for virtualization using an open bus hypervisor |
US9367350B2 (en) * | 2008-10-03 | 2016-06-14 | Microsoft Technology Licensing, Llc | Meta-scheduler with meta-contexts |
AU2009222627B2 (en) | 2008-10-09 | 2011-07-21 | Aristocrat Technologies Australia Pty Limited | Gaming system and gaming system processor module |
US11287939B2 (en) | 2008-10-09 | 2022-03-29 | Aristocrat Technologies Australia Pty Limited | Gaming system and gaming system processor module |
US11385758B2 (en) | 2008-10-09 | 2022-07-12 | Aristocrat Technologies Australia Pty Limited | Gaming system and gaming system processor module |
US8843927B2 (en) * | 2009-04-23 | 2014-09-23 | Microsoft Corporation | Monitoring and updating tasks arrival and completion statistics without data locking synchronization |
US9355282B2 (en) * | 2010-03-24 | 2016-05-31 | Red Hat, Inc. | Using multiple display servers to protect data |
US8418177B2 (en) | 2010-10-01 | 2013-04-09 | Microsoft Corporation | Virtual machine and/or multi-level scheduling support on systems with asymmetric processor cores |
JP5813554B2 (ja) * | 2012-03-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
CN102750178B (zh) | 2012-06-08 | 2015-04-29 | 华为技术有限公司 | 通信设备硬件资源的虚拟化管理方法及相关装置 |
US20140059538A1 (en) * | 2012-08-22 | 2014-02-27 | V3 Systems, Inc. | Virtual machine state tracking using object based storage |
US9304874B2 (en) | 2014-02-03 | 2016-04-05 | Red Hat Israel, Ltd. | Virtual machine-guest driven state restoring by hypervisor |
US9772867B2 (en) | 2014-03-27 | 2017-09-26 | International Business Machines Corporation | Control area for managing 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 |
US9213569B2 (en) * | 2014-03-27 | 2015-12-15 | International Business Machines Corporation | Exiting multiple threads in a computer |
US9756118B2 (en) * | 2014-04-28 | 2017-09-05 | Vmware, Inc. | Virtual performance monitoring decoupled from hardware performance-monitoring units |
US20150378762A1 (en) * | 2014-06-30 | 2015-12-31 | Vmware, Inc. | Monitoring and dynamic configuration of virtual-machine memory-management |
US9552223B2 (en) * | 2014-09-30 | 2017-01-24 | International Business Machines Corporation | Post-return asynchronous code execution |
US9389897B1 (en) | 2014-12-18 | 2016-07-12 | International Business Machines Corporation | Exiting multiple threads of a simulation environment in a computer |
TWI639955B (zh) * | 2017-11-06 | 2018-11-01 | 晨星半導體股份有限公司 | 多處理器系統及其處理器管理方法 |
US10713075B2 (en) | 2017-11-30 | 2020-07-14 | International Business Machines Corporation | Workload manager control of dynamic thread mode switch |
CN109634721B (zh) * | 2018-12-17 | 2023-10-10 | 广东浪潮大数据研究有限公司 | 一种虚拟机与主机的启动通信方法及相关装置 |
US11782713B1 (en) * | 2019-08-27 | 2023-10-10 | Amazon Technologies, Inc. | Security vulnerability mitigation using address space co-execution |
CN110851239B (zh) * | 2019-11-15 | 2023-07-04 | 湖南智领通信科技有限公司 | 一种type-i型硬实时高可靠性全虚拟化方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6510448B1 (en) * | 2000-01-31 | 2003-01-21 | Networks Associates Technology, Inc. | System, method and computer program product for increasing the performance of a proxy server |
US6957432B2 (en) * | 2000-03-21 | 2005-10-18 | Microsoft Corporation | Real-time scheduler |
US7793287B2 (en) * | 2003-10-01 | 2010-09-07 | Hewlett-Packard Development Company, L.P. | Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor |
US20050132363A1 (en) * | 2003-12-16 | 2005-06-16 | Vijay Tewari | Method, apparatus and system for optimizing context switching between virtual machines |
US7620949B2 (en) * | 2004-03-31 | 2009-11-17 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
US8271976B2 (en) * | 2004-06-30 | 2012-09-18 | Microsoft Corporation | Systems and methods for initializing multiple virtual processors within a single virtual machine |
-
2006
- 2006-12-22 US US11/615,821 patent/US8621459B2/en not_active Expired - Fee Related
-
2007
- 2007-12-20 EP EP07254995A patent/EP1939739A3/en not_active Ceased
- 2007-12-21 CN CN2007103035816A patent/CN101256503B/zh not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110217B (zh) * | 2009-12-28 | 2013-07-24 | 北京安码科技有限公司 | 一种通过虚拟机岗位轮换实现自动修复的方法 |
CN103778016A (zh) * | 2012-10-17 | 2014-05-07 | 瑞萨电子株式会社 | 多线程处理器 |
CN103778016B (zh) * | 2012-10-17 | 2018-10-02 | 瑞萨电子株式会社 | 多线程处理器 |
CN103677989A (zh) * | 2013-12-13 | 2014-03-26 | Tcl集团股份有限公司 | 一种利用linux内核实现多系统的装置及方法 |
CN103677989B (zh) * | 2013-12-13 | 2017-10-24 | Tcl集团股份有限公司 | 一种利用linux内核实现多系统的装置及方法 |
WO2017008594A1 (en) * | 2015-07-15 | 2017-01-19 | Huawei Technologies Co., Ltd. | Device and method for hardware virtualization support |
US10394592B2 (en) | 2015-07-15 | 2019-08-27 | Huawei Technologies Co., Ltd. | Device and method for hardware virtualization support using a virtual timer number |
US11086655B2 (en) | 2015-07-15 | 2021-08-10 | Huawei Technologies Co., Ltd. | Device and method for hardware virtualization support using a virtual timer number |
CN107924442A (zh) * | 2015-09-28 | 2018-04-17 | 英特尔公司 | 用于轻量级虚拟化上下文的方法和设备 |
CN107924442B (zh) * | 2015-09-28 | 2022-04-05 | 英特尔公司 | 用于轻量级虚拟化上下文的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
EP1939739A2 (en) | 2008-07-02 |
US20080155536A1 (en) | 2008-06-26 |
EP1939739A3 (en) | 2008-10-01 |
CN101256503B (zh) | 2012-01-18 |
US8621459B2 (en) | 2013-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101256503B (zh) | 通过多线程主虚拟机监视器来实现多线程客户操作系统执行的方法和装置 | |
US9304794B2 (en) | Virtual machine control method and virtual machine system using prefetch information | |
JP6095670B2 (ja) | コンピュータ・システム内のオペランド活性情報の維持 | |
US9652221B2 (en) | Runtime patching of an operating system (OS) without stopping execution | |
US7802250B2 (en) | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software | |
US7937700B1 (en) | System, processor, and method for incremental state save/restore on world switch in a virtual machine environment | |
US7814495B1 (en) | On-line replacement and changing of virtualization software | |
US8296775B2 (en) | Efficient context switching of virtual processors by managing physical register states in a virtualized environment | |
US20050132362A1 (en) | Virtual machine management using activity information | |
US9785506B2 (en) | Reducing likelihood of concurrency error in virtualized computing environment | |
US8578136B2 (en) | Apparatus and method for mapping architectural registers to physical registers | |
US8490089B2 (en) | Guest timer facility to improve management in a virtualized processing system | |
Lucas et al. | Vosysmonitor, a low latency monitor layer for mixed-criticality systems on armv8-a | |
US7500244B2 (en) | Adaptive algorithm for selecting a virtualization algorithm in virtual machine environments | |
Chang et al. | Implementation of JVM tool interface on Dalvik virtual machine | |
KR100498486B1 (ko) | 쓰레드 바이너리 컴파일러에 의하여 프로그램에서 여러개의 쓰레드를 다이내믹하게 추출하는 컴퓨터 시스템 및그 동시 다중 쓰레딩 방법 | |
Im et al. | On-demand virtualization for live migration in bare metal cloud | |
US11726811B2 (en) | Parallel context switching for interrupt handling | |
KR101809380B1 (ko) | 가상머신 기반 통합항해시스템을 위한 스케줄링 방법 및 장치 | |
CN113474754A (zh) | 有条件退让给管理程序指令 | |
JP2019510313A (ja) | ベクトル命令の処理 | |
Schönborn et al. | Taking Real-Time and Virtualization to Open Source Hardware | |
JP2008123015A (ja) | 仮想プロセッサの切り替え方法、プログラム及び仮想計算機システム |
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 | ||
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: 20120118 Termination date: 20191221 |