CN101154130B - 一种虚拟机系统及其电源管理方法 - Google Patents
一种虚拟机系统及其电源管理方法 Download PDFInfo
- Publication number
- CN101154130B CN101154130B CN2006101418462A CN200610141846A CN101154130B CN 101154130 B CN101154130 B CN 101154130B CN 2006101418462 A CN2006101418462 A CN 2006101418462A CN 200610141846 A CN200610141846 A CN 200610141846A CN 101154130 B CN101154130 B CN 101154130B
- Authority
- CN
- China
- Prior art keywords
- operating system
- client operating
- power supply
- power management
- state
- 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
Links
Images
Landscapes
- Power Sources (AREA)
Abstract
本发明公开了一种虚拟机系统及其电源管理方法。其中,该虚拟机系统包括硬件设备、虚拟机监视器、服务操作系统以及至少一个客户操作系统。所述服务操作系统包括电源管理策略模块,用于记录与客户操作系统的电源管理操作对应的信息,并在客户操作系统的电源管理操作满足电源管理策略的情况下,通知服务操作系统执行相应的电源管理。本发明提供了电源管理策略模块,可以很好的实现客户操作系统的电源管理。
Description
技术领域
本发明涉及虚拟机技术,特别涉及一种虚拟机系统及其电源管理方法。
背景技术
目前,虚拟机系统包括部分虚拟化的虚拟机监视器(Virtual MachineMonitor,VMM)以及全虚拟化的虚拟机监视器两种虚拟机系统。
图1为具有部分虚拟化的虚拟机监视器的虚拟机系统,该虚拟机系统包括客户操作系统(Guest Operating System,GOS)、服务操作系统(ServiceOperating System,SOS)、虚拟机监视器以及硬件设备。在图1所示的虚拟机系统中,客户操作系统拥有所有的ACPI(Advanced Configuration and PowerInterface)策略决策,虚拟机监视器和服务操作系统遵从所有的ACPI事件(Event)。在这种模式下,部分设备被虚拟化,如NIC(Network Interface Card,网卡),客户操作系统中有一个虚拟的网卡驱动,而服务系统中有真实的网卡驱动,除了对这部分虚拟化了的设备的电源管理需要服务系统配合外,这种虚拟机系统的电源管理与单一的PC的电源管理没有太大区别。
图2为具有全虚拟化的虚拟机监视器的虚拟机系统,例如Vmware、VirtualPC等,该虚拟机系统包括主机操作系统(Host Operating System,Host OS)、硬件设备、以及至少一个客户操作系统。其中,每个客户操作系统均具有相应的ACPI。
在图2所示的虚拟机系统中,每个客户操作系统的ACPI的所有功能都是虚拟出来的,并且客户操作系统所执行的所有动作与普通PC的操作系统没有区别,只是所有对硬件的操作(包括电源管理)都是虚拟的,没有真正操作到硬件上。
另外,主机操作系统也不关心客户操作系统的当前状态,而是按自己的电源管理策略控制真实的硬件。客户操作系统只是模拟出了电源管理这样一个过程,而没有实际意义上进行虚拟机系统的电源管理。这样,对于多个客
户操作系统的运行环境,电源管理的策略尚无法有效实现。
发明内容
本发明的目的在于提供一种虚拟机系统及其电源管理方法。
根据本发明第一方面的虚拟机系统,包括硬件设备、虚拟机监视器、服务操作系统以及至少一个客户操作系统,服务操作系统包括OSPM模块、至少一个设备模拟模块,客户操作系统包括OSPM模块,设备模拟模块与客户操作系统一一对应,服务操作系统进一步包括电源管理策略模块。其中,客户操作系统的OSPM模块,在客户操作系统进入系统电源管理状态时,操作对应的设备模拟模块中的ACPI寄存器;设备模拟模块将客户操作系统的系统电源管理状态通知电源管理策略模块;电源管理策略模块记录客户操作系统的系统电源管理状态,并在客户操作系统的系统电源管理状态满足电源管理策略的情况下,通知服务操作系统进入电源管理策略所决定的系统电源管理状态;服务操作系统的OSPM模块在服务操作系统执行电源管理后,操作相应的ACPI硬件寄存器,使得虚拟机系统进入电源管理策略所决定的系统电源管理状态。
根据本发明第二方面的虚拟机系统,包括硬件设备、虚拟机监视器、服务操作系统以及至少一个客户操作系统,服务操作系统包括OSPM模块、驱动模块、以及至少一个设备模拟模块,客户操作系统包括OSPM模块、以及驱动模块,设备模拟模块与客户操作系统一一对应,服务操作系统进一步包括电源管理策略模块。其中,客户操作系统的OSPM模块,在客户操作系统对硬件设备进行电源管理操作时,操作对应的设备模拟模块中的虚拟设备;设备模拟模块,将客户操作系统对虚拟设备的操作结果通知电源管理策略模块;电源管理策略模块,记录客户操作系统所操作的虚拟设备的状态,并在虚拟设备的电源管理状态满足设备电源管理策略的情况下,通知服务操作系统的OSPM模块调用服务操作系统的驱动模块对相应的硬件设备进行电源管理,使得硬件设备进入满足设备电源管理策略的电源管理状态。
根据本发明第三方面的虚拟机系统,包括硬件设备、虚拟机监视器、服务操作系统以及至少一个客户操作系统,服务操作系统包括OSPM模块、至少一个设备模拟模块,客户操作系统包括OSPM模块,设备模拟模块与客户
操作系统一一对应,服务操作系统进一步包括电源管理策略模块。其中,客户操作系统的OSPM模块,在客户操作系统对CPU状态进行调节时,操作虚拟CPU相应的寄存器;虚拟机监视器获得虚拟CPU相应的寄存器的改变,并通知服务操作系统中的电源管理策略模块;电源管理策略模块记录虚拟CPU调节到的电源状态,并在硬件设备满足电源管理策略进入电源管理状态时,电源管理策略模块通知服务操作系统的OSPM模块;OSPM模块设置物理CPU的相应的寄存器,从而使CPU进入电源管理策略所决定的电源状态。
根据本发明第四方面的虚拟机系统,包括硬件设备、虚拟机监视器、服务操作系统以及至少一个客户操作系统。其中,所述服务操作系统包括电源管理策略模块,用于记录与客户操作系统的电源管理操作对应的信息,并在客户操作系统的电源管理操作满足电源管理策略的情况下,通知服务操作系统执行满足电源管理策略的电源管理。
根据本发明第五方面的虚拟机系统电源管理方法,包括以下步骤:
在客户操作系统进入系统电源管理状态时,操作该客户操作系统对应的设备模拟模块中的ACPI寄存器;
记录客户操作系统的系统电源管理状态,并在客户操作系统的系统电源管理状态满足电源管理策略的情况下,通知服务操作系统进入电源管理策略所决定的系统电源管理状态;
服务操作系统执行电源管理并操作相应的ACPI硬件寄存器,使得虚拟机系统进入电源管理策略所决定的系统电源管理状态。
根据本发明第六方面的虚拟机系统电源管理方法,包括以下步骤:
在客户操作系统对硬件设备进行电源管理操作时,操作对应的设备模拟模块中的虚拟设备;
将客户操作系统对虚拟设备的操作结果通知电源管理策略模块;
记录客户操作系统所操作的虚拟设备的状态,并在虚拟设备的电源管理状态满足设备电源管理策略的情况下,通知服务操作系统对相应的硬件设备进行电源管理,使得硬件设备进入满足设备电源管理策略的电源管理状态。
根据本发明第七方面的虚拟机系统电源管理方法,包括以下步骤:
在客户操作系统对CPU状态进行调节时,操作虚拟CPU相应的寄存器;
虚拟机监视器获得虚拟CPU相应的寄存器的改变,并通知服务操作系统中的电源管理策略模块;
电源管理策略模块记录虚拟CPU调节到的电源状态,并在满足电源管理策略进入电源管理状态时,电源管理策略模块通知服务操作系统设置物理CPU的相应的寄存器,从而使CPU进入电源管理策略所决定的电源状态。
根据本发明第八方面的虚拟机系统电源管理方法,包括以下步骤:
记录与客户操作系统的电源管理操作对应的信息;
在客户操作系统的电源管理操作满足电源管理策略的情况下,通知服务操作系统执行满足电源管理策略的电源管理。
与现有技术相比,本发明提供了电源管理策略模块,可以很好的实现客户操作系统的电源管理,另外,也提供了资源转换模块,客户操作系统可以通过资源转换模块直接对硬件设备进行电源管理。此外,还提供了虚拟机监视器与客户操作系统如何配合完成电源管理的流程。
附图说明
图1为具有部分虚拟化的虚拟机监视器的虚拟机系统的结构示意图;
图2为具有全虚拟化的虚拟机监视器的虚拟机系统的结构示意图就;
图3为本发明虚拟机系统第一实施例的结构示意图;
图4为使虚拟机系统进入某一状态的电源管理的流程图;
图5为使虚拟机系统从某一状态恢复的电源管理的流程图;
图6为本发明的虚拟机系统对硬件设备的电源管理的流程图;
图7为本发明的虚拟机系统对硬件设备的电源管理中唤醒硬件设备的流程图;
图8为本发明的虚拟机系统对CPU的电源管理的流程图;
图9为本发明虚拟机系统的第二实施例的结构示意图;
图10为本发明第二实施例的虚拟机系统对独占设备的电源管理方法的流程图。
具体实施方式
以下结合附图和具体实施例说明本发明的虚拟机系统及其电源管理方法。
图3为本发明虚拟机系统第一实施例的结构示意图。如图3所示,本发明的虚拟机系统包括硬件设备、虚拟机监视器、服务操作系统和至少一个客户操作系统。
其中,服务操作系统包括至少一个设备模拟模块(Device Model,简称“DM”,或Device Emulation)、电源管理策略模块、OSPM(Operating SystemDirected Power Management,操作系统功耗管理)模块、以及驱动模块。客户操作系统包括OSPM模块、以及驱动模块。为了实现客户操作系统在这种架构下的电源管理,客户操作系统的BIOS需要满足ACPI标准对BIOS的要求,类似于本机BIOS(Native BIOS)提供的功能,需要提供相应的ACPI表以及方法(Method)。服务操作系统中的一个设备模拟模块对应于一个客户操作系统。每一个客户操作系统都有自己的电源管理系统,所有的和ACPI相关的硬件寄存器都由服务操作系统中对应的设备模拟模块来模拟,然后由服务操作系统的电源管理策略决定是否操作到真实的ACPI寄存器,并根据预定的电源管理策略,由服务操作系统的OSPM模块访问真实的ACPI硬件。
本发明的虚拟机系统可以实现客户操作系统对处理器(CPU)、系统状态以及硬件设备的电源管理,以下说明本发明的虚拟机系统电源管理方法。
首先参照图4和5说明对客户操作系统的电源管理,在本发明中,对操作系统的电源管理包括如图4所示的、使虚拟机系统进入某一状态的电源管
理,以及如图5所示的、使虚拟机系统从某一状态恢复的电源管理。
步骤401,当客户操作系统A进入系统电源管理状态-Sn状态(可以为S1状态、S2状态、S3状态、S4状态、或S5状态等)时,客户操作系统在自身的BIOS(Guest BIOS)空间中记录自己的唤醒向量,并由OSPM模块操作服务操作系统中相应的设备模拟模块的ACPI寄存器;
步骤402,设备模拟模块将客户操作系统A的电源管理状态告知电源管理策略模块,由电源管理策略模块记录客户操作系统A的状态;
步骤403,电源管理策略模块根据电源管理策略判断虚拟机系统是否满足进入Sn状态的条件,如果不满足,则执行步骤408,如果满足,则执行步骤404;
步骤404,电源管理策略模块通知服务操作系统进入Sn状态;
步骤405,服务操作系统接收到电源管理策略模块的通知,并在执行相应的动作后通知虚拟机监视器(必要时,虚拟机监视器和其他客户操作系统)一起进入Sn状态,进一步将服务操作系统的唤醒向量告知虚拟机监视器;
步骤406,虚拟机监视器接收到服务操作系统的通知,执行相应的电源管理流程,并记录服务操作系统的唤醒向量,同时把自身的唤醒向量记录在本机BIOS的ACPI(FACS)表中,通知服务操作系统虚拟机监视器自身的电源管理流程完成。如需通知其他的客户操作系统一起进入Sn状态,则其他客户操作系统接收到服务操作系统的通知,执行相应的电源管理流程,并通知服务操作系统客户操作系统自身的电源管理流程完成;
步骤407,服务操作系统接收到虚拟机监视器(必要时,虚拟机监视器和其他客户操作系统)的通知后,接着进行电源管理的流程,最后由OSPM模块操作相应的ACPI硬件寄存器,从而使得虚拟机系统进入Sn状态;
步骤408,系统的电源管理结束。
在步骤403中,电源管理策略可以包括但不限于以下几种:
(1)所有客户操作系统进入Sn状态时虚拟机系统才进入Sn状态,例如,在客户操作系统A进入S3状态时,如果此时其他的客户操作系统均处于S3状态,这时虚拟机系统才进入S3状态;
(2)虚拟机系统的状态为所有客户操作系统休眠程度最低的状态,例如,
当客户操作系统状态A、B、C分别为S1状态、S3状态、S4状态时,虚拟机系统进入S1状态;
(3)虚拟机系统的状态为某几个主要的客户操作系统休眠程度最低的状态,例如,所有的客户操作系统A-N中,客户操作系统A、B、C为主要的客户操作系统,并且分别为S1状态、S3状态、S4状态时,虚拟机系统进入S1状态;
(4)虚拟机系统的状态与某几个主要的客户操作系统保持一致,例如,所有的客户操作系统A-N中,客户操作系统A、B、C为主要的客户操作系统,这时,只有在客户操作系统A、B、C同时为Sn状态时,虚拟机系统进入Sn状态;
(5)虚拟机系统的状态由最后一个客户操作系统或者某个主要客户操作系统进入的状态决定,例如当最后一个客户操作系统或者某个主要客户操作系统进入Sn状态时,虚拟机系统进入Sn状态;
(6)电源管理策略还可以设计成:所有客户操作系统进入S5状态时,虚拟机系统进入S3或S4状态等等;
(7)电源管理策略还可以设计成:当某个主要的客户操作系统进入Sn状态,通知其它客户操作系统进入相应的Sn状态,然后整个系统进入Sn状态。
如图5所示,当需要将虚拟机系统从Sn状态唤醒时,执行以下唤醒步骤:
步骤501,虚拟机系统执行本机BIOS重启向量,根据唤醒向量恢复虚拟机监视器,BIOS的唤醒过程和普通的机器一样;
步骤502,虚拟机监视器初始化自身拥有的硬件(如定时器,中断控制器等),然后根据服务操作系统的唤醒向量唤醒服务操作系统;
步骤503,服务操作系统执行一系列的唤醒系统的操作,并通知电源管理策略模块,虚拟机系统从Sn状态唤醒;
步骤504,电源管理策略模块判断当前客户操作系统所处的状态,然后通知前台客户操作系统的设备模拟模块发送ACPI唤醒事件给该客户操作系统;
步骤505,客户操作系统的BIOS的重启向量开始执行,唤醒该前台客户
操作系统。
在本发明的虚拟机系统中,除了可以对客户操作系统进行电源管理外,还可以对硬件设备进行电源管理。
具体的,如图6所示,本发明的虚拟机系统对硬件设备的电源管理包括以下步骤:
步骤601,当客户操作系统A对硬件设备进行电源管理操作时,客户操作系统中OSPM模块调用驱动模块操作服务操作系统相应的设备模拟模块A中的虚拟设备;
步骤602,设备模拟模块A将客户操作系统对虚拟设备的操作结果通知服务操作系统中的电源管理策略模块,由电源管理策略模块记录客户操作系统A所操作的虚拟设备的状态;
步骤603,电源管理策略模块根据设备电源管理策略判断硬件设备是否满足进入相应状态的条件,如果满足则执行步骤604,如果不满足则执行步骤605;
步骤604,电源管理策略模块通知服务操作系统,服务操作系统的OSPM模块调用相应的驱动模块,对相应的设备进行电源管理,从而使硬件设备进入相应的状态;
步骤605,硬件设备的电源管理结束。
在步骤603中,设备电源管理策略可以是:
1)硬件设备的状态为所有客户操作系统中该硬件设备休眠程度最低的状态,例如,当客户操作系统A、B、C中该硬件设备的状态分别为D1、D2、D3状态,则该硬件设备进入D1状态;
2)硬件设备的状态为某几个主要的客户操作系统中该硬件设备休眠程度最低的状态,例如,当所有客户操作系统A-N中,主要的客户操作系统A、B、C中该硬件设备的状态分别为D1、D2、D3状态,则该硬件设备进入D1状态;
3)硬件设备的状态为某个主要的客户操作系统中该硬件设备的状态,例如,当所有客户操作系统A-N中,客户操作系统A中该硬件设备的状态为D1状态时,则该硬件设备进入D1状态。
在硬件设备的电源管理策略1)和2)中,该硬件设备是共享设备,即,同时可以由多个客户操作系统进行电源管理和访问的硬件设备。在硬件设备的电源管理策略3)中,该硬件设备可以是共享设备,也可以是独占设备,即,只有一个客户操作系统或者同时只有一个客户操作系统可以对其进行电源管理和访问的硬件设备。
设备的唤醒过程与上述流程大致相同,如图7所示,包括以下步骤:
步骤701,当客户操作系统A对硬件设备进行唤醒操作时,客户操作系统中的驱动模块操作服务操作系统相应的设备模拟模块A中的虚拟设备;
步骤702,设备模拟模块A将客户操作系统对虚拟设备的操作结果通知服务操作系统中的电源管理策略模块,由电源管理策略模块记录客户操作系统A所操作的虚拟设备的状态;
步骤703,电源管理策略模块根据设备电源管理策略判断硬件设备是否满足进入相应状态的条件,如果满足则执行步骤704,如果不满足则执行步骤705;
步骤704,电源管理策略模块通知服务操作系统,服务操作系统的OSPM模块调用相应的驱动模块,对相应的设备进行唤醒操作,从而使硬件设备进入相应的状态,完成对硬件的状态控制;
步骤705,唤醒过程的电源管理结束。
在步骤703中,设备电源管理策略可以是:
1)硬件设备的状态为所有客户操作系统中该硬件设备休眠程度最低的状态,如,硬件设备目前的状态为D3,客户系统A要求设备状态为D0,则调解设备状态到客户系统A要求的状态;
2)硬件设备的状态为某几个主要的客户操作系统中该硬件设备休眠程度最低的状态,例如,硬件设备目前的状态为D3,当所有客户操作系统A-N中,主要的客户操作系统A、B、C中要求该硬件设备的状态分别为D1、D2、D3状态,则该硬件设备进入D1状态;
3)硬件设备的状态为某个主要的客户操作系统中该硬件设备的状态,例如,硬件设备目前的状态为D3,当所有客户操作系统A-N中,客户操作系统A中该硬件设备的状态为D0状态时,则该硬件设备进入D0状态。
在本发明的虚拟机系统中,除了可以对客户操作系统以及硬件设备进行电源管理外,还可以对CPU进行电源管理。对CPU的电源管理包括:CPU电源状态的调节、CPU性能状态的调节、以及处理器节流状态“clockthrottling”的调节,过程大致与对硬件设备的电源管理过程相似,只是电源管理策略不同。
具体的,如图8所示,本发明的虚拟机系统对CPU的电源管理包括以下步骤:
步骤801,当客户操作系统A对CPU状态进行调节时,客户操作系统内的OSPM模块操作虚拟CPU相应的寄存器;
步骤802,虚拟机监视器获得虚拟CPU寄存器的改变,并通知服务操作系统中的电源管理策略模块,由电源管理策略模块记录客户操作系统A将CPU调节到的状态;
步骤803,电源管理策略模块判断是否满足电源管理策略,如果满足则执行步骤804,如果不满足则执行步骤805;
步骤804,电源管理策略模块通知服务操作系统的OSPM模块,由OSPM模块设置物理CPU的相应的寄存器,从而使CPU进入相应的状态,完成CPU状态的调节;
步骤805,CPU的电源管理结束。
在客户操作系统对CPU电源状态的调节中,当客户操作系统A的状态为工作状态(Working,G0状态)时,客户操作系统A可以将CPU的电源状态调节到C0~C3状态。此时,在步骤803中,电源管理策略可以是:如果每个客户操作系统都将CPU调节到某种低能耗的电源状态时,让真实的CPU也调节到这种低能耗的电源状态,例如,调节到所有客户操作系统的CPU电源状态中切换回C0所需时间最短的那个状态。一种实现方式是:当客户操作系统中CPU的状态分别为C1,C2,C2...,则可以设置真实的CPU的状态为C1。
在客户操作系统对CPU性能状态的调节中,在C0状态下,CPU的性能可以被调节为多个性能状态P0、P1、...、Pn,还可以处于节流状态“clockthrottling”,以此来降低能耗。
对于CPU性能状态的调节,如果客户操作系统没有指定要调节到的性能状态,只是要调高或者调低,可以相应的增加或者减小为此虚拟机分配CPU资源的优先级别或者比例。
如果客户操作系统指定了要调节到的性能状态,可以采用如下两种方式之一:
1)当某个客户操作系统将CPU调节到某个性能状态时,如果该客户操作系统为主要的操作系统,则将真实的CPU的性能状态设置为与之相同;
2)根据各个客户操作系统所要求的性能状态,加权决策出一个折中的性能状态。
以下以通过调节CPU的频率实现的性能状态调节为例进行说明:
1)如果客户操作系统没有指定要将CPU调节到某一工作频率,只是需要将CPU的工作频率调高,则增加对该客户操作系统分配CPU资源的优先级别或者比例;如果客户操作系统没有指定要将CPU调节到某一工作频率,只是需要将CPU的工作频率调低,减小对该客户操作系统分配CPU资源的优先级别或者比例。
2)如果客户操作系统指定了要将CPU调节到某一工作频率,则可以采用如下两种方式之一作为电源管理策略:
a.当设定此频率的为最主要的客户操作系统,或者所有的客户操作系统都只由某个用户使用时,将真实的CPU的工作频率设定为此频率;
b.根据各个客户操作系统所要求的CPU的工作频率,决策出真实的CPU的工作频率,同时与每个客户操作系统关联一个CPU工作频率的变量,当客户操作系统试图察看其CPU当前的工作频率时,虚拟机监视器拦截此操作并将该变量的值返回给相应的客户操作系统。
在客户操作系统对CPU节流状态“clock throttling”的调节中,由于“clockthrottling”机制允许OSPM模块给寄存器中设置一个值来让处理器只工作在一定百分比的时间,此时,客户操作系统可以采用如下两种方式之一进行CPU节流状态的调节:
1、根据客户操作系统选择的CPU所处的工作状态(duty)的百分比来调节该客户操作系统的真实CPU的工作时间的比例。例如,当虚拟机监视器
分配给客户操作系统a%的真实CPU工作时间时,客户操作系统可以将处于工作状态的百分比调节为b%,则调节虚拟机监视器分配给该客户操作系统的工作时间为a%*b%的真实CPU工作时间;
2.根据客户操作系统选择的CPU所处的工作状态(duty)的百分比来调节真实的CPU处于工作状态(duty)的百分比。例如,当客户操作系统将CPU处于工作状态的百分比调节为b%时,虚拟机监视器可以将真实CPU处于工作状态的百分比也调节为b%,不改变客户操作系统的CPU的工作时间占用真实的CPU工作时间的比例。
另外,在上述对客户操作系统、硬件设备以及CPU的电源管理中,当发生ACPI的事件时,由服务操作系统的OSPM模块把ACPI事件通知给电源管理策略模块,然后由电源管理策略设置相应的设备模拟模块中的ACPI寄存器,并触发客户操作系统的SCI中断。
并且,当设备模拟模块收到某些键盘事件(电源开关键,或切换键)时,与电源管理策略模块交互,根据电源管理策略设置ACPI寄存器,并产生唤醒信号给客户操作系统;如按下切换键时,如果客户操作系统处于S3状态,则产生唤醒信号给客户操作系统唤醒系统。
在对虚拟机系统状态的电源管理中,除了上述的电源管理策略之外,虚拟机系统的状态可以由服务操作系统根据电池电量、系统管理员对服务操作系统电源管理模块的直接控制等因素主动发起系统电源管理的命令,并通知其它客户操作系统跟随进入某个休眠状态,而不直接与各客户操作系统的电源管理状态相关。以及,在对服务操作系统的硬件设备的电源管理中,硬件设备的状态可以由服务操作系统根据电池电量、系统管理员对服务操作系统电源管理模块的直接控制等因素进入某个休眠状态,而不直接与各客户操作系统的电源管理状态相关。
在通常的使用上,硬件设备可以根据硬件使用的习惯或人为规定,分为以下几种:
1)时时共享设备,例如,硬盘、网络设备等,这些设备在虚拟机系统中运行时,通常可以由两个或两个以上的客户操作系统同时访问;
2)分时切换设备,例如,键盘、鼠标、显卡(全屏显示模式)、声卡、
USB设备等,这些设备在同一时刻只能由一个客户操作系统(通常为前台客户操作系统)获得独占使用权;
3)时时独占设备,例如PCI设备,其可以由用户指定给一个客户操作系统运行,任何时候其他的客户操作系统均无权对该设备进行访问,除非重新对虚拟机系统进行配置。在实际的应用中,声卡、USB设备等也可以根据用户的需要设置为时时独占设备,由指定的客户操作系统访问。
对于上述的时时共享设备、分时切换设备、以及时时独占设备,可以通过第一实施例中的虚拟机系统实现其电源管理。进一步,对于其中的分时切换设备和时时独占设备(以下称为“独占设备”),可以由客户操作系统通过虚拟机监视器直接进行硬件设备的电源管理。
图9为本发明虚拟机系统的第二实施例的结构示意图。与图3中的第一实施例相比,第二实施例的虚拟机系统中的虚拟机监视器进一步包括资源转换模块,资源转换模块用于:存储服务操作系统为独占设备分配的资源、客户操作系统对服务操作系统为其提供的、独占设备分配的资源二者之间的转换关系,并在客户操作系统对可以独占设备进行电源管理时,根据上述转换关系将客户操作系统对独占设备的电源管理操作到相应的真实的独占设备。
本发明第二实施例中,对于虚拟机系统的电源管理、对CPU的电源管理以及对时时共享设备的电源管理与第一实施例相同。
以下结合图10具体说明本发明第二实施例的虚拟机系统对独占设备的电源管理方法。
在虚拟机系统对独占设备进行电源管理之前,需要在资源转换模块中存储服务操作系统为独占设备分配的资源、客户操作系统对服务操作系统为其提供的、独占设备分配的资源二者之间的转换关系。资源转换模块中转换关系的建立过程如下:
步骤1001,服务操作系统在启动时,扫描PCI总线,为硬件设备分配IRQ、IO和MMIO等资源,将分配的IRQ、IO、MMIO等写入各硬件设备的PCI配置空间;
步骤1002,设备模拟模块根据配置文件的设置为客户操作系统提供硬件设备,从服务操作系统获得硬件设备的真实信息,并把这些设备挂到虚拟的
PCI总线上,在客户操作系统启动后扫描虚拟PCI总线时,将硬件设备的真实信息通知客户操作系统;
步骤1003,客户操作系统在扫描虚拟PCI总线时,对服务操作系统为其提供的硬件设备分配IRQ、IO、MMIO等资源;
步骤1004,设备模拟模块通过虚拟机监视器截获客户操作系统的资源分配信息,对客户操作系统的资源分配进行解析,将客户操作系统和服务操作系统对硬件设备的资源分配建立映射关系,并将建立的映射关系下发到虚拟机监视器中的资源转换模块。
在资源转换模块中存储了映射关系后,客户操作系统可以通过资源转换模块直接访问硬件设备,并且在对硬件设备进行电源管理时,对于时时共享设备可以通过第一实施例的方式进行电源管理,而对于独占设备,可以通过资源转换模块直接进行电源管理,具体步骤如下:
步骤1005,当客户操作系统对其独占设备进行电源管理操作时,产生相应的电源管理指令;
步骤1006,虚拟机监视器中的资源转换模块截获客户操作系统的电源管理指令,并根据映射关系直接设置相应的独占设备的相应的寄存器,使独占设备进入相应的状态。
通过本发明上述实施例的虚拟机系统及其电源管理方法,可以有效的实现虚拟机系统的电源管理。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (18)
1.一种虚拟机系统,包括硬件设备、虚拟机监视器、服务操作系统以及至少一个客户操作系统,其特征在于,服务操作系统包括OSPM模块、至少一个设备模拟模块,客户操作系统包括OSPM模块,设备模拟模块与客户操作系统一一对应,
服务操作系统进一步包括电源管理策略模块,其中,
客户操作系统的OSPM模块,在客户操作系统进入系统电源管理状态时,操作对应的设备模拟模块中的ACPI寄存器;
设备模拟模块将客户操作系统的系统电源管理状态通知电源管理策略模块;
电源管理策略模块记录客户操作系统的系统电源管理状态,并在客户操作系统的系统电源管理状态满足电源管理策略的情况下,通知服务操作系统进入电源管理策略所决定的系统电源管理状态;
服务操作系统的OSPM模块在服务操作系统执行电源管理后,操作相应的ACPI硬件寄存器,使得虚拟机系统进入电源管理策略所决定的系统电源管理状态。
2.如权利要求1所述的虚拟机系统,其特征在于,
电源管理策略模块进一步在收到服务操作系统通知虚拟机系统从电源管理策略所决定的系统电源管理状态唤醒时,判断前台客户操作系统所处的系统电源管理状态,并通知前台客户操作系统的设备模拟模块发送ACPI唤醒事件给前台客户操作系统。
3.如权利要求1所述的虚拟机系统,其特征在于,电源管理策略包括:
(1)虚拟机系统进入与所有客户操作系统都进入的系统电源管理状态相同的系统电源管理状态;或
(2)虚拟机系统的系统电源管理状态为所有客户操作系统进入的系统电源管理状态中的休眠程度最低的系统电源管理状态;或
(3)虚拟机系统的系统电源管理状态为预定的多个客户操作系统进入的系统电源管理状态中的休眠程度最低的系统电源管理状态;或
(4)虚拟机系统的系统电源管理状态由预定的一个客户操作系统进入的系统电源管理状态决定;或
(5)虚拟机系统进入与所有客户操作系统都进入的系统电源管理状态不同的另一系统电源管理状态;或
(6)所有客户操作系统都进入预定的一个客户操作系统进入的系统电源管理状态后,整个虚拟机系统进入所有客户操作系统都进入的系统电源管理状态。
4.一种虚拟机系统,包括硬件设备、虚拟机监视器、服务操作系统以及至少一个客户操作系统,其特征在于,服务操作系统包括OSPM模块、驱动模块、以及至少一个设备模拟模块,客户操作系统包括OSPM模块、以及驱动模块,设备模拟模块与客户操作系统一一对应,其中,
服务操作系统进一步包括电源管理策略模块,
客户操作系统的OSPM模块,在客户操作系统对硬件设备进行电源管理操作时,操作对应的设备模拟模块中的虚拟设备;
设备模拟模块,将客户操作系统对虚拟设备的操作结果通知电源管理策略模块;
电源管理策略模块,记录客户操作系统所操作的虚拟设备的状态,并在虚拟设备的电源管理状态满足设备电源管理策略的情况下,通知服务操作系统的OSPM模块调用服务操作系统的驱动模块对相应的硬件设备进行电源管理,使得硬件设备进入满足设备电源管理策略的电源管理状态。
5.如权利要求4所述的虚拟机系统,其特征在于,设备电源管理策略包括:
1)硬件设备进入的电源管理状态为所有客户操作系统中该硬件设备进入的电源管理状态中休眠程度最低的电源管理状态;或
2)硬件设备进入的电源管理状态为预定的多个客户操作系统中该硬件设备进入的电源管理状态中休眠程度最低的电源管理状态;或
3)硬件设备进入的电源管理状态为预定的一个客户操作系统中该硬件设备进入的电源管理状态。
6.一种虚拟机系统,包括硬件设备、虚拟机监视器、服务操作系统以及至少一个客户操作系统,其特征在于,服务操作系统包括OSPM模块、至少一个设备模拟模块,客户操作系统包括OSPM模块,设备模拟模块与客户操作系统一一对应,
服务操作系统进一步包括电源管理策略模块,其中,
客户操作系统的OSPM模块,在客户操作系统对虚拟CPU的电源状态进行调节时,操作虚拟CPU相应的寄存器;
虚拟机监视器获得虚拟CPU相应的寄存器的改变,并通知服务操作系统中的电源管理策略模块;
电源管理策略模块记录虚拟CPU调节到的电源状态,并在硬件设备满足电源管理策略进入系统电源管理状态时,电源管理策略模块通知服务操作系统的OSPM模块;
OSPM模块设置物理CPU的相应的寄存器,从而使物理CPU进入电源管理策略所决定的电源状态。
7.如权利要求6所述的虚拟机系统,其特征在于,
在虚拟CPU的电源状态的调节过程中,当客户操作系统处于工作状态时,客户操作系统可以将虚拟CPU的电源状态调节到C0~C3状态,则电源管理策略为:在每个客户操作系统都将虚拟CPU调节到预定的一个低能耗的电源状态时,让物理CPU也调节到所述预定的一个低能耗的电源状态。
8.如权利要求6所述的虚拟机系统,其特征在于,在客户操作系统没有指定虚拟CPU要调节到的性能状态时,可以增加或者减少为虚拟机分配的物理CPU资源的优先级别或者比例来调节物理CPU的性能状态。
9.如权利要求6所述的虚拟机系统,其特征在于,在客户操作系统指定虚拟CPU要调节到的性能状态时,采用如下两种方式之一调节物理CPU的性能状态:
(1)当某个客户操作系统将虚拟CPU调节到某个性能状态时,如果所述某个客户操作系统为主要的操作系统,则将物理CPU的性能状态设置为与所述某个客户操作系统相同;或
(2)根据各个客户操作系统所要求的虚拟CPU的性能状态,加权决策出物理CPU的一个折中的性能状态。
10.一种虚拟机系统电源管理方法,其特征在于,包括以下步骤:
在客户操作系统进入系统电源管理状态时,操作该客户操作系统对应的设备模拟模块中的ACPI寄存器;
记录客户操作系统的系统电源管理状态,并在客户操作系统的系统电源管理状态满足电源管理策略的情况下,通知服务操作系统进入电源管理策略所决定的系统电源管理状态;
服务操作系统执行电源管理并操作相应的ACPI硬件寄存器,使得虚拟机系统进入电源管理策略所决定的系统电源管理状态。
11.如权利要求10所述的方法,其特征在于,进一步包括步骤:
在收到服务操作系统通知虚拟机系统从电源管理策略所决定的系统电源管理状态唤醒时,判断前台客户操作系统所处的系统电源管理状态,并通知前台客户操作系统的设备模拟模块发送ACPI唤醒事件给前台客户操作系统。
12.如权利要求10或11所述的方法,其特征在于,电源管理策略包括:
(1)虚拟机系统进入与所有客户操作系统都进入的系统电源管理状态相同的系统电源管理状态;或
(2)虚拟机系统的系统电源管理状态为所有客户操作系统进入的系统电源管理状态中的休眠程度最低的系统电源管理状态;或
(3)虚拟机系统的系统电源管理状态为预定的多个客户操作系统进入的系统电源管理状态中的休眠程度最低的系统电源管理状态;或
(4)虚拟机系统的系统电源管理状态由预定的一个客户操作系统进入的系统电源管理状态决定;或
(5)虚拟机系统进入与所有客户操作系统都进入的系统电源管理状态不同的另一系统电源管理状态;或
(6)所有客户操作系统都进入预定的一个客户操作系统进入的系统电源管理状态后,整个虚拟机系统进入所有客户操作系统都进入的系统电源管理状态。
13.一种虚拟机系统电源管理方法,其特征在于,包括以下步骤:
在客户操作系统对硬件设备进行电源管理操作时,操作对应的设备模拟模块中的虚拟设备;
将客户操作系统对虚拟设备的操作结果通知电源管理策略模块;
记录客户操作系统所操作的虚拟设备的状态,并在虚拟设备的电源管理状态满足设备电源管理策略的情况下,通知服务操作系统对相应的硬件设备进行电源管理,使得硬件设备进入满足设备电源管理策略的电源管理状态。
14.如权利要求13所述的方法,其特征在于,设备电源管理策略包括:
1)硬件设备进入的电源管理状态为所有客户操作系统中该硬件设备进入的电源管理状态中休眠程度最低的电源管理状态;或
2)硬件设备进入的电源管理状态为预定的多个客户操作系统中该硬件设备进入的电源管理状态中休眠程度最低的电源管理状态;或
3)硬件设备进入的电源管理状态为预定的一个客户操作系统中该硬件设备进入的电源管理状态。
15.一种虚拟机系统电源管理方法,其特征在于,包括以下步骤:
在客户操作系统对虚拟CPU的电源状态进行调节时,操作虚拟CPU相应的寄存器;
虚拟机监视器获得虚拟CPU相应的寄存器的改变,并通知服务操作系统中的电源管理策略模块;
电源管理策略模块记录虚拟CPU调节到的电源状态,并在硬件设备满足电源管理策略进入系统电源管理状态时,电源管理策略模块通知服务操作系统设置物理CPU的相应的寄存器,从而使物理CPU进入电源管理策略所决定的电源状态。
16.如权利要求15所述的方法,其特征在于,
在虚拟CPU的电源状态的调节过程中,当客户操作系统处于工作状态时,客户操作系统可以将虚拟CPU的电源状态调节到C0~C3状态,则电源管理策略为:在每个客户操作系统都将虚拟CPU调节到预定的一个低能耗的电源状态时,让物理CPU也调节到所述预定的一个低能耗的电源状态。
17.如权利要求15所述的方法,其特征在于,在客户操作系统没有指定虚拟CPU要调节到的性能状态时,可以增加或者减少为虚拟机分配的物理CPU资源的优先级别或者比例来调节物理CPU的性能状态。
18.如权利要求15所述的方法,其特征在于,在客户操作系统指定虚拟CPU要调节到的性能状态时,采用如下两种方式之一调节物理CPU的性能状态:
(1)当某个客户操作系统将虚拟CPU调节到某个性能状态时,如果所述某个客户操作系统为主要的操作系统,则将物理CPU的性能状态设置为与所述某个客户操作系统相同;或
(2)根据各个客户操作系统所要求的虚拟CPU的性能状态,加权决策出物理CPU的一个折中的性能状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101418462A CN101154130B (zh) | 2006-09-30 | 2006-09-30 | 一种虚拟机系统及其电源管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101418462A CN101154130B (zh) | 2006-09-30 | 2006-09-30 | 一种虚拟机系统及其电源管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101154130A CN101154130A (zh) | 2008-04-02 |
CN101154130B true CN101154130B (zh) | 2012-07-04 |
Family
ID=39255821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101418462A Active CN101154130B (zh) | 2006-09-30 | 2006-09-30 | 一种虚拟机系统及其电源管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101154130B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685404B (zh) * | 2008-09-28 | 2013-06-05 | 联想(北京)有限公司 | 一种虚拟环境中设备动态切换装置及方法 |
CN101770379B (zh) * | 2008-12-31 | 2013-10-02 | 北京联想软件有限公司 | 加载高级配置与电源接口命名空间的方法及计算机系统 |
CN101661325B (zh) * | 2009-08-10 | 2014-11-05 | 上海闻泰电子科技有限公司 | 一种移动设备的电源动态管理方法 |
CN102110008B (zh) * | 2009-12-29 | 2015-01-28 | 联想(北京)有限公司 | 访问主板附加设备的方法、装置、硬件设备及计算机 |
CN102117113B (zh) * | 2009-12-31 | 2015-03-04 | 联想(北京)有限公司 | 计算机系统及其中央处理器的电源管理的方法 |
US8181176B2 (en) * | 2010-06-21 | 2012-05-15 | Intel Corporation | Uniform storage device access using partial virtual machine executing within a secure enclave session |
CN102890554A (zh) * | 2011-07-22 | 2013-01-23 | 鸿富锦精密工业(深圳)有限公司 | 电源管理系统及方法 |
US9292067B2 (en) * | 2013-06-04 | 2016-03-22 | Qualcomm Incorporated | System and method for managing rechargeable power sources in a portable computing device with two or more usage modes |
CN104519104B (zh) * | 2013-09-30 | 2018-02-23 | 华为数字技术(苏州)有限公司 | 一种电源控制的方法和设备 |
CN104268005B (zh) * | 2014-10-22 | 2018-11-30 | 华为技术有限公司 | 虚拟机唤醒方法和装置 |
CN106445076A (zh) * | 2016-09-30 | 2017-02-22 | 长沙市极云网络科技有限公司 | 一种虚拟机主机的智能控制方法及智能控制系统 |
CN107077182B (zh) * | 2016-12-27 | 2020-01-07 | 深圳前海达闼云端智能科技有限公司 | 电源管理方法、装置、电子设备和计算机程序产品 |
CN113448740B (zh) * | 2021-09-01 | 2021-11-30 | 北京鲸鲮信息系统技术有限公司 | 操作系统的电源管理方法及装置 |
CN114578937B (zh) * | 2022-05-05 | 2022-08-02 | 北京远特科技股份有限公司 | 电源管理方法、嵌入式系统及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005064464A2 (en) * | 2003-12-18 | 2005-07-14 | Intel Corporation | Virtual network interface |
CN1726470A (zh) * | 2002-12-19 | 2006-01-25 | 英特尔公司 | 在虚拟机操作中用于管理机器状态的方法和系统 |
CN1833225A (zh) * | 2002-12-17 | 2006-09-13 | 英特尔公司 | 控制虚拟机的方法和系统 |
-
2006
- 2006-09-30 CN CN2006101418462A patent/CN101154130B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1833225A (zh) * | 2002-12-17 | 2006-09-13 | 英特尔公司 | 控制虚拟机的方法和系统 |
CN1726470A (zh) * | 2002-12-19 | 2006-01-25 | 英特尔公司 | 在虚拟机操作中用于管理机器状态的方法和系统 |
WO2005064464A2 (en) * | 2003-12-18 | 2005-07-14 | Intel Corporation | Virtual network interface |
Non-Patent Citations (1)
Title |
---|
夏军 等.嵌入式系统的动态电源管理架构.《单片机与嵌入式系统应用》.2005,第8~10页. * |
Also Published As
Publication number | Publication date |
---|---|
CN101154130A (zh) | 2008-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101154130B (zh) | 一种虚拟机系统及其电源管理方法 | |
CN102326132B (zh) | 最大化虚拟机平台的降低功率状态的电源管理 | |
CN102103516B (zh) | 基于虚拟cpu的频率和电压调节 | |
Bila et al. | Jettison: Efficient idle desktop consolidation with partial VM migration | |
CN101598969B (zh) | 基于等待时间准则的平台功率管理 | |
CN102789305B (zh) | 推迟挂起 | |
EP2202639B1 (en) | Virtual machine monitor | |
DE102009045953B4 (de) | System und Verfahren zum Nutzen von Ressourcen in einem Informationsverarbeitungssystem | |
CN102110023B (zh) | 一种多用户操作系统并行运行的控制方法、系统及计算机 | |
CN102156532B (zh) | 在维持特定的功能的同时降低消耗功率的计算机及方法 | |
US20200042068A1 (en) | Managing power consumption of multiple computing node clusters in a computing rack system | |
CN102057344A (zh) | 睡眠处理器 | |
CN102341763A (zh) | 由扩展为具有场管理服务器功能的平台管控器在本地虚拟机平台层级上在虚拟机场中进行的功率管理 | |
CN107741875A (zh) | 一种异构管理系统 | |
CN102385531B (zh) | 定时器管理装置与方法 | |
Alvarruiz et al. | An energy manager for high performance computer clusters | |
CN107810488A (zh) | 一种虚拟机的状态管理方法、装置和智能终端 | |
CN101788845A (zh) | 用于以降低功耗状态来执行计算机任务的方法和系统 | |
GB2491665A (en) | Processor bridging in heterogeneous computer system | |
CN108304223A (zh) | 一种用于电源休眠机制的操作系统与硬件平台交互方法 | |
US8176498B2 (en) | Power setting adjustments by mission operating system in response to requests from platform manager | |
JP2005202506A (ja) | ブレードサーバにおける電力管理システム | |
US11366679B2 (en) | Guest operating system wake-up method, device, electronic apparatus, and readable medium | |
US9436505B2 (en) | Power management for host with devices assigned to virtual machines | |
CN102566738A (zh) | 一种服务器系统的开机方法和服务器系统 |
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 |