专利名称:管理执行在虚拟机中的操作系统的请求的制作方法
技术领域:
本发明涉及管理执行在虚拟机中的操作系统的请求。
背景技术:
为了增强计算机系统的灵活性和性能,能够使用虚拟化,其中由多个包括对应操 作系统(有时称为来宾操作系统)的虚拟环境共享硬件平台。该共享硬件平台的虚拟分区 有时称为“虚拟机”或“虚拟设备”。当多个来宾操作系统被部署在共享平台中时,在可以由来宾操作系统提出的各种 请求中可能出现冲突。例如,来宾操作系统可能试图例如通过提交请求来调用(invoke)功 率管理(power management)特征以将计算机系统放置在低功率模式中,例如休眠模式或待 机模式。然而,传统上,还没有提供高效的机制来使得能够恰当地协调这些类型的功率管理 请求,因而可能出现冲突。例如,第一来宾操作系统可能请求计算机系统要被放置在低功率 模式(其中处理功率对于执行计算任务是不可用的),而第二来宾操作系统可能仍在工作 并且正在执行计算任务。如果计算机系统响应于来自第一来宾操作系统的请求而被放置在 低功率模式中,那么第二来宾操作系统将不再能继续其计算任务的性能。
发明内容
一种管理共存在计算机系统中的多个操作系统的请求的方法,包括由计算机系统中的协调器接收来自多个操作系统之一的调用计算机系统中的管 理例程的服务的请求,其中该多个操作系统执行在计算机系统的相应的虚拟机中;以及由该协调器管理对接收的调用该管理例程的服务的请求的处理以防止相对于该 多个操作系统的至少另一个发生冲突。一种计算机系统,包括处理器;多个包含相应的来宾操作系统的虚拟机;可在处理器上执行的基本输入/输出系统(BIOS)例程;以及协调器,该协调器可在处理器上执行以接收来自来宾操作系统之一的调用BIOS例程的服务的请求;确定对该请求的处理是否将与该来宾操作系统的至少另一个冲突;以及响应于确定将发生冲突,执行动作以避免该冲突。
就下图以举例的方式描述本发明的某些实施例图1是结合本发明实施例的示例性计算机系统的框图;图2是根据实施例的协调来自共享平台上的多个操作系统的请求的过程的流程 图;以及
图3是根据另外实施例的响应于请求以更新非易失性存储器的过程的流程图。
具体实施例方式根据某些实施例,在其中共存多个操作系统的共享平台中,提供一种机制以协调 来自该多个操作系统的对于调用某些类型的服务的请求从而保证不出现冲突。能够由共享 平台上的操作系统调用的服务包括功率管理服务和/或由基本输入/输出系统(BIOS)例 程或其他类型的管理例程提供的其他服务。该多个操作系统被提供在共享平台的对应虚拟 分区中,其中虚拟分区能够称为“虚拟机”或“虚拟设备”。在随后的讨论中,指的是“虚拟 机”;然而,可以预期“虚拟机”也旨在涵盖“虚拟设备”或任何其他类型的虚拟分区。通常,“虚拟机”指的是被提供来虚拟化或仿真物理机器的物理机器的(由软件和 硬件组成的)某些分区或区段。从用户或应用程序的角度来看,虚拟机看起来就象物理机 器。执行在相应的虚拟机中的操作系统也称为“来宾操作系统”。通常,共享平台能够具有计算机系统的形式,其中“计算机系统”指的是任何具有 在其上可执行软件代码的一个或多个处理器的系统或电子装置。BIOS例程指的是这样的代 码,其由计算机系统运行以执行各种初始化任务、管理任务(例如,改变计算机系统的功率 模式的功率管理任务、在计算机系统保持活动(live)的同时管理热插入或热移除外围设 备的热交换任务、响应于温度事件而改变计算机系统的操作状态的热管理任务,等等)。术 语“BIOS例程”可能指的是一个或多个软件模块。可替换地,上面所提及的某些管理任务 (例如,功率管理任务、热管理任务、热交换任务等等)能够由可在计算机系统中执行的另 一类型的管理例程来管理。执行在计算机系统的相应的虚拟机中的多个操作系统可以发出能够使得计算机 系统中的硬件状态发生改变的请求(例如功率管理请求、热管理请求、热交换请求等等)。 这样的请求如果未被适当地处理则可能导致冲突。根据某些实施例,提供用于协调来自计 算机系统的(运行在相应的虚拟机中的)多个来宾操作系统的请求的机制来避免冲突。图1示出示例性计算机系统100,其中提供多个虚拟机102A和102B。每个虚拟机 102A、102B具有相应的来宾操作系统104A、104B。每个虚拟机还包括相应的软件应用程序 106A、106B。虽然在图1中描述了两个虚拟机,但是注意在可替换的实施例中,能够给出两 个以上虚拟机。注意,运行在对应虚拟机102A、102B中的来宾操作系统104A、104B能够是不同类 型或版本的操作系统,或者是相同类型或相同版本的操作系统。根据某些实施例,每个虚拟机102A、102B还包括相应的虚拟BIOS例程108A、108B。 期望访问BIOS的服务的来宾操作系统104A或104B将调用(make a call)相应的虚拟BIOS 例程108A或108B (而不是计算机系统100中的实际BIOS例程118)。计算机系统100内的虚拟机102A、102B被设计成共享计算机系统100的物理资 源。在计算机系统100中,该物理资源是硬件110的一部分,硬件110包括一个或多个中 央处理单元(CPU) 112、存储器(易失性存储器和/或永久性存储器,例如基于磁盘的存储 器)114,非易失性集成电路(IC)存储器124,网络接口 116,以及其他资源。除了共享硬件110外,计算机系统100还包括BIOS例程118,它的服务能够由该系 统的多个来宾操作系统104A、104B共享。BIOS例程118包括可在计算机系统100的(一个或多个)CPU 112上执行的代码。可替换地或另外地,能够提供至少一个其他类型的管理例程来提供计算机系统100的管理服务。BIOS例程118能够提供管理服务,例如功率管理服 务、热交换服务、和热管理服务。计算机系统100还包括VMM 129,其对虚拟机102A、102B共享物理资源加以管理, 该物理资源包括计算机系统100的硬件110。该VMM120虚拟化物理资源(包括硬件110)。 每个虚拟机具有相关的虚拟化硬件,该硬件由VMM 120管理。VMM 120拦截来自相应的虚拟 机102A、102B的操作系统104A、104B的对于资源的请求,以便能够执行对该物理资源的恰 当分配。例如,VMM 120能够管理存储器存取、输入/输出(I/O)装置访问、和CPU对该虚 拟机的调度(schedule)。实际上,VMM 110提供计算机系统100的基本硬件110和每个虚 拟机的操作系统之间的接口。由VMM 110提供给虚拟机的操作系统的该接口被设计成仿真 由计算机系统100的实际硬件提供的接口。根据某些实施例,VMM 120进一步包括管理服务协调器122,用于协调来自操作系 统的对于由BIOS例程118(和/或其他类型的管理例程)提供的服务的请求以避免冲突。 期望访问BIOS例程118的服务的虚拟机102A或102B调用(call)其相应的虚拟BIOS例 程108A或108B。该调用的虚拟BIOS例程执行该请求,该请求由VMM 120截留(trap)。管理服务协调器122响应该截留的请求以确定如何处理该请求。例如,如果接收 到的特定虚拟机的请求是进入特定功率管理状态,该管理服务协调器122确定其他虚拟机 是否已经请求了类似的状态。如果管理服务协调器122确定请求的功率管理状态与其他虚 拟机的状态不一致,那么管理服务协调器122将使得VMM 120为特定虚拟机模拟请求的功 率管理状态。另一方面,如果管理服务协调器122确定请求的功率管理状态与其他虚拟机 的状态(或被请求的状态)一致,那么管理服务协调器122使得VMM调用实际BIOS例程 118以使得计算机系统100进入请求的功率管理状态。在更具体的实例中,管理服务协调器122可能已经接收到来自来宾操作系统104A 的将计算机系统100放置在低功率模式中的第一请求。来宾操作系统104A调用虚拟BIOS 例程108A以作出该请求,并且虚拟BIOS例程108A执行该请求,该请求由VMM 120截留并 且由管理服务协调器122检测。管理服务协调器122能够确定这样的请求与来宾操作系统 104B(其仍工作地执行在虚拟机102B中,并且由此必须访问计算机系统100的处理资源) 的需要不一致。当检测到这样的冲突时,管理服务协调器122可以使得VMM 120为虚拟机 102A模拟低功率模式(并且不调用实际BIOS例程118以将计算机系统100放置在低功率 模式中)。计算机系统100能够具有多个功率模式,包括正常或工作(active)功率模式和一 个或多个较低的功率模式(其中计算机系统100的一些或所有部件被断电)。计算机系统 100的功率模式能够是ACPI (高级配置和电源接口)功率模式。ACPI的当前版本在ACPI 规范,版本3. Ob (2006年十月)中有所描述。在不同ACPI功率模式间转变计算机系统100 能够由BIOS例程118管理。一般地说,管理服务协调器122确定来自特定虚拟机的请求的服务是否将与其他 虚拟机冲突。如果发生冲突,那么管理服务协调器122将使得VMM 120代表特定虚拟机模 拟请求的服务。另一方面,如果不发生冲突,那么管理服务协调器122将使得VMM 120调用 实际BIOS例程118以执行该请求的服务。
图2示出由图1的管理服务协调器122执行的过程。管理服务协调器122 (在202) 接收截留的来自来宾操作系统的调用计算机系统100的管理服务的请求。该截留的请求是 由相应的虚拟机102A或102B中的虚拟BIOS 108A或108B执行的、已经由VMM 120截留的 请求。该接收的截留请求能够是由管理服务协调器122接收的许多截留请求之一,或它可 以是已经由管理服务协调器122接收的唯一的截留请求。响应于该接收的截留请求,管理服务协调器122 (在204)确定执行该请求的管理 服务是否将导致冲突。例如,该请求可以是将计算机系统100放置在低功率模式中的请求。 然而,管理服务协调器122可能检测到另一来宾操作系统正在在计算机系统100中工作地 执行计算任务,并且由此响应于该请求将计算机系统100放置在低功率模式中将与这样的 其他来宾操作系统的状态不一致。如果确定将发生(206)冲突,那么管理服务协调器122(在208)执行动作以防止该冲突,例如通过为该请求虚拟机模拟该服务(以及不调用该实际BIOS例程118)。另一方面,如果确定将不发生冲突,那么管理服务协调器(在210)允许该请求通过使得VMM 120调用该实际BIOS例程118而被处理以执行该请求的服务。根据某些实施例,由图1的VMM 120提供的另一特征是对非易失性存储器124的 内容的更新的控制。该控制是由VMM 120中的非易失性写控制模块128提供的。该非易失 性集成电路存储器124能够以闪存、电可擦除可编程只读存储器、或任何其他被设计成即 使从计算机系统100中的集成电路存储器去电也能保持其内容不变的集成电路存储器(通 过将电子部件集成在例如半导体衬底的公共衬底上制成的存储器)实现。在某些情况中,非易失性集成电路存储器124(图1)的内容可能必须被更新。在 一个实例中,BIOS例程(或存储在非易失性存储器124中的其他管理例程)的新版本可能 是可用的。对该非易失性存储器124的内容的更新可以由来宾操作系统104A、104B之一请 求。与来宾操作系统在虚拟机中的部署相关联的问题是来宾操作系统不知道计算机 系统100中的物理地址,包括与非易失性存储器124相关联的物理地址。根据某些实施例, 虚拟地址到物理地址映射126 (图1)存储在计算机系统100的存储器114中以允许该非易 失性写控制模块128将从来宾操作系统接收的请求中的虚拟地址映射到物理地址,其包括 该非易失性存储器124的物理地址。图3示出根据实施例的更新非易失性存储器124内容的过程。非易失性写控制模 块128 (在302)接收更新非易失性存储器124 (例如更新BIOS例程或其他管理例程)的请 求。该请求从来宾操作系统接收,并且该请求包含至少一个虚拟地址。非易失性写控制模块128 (在304)访问该虚拟地址到物理地址映射126 (图1)以 将该请求的至少一个虚拟地址映射到对应的至少一个物理地址。然后,使用该映射的物理 地址,非易失性写控制模块128 (在306)执行该请求的对非易失性存储器124的写入以更 新非易失性存储器124的内容。在某些实施例中,如果多个来宾操作系统发出请求来更新非易失性存储器124,则 能够提供同步机构以控制非易失性存储器124的内容的更新。加载如上所述软件的指令(包括图1的VMM 120,来宾操作系统104A、104B和BIOS 例程118)以在处理器(例如图1中的一个或多个CPU 112)上执行。处理器包括微处理器、微控制器、处理器模块或子系统(包括一个或多个微处理器或微控制器)、或者其他控 制或计算装置。“处理器”能够指的是单个部件或指的是复数个部件(例如一个CPU或多个 CPU)。(软件的)数据与指令存储在相应的存储装置中,所述存储装置被实现为一个或 多个计算机可读的或计算机可用的存储介质。存储介质包括不同形式的存储器,包括半导 体存储器装置,例如动态或静态随机存取存储器(DRAM或SRAM)、可擦除可编程只读存储器 (EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存;磁盘,例如固定磁盘、软盘和可移 动磁盘;包括磁带的其他磁介质;以及光学介质,例如高密度盘(CD)或数字视频盘(DVD)。
在上述说明中,提出了大量的细节以提供对本发明的理解。然而,对于本领域技术 人员将会理解,本发明可以在不需要这些细节的情况下实施。虽然已经就有限的实施例公 开了本发明,本领域技术人员将明白从其可得出大量的修改和变化。所附的权利要求旨在 覆盖如落入本发明真实的精神和范围内的修改和变化。
权利要求
一种管理共存在计算机系统(100)中的多个操作系统(104A、104B)的请求的方法,包括由计算机系统中的协调器(122)接收来自多个操作系统之一的调用计算机系统中的管理例程(118)的服务的请求,其中该多个操作系统执行在计算机系统的相应的虚拟机中;以及由该协调器管理对接收的调用该管理例程的服务的请求的处理以防止相对于该多个操作系统的至少另一个发生冲突。
2.权利要求1的方法,其中管理对接收的请求的处理由作为虚拟机监视器的一部分的 协调器执行。
3.权利要求1的方法,其中接收该请求包括接收调用实际基本输入/输出系统(BIOS) 例程的服务的请求。
4.权利要求3的方法,其中该多个操作系统是相应的虚拟机中的来宾操作系统,并且 其中该虚拟机包含相应的虚拟BIOS例程,并且其中接收该请求包括接收虚拟BIOS例程的 特定之一的已经由虚拟机监视器截留的请求。
5.权利要求4的方法,进一步包括响应于检测到将发生冲突,协调器使得虚拟机监视器为包含特定虚拟BIOS例程的虚 拟机模拟该服务。
6.权利要求5的方法,进一步包括响应于检测到不会发生冲突,协调器使得虚拟机监视器调用实际BIOS例程以执行该 服务。
7.权利要求1的方法,其中接收调用管理例程的服务的请求包括接收调用功率管理服 务以改变计算机系统的功率模式的请求。
8.权利要求1的方法,其中接收调用管理例程的服务的请求包括接收响应于热事件调 用热管理服务以改变计算机系统的状态的请求或者接收调用与热交换计算机系统中的外 围设备有关的服务的请求。
9.一种计算机系统(100),包括处理器(112);多个包含相应的来宾操作系统的虚拟机(102A、102B);可在处理器上执行的基本输入/输出系统(BIOS)例程(118);以及协调器(122),该协调器(122)可在处理器上执行以接收来自来宾操作系统之一的调用BIOS例程的服务的请求;确定对该请求的处理是否将与该来宾操作系统的至少另一个冲突;以及响应于确定将发生冲突,执行动作以避免该冲突。
10.权利要求9的系统,进一步包括虚拟机监视器,所述虚拟机监视器包含协调器,其 中该动作包括使得虚拟机监视器为包含发送请求的来宾操作系统的虚拟机模拟该服务。
全文摘要
本发明涉及管理执行在虚拟机中的操作系统的请求。计算机系统(100)中的协调器(122)接收来自多个操作系统(104A、104B)(其共存在该计算机系统中)之一的调用计算机系统中的管理例程的服务的请求。多个操作系统执行在计算机系统的相应的虚拟机(102A、102B)中。协调器处理接收的调用该管理例程的服务的请求以防止相对于该多个操作系统的至少另一个发生冲突。
文档编号G06F9/455GK101819538SQ20101010710
公开日2010年9月1日 申请日期2010年1月29日 优先权日2009年1月30日
发明者J·A·桑乔-多明格斯, L·B·霍布森 申请人:惠普开发有限公司