防止vmm系统中的uos使sos正在使用的设备断电的系统和方法

文档序号:6468218阅读:315来源:国知局
专利名称:防止vmm系统中的uos使sos正在使用的设备断电的系统和方法
技术领域
本发明一般涉及防止虛拟机监视器(VMM)中的用户操作系统(UOS) 按照进入低功耗模式而使服务操作系统(SOS)正在使用的设备断电 (deenergizing )。
背景技术
当开启个人计算机时,在计算机的非易失性固态存储器中存储的基本输入 输出系统(BIOS)被调用以开始已知作为"引导"(boot)的处理,在该处理 中进行各种初始化工作。这些工作中最重要的工作之一是将UOS从计算机的 磁盘存储器复制到计算机的固态存储器上,以在使用计算机时由计算机的处理 器执行UOS。当关闭计算机时或当再启动(re-boot)计算机时,从存储器将 UOS清除。
一旦被启动并运行,UOS可能使计算机在一段时期的休眠之后进入所谓 的"低功耗"模式以节省能源。"低功耗"模式的一部分可以使计算机的各 种设备,例如无线发射机、计算机监视器、打印机、硬盘驱动(HDD)等处 于减少能源消耗^莫式。为此,UOS可以访问已知作为"高级配置与电源接口" (ACPI)表的数据结构,该表列出了可以是用于低功耗模式操作的候选项, 以使UOS执行BIOS中的某些代码来使合适的设备断电。
如从本文所了解的,已经介绍了 "虚拟机监视器"(VMM), VMM主要 是监控操作系统,该系统在后台操作以在其它事件中协调主UOS和服务操作 系统(SOS)两者的单个处理器的同时操作。如从本文进一步所了解的,VMM 使用的特点引起新的问题,即,按照低功耗模式工作的UOS无意地使设备断 电,而SOS或实际的VMM本身可能需要该设备。

