在虚拟环境下减小虚拟机的抢占的方法和计算机系统的制作方法

文档序号:10612656阅读:261来源:国知局
在虚拟环境下减小虚拟机的抢占的方法和计算机系统的制作方法
【专利摘要】提供了一种用于在虚拟环境下减小虚拟机抢占的方法。该方法包括:分派虚拟中央处理单元(CPU),以在实际CPU上以模拟模式运行,直到实际CPU退出模拟模式;确定虚拟CPU是否装载了等待状态;如果虚拟CPU已经装载了等待状态,则确定经过分派后虚拟CPU的剩余时间片是否低于预定阈值;以及如果虚拟CPU的剩余时间片低于预定阈值,则对于全部时间片,重新调度虚拟CPU。
【专利说明】
在虚拟环境下减小虚拟机的抢占的方法和计算机系统
技术领域
[0001] 本发明涉及减小虚拟机抢占(preemption),并且更具体地说,涉及在虚拟环境下 减小虚拟机抢占的方法。
【背景技术】
[0002] 多处理计算系统通常构造为一组全部使用相同物理存储器的类似处理器。这种排 列通常称为对称多处理(SMP)。运行于这种硬件计算机上的操作系统利用互相合作地使用 处理器,以运行系统的聚合工作。例如,当操作系统是Linux系统时,Linux核将称为进程的 用户执行上下文分派(dispatch)到系统的实处理器上。类似地,当操作系统是Z/VM?系 统时,Z/VM?核将称为虚拟处理器的执行上下文分派到系统的实处理器上。作为另一种能 够多处理器的处理器操作系统,冒indows?利用其进程和处理器类似地运行。(z/VM?是 美国纽约州阿蒙克市的国际商用机器公司的注册商标,而Windows?.是美国华盛顿州雷 德蒙德市的微软公司的注册商标)。
[0003] 在诸如Linux、z/VM?或者Windows?的操作系统中,处理器的时间由用户应用 执行上下文或者操作系统核占用。这种占用是交错的。典型行为是用户进程首先运行一个 时间周期,因此,产生处理器时间。然后,用户进程将执行操作或者调用将要求操作系统核 去干预的应用编程接口(API)。核干预以处理该情况,并且核运行一个时间周期,因此产生 处理器时间。当核结束处理该情况时,核返回对用户应用进程进行控制。
[0004] 通常,必须干预的操作系统核要求核在处理该请求之前获得串行化或者互斥。要 求这种保护,以保证一次只有一个线程或者处理器读出或者更新访问的(各)核数据结构。 尽管文献中有轻量级串行化技术,但是归根结底,所有这些技术实现同样的结局,即,一次 一个地访问这些关键数据结构。为了保证系统完整性要求串行访问。

【发明内容】

