本发明专利技术提供一种CPU资源调度方法及虚拟机监视器、虚拟机系统,其中该虚拟机监视器包括:截获模块,用于截获多个客户操作系统发送的频率调整指令,并获取所有所述频率调整指令各自对应的期望频率;获取模块,用于根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息;分配模块,用于根据所述虚拟CPU的负载信息分配真实CPU资源,进一步地,负载越重的所述虚拟CPU分配到的所述真实CPU资源越多。本发明专利技术具有很好的通用性,同时最大程度地利用了真实CPU的资源。
【技术实现步骤摘要】
本专利技术涉及虚拟技术,特别是一种CPU资源调度方法及装置、虚拟机系统。
技术介绍
如图1所示,在虚拟机系统中,虚拟机监视器(Virtual Machine Monitor,VMM)之上同时运行有多个操作系统,而每个操作系统中都包括虚拟CPU(Virtual CPU,VCPU),因此,需要虚拟机监视器根据一定的资源调度算法,将真实的CPU资源分配给VCPU,而如何分配该真实CPU资源也会影响到虚拟机系统的性能。目前虚拟机的调度算法中,主要是SEDF方法,该SEDF调度算法中,VMM根据上层各客户操作系统中最近对CPU资源的请求和目前的进程数,给予各客户操作系统“打分”,为请求资源多的客户操作系统更多的分配真实CPU资源。SEDF方法较好的利用真实CPU资源,但是需要在客户操作系统(GuestOperation System,GOS)中有特定的程序来统计这些资源,由于GOS的操作系统可能是XP,、Vista、Linux或Solas,操作系统可能是64位或者32位的,因此对应于不同的操作系统,需要设计不同的程序,不具有通用性。
技术实现思路
本专利技术实施例的目的在于提供一种相对于不同的GOS而言,具有通用性的CPU资源调度方法及装置、虚拟机系统。为了实现上述目的,本专利技术实施例提供了一种虚拟机监视器,其中,包括:截获模块,用于截获多个客户操作系统发送的频率调整指令,并获取所有所述频率调整指令各自对应的期望频率;-->获取模块,用于根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息;分配模块,用于根据所述虚拟CPU的负载信息分配真实CPU资源。优选地,上述的虚拟机监视器还包括:虚拟内存;和写模块,用于将支持频率调整的代码写入到所述虚拟内存;所述客户操作系统通过所述虚拟内存读取到所述代码后,在需要调整所述虚拟CPU的运行频率时,发送所述频率调整指令。优选地,上述的虚拟机监视器中,所述频率调整指令为向频率调整寄存器写入的特定的值;所述截获模块包括:计算单元,用于根据所述特定的值获取对应的期望频率。优选地,上述的虚拟机监视器中,所述频率调整器为南桥芯片的电源管理寄存器。优选地,上述的虚拟机监视器中,所述特定的值对应于百分比、倍频倍数或实际频率。为了更好的实现上述目的,本专利技术实施例还提供了一种虚拟机系统,包括虚拟机监视器和客户操作系统,其中,所述虚拟机监视器包括:截获模块,用于截获多个所述客户操作系统发送的频率调整指令,并获取所有所述频率调整指令各自对应的期望频率;负载情况获取模块,用于根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息;分配模块,用于根据所述虚拟CPU的负载信息分配真实CPU资源。优选地,上述的虚拟机系统中,所述虚拟机监视器还包括:虚拟内存;和写模块,用于将支持频率调整的代码写入到所述虚拟内存;所述客户操作系统通过所述虚拟内存读取到所述代码后,在需要调整所述虚拟CPU的运行频率时,发送所述频率调整指令。优选地,上述的虚拟机系统中,-->所述频率调整指令为向频率调整寄存器写入的特定的值;所述截获模块包括:计算单元,用于根据所述特定的值获取对应的期望频率。优选地,上述的虚拟机系统中,所述频率调整器为南桥芯片的电源管理寄存器。优选地,上述的虚拟机系统中,所述特定的值对应于百分比、倍频倍数或实际频率。为了更好的实现上述目的,本专利技术实施例还提供了一种CPU资源调度方法,包括步骤:截获多个客户操作系统发送的频率调整指令,并获取收有所述频率调整指令各自对应的期望频率;根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息;根据所述虚拟CPU的负载信息分配真实CPU资源。优选地,上述的方法还包括:所述虚拟机监视器将支持频率调整的代码写入到虚拟内存;GOS通过读取所述支持频率调整的代码获取所述虚拟CPU支持动态频率调整的信息,需要调整所述虚拟CPU的运行频率时,发送所述频率调整指令。优选地,上述的方法中,所述客户操作系统发送所述频率调整指令具体为:向频率调整寄存器写入的特定的值;所述获取所述频率调整指令对应的期望频率具体为:根据所述特定的值获取对应的期望频率。优选地,上述的方法中,所述特定的值对应于百分比、倍频倍数或实际频率。优选地,上述的方法中,所述根据所述虚拟CPU的负载信息分配真实CPU资源的步骤中,负载越重的所述虚拟CPU分配到的所述真实CPU资源越多。本专利技术的实施例具有以下的有益效果:虚拟机管理器(VMM)根据上层各操作系统中最近对CPU资源的请求(频-->率调整指令),获取虚拟CPU的负载信息,最后根据所述虚拟CPU的负载信息分配真实CPU资源,不需要GOS中设置特定的程序来统计负载信息,加强了通用性,同时,在资源分配过程中,为负载重的虚拟CPU分配较多的真实CPU资源越多,最大程度地利用了真实CPU的资源。附图说明图1为现有虚拟机系统的结构示意图;图2为本专利技术实施例的虚拟机系统的结构示意图;图3为本专利技术实施例的方法的结构示意图。具体实施方式本专利技术实施例的CPU资源的调度方法及装置、基于ACPI(AdvancedConfiguration and Power Interface,高级配置与电源接口)规范,GOS根据系统任务量动态调整VCPU的运行频率,VMM截获GOS调整VCPU的运行频率的操作后,根据所有的GOS的VCPU的运行频率调整情况为GOS分配真实CPU资源。本专利技术实施例的虚拟机系统如图2所示,包括真实硬件、VMM和多个支持ACPI规范的GOS。其中,VMM包括:虚拟内存;写模块,用于将支持频率调整的代码写入到虚拟内存;GOS在虚拟内存读取到该段代码后,将获知其VCPU支持动态频率调整,然后将根据任务量动态调整VCPU的运行频率;截获模块,用于截获多个GOS的频率调整指令,并获取所有频率调整指令各自对应的期望频率;负载情况获取模块,用于根据GOS的期望频率获取GOS的VCPU的负载情况;分配模块,用于根据VCPU的负载情况分配真实CPU资源。在此,分配模块可以采用多种分配算法,但优选地分配算法是:负载越重-->的VCPU分配到的真实CPU资源越多。本专利技术实施例的虚拟机系统中,写模块首先需要将支持频率调整的代码写入到虚拟内存,该支持频率调整的代码如下所示:Processor(\\_SB.CPU0,//Processor Name1,//ACPI Processor Number0x120,//PBLK system IO address6)//PBLK Len{//Object ListName(_PTC,//32 bit wide IO space-based register at the<P_BLK>addressResourceTemplate(){Register(SystemIO,32,0,0x120)本文档来自技高网...
【技术保护点】
一种虚拟机监视器,其特征在于,包括: 截获模块,用于截获多个客户操作系统发送的频率调整指令,并获取所有所述频率调整指令各自对应的期望频率; 获取模块,用于根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息; 分配模块,用于根据所述虚拟CPU的负载信息分配真实CPU资源。
【技术特征摘要】
1.一种虚拟机监视器,其特征在于,包括:截获模块,用于截获多个客户操作系统发送的频率调整指令,并获取所有所述频率调整指令各自对应的期望频率;获取模块,用于根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息;分配模块,用于根据所述虚拟CPU的负载信息分配真实CPU资源。2.根据权利要求1所述的虚拟机监视器,其特征在于,还包括:虚拟内存;和写模块,用于将支持频率调整的代码写入到所述虚拟内存;所述客户操作系统通过所述虚拟内存读取到所述代码后,在需要调整所述虚拟CPU的运行频率时,发送所述频率调整指令。3.根据权利要求1或2所述的虚拟机监视器,其特征在于:所述频率调整指令为向频率调整寄存器写入的特定的值;所述截获模块包括:计算单元,用于根据所述特定的值获取对应的期望频率。4.根据权利要求3所述的虚拟机监视器,其特征在于,所述频率调整器为南桥芯片的电源管理寄存器。5.根据权利要求3所述的虚拟机监视器,其特征在于,所述特定的值对应于百分比、倍频倍数或实际频率。6.一种虚拟机系统,包括虚拟机监视器和客户操作系统,其特征在于,所述虚拟机监视器包括:截获模块,用于截获多个所述客户操作系统发送的频率调整指令,并获取所有所述频率调整指令各自对应的期望频率;负载情况获取模块,用于根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息;分配模块,用于根据所述虚拟CPU的负载信息分配真实CPU资源。7.根据权利要求6所述的虚拟机系统,其特征在于,所述虚拟机监视器还包括:虚拟内存;和写模块,用于将支持频率调整的代码写入到所述虚拟内存;所述客户操作系统通过所述虚拟内存读取到...
【专利技术属性】
技术研发人员:汤良,
申请(专利权)人:联想北京有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。