一种虚拟处理器的状态切换方法及装置制造方法及图纸

技术编号:17138371 阅读:39 留言:0更新日期:2018-01-27 14:23
一种虚拟处理器的状态切换方法及装置;所述方法包括:满足预定的触发条件时,虚拟处理器VCPU根据本VCPU的运行指标选择使用暂停pause或中止halt指令切换到空闲idle状态;在需要切换到idle状态时,所述VCPU按照所选择的指令切换到idle状态。本申请可以根据运行时的情况动态选择切换到idle状态的方式。

A state switching method and device for a virtual processor

State switching method and device of a virtual processor; the method comprises the following steps: meet the predetermined trigger conditions, the virtual processor VCPU according to the operation indexes of the VCPU choose to use pause or halt to suspend suspend instruction switch to idle state to the idle state in idle; when you switch the VCPU according to the selected command to switch to the idle state. This application can dynamically select the way to switch to the idle state according to the runtime situation.

【技术实现步骤摘要】
一种虚拟处理器的状态切换方法及装置
本专利技术涉及计算机领域,尤其涉及一种虚拟处理器的状态切换方法及装置。
技术介绍
HT(Hyper-Threading,超线程)技术的原理是将一颗具HT功能的物理处理器看成两个逻辑处理器来使用,这两个逻辑处理器即VCPU(VirtualCentralProcessingUnit,虚拟处理器),它们共享物理处理器的物理资源,包括执行单元和Cache(高速缓冲存储器);操作系统会把工作线程分派给这两个逻辑处理器执行,让多种应用程序或单一应用程序的多个thread(线程),能够同时在同一颗物理处理器上执行。当逻辑处理器在进行状态切换时,如果使用halt(中止)指令切换到idle(空闲)状态,则逻辑处理器切换到idle状态后将会让出全部物理资源,这时另外一个逻辑处理器将达到最佳性能;如果使用pause(暂停)指令切换到idle状态,则逻辑处理器切换到idle状态后只会让出短暂的执行单元,系统响应会达到最佳。但在虚拟化场景下,使用halt指令切换到idle状态时,唤醒处于idle状态的逻辑处理器需要额外的开销,这对于上下文切换频繁的应用,会导致系统响应慢;使用pause指令切换到idle状态时,由于处于idle状态的逻辑处理器仍占有大量物理资源,因此即使系统很空闲,仍然不能够提供很好的性能。
技术实现思路
本申请提供一种虚拟处理器的状态切换方法及装置,可以根据运行时的情况动态选择切换到idle状态的方式。本申请采用如下技术方案。一种虚拟处理器的状态切换方法,包括:满足预定的触发条件时,虚拟处理器VCPU根据本VCPU的运行指标选择使用暂停pause或中止halt指令切换到空闲idle状态;在需要切换到idle状态时,所述VCPU按照所选择的指令切换到idle状态。可选地,所述预定的触发条件包括以下任一种:到达新的选择周期;所述VCPU需要切换到idle状态;所述VCPU需要切换到idle状态,并且和上一次本VCPU选择切换到idle状态所使用的指令的时间间隔大于预设的时间长度。可选地,所述运行指标包括上下文切换频率;所述VCPU根据本VCPU的运行指标选择使用pause或halt指令切换到idle状态包括:当本VCPU的上下文切换频率达到或高于预设阈值时,选择使用pause指令切换到idle状态;低于预设阈值时,选择使用halt指令切换到idle状态。可选地,所述上下文切换频率为:当前时刻与上一次选择切换到idle状态所使用的指令的时刻之间所进行的上下文切换的次数,除以当前时刻与上一次选择切换到idle状态所使用的指令的时刻之间所间隔的时间长度。可选地,所述的方法还包括:所述VCPU根据本VCPU的运行指标确定执行pause指令的次数。可选地,所述VCPU根据本VCPU的运行指标确定执行pause指令的次数包括:所述VCPU根据本VCPU的上下文切换频率确定执行pause指令的次数;其中,所述次数与所述上下文切换频率正相关。可选地,所述在需要切换到idle状态时,所述VCPU按照所选择的指令切换到idle状态包括:在需要切换到idle状态时,如果所选择的为pause指令,则按照所确定的所述次数执行pause指令;如果所选择的为halt指令,则执行halt指令。一种虚拟处理器的状态切换装置,设置在虚拟处理器VCPU中,包括:选择模块,用于满足预定的触发条件时,根据所述VCPU的运行指标选择使用暂停pause或中止halt指令将所述VCPU切换到空闲idle状态;执行模块,用于在所述VCPU需要切换到idle状态时,按照所选择的指令将所述VCPU切换到idle状态。可选地,所述预定的触发条件包括以下任一种:到达新的选择周期;所述VCPU需要切换到idle状态;所述VCPU需要切换到idle状态,并且和上一次选择切换到idle状态所使用的指令的时间间隔大于预设的时间长度。可选地,所述运行指标包括上下文切换频率;所述选择模块根据所述VCPU的运行指标选择使用pause或halt指令将所述VCPU切换到idle状态包括:当所述VCPU的上下文切换频率达到或高于预设阈值时,选择使用pause指令将所述VCPU切换到idle状态;低于预设阈值时,选择使用halt指令将所述VCPU切换到idle状态。可选地,所述上下文切换频率为:当前时刻与上一次选择切换到idle状态所使用的指令的时刻之间所进行的上下文切换的次数,除以当前时刻与上一次选择切换到idle状态所使用的指令的时刻之间所间隔的时间长度。可选地,所述的装置还包括:确定模块,用于根据所述VCPU的运行指标确定执行pause指令的次数。可选地,所述确定模块根据所述VCPU的运行指标确定执行pause指令的次数包括:所述确定模块根据所述VCPU的上下文切换频率确定执行pause指令的次数;其中,所述次数与所述上下文切换频率正相关。可选地,所述执行模块在所述VCPU需要切换到idle状态时,按照所选择的指令将所述VCPU切换到idle状态包括:在所述VCPU需要切换到idle状态时,如果所选择的为pause指令,则指示所述VCPU按照所确定的所述次数执行pause指令;如果所选择的为halt指令,则指示所述VCPU执行halt指令。一种虚拟处理器的状态切换装置,包括:处理器和存储器;所述存储器用于存储用于对虚拟处理器VCPU进行状态切换的程序;所述用于对虚拟处理器进行状态切换的程序在被所述处理器读取执行时,执行如下操作:满足预定的触发条件时,根据所述VCPU的运行指标选择使用暂停pause或中止halt指令将所述VPU切换到空闲idle状态;在所述VCPU需要切换到idle状态时,按照所选择的指令将所述VCPU切换到idle状态。本申请包括以下优点:本申请的至少一个实施例中,VCPU切换到idle状态时使用pause指令或halt指令是VCPU根据本VCPU的运行指标动态选择的;在较为空闲时,VCPU可以采用halt指令切换到idle状态,从而可以尽量多地让出物理资源,保证系统的性能;而在进程切换频繁时选择采用pause指令切换到idle状态,从而使VCPU从idle状态中唤醒时能够快速响应。由于单个系统中每个VCPU都独立根据自身的运行情况自行选择切换到idle状态所用的指令,因此单个系统中的每个VCPU都可以选择对于本VCPU最合适的idle方式,保证了整个系统的性能。本申请实施例的一个备选方案中,以上下文切换频率作为运行指标,通过比较上下文切换频率和预设阈值,来选择pause或halt指令切换到idle状态;当上下文切换频率达到所述预设阈值时,判断当前VCPU处于上下文切换频繁的场景,使用pause指令切换到idle状态来提升系统响应速度;当上下文切换频率低于所述预设阈值时,则使用halt指令切换到idle状态来尽可能让出物理资源,由于处于idle状态的VCPU没有占用物理资源,因此在系统负载较低时可以保证较高的系统性能。本申请的又一个备选方案中,VCPU根据本VCPU的运行指标确定切换到idle状态时执行pause指令的次数;当所确定的次数大于1时,相当于切换到idle状态后,维持在idle状态的时间长度是连续执行多次pause本文档来自技高网...
一种虚拟处理器的状态切换方法及装置

