CN102023887B - 一种计算机系统的电源管理方法及计算机系统 - Google Patents

一种计算机系统的电源管理方法及计算机系统 Download PDF

Info

Publication number
CN102023887B
CN102023887B CN200910093822.8A CN200910093822A CN102023887B CN 102023887 B CN102023887 B CN 102023887B CN 200910093822 A CN200910093822 A CN 200910093822A CN 102023887 B CN102023887 B CN 102023887B
Authority
CN
China
Prior art keywords
client operating
operating system
management command
power management
described power
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
CN200910093822.8A
Other languages
English (en)
Other versions
CN102023887A (zh
Inventor
陈博
陈军
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN200910093822.8A priority Critical patent/CN102023887B/zh
Publication of CN102023887A publication Critical patent/CN102023887A/zh
Application granted granted Critical
Publication of CN102023887B publication Critical patent/CN102023887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Power Sources (AREA)

Abstract

本发明提供了一种计算机系统的电源管理方法及计算机系统。所述电源管理方法包括:拦截所述第一客户操作系统发出的电源管理命令;在拦截到所述电源管理命令后,通过所述虚拟机管理器向除所述第一客户操作系统外的其它客户操作系统发送所述电源管理命令;当所述其它客户操作系统都已执行完所述电源管理命令后,控制所述第一客户操作系统执行所述电源管理命令。按照本发明,可以避免包括多个客户操作系统的计算机系统因执行电源管理命令而造成的用户数据丢失或系统硬件损坏。

Description

一种计算机系统的电源管理方法及计算机系统
技术领域
本发明涉及虚拟机技术领域,具体涉及一种计算机系统的电源管理方法及计算机系统。
背景技术
虚拟技术已经在计算机领域得到广泛应用。采用虚拟技术的计算机系统,通常包括运行在虚拟机管理器(VMM,Virtual Machine Monitor)之上的多个客户操作系统(GOS,Guest Operation System)。其中,有的客户操作系统具有直接硬件访问权限,如基于XEN架构的虚拟机系统中的伺服操作系统(SOS,Service Operation System);而有的客户操作系统并不直接对真实硬件进行访问操作,而是由具有直接访问权限的客户操作系统为其模拟对真实硬件的访问。
由于客户操作系统之间缺少一定的通信机制和配合机制,当具有直接硬件访问权限的客户操作系统需要关机或重新启动的时候,用户必须首先手动关闭其它客户操作系统,然后再对具有直接硬件访问权限的客户操作系统进行关机或重启。如果用户忘记关闭其它客户操作系统,或者用户直接关机或重启具有直接硬件访问权限的客户操作系统,此时由于其它客户操作系统无法获取关机或重启命令,将会造成其它客户操作系统的硬关闭,导致其它客户操作系统上的用户数据丢失,严重时还会造成其它客户操作系统的文件丢失甚至计算机的硬盘损坏。
发明内容
本发明实施例所要解决的技术问题是提供一种计算机系统的电源管理方法及计算机系统,避免包括多个客户操作系统的计算机系统因执行电源管理命令而造成的用户数据丢失或系统硬件损坏。
为解决上述技术问题,本发明实施例提供方案如下:
从以上所述可以看出,本发明实施例提供的一种计算机系统的电源管理方法及计算机系统,在客户操作系统之间增加相应的通信机制和配合机制,保证了第一客户操作系统在执行电源管理命令之前,其它客户操作系统均已执行完相同的电源管理命令,从而使得第一客户操作系统在执行电源管理命令时,不会对其它客户操作系统的用户数据带来任何影响,也不会造成系统硬件的损坏。并且,本发明实施例使得用户在对第一客户操作系统执行电源管理命令时,不必再首先手动关闭其它客户操作系统,从而提高了虚拟机的用户使用性。
附图说明
图1为本发明实施例所述的计算机系统的电源管理方法的流程示意图;
图2为为本发明实施例所述计算机系统的结构示意图;
图3为为本发明实施例所述计算机系统的另一结构示意图;
图4为为本发明实施例所述计算机系统的又一结构示意图。
具体实施方式
本发明实施例在客户操作系统之间增加相应的通信机制,具有直接硬件访问权限的客户操作系统在执行电源管理命令之前,通过虚拟机管理器向其它客户操作系统发送该电源管理命令,让其它客户操作系统先行执行该电源管理命令,从而避免了硬关闭造成的用户数据丢失或系统硬件损坏的问题。以下将结合具体实施例,对本发明做进一步的说明。
本实施例所述的计算机系统的电源管理方法,应用在包括虚拟机管理器和至少两个客户操作系统的计算机系统中,其中,所述至少两个客户操作系统包括一个具有直接硬件访问权限的第一客户操作系统。如图1所示,所述电源管理方法,包括:
步骤11,拦截所述第一客户操作系统发出的电源管理命令。
这里,所述电源管理命令包括:关机命令、重启命令、待机命令和休眠命令。本实施例可以在所述第一操作系统中设置一个拦截模块,用于拦截所述第一客户操作系统发出的电源管理命令。具体的,当用户通过按压所述计算机系统的电源开关或重启开关,触发相应的关机或重启事件时,所述第一客户操作系统的高级配置与电源接口(ACPI,Advanced Configuration and PowerInterface)模块截获到上述关机或重启事件,进而传递给上述拦截模块。或者是用户在所述第一客户操作系统下通过应用程序(如系统关机界面)输入的针对所述第一客户操作系统进行关闭、重启、待机或休眠等命令,上述拦截模块此时可以直接拦截这些命令。
步骤12,在拦截到所述电源管理命令后,通过所述虚拟机管理器向除所述第一客户操作系统外的其它客户操作系统发送所述电源管理命令。
这里,在拦截到所述电源管理命令后,所述第一客户操作系统可以进一步检测所述计算机系统中是否存在除所述第一客户操作系统外的其它客户操作系统:如果存在,则向所述其它客户操作系统发送所述电源管理命令;否则,控制所述第一客户操作系统执行所述电源管理命令,并结束本流程。
具体的,向所述其它客户操作系统发送所述电源管理命令可以是向所述其它客户操作系统同时发送所述电源管理命令,还可以是:向所述其它客户操作系统中的每个客户操作系统,逐个发送所述电源管理命令,其中,只有在所述其它客户操作系统中的上一个客户操作系统执行完所述电源管理命令后,才向下一个客户操作系统发送所述电源管理命令。
步骤13,当所述其它客户操作系统都已执行完所述电源管理命令后,控制所述第一客户操作系统执行所述电源管理命令。
本实施例中,所述其它客户操作系统接收到所述第一客户操作系统通过虚拟机管理器发送的电源管理命令后,则主动地根据该电源管理命令,执行相应的电源管理操作,例如执行本操作系统的关闭、重启、休眠或待机等操作。所述第一客户操作系统包括有分别对应于每一所述其它客户操作系统的设备模块(DM,Device Model)。每一所述其它客户操作系统在执行完所述电源管理命令时,将通过虚拟机管理器向对应的设备模块发送一个响应消息,用以通知已执行完所述电源管理命令。这样第一客户操作系统就可以根据每一所述其它客户操作系统对应的设备模块是否接收到所述每一所述客户操作系统执行完所述电源管理命令时返回的响应消息,来判断每一所述客户操作系统是否执行完所述电源管理命令。
本实施例中还可以预先设定一个超时时间,在向所述其它客户操作系统发送所述电源管理命令后的超时时间内,如果所述其它客户操作系统尚未执行完所述电源管理命令,此时可以控制所述第一客户操作系统放弃执行所述电源管理命令。当然,本实施例中所述第一客户操作系统还可以一直等待,直到所述其它客户操作系统都执行完所述电源管理命令后,再自行执行所述电源管理命令。
本实施例中通过虚拟机管理器向其它客户操作系统发送所述电源管理命令是:在所述虚拟机管理器中设置一个ACPI事件注射模块,通过该ACPI事件注射模块向其它客户操作系统发送ACPI事件,然后注射ACPI中断,所述ACPI事件用于指示所述其它客户操作系统执行所述电源管理命令。具体的,当ACPI事件注射模块被调用要向某个客户操作系统注射ACPI事件时,他首先检测被注射的客户操作系统是否存在,如果不存在,则返回操作失败的消息;如果存在,则首先打开该客户操作系统的ACPI PowerButton使能位,然后对ACPI的相应寄存器进行置位(例如,当需要发送关机/重启命令时,将PM1事件寄存器的Power/Sleep Button位置1),然后再向该客户操作系统发送一个ACPI中断,这样就完成了一个ACPI事件注射。当该客户操作系统收到上述ACPI中断时,它读取并判断ACPI的PM1事件寄存器的Power/sleep Button位是否置1,如果置1,则开始关闭自己。
从以上所述可以看出,由于增加了客户操作系统之间的通信机制和配合机制,本实施例中第一客户操作系统在执行电源管理命令之前,其它客户操作系统均已执行完相同的电源管理命令,这样第一客户操作系统在执行电源管理命令时,不会对其它客户操作系统的用户数据带来任何影响,也不会造成系统硬件的损坏。并且,采用本实施例所述方法后,当用户需要在第一客户操作系统中执行电源管理命令时,不需要用户首先手动关闭其它客户操作系统的操作,从而提高了虚拟机的用户使用性。
基于上述计算机系统的电源管理方法,本实施例还提供了一种计算机系统。如图2所示,该计算机系统,包括:
虚拟机管理器;
至少两个客户操作系统,所述至少两个客户操作系统包括一个具有直接硬件访问权限的第一客户操作系统;
所述计算机系统还包括:
拦截模块,用于拦截所述第一客户操作系统发出的电源管理命令,所述电源管理命令包括针对第一客户操作系统的关机、重启、待机和休眠等命令。
发送模块,用于在拦截到所述电源管理命令后,通过所述虚拟机管理器向除所述第一客户操作系统外的其它客户操作系统发送所述电源管理命令。
执行模块,用于当所述其它客户操作系统都已执行完所述电源管理命令后,控制所述第一客户操作系统执行所述电源管理命令。
再请参照图3,本实施例所述计算机系统中,所述发送模块具体包括:
检测模块,用于在拦截到所述电源管理命令后,检测所述计算机系统中是否存在除所述第一客户操作系统外的其它客户操作系统,并输出一检测结果;
第一处理模块,用于在所述检测结果指示所述计算机系统中存在所述其它客户操作系统时,向所述其它客户操作系统发送所述电源管理命令;
第二处理模块,用于在所述检测结果指示所述计算机系统中不存在所述其它客户操作系统时,控制所述第一客户操作系统执行所述电源管理命令。
再请参照图4,本实施例所述计算机系统中,所述虚拟机管理器包括一ACPI事件注射模块,用于向所述其它客户操作系统注射ACPI中断,所述ACPI中断用于指示所述其它客户操作系统执行所述电源管理命令。
所述第一处理模块具体包括:
虚拟电源管理模块,用于在所述检测结果指示所述计算机系统中存在所述其它客户操作系统时,将预定的标志位置位,并从所述其它客户操作系统中随机选择出第二客户操作系统,并调用所述ACPI事件注射模块向所述第二客户操作系统注射所述ACPI中断;
分别对应于每一所述其它客户操作系统的设备模块,用于在接收本设备模块对应的客户操作系统在执行完所述电源管理命令时返回的响应消息、且所述标志位被置位时,判断所述其它客户操作系统是否都已执行完所述电源管理命令:若是,则启动所述执行模块;否则,从所述其它客户操作系统中尚未执行所述电源管理命令的客户操作系统中随机选择出第三客户操作系统,并调用所述ACPI事件注射模块向所述第三客户操作系统注射所述ACPI中断。
所述设备模块在接收到本设备模块对应的客户操作系统在执行完所述电源管理命令时返回的响应消息后,如果读取所述标志位发现所述标志位并没有被置位,则说明本设备模块对应的客户操作系统所执行的电源管理命令并非来自所述第一客户操作系统的,此时所述设备模块不执行上述判断等操作。
优选地,本实施例所述的计算机系统中,所述执行模块包括:
超时判断模块,用于判断在预定的超时时间内,所述其它客户操作系统是否已执行完所述电源管理命令,并输出一判断结果;
命令执行模块,用于在所述判断结果指示所述其它客户操作系统都已执行完所述电源管理命令时,控制所述第一客户操作系统执行所述电源管理命令;
命令放弃模块,用于在所述判断结果指示所述其它客户操作系统尚未执行完所述电源管理命令时,控制所述第一客户操作系统放弃执行所述电源管理命令。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种计算机系统的电源管理方法,所述计算机系统包括虚拟机管理器和至少两个客户操作系统,其中,所述至少两个客户操作系统包括一个具有直接硬件访问权限的第一客户操作系统,其特征在于,所述电源管理方法包括:
拦截所述第一客户操作系统发出的电源管理命令;
在拦截到所述电源管理命令后,通过所述虚拟机管理器向除所述第一客户操作系统外的其它客户操作系统发送所述电源管理命令;
当所述其它客户操作系统都已执行完所述电源管理命令后,控制所述第一客户操作系统执行所述电源管理命令。
2.如权利要求1所述的电源管理方法,其特征在于,所述向除所述第一客户操作系统外的其它客户操作系统发送所述电源管理命令,包括:
向所述其它客户操作系统中的每个客户操作系统,逐个发送所述电源管理命令,其中,只有在所述其它客户操作系统中的上一个客户操作系统执行完所述电源管理命令后,才向下一个客户操作系统发送所述电源管理命令。
3.如权利要求1所述的电源管理方法,其特征在于,所述向除所述第一客户操作系统外的其它客户操作系统发送所述电源管理命令,包括:
向所述其它客户操作系统同时发送所述电源管理命令。
4.如权利要求1所述的电源管理方法,其特征在于,所述第一客户操作系统包括有分别对应于每一所述其它客户操作系统的设备模块;
进一步根据所述每一所述其它客户操作系统对应的设备模块是否接收到所述每一所述其它客户操作系统执行完所述电源管理命令时返回的响应消息,判断所述每一所述其它客户操作系统是否执行完所述电源管理命令。
5.如权利要求1所述的电源管理方法,其特征在于,在向所述其它客户操作系统发送所述电源管理命令之后,所述电源管理方法还包括:
如果在预定的超时时间内,所述其它客户操作系统尚未执行完所述电源管理命令,控制所述第一客户操作系统放弃执行所述电源管理命令。
6.一种计算机系统,包括:
虚拟机管理器;
至少两个客户操作系统,所述至少两个客户操作系统包括一个具有直接硬件访问权限的第一客户操作系统;
其特征在于,所述计算机系统还包括:
拦截模块,用于拦截所述第一客户操作系统发出的电源管理命令;
发送模块,用于在拦截到所述电源管理命令后,通过所述虚拟机管理器向除所述第一客户操作系统外的其它客户操作系统发送所述电源管理命令;
执行模块,用于当所述其它客户操作系统都已执行完所述电源管理命令后,控制所述第一客户操作系统执行所述电源管理命令。
7.如权利要求6所述的计算机系统,其特征在于,所述虚拟机管理器包括:一ACPI事件注射模块,用于向所述其它客户操作系统注射ACPI中断,所述ACPI中断用于指示所述其它客户操作系统执行所述电源管理命令。
8.如权利要求6所述的计算机系统,其特征在于,所述执行模块包括:
超时判断模块,用于判断在预定的超时时间内,所述其它客户操作系统是否已执行完所述电源管理命令,并输出一判断结果;
命令执行模块,用于在所述判断结果指示所述其它客户操作系统都已执行完所述电源管理命令时,控制所述第一客户操作系统执行所述电源管理命令;
命令放弃模块,用于在所述判断结果指示所述其它客户操作系统尚未执行完所述电源管理命令时,控制所述第一客户操作系统放弃执行所述电源管理命令。
CN200910093822.8A 2009-09-21 2009-09-21 一种计算机系统的电源管理方法及计算机系统 Active CN102023887B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910093822.8A CN102023887B (zh) 2009-09-21 2009-09-21 一种计算机系统的电源管理方法及计算机系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910093822.8A CN102023887B (zh) 2009-09-21 2009-09-21 一种计算机系统的电源管理方法及计算机系统

Publications (2)

Publication Number Publication Date
CN102023887A CN102023887A (zh) 2011-04-20
CN102023887B true CN102023887B (zh) 2015-01-28

Family

ID=43865209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910093822.8A Active CN102023887B (zh) 2009-09-21 2009-09-21 一种计算机系统的电源管理方法及计算机系统

Country Status (1)

Country Link
CN (1) CN102023887B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6333965B2 (ja) * 2013-09-27 2018-05-30 インテル コーポレイション ウェイクロック使用を追跡する技術
CN107077182B (zh) * 2016-12-27 2020-01-07 深圳前海达闼云端智能科技有限公司 电源管理方法、装置、电子设备和计算机程序产品
TWI682273B (zh) * 2018-09-13 2020-01-11 緯創資通股份有限公司 儲存裝置的電源控制方法與使用此方法的電子系統
CN114578937B (zh) * 2022-05-05 2022-08-02 北京远特科技股份有限公司 电源管理方法、嵌入式系统及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1321273A (zh) * 1999-07-29 2001-11-07 松下电器产业株式会社 操作系统和虚拟计算机系统
CN1700175A (zh) * 2004-05-21 2005-11-23 三星电子株式会社 用于切换操作系统的计算机系统、方法、和介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1321273A (zh) * 1999-07-29 2001-11-07 松下电器产业株式会社 操作系统和虚拟计算机系统
CN1700175A (zh) * 2004-05-21 2005-11-23 三星电子株式会社 用于切换操作系统的计算机系统、方法、和介质

Also Published As

Publication number Publication date
CN102023887A (zh) 2011-04-20

Similar Documents

Publication Publication Date Title
CN101354677B (zh) 一种应用程序运行状态的检测方法及装置
EP2239662B1 (en) System management mode inter-processor interrupt redirection
CN101673216B (zh) 应用程序关闭方法和装置
CN101464819B (zh) 进入低功率模式前的硬件驱动处理器状态存储
US8176339B2 (en) Method and system for managing peripheral connection wakeup in a processing system supporting multiple virtual machines
CN100541438C (zh) 一种控制看门狗电路复位的方法和装置
CN101557420A (zh) 虚拟机监控器高效网络通信的实现方法
CN101192111B (zh) 具有屏保控制功能的鼠标
CN102141947A (zh) 一种对采用嵌入式操作系统的计算机应用系统中异常任务的处理方法及系统
CN101937344B (zh) 一种计算机快速启动的装置及方法
CN102023887B (zh) 一种计算机系统的电源管理方法及计算机系统
CN1584847B (zh) 在交流电源不存在时的操作状态保存的方法和系统
CN110764829B (zh) 一种多路服务器cpu隔离方法及系统
CN101636717B (zh) 网格处理控制装置
KR100605031B1 (ko) Usb 메모리 장치를 이용한 임베디드 시스템의 장애복구 및 업그레이드 방법
CN109151144B (zh) 硬件管理方法、装置、系统、计算机设备和存储介质
CN101281416A (zh) 确保系统关机完成的方法
CN103970253B (zh) 省电操作方法与电子装置
CN112363797B (zh) 一种虚拟机安全运行方法、电子设备及存储介质
CN101349975A (zh) 实现中断底半部机制的方法及嵌入式系统
EP2691853B1 (en) Supervisor system resuming control
Sun et al. Supporting Multiple OSes with OS Switching.
CN102117113B (zh) 计算机系统及其中央处理器的电源管理的方法
CN206921096U (zh) 一种多系统物理切换装置及计算机
CN101303715B (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