发明内容
在新式特征丰富的计算机中,必须提供用于VMM的方法以对被选择的硬 件甚至系统BIOS给予完全的访问,从而向用户提供充分逼真的计算体验。如从本文可了解的,提供对于uos的该无防护的硬件访问可能引起控制问题。 当对UOS提供对ACPI表访问时特别容易出现控制问题,在该情况下UOS对 于系统中的全部设备具有完全的可见性,某些设备是与其它操作环境(例如 SOS)及VMM共享的。
为了防止UOS根据对BIOS/ACPI的低功耗调用指令无意地使SOS或实 际的VMM本身正在使用或需要使用的设备断电,来自UOS的某些BIOS/ACPI 调用指令被VMM拦截并被检验以确保过早的低功耗模式转换没有出现。
因此, 一种方法包括在计算机中提供用户操作系统(UOS)并且该系统被 配置来建立低功耗模式。使与计算机相关的设备进入低功耗状态中的减少能源 消耗模式。在计算机中提供虛拟机监视器(VMM)和服务操作系统(SOS), 并且该方法包括选择性地防止UOS按照低功耗调用指令使设备进入减少能源 消井W莫式。为此,VMM能够被用于拦截从UOS到基本输入输出系统(BIOS ) 的减少能源消耗4莫式调用指令(例如所谓的ACPI调用指令)。
在特定的非限制性实施例中,VMM确定对BIOS的UOS调用指令是否与 在进入减少能源消耗^莫式之前SOS应该交互的设备有关,如果是,则VMM 阻止该调用指令传递到BIOS,直到SOS已经完成与该设备的交互。然而,如 果希望,VMM可以通知UOS在完成该设备和SOS之间的交互之前该设备进 入减少操作模式,并且VMM能够延迟至BIOS的调用指令直到SOS已经完 成该操作。
更特定地,在某些实施例中,基于来自UOS的调用指令中的表示该设备 是虛拟设备的设备标识,VMM确定至BIOS的欲使设备进入减少能源消耗模 式的UOS调用指令是否与SOS应该交互的设备有关。可以从与UOS相关的 UOS高级配置与电源接口 (ACPI)表中获取设备标识。在后面这点上,除了 在UOS ACPI表中的虛拟设备标识之夕卜,UOS ACPI表可以与BIOS中的ACPI
设备标识。相反地,与SOS相关的SOS ACPI表可以对于在UOS ACPI表中 具有虚拟设备标识的每一个设备具有真实设备标识,对于在UOS ACPI表中具 有真实设备标识的每一个设备具有虚拟设备标识。另外,可以指定VMM"拥 有"所有的真实设备,并且在SOS和UOS ACPI表两者中的全部条目表示虚拟设备标识。
另一方面, 一种计算机具有uos、配置用于与uos同时操作的sos、配
置用于协调UOS和SOS的操作的虚拟机监视器(VMM )。该计算机还包括配 置以与VMM通信的BIOS以及可重配置的一或多个i殳备,该一或多个i殳备响 应于从UOS发起的至BIOS的调用指令。如果来自UOS的该调用指令是用于 真实设备(该设备由UOS唯一 "拥有,,),VMM拦截该调用指令并立即发送 该调用指令至BIOS以执行该调用指令,否则,VMM延迟向BIOS发送该调 用指令直到SOS没有对该设备的进一步的需要。"唯一拥有"表示只有UOS ACPI表表现该设备的真实设备ID,除了 BIOS ACPI表和VMM ACPI表之外 没有其它ACPI表表现该设备的真实设备ID,即,全部的其它ACPI表或者不 具有该设备,或者表示该设备的虚拟设备ID,该虚拟设备ID不需要功耗管理。
在另一方面, 一种数字处理器可执行的计算机可读介质来将从UOS到 BIOS的调用指令拦截以将所连接的设备配置成需要的模式。处理器还确定 SOS是否需要该设备,如果需要,则通知UOS该设备已经按照调用指令被配 置,同时允许SOS使用该设备完成任务。否则,同样,在SOS使用该设备完 成任务时,处理器将该调用指令传递到BIOS以将该设备配置为需要的模式。
参考附图能够最佳的理解本发明的具体内容以及本发明的结构和操作,在 附图中,相同的参考标记指相同的部件。其中


图l是可以使用本发明的、非限制性的计算机的框图; 图2示出本方法的非限制性的流程图; 图3是可以使用图2的方法的非限制性的结构的框图;及 图4是本方法的非限制性具体实施的流程图。
具体实施例方式
首先参考图1,示出以10指示的数据处理系统的高级框图,在该系统中 可以实施本发明。 一个非限制性实施例中的系统10是个人计算机或微型计算 机。系统10包括处理器12。处理器12能够接收来自时钟13的时钟信息,并 能够被连接到处理器总线14上,用于以减少的访问等待时间向处理器12呈现 (stage )数据或呈现来自处理器12的数据的高速緩冲存储器16也被连接到处理器总线14上。在非限制性实施例中,处理器12能够通过存储器控制器功能 20从高速緩冲存储器16或从系统固态存储器18访问数据。高速緩冲存储器 16可以包括例如DRAM的易失性存储器,存储器18可以包括例如闪存的非 易失性存储器。而且,经由图形总线控制器24存储器控制器20被连接到存储 器映像(memory-mapped)图形适配器22,图形适配器22提供用于监视器26 的连接,在监视器26上显示数据处理系统10内执行的软件的用户界面。
非限制性的存储器控制器20还可以被连接到提供至PCI总线30的接口的 个人计算机接口 (PCI)总线桥28上。连接到PCI总线30的可以是输入/输出 (I/O)控制器32,用于控制包括例如键盘/鼠标适配器34 (其提供至键盘36 或至由鼠标、轨迹球等实施的定位设备38的连接)等各种1/0设备。另外, 硬盘驱动40被连接到I/O控制器32。如本领域中已知的,HDD 40包括能够 访问主引导记录(MBR)的控制器,主引导记录(MBR)既包括图表数据结 构也包括可执行代码。如果希望,例如DVD或CD驱动等光盘驱动42可以被 连接到I/0控制器32。在某些实施中,如图所示,网络适配器44可以被连接 到PCI总线以将数据处理系统10连接到局域网络(LAN)、因特网或两者在 任何情况下,才艮据本领域中已知的原理,在上电过程中,处理器12 4丸行可以 存储在存储器18中的基本输入/输出系统(BIOS)程序46以将硬盘驱动40 中的操作系统载入存储器18中。
现在参考图2,处理开始于状态50,其中UOS确定已经满足低功耗条件, 该条件例如是自从用户输入行为以来过去了预定的时间段。在该情况下,该方 法前进到框52,其中UOS对BIOS发出一个或多个调用指令以将某些设备设 置为减少能源状态,这些设备例如但不限于无线发射机、计算机显示器26、 打印机、HDD 40、甚至整个系统等。在优选的非限制性实施例中,由于在上 述ACPI表上表示了这些调用指令,因此,这些调用指令在图2中被称为"ACPI" 调用指令。
框54表示调用指令被下面进一步说明的虚拟机监视器(VMM)拦截,虚 拟机监视器(VMM)在确定菱形框56对每一个调用指令确定被测调用指令是 否用于服务OS ( SOS )和/或根据下面进一步说明的VMM没有正在使用或没 有立即要求使用的设备。如果被测调用指令用于除了 UOS而不涉及OS的设备,则该方法前进到框58,其中调用指令被传递到BIOS 46以使BIOS 46将 相关的设备设置在减少能源状态。在这一点,将任何减少能源状态报告给
uos。
相反地,如果被测调用指令用于除了 UOS还涉及OS的设备,则该方法 前进到框60。在框60,在框58将调用指令传递到BIOS以将设备配置为减少 能源状态之前,调用指令被传递到例如SOS以允许要由SOS结束的设备的任 意未完成的使用。作为示例,在该方法前进到框58之前,SOS能够进行HDD 40的控制并写出状态或整理磁盘以例如在框58使BIOS断电。然而,如下面 进一步阐明的,VMM可以发信号通知UOS被测设备已经被配置为减少能源 状态(即使它还没有被如此配制)以例如释放与用于其它用途的设备相连接的 UOS的网全各端口。
图3提供图2所示的方法的进一步说明。在图3中,在62示出上述UOS, 在64示出上述SOS,在66示出上述VMM,同时示出它们与BIOS 46以及 BIOS 46的相关硬件(例如存储器18或容纳BIOS的其它硬件设备)的各个结 构关系。
如所示出的,每一个OS和BIOS包括相关的ACPI表62a、 64a、 66a、 46a 的自身的各个副本。ACPI表各自包括第一列的设备标识,第二列的ACPI机 器语言(AML )以及一列输入/输出(I/O )代码。根据本领域已知的原理,AML 代码表示相关设备的各种能源状态参数。
然而,如在图3的非限制性示例中所示出的,ACPI表相互不同,其中设 备列中的标识表示相关设备对于保存特定表的OS是"真实的"还是"虚拟的"。 从而,UOS62的ACPI表62a表示设备2-4对于UOS是"真实的,,而设备#1 是"虛拟的",但是对于SOS的ACPI表64a则是相反的,它表示对于SOS设 备2-4是虚拟的,而设备#1是真实的。VMM 66的ACPI表66a和BIOS 46 的ACPI表46a两者都表示所有设备的真实物理设备标识。可选择地,有可能 在UOS ACPI表62a和SOS ACPI表64a两者中都将设备列为"真实的",在 该情况,UOS和SOS两者都"拥有,,该设备。
现在可以理解在一个非限制性实施中,UOS发出的、框54中的ACPI调 用指令包括来自UOS 62的ACPI表62a的设备标识,并且通过确定该标识是用于虚拟设备还是用于真实设备(该真实设备还没有在SOS ACPI表64a中被 列为"真实的"),在确定菱形框56 (反映在图3中)VMM确定是在状态58 将调用指令传递到BIOS还是在状态60将调用指令传递到SOS 64。即,如果 ACPI调用指令包括设备的真实设备ID (除了在UOS (及VMM和BIOS )的 表中,该设备在任意其它ACPI表中没有被表现为"真实的"),则在状态58 将该调用指令直接传递到BIOS,并且如果ACPI调用指令包括虛拟设备ID, 则在状态60首先将该调用指令传递到SOS 64。
图4说明上面说明的ACPI表的具体实施的非限制性的流程图。如所示出 的,图4的流程图包括与来自BIOS的ACPI表的初始分解相关的方法,与之 并列的与修改正在处理的ACPI表的特定副本相关的方法以及之后的与编译 ACPI表的各种非BIOS版本相关的方法。
在状态70开始,从BIOS 46读取ACPI表46a,并且在状态72在表上运 行合适的ACPI源语言(ASL) /AML反汇编器(disassembler )。在状态74, 对于正在处理的特定的非BIOSACPI表,将用于相关OS的不必要(即非真实 的)设备从ACPI表中删除,然后在状态76编译表。然后在状态78将ACPI 表置于相关的OS中。
在状态80,替换在状态74删除的设备的虚拟设备被载入产生的非BIOS ACPI表中,并在状态82计算用于表(其自身具有表4交验和(checksum))中 条目的新的校验和。在框84,具有校验和的新的虚拟设备作为更新被置于ACPI 表中。从而,当例如SOS需要设备改变时,SOS ACPI表64a和UOS ACPI表 62a^皮动态更新。
除了上述说明,本发明能够用于保护或隐藏选择的个人计算机接口 (PCI) 地址范围。所谓的"即插即用,,(PnP)地址空间可以被分成两块,即,允许 固定寻址的遗留(legacy)块,和不允许固定地址范围的PnP地址范围。这可 能通过更新ACPI命名空间而使PnP-aware不能进行探测,或在PnP地址范围 中分配设备而实现。当在多个操作系统中划分物理PnP地址范围时,该特征 是有用的。
设备断电的特定系统和方法,但是应该理解,本发明包括的主题只限于权利要 求。
权利要求
1. 一种方法,包括在一计算机中,提供一用户操作系统(UOS),所述计算机被配置以建立一个低功耗状态,其中,所述UOS能使至少一个与所述计算机相关的设备进入一减少能源消耗模式;在所述计算机中,提供一虚拟机监控器(VMM);在所述计算机中,提供一服务操作系统(SOS),和从所述至少一个与所述计算机相关的设备中,有选择性地阻止所述UOS使一个设备进入所述减少能源消耗模式。
2. 如权利要求1所述的方法,进一步包括使用所述VMM拦截来自所 述UOS的减少能源消耗模式调用指令。
3. 如权利要求2所述的方法,其中所述VMM决定是否有一个至BIOS 的UOS调用指令和一个设备相关,所述SOS在所述设备进入所述减少能源消 耗模式之前与所述设备进行交互,如果有,所述VMM在所述SOS完成自身 和所述设备的交互之前,阻止所述调用指令传递到所述BIOS。
4. 如权利要求3所述的方法,其中,所述VMM通知所述UOS,所述设备 在完成和所述SOS交互之前进入了所述减少能源消耗^莫式。
5. 如权利要求3所述的方法,其中,所述VMM决定是否有一个至BIOS 的用于使一个设备进入减少能源消耗模式的UOS调用指令和一个设备相关, 基于一个用于显示所述设备是一个虛拟设备的包含在一个来自所述UOS的调 用指令中一个设备标识,所述SOS至少部分地与所述设备进行交互。
6. 如权利要求5所述的方法,其中,所述包含在来自所述UOS的所述调 用指令中的被发送的所述设备标识来自于一个与所述UOS相关的UOS高级配 置和电源接口 (ACPI)表。
7. 如权利要求6所述的方法,其中,除了在所述UOS ACPI表中的虚拟 设备标识之外,所述UOS ACPI表与基本输入/输出系统(BIOS )中的 一个ACPI 表相同,在所述UOS ACPI表中的所述虚拟设备标识在所述BIOS中的所述 ACPI表中被反映为真实设备标识。
8. 如权利要求7所述的方法,其中, 一个SOS ACPI表与所述SOS相关, 对于在所述UOS ACPI表中具有一个虚拟设备标识的每一个设备,所述SOS ACPI表具有一个真实设备标识,并且对于在所述UOS ACPI表中具有一个真 实设备标识的每一个设备,所述SOS ACPI表具有一个虚拟设备标识。
9. 如权利要求7所述的方法,其中, 一个SOS ACPI表与所述SOS相关, 对于具有在所述UOS ACPI表中的一个真实设备标识的至少一个设备,所述 SOS ACPI表具有一个真实设备标识。
10. —种计算机,包括 至少一个UOS;至少一个SOS,用于与UOS同时操作; 一VMM,用于协调所述UOS和所述SOS的操作;及 至少一个可重复配置的设备,响应于所述UOS发起的一个调用指令,其 中,所述VMM拦截所述调用指令,并且如果来自所述UOS的所述调用指令 用于一个真实设备,则所述VMM立即发送所述调用指令以执行所述调用指 令,否则,在所述SOS没有对所述设备的进一步的需要之前所述VMM延迟 发送所述调用指令。
11. 如权利要求10所述的计算机,进一步包括至少一个BIOS,配置用于和所述VMM通信并4妻收来自所述UOS的调用 指令,其中,如果在所述SOS没有对所述设备的进一步的需要之前所述VMM 延迟发送所述调用指令至所述BIOS,则当所述SOS没有对所述设备的进一步 的需要时,所述VMM发送所述调用指令至所述BIOS以执行所述调用指令。
12. 如权利要求11所述的计算机,其中,所述VMM发信号通知所述UOS 在所述SOS没有对所述设备的进一步的需要之前所述调用指令已经被执行。
13. 如权利要求11所述的计算机,其中,至少部分地基于来自所述UOS 的所述调用指令中的表示所述设备是一个虚拟设备的 一个设备标识,所述 VMM延迟将所述调用指令发送至所述BIOS。
14. 如权利要求13所述的计算机,其中,所述包含在来自所述UOS的所 述调用指令中的被发送的所述设备标识来自于一个与所述UOS相关的UOS ACPI表。
15. 如权利要求14所述的计算机,其中,除了在所述UOS ACPI表中的 虚拟设备标识之外,所述UOS ACPI表与所述BIOS中的一个ACPI表相同,被反映为真实设备标识。
16. 如权利要求15所述的计算机,其中, 一个SOS ACPI表与所述SOS 相关,对于在所述UOS ACPI表中具有一个虚拟设备标识的每一个设备,所述 SOS ACPI表具有一个真实设备标识,并且对于在所述UOS ACPI表中具有一 个真实设备标识的每一个设备,所述SOS ACPI表具有一个虚拟设备标识。
17. 如权利要求15所述的计算机,其中, 一个SOS ACPI表与所述SOS 相关,对于具有在所述UOS ACPI表中的一个真实设备标识的至少一个设备, 所述SOS ACPI表具有一个真实设备标识。
18. —种数字处理器可执行的计算机可读介质,用于拦截从一 UOS到一 BIOS的至少一个调用指令,以将所连接的一个设备 配置成一需要的一莫式;确定一 SOS是否需要所述设备,如果需要,则通知所述UOS已经按照命令配置了所述设备,同时允许所 述SOS使用所述设备完成其任务,否则在所述SOS使用所述设备完成其任务 时,将所述调用指令传递到所述BIOS以将所述设备配置成所述需要的模式。
19. 如权利要求18所述的计算机可读介质,其中, 一数字处理器使用来 自所述UOS的一个调用指令中的表示所述设备是一个虚拟设备的一个设备标 识来确定所述SOS是否需要所述设备。
20. 如权利要求19所述的计算机可读介质,其中,所述包含在来自所述 UOS的所述调用指令中的被发送的所述设备标识来自于一个与所述UOS相关 的UOS ACPI表。
21. 如权利要求20所述的计算机可读介质,其中,除了在所述UOSACPI 表中的虚拟设备标识之夕卜,所述UOS ACPI表与BIOS中的一个ACPI表相同, 在所述UOS ACPI表中的所述虛拟设备标识在所述BIOS中的所述ACPI表中 被反映为真实设备标识。
全文摘要
本发明涉及一种防止VMM系统中的UOS使SOS正在使用的设备断电的系统和方法。通过虚拟机监视器路由从用户操作系统到基本输入输出系统的将连接的设备配置为减少能源模式的调用指令。虚拟机监视器确定服务操作系统是否需要该设备,如果是,则虚拟机监视器通知用户操作系统该设备已经按照调用指令被配置,同时允许服务操作系统使用该设备完成任务。如果服务操作系统不需要该设备或完成使用该设备的服务操作系统任务时,虚拟机监视器将该调用指令传递到高级配置与电源接口/基本输入/输出系统以将该设备配置为所要求的能源消耗模式。
文档编号G06F11/00GK101452407SQ20081017956
公开日2009年6月10日 申请日期2008年12月4日 优先权日2007年12月4日
发明者川野清一, 罗德·戴维·沃特曼, 亮 陈, 马克·查尔斯·戴维斯 申请人:联想(新加坡)私人有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1