【技术保护点】
一种虚拟处理器的状态切换方法,包括:满足预定的触发条件时,虚拟处理器VCPU根据本VCPU的运行指标选择使用暂停pause或中止halt指令切换到空闲idle状态;在需要切换到idle状态时,所述VCPU按照所选择的指令切换到idle状态。

【技术特征摘要】
1.一种虚拟处理器的状态切换方法,包括:满足预定的触发条件时,虚拟处理器VCPU根据本VCPU的运行指标选择使用暂停pause或中止halt指令切换到空闲idle状态;在需要切换到idle状态时,所述VCPU按照所选择的指令切换到idle状态。2.如权利要求1所述的方法,其特征在于,所述预定的触发条件包括以下任一种:到达新的选择周期;所述VCPU需要切换到idle状态;所述VCPU需要切换到idle状态,并且和上一次本VCPU选择切换到idle状态所使用的指令的时间间隔大于预设的时间长度。3.如权利要求1所述的方法,其特征在于,所述运行指标包括上下文切换频率;所述VCPU根据本VCPU的运行指标选择使用pause或halt指令切换到idle状态包括:当本VCPU的上下文切换频率达到或高于预设阈值时,选择使用pause指令切换到idle状态;低于预设阈值时,选择使用halt指令切换到idle状态。4.如权利要求3所述的方法,其特征在于,所述上下文切换频率为:当前时刻与上一次选择切换到idle状态所使用的指令的时刻之间所进行的上下文切换的次数,除以当前时刻与上一次选择切换到idle状态所使用的指令的时刻之间所间隔的时间长度。5.如权利要求1~4中任一项所述的方法,其特征在于,还包括:所述VCPU根据本VCPU的运行指标确定执行pause指令的次数。6.如权利要求5所述的方法,其特征在于,所述VCPU根据本VCPU的运行指标确定执行pause指令的次数包括:所述VCPU根据本VCPU的上下文切换频率确定执行pause指令的次数;其中,所述次数与所述上下文切换频率正相关。7.如权利要求5所述的方法,其特征在于,所述在需要切换到idle状态时,所述VCPU按照所选择的指令切换到idle状态包括:在需要切换到idle状态时,如果所选择的为pause指令,则按照所确定的所述次数执行pause指令;如果所选择的为halt指令,则执行halt指令。8.一种虚拟处理器的状态切换装置,设置在虚拟处理器VCPU中,包括:选择模块,用于满足预定的触发条件时,根据所述VCPU的运行指标选择使用暂停pause或中止halt指令将所述VCPU切换到空闲idle状态;执行模块,用于在所述VCPU需要切换到idle状态时,按照所选择的指令将所述VCPU切换到idle状...

【专利技术属性】
技术研发人员:徐云沈益斌张扬
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1