[0005] 根据本发明的一个实施例,提供了一种用于在虚拟环境下减小虚拟机抢占的方 法。该方法包含:分派虚拟中央处理单元(CPU),以在实际CPU上以模拟模式运行,直到实际 CPU退出模拟模式;确定虚拟CPU是否装载了等待状态;如果虚拟CPU已经装载了等待状态, 则确定经过分派后虚拟CPU的剩余时间片是否低于预定阈值;以及如果虚拟CPU的剩余时间 片低于预定阈值,则对于全部时间片,重新调度虚拟CPU。
[0006] 根据本发明的另一个实施例,提供了一种用于在虚拟环境下减小虚拟机抢占的计 算机程序产品。该计算机程序产品包含嵌入了程序指令的计算机可读储存介质,其中计算 机可读储存介质不是信号,处理器可读的程序指令使得处理器执行方法。所述方法包含:分 派虚拟中央处理单元(CPU),以在实际CPU上以模拟模式运行,直到实际CPU退出模拟模式; 确定虚拟CPU是否装载了等待状态;如果虚拟CPU已经装载了等待状态,则确定经过分派后 虚拟CPU的剩余时间片是否低于预定阈值;以及如果虚拟CPU的剩余时间片低于预定阈值, 则对于全部时间片,重新调度虚拟CPU。
[0007] 根据本发明的又另一个实施例,提供了一种计算系统,配置该计算系统,以在虚拟 环境下执行减小虚拟机抢占。该计算系统包含:处理器;以及存储器,并且配置该处理器,以 分派虚拟中央处理单元(CPU),以在实际(PU上以模拟模式运行,直到实际(PU退出模拟模 式;确定虚拟CPU是否装载了等待状态;如果虚拟CPU已经装载了等待状态,则确定经过分派 后虚拟CHJ的剩余时间片是否低于预定阈值;以及如果虚拟CHJ的剩余时间片低于预定阈 值,则对于全部时间片,重新调度虚拟CPU。
[0008] 通过本发明的技术实现附加特征和优点。在此详细描述本发明的其他实施例和方 案,并且认为其他实施例和方案是要求保护的本发明的一部分。为了更好地理解具有该优 点和特征的本发明,参考描述和附图。
【附图说明】
[0009] 在说明书结束时,权利要求中特别指出并且清楚地要求保护被看作本发明的主 题。根据下面结合附图所做的详细描述,本发明的上述以及其他特征和优点显而易见,其 中:
[0010] 图1是实现本发明的一个或者多个方案的数据处理系统的一个实施例的方框图;
[0011] 图2是实现本发明的一个或者多个方案的数据处理系统的一个实施例的更详示 图;
[0012] 图3是示出根据实施例使计算系统运行的方法的流程图;
[0013] 图4是示出根据又一个实施例使计算系统运行的方法的流程图;以及
[0014] 图5是示出根据实施例的计算机程序产品的原理图。
【具体实施方式】
[0015] 提供了一种用于在虚拟环境下减小虚拟机抢占的方法。该方法包含:将要在模拟 模式下运行的虚拟中央处理单元(CPU)分派到实际CPU,直到实际CPU退出模拟模式;确定虚 拟CPU是否已经装载处于等待状态;如果虚拟CPU已经装载处于等待状态,则确定通过分派 后虚拟CHJ的剩余时间片是否低于预定阈值;以及如果虚拟CHJ的剩余时间片低于预定阈 值,则对于全部时间片重新调度虚拟CPU。
[0016] 作为对执行操作或者调用API的用户进程的响应进行干预的操作系统核通常要求 核在处理应用进程请求之前获得串行化或者互斥。要求这种保护,以保证一次只有一个线 程或者处理器读出或者更新访问的(各)核数据结构。归根结底,这些技术实现相同的结局, 艮P,一次一个地访问关键核数据结构,以保证系统完整性。
[0017]确定系统承受的串行化量或者互斥量的因素包含:竞争串行化的处理器的数量; 要求来自操作系统核的服务的用户应用进程的趋势;以及用户应用要求来自操作系统核的 服务的频率。然后,由此得出,如果该核能够降低用户进程要求来自该核的服务的速率,则 能够降低该核中的串行化开销。
[0018] 在描述有助于该系统效率的各种自动进程之前(根据本发明的一个或者多个方 案),下面参考图1 一2讨论可以采用在此公开的装置的数据处理系统的例子。
[0019] 图1是数据处理或者计算机系统100的方框图,在一个例子中,该数据处理或者计 算机系统100是对称多处理(SMP)服务器计算机系统。SMP服务器计算机系统100包含物理硬 件设备,该物理硬件设备能够映射到用户应用,即,用户应用能够临时拥有该物理硬件设 备,以执行该应用。
[0020] SMP服务器计算机系统100包含物理SMP服务器102。物理SMP服务器102包含物理硬 件设备,诸如处理器104、存储器106和I/O适配器108。这些物理设备由管理程序110管理。处 理器104是共享处理器,并且每个可以是能够同时多线程(SMT)处理器,能够在该处理器上 同时执行多个不同线程。
[0021]虚拟服务器是具有相同能力、接口和状态的网络服务器的代理。常驻于物理SMP服 务器计算机系统100上的管理程序创建并且管理虚拟服务器。对于其用户:在其上运行的操 作系统、中间件和应用软件,网络服务器呈现为物理SMP服务器。SMP服务器计算机系统100 包含一个或者多个虚拟服务器,诸如虚拟服务器112和虚拟服务器112a。
[0022] 每个虚拟服务器对其软件呈现为包含为其自己的该虚拟服务器专用的(各)处理 器、存储器和(各)1/〇适配器。例如,虚拟服务器112包含:虚拟处理器120、虚拟存储器122和 虚拟I/O适配器124。虚拟服务器112a包含虚拟处理器120a、虚拟存储器122a和虚拟I/O适配 器124a。
[0023] 每个虚拟服务器支持其自己的软件环境,包含操作系统、中间件和应用。每个虚拟 服务器的软件环境能够与其他虚拟服务器的软件环境不同。例如,每个虚拟服务器执行的 操作系统可以互相不同。
[0024] 例如,虚拟服务器112支持操作系统114、中间件116和应用118。虚拟服务器112a支 持操作系统114a、中间件116a和应用118a。操作系统114和114a可以是相同操作系统,也可 以是不同操作系统。
[0025]虚拟服务器是定义服务器环境的服务器的逻辑描述,对于用户其如同网络服务器 一样以与网络服务器相同的方式被访问和提供信息。对每个虚拟服务器定义的虚拟处理 器、虚拟存储器和虚拟I/O适配器是物理处理器、存储器和I/O适配器的逻辑替代品。
[0026] 管理程序110管理具有其虚拟处理器、虚拟存储器和虚拟I/O适配器的虚拟服务器 与选择实现这些虚拟设备的物理硬件设备之间的映射。例如,当分派虚拟处理器时,管理程 序110选择物理处理器,诸如物理处理器104中的一个,用于执行并且实现该虚拟处理器。管 理程序110对选择网络服务器及其对虚拟设备的临时分配进行管理。
[0027] 通过在物理处理器104上交错执行虚拟处理器,管理程序110对全部虚拟服务器的 虚拟处理器提供服务。为了防止虚拟处理器独占物理处理器,管理程序110设置特定时间长 度的分派时间片。在每个分派时间片,管理程序110将物理处理器104分配或者指配给虚拟 处理器,并且物理处理器将执行虚拟处理器的指令。在管理程序在物理处理器上重新开始 执行并且可以选择分派不同虚拟处理器之前,该分派时间片限制虚拟处理器可以在物理处 理器上执行的最大时间量。
[0028] 管理程序110负责动态创建、管理并且销毁虚拟SMP服务器。即,管理程序110能够 移除或者添加整个虚拟处理器、虚拟I/O适配器和虚拟存储器。管理程序110还负责物理资 源的动态资源分配、管理物理资源的共享时间以及改变映射到处理器的物理资源,而不涉 及操作系统。此外,对于不要求共享的情况,管理程序110能够将物理资源专用于虚拟资源。 管理程序110负责管理物理资源的增加或者移除,并且使这些增加和删除对上层用户应用 透明。
[0029] 图2是可用于实现在此描述的原理的计算机系统的更详示图。数据处理系统200可 以是对称多处理器(SMP)系统,该对称多处理器(SMP)系统包含多个共享处理器或者能够 SMT处理器,诸如连接到系统总线206的处理器202和204。在所示的例子中,处理器204是服 务处理器。每个能够SMT处理器能够通过一个处理器同时执行多个硬件线程。
[0030] 连接到系统总线206的还有存储器控制器/高速缓存208,该存储器控制器/高速缓 存208提供与本地存储器209的接口。I/O总线桥210连接到系统总线206,并且提供与I/O总 线212的接口。存储器控制器/高速缓存208和I/O总线桥210可以集成,如图所示。
[0031] 外围组件互连(PCI)总线桥214连接到I/O总线212,并且提供与PCI本地总线216的 接口。许多调制解调器可以连接到PCI总线216。典型的PCI总线实现支持四个PCI扩张槽或 者内置连接器。通过经内置电路板连接到PCI本地总线216的调制解调器218和网络适配器 220,可以提供到网络计算机的通信链路。
[0032]网络适配器220包含物理层282,物理层282调节模拟信号,以到达网络,诸如,例 如,R45连接器的以太网。媒体访问控制器(MAC) 280包含在网络适配器220中、耦合到总线 216并且处理数字网络信号。MAC 280作为总线216与物理层282之间的接口,并且执行数据 包的发送和接收中涉及的许多功能。例如,在发送数据时,MAC 280将要发送的数据组合为 具有地址字段和检错字段的包。相反,在接收包时,MAC 280分解包,并且执行地址检验和检 错。此外,MAC 280通常执行发送的数字信号的编码/解码,并且执行前置码生成/去除以及 位发送/接收。
[0033] 附加 PCI总线桥222和224提供附加 PCI总线226和228的接口,该附加 PCI总线226和 228支持附加调制解调器或者网络适配器。这样,数据处理系统200可以连接到多个网络计 算机。存储器映射图形适配器230和硬盘232也可以直接地或者间接地连接到I/O总线212, 如图所示。
[0034] 服务处理器204询问系统处理器、存储器组件和I/O桥,以监视数据处理系统200。 服务处理器200还对询问系统处理器、存储器控制器和I/O桥发现的所有元件执行内置自测 试(BIST)、基本正确性测试(BAT)以及存储器测试。服务处理器204采集并且报告在BIST、 BAT和存储器测试中检测到的故障错误消息。
[0035] 本技术领域内的普通技术人员明白,可以改变图2所示的硬件。例如,除了或者代 替所示的硬件,还可以使用其他外围设备,诸如,光盘驱动器等等。所示的例子并不意味着 暗示对本发明的架构的限制。
[0036] 可以在各种计算机或者数据处理系统中,诸如图1或者2所示的计算机或者数据处 理系统中执行本发明。作为特定商用例子,根据":z/Arehiteeture€) Principles of 0peration,,IBM Publication No.SA22-7832-09,10th Edition,September 2012 (pages 1-1568)描述的IBM的.z/Architecture?、生产线固件和系统件(systemware)中的技术,能够 建立实现时间片早结束从而将虚拟处理器抢占降低到最小的数据处理系统,诸如下面所做 的描述。(IBM?和z/Arch itecture?.是美国纽约州阿蒙克市的国际商用机器公司的注册 商标)。
[0037]上面描述的管理程序110可以使操作系统(诸如Linux、CMS、z/0S等等)的多个实例 运行于诸如计算系统100的巨型计算机上,并且这是通过对操作系统的每个实例虚拟化一 组计算机资源(CPU、存储器、I/O设备)实现的。因此,从操作系统的观点出发,其表现为具有 实计算机资源,但是实际上操作系统运行于虚拟机中。
[0038]这种虚拟机可以具有一个以上的虚拟CPU 120,这样使得相应操作系统同时执行 两个或者多个不同指令集。这些不同指令集共享访问虚拟机的公共存储器。如同通常处于 非虚拟环境下一样,在具有共享存储器的多处理器环境下运行的操作系统(和程序)要求串 行化,以利用作为自旋锁(spin lock)的一种示例性串行化技术控制对存储器的特定区域 的读出和写入。
[0039]管理程序110其中负责对虚拟机的虚拟CPU 120访问计算系统100的CPU进行控制, 并且系统管理员可以利用共享设置建立当没用足够的CPU资源满足虚拟机的需要时,每个 虚拟机应当获得多少CPU资源的策略。该共享设置能够对每个虚拟CPU 120分配优先权,并 且规定在重新计算该优先权之前,允许每个虚拟CPU 120运行至多特定时间量(称为时间 片,并且能够默认例如5ms)。还能够定义共享设置,使得能够在几个离散块中消耗时间片。 艮P,如果虚拟CPU 120装载等待状态并且因为某个其他原因变得不能运行,则虚拟CPU 120 保持其剩余时间片的余量,并且当其再次准备好运行时重新开始。分配的优先权是对虚拟 机的共享设置虚拟CPU 120已经消耗了多少CPU和时间片大小的功能。
[0040]在虚拟环境下,诸如上面参考图1和2描述的环境下,自旋锁是一个虚拟CPU(即,虚 拟处理器120中的一个)利用串行化指令获取虚拟存储器122中某个地址的锁,从而更新虚 拟存储器地址的串行化技术。希望获得该锁的所有其他虚拟CPU必须进入自旋锁的循环等 待状况,以进入允许其他虚拟CPU获取自旋锁的状态。在虚拟CPU保持自旋锁时,允许虚拟 CPU读出或者修改其他虚拟存储器地址,而无需使用串行化指令。利用这种布置,如果管理 程序110不同时运行保持自旋锁的虚拟CPU,则多处理器客串使用自旋锁能够导致无效自 旋。现有技术能够使用特定技术,例如,SIGP读出运行状态(SRS),使得正自旋的并且正等待 自旋锁从而可用的虚拟CHJ能够询问保持自旋锁的虚拟CPU当时是否在运行。如果当时未运 行,则对于自旋锁正自旋的程序能够利用Diagnose x'9C'(下面称为"Diag x'9C")指令指 示管理程序110优先运行当前保持自旋锁的虚拟CPU。
[0041 ]尽管这种解决方案在检测并且对管理程序110抢占当前保持客串锁(guest lock) 的客串CPU(即,虚拟处理器120中的一个)的问题做出反应中有效,但是该解决方案还能够 导致或者使得在客串CPU与管理程序110之间上下文切换并且产生管理程序110开销。这是 因为Diag X' 9C指令要求管理程序110干预通常哪个要求管理程序110获取其自己串行化并 且承担有关开销。因此,如在此所述,管理程序110抢占保持客串锁的客串CPU的次数被附加 能力降低到最小或者降低,从而在客串CPU装载等待状态程序状态字(PSW)并且保留小于特 定阈值的时间片的情况下,对客串CPU宣布时间片早结束。通过这样做,显著减小抢占保持 客串锁CPU的次数并且使得客串CPU操作更有效。
[0042] 如上所注意到的,虚拟环境下可能发生的问题是虚拟机的一个虚拟CPU 120获取 自旋锁,但是然后被在执行其指令的中途选择使虚拟CPU 120停止并且切换到不同虚拟CPU 代替的管理程序110抢占。如果发生这种情况,与虚拟CPU 120属于同一个虚拟机、在保持自 旋锁时抢占的另一个虚拟CPU 120可以发现因为已经获取当前未运行的自旋锁的虚拟CPU 120在延长时间周期不释放的锁自旋。因此,对于在虚拟机中运行的操作系统,SIGP SRS和 Diag x'9C'选项可用于检测这已经发生,并且采取动作,以指示管理程序110对使当前保持 自旋锁的虚拟CPU 120运行给予优先。管理程序100与客串操作系统之间的收缩已经显现降 低自旋锁的非生产性自旋并且改善工作负荷的性能,但是具有发生模拟模式导致的关联开 销(虚拟CPU的指令直接由实际CPU执行)并且要求管理程序110获取全局串行化。因此,该问 题的改善涉及分派客串CHJ的管理程序110,从而减少客串虚拟CPU确定应当使用Diag X' 9C'的次数。
[0043]在此,关于管理程序110的操作的一个观察结果是当虚拟CPU结束时间片时,其收 到的新优先权通常低于其先前保持的优先权。与正在争用实际CHJ的其他虚拟CPU有关的优 先权的这样恶化意味着这是为了运行不同的虚拟CHJ而很可能抢占虚拟CPU的时间。通过等 待重新计算虚拟CPU的优先权直到其已经耗用特定数量的实际CPU意味着,在大多数时间, 虚拟CPU处于执行指令中途,除非正如其时间片期满时,其刚好装载等待状态。通常,管理程 序不知道虚拟CPU当前是否保持客串自旋锁。
[0044] 同时,关于自旋锁用途的观察结果是操作系统往往不进入等待状态,而保持自旋 锁。因此,如果管理程序110观察到装载等待状态PSW的虚拟CPU,则其能够在逻辑上推定虚 拟CPU未正保持自旋锁。
[0045] 参考图3,增强上面描述的计算系统100就是设置如果虚拟CPU进入等待状态并且 其时间片中保留小于该阈值的时间量,则对于新时间片重新调用虚拟CPU的阈值。该重新调 用考虑到早结束的时间片的未使用部分,因此,客串没有对装载等待状态不利。使用阈值, 而非在虚拟CPU每次装载等待状态时都这样做的原因是如果虚拟CPU在等待与运行之间频 繁循环,则减小开销。
[0046] 增强的另一个好处是确保退出等待状态的虚拟具有剩余的特定最少量时间 片。在本发明之前,存在虚拟CPU在时间片中剩余琐碎时间量的情况下装载等待状态的时 间。之后,当虚拟CPU再次活动时,其将迅速到达时间片结束(或者正如其已经结束对存储器 高速缓存提供非常大量的客串存储器)并且抢占风险。如果重复参考相同存储器地址或者 与这些之前参考位于相同高速缓存行中的其他地址,则在其退出等待状态时,通过使虚拟 CPU具有最小时间片,将保证具有足够时间使用存储器高速缓存。
[0047] 增强的一个结果是进入等待状态并且获得新时间片(和最坏优先权)的虚拟CPU可 能比使其不具有其重新计算的优先权访问实际CPU延迟更长。即,通过重新计算优先权并且 尽可能将其推出其他竞争虚拟CPU,其现在必须等待更长时间来接收中断,从而从等待状态 醒来,因为我们将选择首先运行其他虚拟CPU。
[0048] 如图3所示,上面描述的增强可以实现为使计算系统100运行的方法。该方法在操 作301以虚拟CPU准备好以满时间片运行开始,并且在操作302,虚拟CPU延迟,直到实际CPU 可用。在实际CPU可用后,在操作303,管理程序110的控制程序调度器使虚拟CPU在实际CPU 上在模拟模式下运行,直到实际CPU退出模拟模式,并且在操作304,重新开始执行控制程 序。
[0049] 接着,在操作305,首先确定虚拟CPU是否已经超过其时间片。如果虚拟CPU尚未超 过其时间片,则控制进入操作306,在操作306,虚拟CPU保持其当前时间片的余量,然后,控 制进入操作307。在操作307,其次确定虚拟CPU是否装载等待状态。相反,如果虚拟CPU已经 超过其时间片,则控制进入操作308,在操作308,对于全部时间片重新调度虚拟CPU,然后, 控制进入操作307。
[0050] 从操作307开始,如果虚拟CPU未装载等待状态,则控制返回操作302,虚拟CPU延 迟,直到实际CPU可用。然而,如果虚拟CPU已经装载了等待状态,则控制进入操作309,在操 作309,再次确定虚拟CPU的剩余时间片是否低于预定阈值(例如,5ms时间片的60 % )。在此, 如果虚拟CPU的剩余时间片不低于预定阈值,则在操作310,将虚拟CPU标记为空闲,并且控 制进入操作311,在操作311,新工作到达虚拟CPU。然而,如果虚拟CPU的剩余时间片低于预 定阈值,则在控制进入操作310并且然后进入311之前,在操作312,对于全部时间片,重新调 度虚拟CPU。在这两种情况下,在操作311,在新工作到达虚拟CPU后,控制返回操作302,其中 虚拟CPU延迟直到实际CPU可用。
[0051]根据又一个实施例,并且参考图4,在操作401,可以将预定阈值设置为改变的选择 水平或者默认水平。然后,在计算系统100的操作过程中,管理程序110可以确定预定阈值需 要根据计算系统1〇〇的当前性能数据临时或者永久升高或者降低。即,在操作402,管理程序 110确定计算系统100的当前性能数据是否指示需要升高或者降低预定阈值,并且在操作 403,执行相应升高或者降低。此后,对新预定阈值执行操作309(请参见图3)。
[0052]根据实施例,应当明白,预定阈值的升高可以对应于例如指示在操作305(图3)太 多的虚拟CPU超过其时间片而在当前阈值内不装载等待状态PSW的当前性能数据的发生。相 反,应当明白,预定阈值的降低可以对应于指示正在发生超过管理程序开销并且因此使计 算系统100的整个计算效率降低的当前性能数据的发生。当然,应当明白,关于为什么需要 升高或者降低阈值,可以存在其他原因。
[0053] 现在参考图5,提供计算机程序产品500,并且计算机程序产品500包含:计算机可 读储存介质502,该计算机可读储存介质502不是信号;以及程序指令504,该程序指令504用 于实现在虚拟环境下减小虚拟机抢占的方法,如上所述。
[0054] 在此使用的术语仅用于描述特定实施例,而不旨在限制本发明。如在此使用的单 数形式"一个"、"一"和"该"旨在也包含复数形式,除非上下文另外清楚地指出。还应当明 白,术语"包括"和/或者"含括"当在本说明书中使用时指明存在陈述的特征、整数、步骤、操 作、元件和/或者组件,但是不排除存在附加的一个以上的其他特征、整数、步骤、操作、元 件、组件和/或者它们的组合。
[0055] 下面的权利要求中的所有装置或者步骤加功能元件的相应结构、材料、动作和等 同旨在包含结合具体要求保护的其他元件执行功能的任何结构、材料或者动作。提供本发 明的描述是为了说明和描述,而不旨在穷举,也不旨在使本发明局限于所公开的形式。许多 修改和变型对于本技术领域内的普通技术人员显而易见,而不脱离本发明的范围和精神。 为了最好地解释本发明的原理和特定应用并且为了使得本技术领域内的其他普通技术人 员能够对于具有适合设想的特定用途的各种修改的各种实施例理解本发明,选择并且描述 了实施例。
[0056] 在此所示的流程图仅是一个例子。该流程图或者在此描述的步骤(或者操作)可以 存在许多变型,而不脱离本发明的精神。例如,可以以不同顺序执行步骤,也可以附加、删除 或者修改步骤。所有这些变型都被认为是要求保护的本发明的一部分。
[0057] 尽管已经描述了本发明的优选实施例,但是本技术领域内的技术人员应当明白, 不仅是现在而且在将来都可以进行各种改进和增强,各种改进和增强落入下面的权利要求 的范围内。应当认为这些权利要求维持对概括描述的本发明的适当保护。
【主权项】
1. 一种用于在虚拟环境下减小虚拟机抢占的方法,所述方法包括: 分派虚拟中央处理单元(CPU),以在实际CPU上以模拟模式运行,直到所述实际CPU退出 所述模拟模式; 确定所述虚拟CHJ是否装载了等待状态; 如果所述虚拟CPU已经装载了所述等待状态,则确定作为所述分派的结果所述虚拟CPU 的剩余时间片是否低于预定阈值;以及 如果所述虚拟CPU的所述剩余时间片低于所述预定阈值,则对于全部时间片,重新调度 所述虚拟CPU。2. 根据权利要求1所述的方法,其中所述虚拟CHJ在所述分派之前具有全部时间片,并 且所述分派包括延迟所述分派,直到所述实际CHJ可用。3. 根据权利要求1所述的方法,还包括: 确定所述虚拟CRJ是否超过所述分派期间的时间片; 如果所述虚拟CPU超过所述分派期间的所述时间片,则对于全部时间片,重新调度所述 虚拟CPU;以及 如果所述虚拟CPU未超过所述分派期间的所述时间片,则使所述虚拟CPU保持所述余量 作为所述剩余时间片。4. 根据权利要求1所述的方法,其中在对所述全部时间片所述重新调度所述虚拟CPU 后,所述方法还包括: 将所述虚拟CRJ标记为空闲; 使所述虚拟CRJ可用于新工作;以及 重复所述分派。5. 根据权利要求1所述的方法,还包括: 将所述虚拟CRJ标记为空闲; 如果所述虚拟CPU的所述剩余时间片不低于所述预定阈值,则使所述虚拟CPU可用于新 工作;以及 重复所述分派。6. 根据权利要求1所述的方法,还包括将所述预定阈值设置为时间片的百分比。7. 根据权利要求6所述的方法,还包括根据计算系统的性能升高或者降低所述预定阈 值。8. -种计算系统,配置所述计算系统,以在虚拟环境下执行减小虚拟机抢占,所述计算 系统包括: 处理器;以及 存储器, 配置所述处理器,以分派虚拟中央处理单元(CPU),以在实际CPU上以模拟模式运行,直 到所述实际CPU退出所述模拟模式;确定所述虚拟CPU是否装载了等待状态;如果所述虚拟 CPU已经装载了所述等待状态,则确定作为所述分派的结果所述虚拟CPU的剩余时间片是否 低于预定阈值;以及如果所述虚拟CHJ的所述剩余时间片低于所述预定阈值,则对于全部时 间片,重新调度所述虚拟CPU。9. 根据权利要求8所述的计算系统,其中所述虚拟在所述分派之前具有全部时间 片,并且所述分派包括延迟所述分派,直到所述实际CPU可用。10. 根据权利要求8所述的计算系统,其中进一步配置所述处理器,以: 确定所述虚拟CRJ是否超过所述分派期间的时间片; 如果所述虚拟CPU超过所述分派期间的所述时间片,则对于全部时间片,重新调度所述 虚拟CPU;以及 如果所述虚拟CPU未超过所述分派时的所述时间片,则使所述虚拟CPU保持所述余量作 为所述剩余时间片。11. 根据权利要求8所述的计算系统,其中在对所述全部时间片所述重新调度所述虚拟 CHJ后,进一步配置所述处理器,以: 将所述虚拟CRJ标记为空闲; 使所述虚拟CRJ可用于新工作;以及 重复所述分派。12. 根据权利要求8所述的计算系统,其中进一步配置所述处理器,以: 将所述虚拟CRJ标记为空闲; 如果所述虚拟CPU的所述剩余时间片不低于所述预定阈值,则使所述虚拟CPU可用于新 工作;以及 重复所述分派。13. 根据权利要求8所述的计算系统,其中进一步配置所述处理器,以: 将所述预定阈值设置为时间片的百分比;以及 根据计算系统的性能升高或者降低所述预定阈值。
【文档编号】G06F9/455GK105975327SQ201610136065
【公开日】2016年9月28日
【申请日】2016年3月10日
【发明人】K.S.亚当斯, M.J.洛伦克, D.W.施密特
【申请人】国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1