CN101493785A - 根据客户软件的特许级支持向虚拟机监视器转移 - Google Patents
根据客户软件的特许级支持向虚拟机监视器转移 Download PDFInfo
- Publication number
- CN101493785A CN101493785A CNA2009101281463A CN200910128146A CN101493785A CN 101493785 A CN101493785 A CN 101493785A CN A2009101281463 A CNA2009101281463 A CN A2009101281463A CN 200910128146 A CN200910128146 A CN 200910128146A CN 101493785 A CN101493785 A CN 101493785A
- Authority
- CN
- China
- Prior art keywords
- privilege level
- control
- virtual machine
- withdraws
- machine monitor
- 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/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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
一种在客户软件当前特许级符合特许级退出判据时让虚拟机监视器承担系统控制的系统与方法。处理器检测当前特许级符合该判据。然后把控制从客户软件转到虚拟机监视器,而后者可对某些特许级变化或值拒绝承担控制。
Description
本申请是申请人于2005年6月28日提交的,申请号为200510082092.3的,发明名称为“根据客户软件的特许级支持向虚拟机监视器转移”的发明专利申请的分案申请。
发明背景
本发明诸实施例涉及虚拟机,更具体地说,本发明诸实施例涉及虚拟机(VM)中运行的客户软件的特许级符合特许级退出判据时,让虚拟机监视器(VMM)夺回对处理器的控制。
普通VMM可在计算机上运行,向其它软件呈现一个或多台虚拟机的概况。每台VM都可当作一个独立的平台,运行其自己的操作系统(OS)诸如“客户操作系统”和应用程序,这统称为“客户软件”。比如说,客户软件准备在VM里或VM上运行。客户软件期望像在专用计算机上而不是在VM上运行那样的操作,即客户软件希望控制各种计算机操作,并在操作时访问硬件资源。硬件资源包括控制寄存器等处理器固有的资源和诸如描述符表格等留驻在存储器里的资源。但在虚拟机环境内VMM应能最终控制这些资源,使VM正常操作并加以保护。为此,VMM通常拦截和仲裁客户软件对硬件资源的所有访问。
大多数指令组体系结构(ISA)规定了把较少特许的应用程序与更富特许的操作系统功能相隔离的多种特许级,例如一种原有技术的32位结构有四种特许级,称为环0~环3,环0最具特许,环3最少特许。处理器在不同特许级之间提供受控的切换法。直接明白的切换可调用专用指令,暗示的切换可提出异常或故障,或运用中断等外部事件,例如在执行调用(CALL)、软件中断(INT)或中断返回(IRET)等指令时,可能出现特许级变化。由于其它的同步或异步事件,例如像异常、外部中断、故障、任务切换、陷阱和其它类似事件,也会发生特许级变化。
多处理器或多线程系统的操作系统,用软件构成的保证相互排斥的锁保护可能被一个以上多线程或处理器同时访问的数据。通常在短时间持有锁的情况下,可用所谓的旋转锁。当在一台处理器或一线程上操作的软件试图获取已被在另一台处理器或一线程上操作的软件取得的锁时,该软件就设法重新获取紧密代码循环(tight code loop)的该锁。虽在该紧密循环中运行,但软件并不执行任何有用的工作,硬件处理器线程并无益处。在多线程处理器或多个处理器系统上,一个线程或处理器的运行会取走其它线程或处理器的资源,诸如耗用带宽、执行单元或功率。因此,自旋周期要尽可能短。
虚拟多处理器或多线程系统的VMM可在独立的VM或虚拟处理器(VP)中执行运行于每种客户软件的软件。在非VM系统上,这些客户软件例子应在截然不同的处理器或多线程上执行。VP与所有客户软件例子都统称为虚拟系统。在不考虑这种客户锁定特性时,这种VMM会明显劣化,因此VMM不得抢占VP。而该VP保持锁定,除非要为该虚拟系统抢占所有的VP。当用软件编制锁时,因锁定原函数不能被硬件直接检测,可以应用直观推断法或间接观察法。
一种这样的直观推断法基于公共OS特性。在OS不以特许模式操作或处于低功率状态时,该OS可能保持不锁定。VMM可以利用这一认知,只抢占正在非特许模式或处于低功率态的虚拟处理器。抢占以特许模式操作的客户软件,被推迟到客户软件切换到非特许模式之后。
附图简介
图1示出可在其上实施本发明一个实施例的处理系统一实施例的框图。
图2在流程图中示出本发明一实施例的特许级退出控制的过程,各独立控制用于增减特许级。
图3在流程图中示出本发明一实施例的特许级退出控制过程,组合的控制用于增减特许级。
图4在流程图中示出本发明一实施例检测特许级变化的过程。
图5在流程图中示出本发明一实施例的异步事件处理过程。
图6在流程图中示出根据客户软件在虚拟机环境中的特许级从客户软件转到虚拟机监视器的过程的一实施例。
图7在流程图中示出根据客户软件在虚拟机环境中的特许级从客户软件转到虚拟机监视器过程的一实施例。
图8在流程图中示出在虚拟机环境中实行抢占调度过程的一实施例。
详细描述
提出一种让虚拟机监视器(VMM)在虚拟机(VM)上运行的客户软件的特许级符合一定特许级退级判据时保证控制某系统的系统与方法。处理器检出客户软件的特许级符合该判据,于是将控制转向VMM。特许级退出判据包括特许级增大、特许级减小、特许级任何变化、匹配预定等级的特许级、大于预定等级的特许级、小于预定等级的特许级或特许级的特定转换。VMM可以拒绝承担对某些特许级值或值变化的控制。在VM中执行任何指令之前或之后,都可以转向VMM。
本发明诸实施例还涉及执行这些操作的设备,该设备可以为所需目的而得到,或包括由存贮在计算机里的计算机程序选择性激活或重组的通用计算机。这种计算机程序可以存入计算机可读存储媒体,诸如但不限于任一类型的盘片(包括软盘、光盘、CD-ROM与磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、可擦可编程只读存储器(EPRPM)、电可擦可编程只读存储器(EEPROM)、磁卡或光卡,或任一种适合存贮电子指令的媒体,每一种都耦接计算机系统总线。指令可用一个或多个处理设备(如中央处理单元等)执行。在其它实施例中,本发明诸步骤可用包含可重配或硬线连接的步骤执行逻辑电路的专用硬件元件或者任意组合的编程计算机元件与定制硬件元件来执行。
另外,设计要经历从创造、模拟到制造的各个阶段。代表设计的数据可以若干方式表示该设计。首先在模拟当中,适宜用硬件描述语言或另一种功能描述语言表示硬件。另在某些设计过程阶段,可以形成带逻辑门和/或晶体管门电路的电路级模型。再者,在某一阶段,大多数设计达到数据代表各种设备在硬件模型中物理位置的程度。在应用常规半导体制造技术的情况下,代表硬件模型的数据可以是规定各种特征是否存在在用来生产集成电路的掩模不同的掩蔽层上。在任一设计表示法中,数据可以任一机器可读媒体形式存储。为发送此类信息的调制或生成的光波或电波、存储器或者盘片等磁或光存储器,可以是机器可读媒体,这类媒体都可“携带”或“指示“设计成软件信息。当发送了指示或携带代码或设计的电气载波而对该电信号执行复制、缓冲或再传输时,新的拷贝就制成了。这样,通信提供商或网络提供商就可复制实施本发明技术的物件(载波)。
图1示出可在其中运用本发明的虚拟机环璋100的一实施例。图1的VM环境和包括硬件、软件或二者组合的处理逻辑电路,都可实现本发明诸不同的实施例。本例的裸平台硬件116包括能例如操作标准操作系统(OS)或VMM 112的计算平台。
VMM 112虽然一般以软件构成,但可向更高级软件送出裸机接口。此种更高级软件包括标准或实时的OS,虽然本发明在这方面不限于该范围。另外,例如VMM可在另一VMM内或顶部运行。VMM及其一般特征与功能已为本领域技术人员熟悉,如可用软件、固件或各种技术的组合来实现。
平台硬件116可以是个人计算机(PC)、主机、手持设备、便携计算机、机顶盒或任一其它计算系统。平台硬件116包括处理器118、存储器120与特许级监视逻辑电路124。
处理器118可以是任一种能执行软件的处理器,诸如微处理器、数字信号处理器、微控制器等。处理器118包括执行本发明方法实施例的微代码、可重编逻辑、可编程逻辑或硬代码逻辑。虽然图1只示出一台这种处理器118,但系统内可以有一台或多台处理器。
存储器120可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器×ROM)、闪烁存储器、以上器件的任意组合或者其它任一种处理器118可读的机器媒体。存储器120可存贮执行本发明诸方法实施例的指令和/或数据。
VMM 112向其它软件(如“客户”软件)提供一台或多台虚拟机(VM)的概要,而虚拟机向各种客户提供同样或不同的概要。系统内有一台或多台VM,如图1示出两台VM,即102和114。在每台VM上运行的客户软件包括诸如104或106等客户OS和各种客户软件应用程序108与110。在VM 102和114内运行的客户软件希望在客户软件在其上正在运行的VM 102和114内访问物理资源(如处理器寄存器存储器和I/O设备),并处理各种事件,包括系统设备、异常等产生的中断。在虚拟机环境中,为保持VM 102和114的正常操作和起到保护作用,VMM 112应能最终控制物理资源,为此在必要时可拦截客户软件对计算机物理资源的访问。
被客户软件访问的资源分为“特许”或“非特许”。对特许的资源,VMM112可接通客户软件所需的功能,同时保持对这些特许资源的最终控制权。非特许资源不必受VMM 112控制,可被客户软件访问。
另外,各客户OS 104和106都想处理各种故障事件,诸如异常(如页面故障、一般保护故障、陷阱、失灵等)、中断(如硬软件中断)和平台事件(如初始化(INIT)与系统管理中断(SMI)。其中有些故障事件是“特许的”,因为要保证VM102与114之间的正常操作与保护,这些事件必须由VMM112处理。
在出现特许的故障事件或客户软件试图访问特许资源时,可将控制转到VMM112。这里把控制从客户软件转到VMM112称为VM退出。在VM退出后接收控制之后,VMM112可作各种处理,之后再把控制还给客户软件。这里把控制从VMM转给客户软件称为VM进入。
为调用特许的OS功能,应用程序使用了专用指令,诸如INT或SYENTER调用操作前,通常把系统调用标识符小参数装入处理器的寄存器。拦截系统调用规定多种应用场景,例如通过跟踪系统调用,侵入检测系统可找出安全破坏的原因。另一个有用场景是根据临时的系统调用启用模式检测执行周期,导出预定的定期实时任务模式。
在一实施例中,处理器118按存储在VM控制结构(VMCS)122里的数据控制VM102和114的操作。在一实施例中,VMCS122被存入存储器120。在另一实施例中,VMCS122被存入处理器118。在有些实施例中,用多个VMCS结构支持多个VM。
VMCS122是一种含有客户软件状态,VMM112状态、执行控制信息和其它信息的结构,其中执行控制信息指示VMM112是如何希望限制或控制客户软件操作的。VM中对客户软件的转移与客户软件的操作,用一组存贮在VMCS里的VM控制点控制。执行控制点规定了必须按其将控制从客户软件转到VMM的情况。退出控制点控制客户状态的保留和VMM状态在VM退出时的加载。在一组VM退出信息数据段内设置了描述最近VM退出的信息。VM退出时,对VMCS122保留处理器状态中被客户软件用过的部分,并从VMCS122加载VMM112所要求的处理器状态部分。进入控制点控制VMM状态的保留,并在VM进入时加载客户状态。在VM进入时,利用存贮在VMCS122里的数据恢复客户状态,并将控制还给客户软件。
在一实施例中,处理器118包括特许级监视逻辑(PLML)124,负责评估客户的当前特许级,以根据VMM112规定的特许级退出判据判断是否产生VM退出。在一实施例中,该特许级退出判据存储在VMCS122中。下面描述所述特许级退出判据的特定实施例。若PLML124断定当前客户特许级符合特许级退出判据,处理逻辑就促使VM从客户软件退到VMM112。
在各种ISA中,对特许级可指定一数值,较高数值表明增高的特许,较低数值表明减低的特许。在其它实施例中,较高数值可以指示减低的特许。在本文讨论中,特许级“增高”表示客户软件正变得更富特许,“减低”表示正变得更少特许,与涉及的数值无关。同样地,“小于”另一特许级的特许级是减低了特许的特许级,与涉及的数值无关。
诸控制点被加到表示特许级退出判据的VM控制点。在一实施例中,特许级增高退出控制若置成使能值,表示在客户软件操作期间增高特许级时,将产生VM退出。这一控制判断增高特许级的事件的传送或指令执行是否造成VM退出。在一实施例中,在完成了使特许级变化的指令执行之后(即撤退后),便发生特许级增高而造成的VM退出。在一实施例中,作为VM退出信息一部分而向VMM报告的客户指令指针值,可以指向准备以新的特许级执行的第一指令。在一实施例中,不明确规定报告造成特许级变化的指令地址。
在另一实施例中,特许级减低退出控制若置成使能值,就表明在客户软件操作期间减低特许级时,应产生VM退出。该控制判断减低特许级的事件或指令是否造成VM退出。在一实施例中,在造成特许级变化的指令执行后(即撤退后),因特许级减低而发生VM退出。作为VM退出信息一部分而报告给VMM的客户指令指针值,可以指向准备以新的特许级执行的第一指令。在一实施例中,不明确规定报告造成特许级变化的指令的地址。
图2的流程图示出了支持特许级增高与减低控制点的方法的一实施例。图2示出按客户特许级变换对特许级增减退出控制点所作的试验。图2中,特许级变化造成的VM退出比其它VM退出源更优先,这是为了简化图示,但实际上,有些VM退出源的优先权可以更高,而有些则更低。在图2的实施例中,虽然示出了特许级增减两个控制点,但在不同的实施例中,这些控制点可被独立支持或结合其它特许级退出控制点被支持。
图2中,在收到来自VMM112的VM进入请求时(框210),过程即开始(框205)。对VM进入作检查,诸如装载系统状态等(框215)。执行客户指令(框220)。若执行指令使VM退出(框225),则VM退出使控制转到VMM112,并向其报告VM退出的原因(框230),结束该过程(框235)。若在执行指令时不发生VM退出(框225),则撤退客户指令(框240)。在评估了客户软件的当前特许级后,若客户软件的特许级被判定为增高了(框245),而且特许级增高(PLI)控制被使能(框250),则VM退出使控制转到VMM112,并向后者报告VM退出是由PLI引起的(框230)。若客户软件的特许级被判定为增高了(框245),且特许级增高(PLI)控制不被使能(框250),则处理逻辑执行下一客户指令(框220)。
若客户软件的特许级未被定为增高(框245),则处理逻辑检查特许级减低(PLD)。评估了客户软件的当前特许级后,若客户软件的特许级被判定为减低了(框245),且PLD控制被使能(框250),则VM退出使控制转到VMM112,并向其报告VM退出由PLD造成(框230)。若客户软件的特许级未被定为减低(框255)或PLD控制不被使能(框260),就执行下一客户指令(框220)。
特许级退出判据可被使能与禁止,以便作选择性退出,这尤其有利于多处理器调用,因为通常只是偶尔要求特许级变化造成的VM退出。另外,例如VMM可能只对从OS核心转到VM中用户级代码起作用。
在另一实施例中,上述特许级增减执行控制点提供的功能可以组合成单一的特许级变化退出控制,规定任何特许级变化都会造成VM退出,如图3所示。图3中,过程在从VMM112收到VM进入请求时(框310)开始(框305)。作VM进入检查,诸如装载系统状态等(框315)。执行客户指令(框320)。若执行指令使VM退出(框325),则VM退出使控制转到VMM112,并向其报告VM退出的原因(框330),结束处理(框335)。若在执行指令时不发生VM退出(框325),则撤退客户指令(框340)。评估了客户软件的当前特许级后,若断定客户软件的特许级变了(框345),且特许级变化(PLC)退出控制被使能(框350),则VM退出使控制转到VMM112,并向其报告VM退出由PLC造成(框330)。若PLC条件不被满足(框345)或PLC退出控制未使能(框350),则执行下一客户指令(框320)。
图4在流程图中示出本发明一实施例检测特许级变化的一种方法。图中,通过将代表老特许级(OPL)的一变量置于当前特许级(CPL)而使之初始化(框410),过程便开始(框405)。处理或执行单一指令或某一异步事件诸如中断(框415)。在指令执行或事件处理后(框415),若特许级与指令或事件处理前不同(框420),则特许级变了,采取某一动作(框425),如图2和3所示。否则,执行下一指令或过程事件(框415)。
注意,在图2和3中,在执行指令后但撤退指令前,作出评估,判断是否出现VM退出。实际上,这一评估作为试图执行指令的一部分,例如访问一控制寄存器(如CR0)会使VM退出有错误语义学。换言之,在任一结构态被指令修改前都会出现VM退出。其它VM退出可在修改了某种结构态之后但在撤退指令(诸如使任务切换接着使VM退出的指令)之前发生。有些VM退出可在撤退了指令之后发生。特许级评估可以是一种这种条件在撤退后被评估的特许级评估。其它VM退出可因其它原因在其它情况下发生。
图5的流程图示出识别两种异步事件的方法,诸如执行特许级变化指令和中断在执行客户软件时到来等异步事件。图5中,过程在从VMM112收到VM进入请求(框510)时开始(框505)。作VM进入检查,如装载系统状态等(框515)。若异步事件已定(框520),就执行客户指令(框525)。若执行指令(框525)使VM退出(框530),则VM退出使控制转到VMM112,并向其报告VM退出的原因(框535),结束处理(框540)。若执行指令不使VM退出(框530),则撤退客户指令(框545)。若特许级增高(PLI)条件被满足(框550)且PLI控制被使能(框555),则VM退出使控制转到VMM112,并向其报告VM退出由PLI造成(框535)。若PLI条件未满足(框550)或PLI控制未被使能(框555),则处理逻辑检查特许级减低(PLD)。若PLD条件满足(框560)且PLD控制被使能(框565),则VM退出使控制转到VMM112,并且其报告VM退出由PLD造成(框535)。若PLD条件不满足(框560)或PLD控制未被使能(框565),则处理逻辑检查异步事件在该点是否悬而未决(框520)。若异常事件悬而未决(框520)且该事件造成VM退出(框570),则VM退出使控制转到VMM112,并向其报告VM退出由该事件造成(框535)。若异步事件悬而未决(框520)且未造成VM退出(框570),则把该事件引入客户软件(框575),再作上述的特许级检查。
在另一实施例中,一执行控制指示特许级目标值,该值在VMM控制下存入VMCS,VMM可将该值定为任一有效特许级。在另一实施例中,该特许级目标值有一固定值。有些实施例可提供一个以上这样的特许级目标值,如有一实施例有两个不同的特许级目标值,各自固定为专用值。
在一实施例中,特许级目标值直到使能才起作用。特许级目标值控制的使能方法是把VMCS中一匹配的特许级目标使能控制定为使能值,诸如1。该控制表明在执行客户软件时,若客户软件特许级与该特许级目标值匹配,就产生VM退出。执行控制可以有多个特许级目标值和多个匹配目标特许使能控制点,各自对应于一个特许级目标值控制点。
在一实施例中,在执行准备以匹配的特许级执行的第一指令前,可能发生因当前特许级与特许级目标值匹配而造成VM退出。在一实施例中,可能被作为VM退出信息一部分报告给VMM的客户给VMM的客户指令指针值,指向准备以匹配特许级执行的第一指令。在一实施例中,不明确规定报告使特许级改为匹配值的指令的地址。
图6是一流程实施例的流程图,可根据虚拟机环境中客户软件的特许级从客户软件转到VMM。在图示例中,根据客户软件的特许级和特许级目标值控制(PLTVC)的值,发生VM退出。图6中,在从VMM112接收VM进入请求时(框620),过程开始(框610)。作VM进入检查,诸如装载系统状态等(框630)。若PLTVC不被使能(框640),就执行客户指令(框650)。评估了客户软件的当前特许级(CPL)后,若PLTVC被使能(框640),而且CPL等于特许级目标值(PLTV)(框660),则VM退出使控制转到VMM112(框670),结束处理(框680)。若CPL不等于PLTV(框660),就执行客户指令(框650)。
在另一实施例中,特许级目标值控制用特许级顶值(ceiling value)控制扩展。若将该控制定为使能值(如定为1),就表示在执行客户软件时,若客户软件的特许级大于该特许级目标值,就发生VM退出。在一实施例中,执行控制有多个特许级目标值和相应的特许级顶值控制点。在另一实施例中,若把特许级目标值定为最高特许级,就不会转到更富特许的状态,因此不用使能控制就能有效地禁止该控制。
在又一实施例中,特许级目标执行控制用特许级底值(floor value)控制扩展,表明在执行客户软件时,若客户软件的特许级小于特许级目标值,将产生VM退出。在一实施例中,执行控制有多个特许级目标值和相应的特许级底值控制点。在另一实施例中,若把特许级目标值定为最低特许级,就不会转到较少特许的状态,因而不用使能控制也可有效地禁止该控制。
图7是一过程实施例的流程图,可根据客户软件在虚拟机环境中的特许级从客户软件转到VMM。在图示例中,当当前特许级大于PLTV时,根据客户软件的特许级和特许级顶值控制(PLCVC)的值发生VM退出。图7中,当从VMM112收到VM进入请求时(框720),过程开始(框710)。作VM进入检查,诸如装载系统状态等(框730)。若PLCVC不被使能(框740),就执行客户指令(框750)。评估了客户软件的CPL后,若PLCVC被使能(框740),而且CPL超出PLTV(框760),则VM退出使控制转到VMM112(框770),结束处理(框780)。若CPL不超出PLTV(框760),就执行客户指令(框750)。
实际上要用一个监视计时器,因在运行多驱动器线程的延长时段内,操作系统有时保持在核心模式中。图8是一过程实施例的流程图,在虚拟机环境中执行抢先调度。图8中,当处理逻辑判断当前VM(CVM)是否要求抢先时(框810),过程就开始(框805)。处理逻辑判断CVM是否为虚拟系统的组成部分(框815)。若CVM不处于特许模式(PM)(框820),则CVM被抢先(框825),结束处理(框830)。若CVM处于PM(框820),则建立监视设计时器(WDT)(框835)。于是在CVM不处于特许模式时(框840),适当设置特许级退出控制(PLEC),让VM退出。接着,处理逻辑把控制转到CVM(框845)。VMM12在VM从CVM退出后接受控制(框850)。若VM退出由WDT造成(框855),则CVM被抢先(框825),结束处理框(830)。若VM退出不是WDT造成(框855),则处理VM退出(框860),处理逻辑判断CVM是否处于PM(框865)。若CVM不处于PM(框865),则CVM被抢先(框825),结束处理(框830)。若CVM处于PM(框865),则PLEC置位(框840),控制转到CVM(框845),WDT和PLEC保持有效。
在另一实施例中,设置了控制点,在特许级之间的特定转换时,诸如从第一级转到第四级和从第三级转到第二级等,引起VM退出。例如在有4个特许级的ISA中,可设置12个控制点让VMM在12种可能的源与目的地特许级组合中选择任意一种,使VM退出。在一实施例中,设置的控制点少于特许级组合的全叉积(full cross product)。控制点在这里称为特许级源目的地退出控制点(PLSDEC)。
在一实施例中,对引起特许级转换的所有事件和指令都设置了执行控制点,使VMM112对所有此类特许级变化恢复控制。这一替代法要求在VMM112中附加的支持,以判断特定的指令执行是否真的造成特许级变化。如在一个ISA中,中断返回指令(IRET)可能引起特许级变化,但并不一定这样。若执行IRET指令无条件地造成VM退出而不管执行该指令是否会改变特许级,则VMM要模拟该指令或用另一步骤判断是否引起特许级变化。对VMM软件还有其它要求,诸如模拟该IRET,判断故障的指令是否造成期望的特许级变化。
引起特许级变化的某些操作或事件,会因其它原因而造成VM退出。这类其它VM退出原因可能是优先级较高,或在执行这种指令后在评估特许级退出判据前先被评估了。此时,VMM可能判断造成VM退出的事件或指令还将引起特许级变化,例如虚拟结构可让VMM对软件(SW)中断指令的执行设置造成VM退出的执行控制。以用户级代码执行SW中断指令,会引起特许级变化。配置执行控制点,以在特许级变化被置成使VM退出的同时执行SW中断指令时,使VM退出。出现这种情况时,在执行SW中断指令期间首先评估SW中断造成的VM退出,使VM在特许级变化前退出。此时,SW中断退出条件实际上有问题,在完成指令执行前被评估,而特许级变化实际上是陷阱,在完成指令后评估。在一实施例中,多个VM退出源其实都是陷阱,多个VM退出源都有问题。特许级退出判据的评估可以比任何或全部其它VM退出源具有更高或更低的优先级。
以上描述为了说明起见,提出了众多特定的细节,以便透彻理解本发明。但本领域的技术人员将会明白,没有这些特性的细节也可实施本发明。
Claims (20)
1.一种方法,包括:
确定初始特许级;
评估在虚拟机中执行的客户软件的当前特许级;以及
如果当前特许级符合特许级退出判据,则把控制转到虚拟机监视器,其中判断当前特许级是否符合特许级退出判据包括:如果启动了特许级改变时退出的控制策略,并且当前特许级不同于初始特许级,则把控制转到虚拟机监视器。
2.如权利要求1所述的方法,还包括:
在虚拟机控制结构中存储所述特许级退出判据。
3.如权利要求1所述的方法,还包括:
确定初始特许级;以及
如果启动了特许级增高时退出的控制策略,并且当前特许级高于初始特许级,则把控制转到虚拟机监视器。
4.如权利要求1所述的方法,还包括:
确定初始特许级;以及
如果启动了特许级减低时退出的控制策略,并且当前特许级低于初始特许级,则把控制转到虚拟机监视器。
5.如权利要求1所述的方法,还包括:
确定初始特许级;以及
如果启动了与所述初始特许级到所述当前特许级的转换相关联的特许级源目的退出控制策略,则把控制转到虚拟机监视器。
6.如权利要求1所述的方法,还包括:
存储目标特许级。
7.如权利要求6所述的方法,还包括:
如果启动了特许级匹配时退出的控制策略,且当前特许级与目标特许级相同,则把控制转到虚拟机监视器。
8.如权利要求6所述的方法,还包括:
如果启动了特许级达上限时退出的控制策略,且当前特许级比目标特许级高,则把控制转到虚拟机监视器。
9.如权利要求6所述的方法,还包括:
如果启动了特许级达下限时退出的控制策略,且当前特许级比目标特许级低,则把控制转到虚拟机监视器。
10.如权利要求6所述的方法,其特征在于,所述目标特许级可变。
11.如权利要求6所述的方法,其特征在于,所述目标特许级固定。
12.如权利要求1所述的方法,还包括:
在执行客户软件中的指令之前将控制转到虚拟机监视器。
13.如权利要求1所述的方法,还包括:
在执行客户软件中的指令之后将控制转到虚拟机监视器。
14.一种处理器,其特征在于包括:
第一逻辑组件,用于评估在虚拟机中执行的客户软件的当前特许级,并且若当前特许级符合特许级退出判据,则把控制转到虚拟机监视器,其中如果启动了特许级改变时退出的控制策略,并且当前特许级不同于初始特许级,则所述第一逻辑组件把控制转到虚拟机监视器。
15.如权利要求14所述的处理器,其中所述第一逻辑组件确定初始特许级,并且如果启动了特许级增高时退出的控制策略,并且当前特许级高于初始特许级,则所述第一逻辑组件把控制转到虚拟机监视器。
16.如权利要求14所述的处理器,其中所述第一逻辑组件确定初始特许级,并且如果启动了特许级减低时退出的控制策略,并且当前特许级低于初始特许级,则所述第一逻辑组件把控制转到虚拟机监视器。
17.如权利要求14所述的处理器,其中所述第一逻辑组件确定初始特许级,并且如果启动了与所述初始特许级到所述当前特许级的转换相关联的特许级源目的退出控制策略,则所述第一逻辑组件把控制转到虚拟机监视器。
18.如权利要求14所述的处理器,其中所述第一逻辑组件存储目标特许级,并且如果启动了特许级匹配时退出的控制策略,且当前特许级与目标特许级相同,则所述第一逻辑组件把控制转到虚拟机监视器。
19.如权利要求14所述的处理器,其中所述第一逻辑组件存储目标特许级,并且如果启动了特许级达上限时退出的控制策略,且当前特许级比目标特许级高,则所述第一逻辑组件把控制转到虚拟机监视器。
20.如权利要求14所述的处理器,其中所述第一逻辑组件存储目标特许级,并且如果启动了特许级达下限时退出的控制策略,且当前特许级比目标特许级低,则所述第一逻辑组件把控制转到虚拟机监视器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/880,057 | 2004-06-28 | ||
US10/880,057 US7802250B2 (en) | 2004-06-28 | 2004-06-28 | Support for transitioning to a virtual machine monitor based upon the privilege level of guest software |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100820923A Division CN100481009C (zh) | 2004-06-28 | 2005-06-28 | 根据客户软件的特许级向虚拟机转移的系统、装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101493785A true CN101493785A (zh) | 2009-07-29 |
CN101493785B CN101493785B (zh) | 2014-06-18 |
Family
ID=35115791
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910128146.3A Expired - Fee Related CN101493785B (zh) | 2004-06-28 | 2005-06-28 | 根据客户软件的特许级支持向虚拟机监视器转移 |
CNB2005100820923A Expired - Fee Related CN100481009C (zh) | 2004-06-28 | 2005-06-28 | 根据客户软件的特许级向虚拟机转移的系统、装置和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100820923A Expired - Fee Related CN100481009C (zh) | 2004-06-28 | 2005-06-28 | 根据客户软件的特许级向虚拟机转移的系统、装置和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7802250B2 (zh) |
EP (1) | EP1612669A3 (zh) |
JP (1) | JP4291301B2 (zh) |
KR (1) | KR100726317B1 (zh) |
CN (2) | CN101493785B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710301B (zh) * | 2009-10-20 | 2011-08-31 | 中国电信股份有限公司 | 评估crm系统物理服务器虚拟化能力的方法及系统 |
Families Citing this family (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8352400B2 (en) | 1991-12-23 | 2013-01-08 | Hoffberg Steven M | Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore |
US7904187B2 (en) | 1999-02-01 | 2011-03-08 | Hoffberg Steven M | Internet appliance system and method |
DE602004027516D1 (de) * | 2004-12-03 | 2010-07-15 | St Microelectronics Srl | Ein Verfahren zum Verwalten von virtuellen Maschinen in einer körperlichen Verarbeitungsmaschine, ein entsprechendes Prozessorsystem und Computerprogrammprodukt dafür |
US8214830B2 (en) * | 2005-01-19 | 2012-07-03 | Intel Corporation | Performance in a virtualization architecture with a processor abstraction layer |
US7761674B2 (en) * | 2005-12-30 | 2010-07-20 | Intel Corporation | Identifier associated with memory locations for managing memory accesses |
US8839450B2 (en) * | 2007-08-02 | 2014-09-16 | Intel Corporation | Secure vault service for software components within an execution environment |
US7953980B2 (en) * | 2005-06-30 | 2011-05-31 | Intel Corporation | Signed manifest for run-time verification of software program identity and integrity |
JPWO2007040228A1 (ja) * | 2005-10-04 | 2009-04-16 | 日本電気株式会社 | 情報処理装置、情報処理方法およびプログラム |
US8042109B2 (en) * | 2006-03-21 | 2011-10-18 | Intel Corporation | Framework for domain-specific run-time environment acceleration using virtualization technology |
DE102006029756A1 (de) | 2006-06-27 | 2008-01-03 | Deutsche Telekom Ag | Verfahren zum Delegieren von Privilegien an eine niedriger-priviligierte Instanz durch eine höher-priviligierte Instanz |
US7490191B2 (en) * | 2006-09-22 | 2009-02-10 | Intel Corporation | Sharing information between guests in a virtual machine environment |
US9086917B1 (en) | 2006-10-17 | 2015-07-21 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
US8949826B2 (en) * | 2006-10-17 | 2015-02-03 | Managelq, Inc. | Control and management of virtual systems |
US9038062B2 (en) | 2006-10-17 | 2015-05-19 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
US8234641B2 (en) * | 2006-10-17 | 2012-07-31 | Managelq, Inc. | Compliance-based adaptations in managed virtual systems |
US9697019B1 (en) | 2006-10-17 | 2017-07-04 | Manageiq, Inc. | Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine |
US8949825B1 (en) | 2006-10-17 | 2015-02-03 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
US9015703B2 (en) | 2006-10-17 | 2015-04-21 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
US8234640B1 (en) | 2006-10-17 | 2012-07-31 | Manageiq, Inc. | Compliance-based adaptations in managed virtual systems |
US8458695B2 (en) | 2006-10-17 | 2013-06-04 | Manageiq, Inc. | Automatic optimization for virtual systems |
US8752045B2 (en) | 2006-10-17 | 2014-06-10 | Manageiq, Inc. | Methods and apparatus for using tags to control and manage assets |
US8612971B1 (en) | 2006-10-17 | 2013-12-17 | Manageiq, Inc. | Automatic optimization for virtual systems |
CN101206582B (zh) * | 2006-12-22 | 2010-10-06 | 联想(北京)有限公司 | 一种虚拟机系统及其处理方法 |
US7996836B1 (en) * | 2006-12-29 | 2011-08-09 | Symantec Corporation | Using a hypervisor to provide computer security |
US8380987B2 (en) * | 2007-01-25 | 2013-02-19 | Microsoft Corporation | Protection agents and privilege modes |
US7765374B2 (en) | 2007-01-25 | 2010-07-27 | Microsoft Corporation | Protecting operating-system resources |
JP4987555B2 (ja) * | 2007-04-27 | 2012-07-25 | 株式会社東芝 | 情報処理装置、および情報処理システム |
US20090007100A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Suspending a Running Operating System to Enable Security Scanning |
US8078827B2 (en) * | 2007-07-05 | 2011-12-13 | International Business Machines Corporation | Method and apparatus for caching of page translations for virtual machines |
US8739156B2 (en) * | 2007-07-24 | 2014-05-27 | Red Hat Israel, Ltd. | Method for securing the execution of virtual machines |
US8146098B2 (en) * | 2007-09-07 | 2012-03-27 | Manageiq, Inc. | Method and apparatus for interfacing with a computer user via virtual thumbnails |
US8099718B2 (en) | 2007-11-13 | 2012-01-17 | Intel Corporation | Method and system for whitelisting software components |
US8418173B2 (en) | 2007-11-27 | 2013-04-09 | Manageiq, Inc. | Locating an unauthorized virtual machine and bypassing locator code by adjusting a boot pointer of a managed virtual machine in authorized environment |
US8407688B2 (en) | 2007-11-27 | 2013-03-26 | Managelq, Inc. | Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets |
US8719936B2 (en) * | 2008-02-01 | 2014-05-06 | Northeastern University | VMM-based intrusion detection system |
US8910169B2 (en) * | 2008-09-30 | 2014-12-09 | Intel Corporation | Methods and systems to perform a computer task in a reduced power consumption state |
US8364601B2 (en) * | 2008-12-31 | 2013-01-29 | Intel Corporation | Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain |
US7970963B2 (en) * | 2009-06-29 | 2011-06-28 | Oracle America, Inc. | Efficient buffer management in a multi-threaded network interface |
US9851969B2 (en) | 2010-06-24 | 2017-12-26 | International Business Machines Corporation | Function virtualization facility for function query of a processor |
US10521231B2 (en) | 2010-06-24 | 2019-12-31 | International Business Machines Corporation | Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor |
US8819677B2 (en) | 2010-11-23 | 2014-08-26 | International Business Machines Corporation | Virtual machine data structures corresponding to nested virtualization levels |
JP5813554B2 (ja) * | 2012-03-30 | 2015-11-17 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US9223602B2 (en) * | 2012-12-28 | 2015-12-29 | Intel Corporation | Processors, methods, and systems to enforce blacklisted paging structure indication values |
US9396011B2 (en) | 2013-03-12 | 2016-07-19 | Qualcomm Incorporated | Algorithm and apparatus to deploy virtual machine monitor on demand |
US9330035B2 (en) * | 2013-05-23 | 2016-05-03 | Arm Limited | Method and apparatus for interrupt handling |
US9652631B2 (en) * | 2014-05-05 | 2017-05-16 | Microsoft Technology Licensing, Llc | Secure transport of encrypted virtual machines with continuous owner access |
US9772868B2 (en) * | 2014-09-16 | 2017-09-26 | Industrial Technology Research Institute | Method and system for handling interrupts in a virtualized environment |
US9519787B2 (en) | 2014-11-14 | 2016-12-13 | Microsoft Technology Licensing, Llc | Secure creation of encrypted virtual machines from encrypted templates |
US9921984B2 (en) * | 2014-12-23 | 2018-03-20 | Intel Corporation | Delivering interrupts to user-level applications |
US9934061B2 (en) * | 2015-12-28 | 2018-04-03 | International Business Machines Corporation | Black box techniques for detecting performance and availability issues in virtual machines |
US10740134B2 (en) | 2018-08-20 | 2020-08-11 | Interwise Ltd. | Agentless personal network firewall in virtualized datacenters |
US20220283813A1 (en) * | 2021-03-02 | 2022-09-08 | Intel Corporation | Flexible return and event delivery |
US11726811B2 (en) * | 2021-06-18 | 2023-08-15 | Vmware, Inc. | Parallel context switching for interrupt handling |
US11652800B1 (en) | 2022-10-03 | 2023-05-16 | Uab 360 It | Secure connections between servers in a virtual private network |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4787031A (en) * | 1985-01-04 | 1988-11-22 | Digital Equipment Corporation | Computer with virtual machine mode and multiple protection rings |
AU2002231073A1 (en) | 2000-12-21 | 2002-07-01 | Connectix Corporation | Logical substitution of processor control in an emulated computing environment |
US7818808B1 (en) | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US6907600B2 (en) * | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
US7035963B2 (en) * | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US7210144B2 (en) * | 2002-08-02 | 2007-04-24 | Microsoft Corporation | Method for monitoring and emulating privileged instructions of programs in a virtual machine |
US20040117532A1 (en) | 2002-12-11 | 2004-06-17 | Bennett Steven M. | Mechanism for controlling external interrupts in a virtual machine system |
-
2004
- 2004-06-28 US US10/880,057 patent/US7802250B2/en active Active
-
2005
- 2005-06-21 JP JP2005181228A patent/JP4291301B2/ja active Active
- 2005-06-23 EP EP05253897A patent/EP1612669A3/en not_active Ceased
- 2005-06-28 KR KR1020050056152A patent/KR100726317B1/ko active IP Right Grant
- 2005-06-28 CN CN200910128146.3A patent/CN101493785B/zh not_active Expired - Fee Related
- 2005-06-28 CN CNB2005100820923A patent/CN100481009C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710301B (zh) * | 2009-10-20 | 2011-08-31 | 中国电信股份有限公司 | 评估crm系统物理服务器虚拟化能力的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
KR100726317B1 (ko) | 2007-06-11 |
JP2006024207A (ja) | 2006-01-26 |
EP1612669A2 (en) | 2006-01-04 |
CN1716206A (zh) | 2006-01-04 |
US20050289542A1 (en) | 2005-12-29 |
JP4291301B2 (ja) | 2009-07-08 |
KR20060048597A (ko) | 2006-05-18 |
EP1612669A3 (en) | 2007-11-07 |
US7802250B2 (en) | 2010-09-21 |
CN100481009C (zh) | 2009-04-22 |
CN101493785B (zh) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100481009C (zh) | 根据客户软件的特许级向虚拟机转移的系统、装置和方法 | |
CN103744716B (zh) | 一种基于当前vcpu调度状态的动态中断均衡映射方法 | |
CN102262557B (zh) | 通过总线架构构建虚拟机监控器的方法及性能服务框架 | |
US6754736B1 (en) | Information processing apparatus, data inputting/outputting method, and program storage medium therefor | |
CN106980492B (zh) | 用于计算的装置、系统、方法、机器可读存储介质和设备 | |
Neary et al. | Javelin++ Scalability Issues in Global Computing | |
CN109831500A (zh) | Kubernetes集群中配置文件与Pod的同步方法 | |
CN111381928B (zh) | 一种虚拟机迁移方法、云计算管理平台和存储介质 | |
CN106462450A (zh) | 向vnf管理器的关于虚拟机实时迁移的通知 | |
CN103218209A (zh) | 控制分支预测逻辑的方法和装置 | |
CN1867891A (zh) | 用于实时多线程处理的方法和装置 | |
CN109101320B (zh) | 异构处理器平台融合管理系统 | |
CN107247619A (zh) | 虚拟机热迁移方法、装置、系统、存储介质及设备 | |
Yuan et al. | Efficient resource management for cloud computing | |
CN106776067A (zh) | 多容器系统中系统资源的管理方法及管理装置 | |
CN104662515A (zh) | 可动态构建的计算机系统 | |
CN103473135A (zh) | 虚拟化环境下自旋锁lhp现象的处理方法 | |
CN101169737A (zh) | 任务切换控制方法以及计算机系统 | |
Rüsch et al. | Themis: An efficient and memory-safe bft framework in rust: Research statement | |
CN101542448B (zh) | 多处理器存储区域网中锁定管理器的轮换 | |
Li et al. | On fault-tolerant bin packing for online resource allocation | |
Ghafari et al. | An architectural approach to ensure globally consistent dynamic reconfiguration of component-based systems | |
CN102609313B (zh) | 多核系统资源延迟回收锁的实现方法及系统 | |
Li et al. | Real-time operating systems for embedded computing | |
CN101770403A (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 | ||
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: 20140618 Termination date: 20210628 |