CN101470634B - Cpu资源调度方法及cpu资源调度装置 - Google Patents
Cpu资源调度方法及cpu资源调度装置 Download PDFInfo
- Publication number
- CN101470634B CN101470634B CN2007103040706A CN200710304070A CN101470634B CN 101470634 B CN101470634 B CN 101470634B CN 2007103040706 A CN2007103040706 A CN 2007103040706A CN 200710304070 A CN200710304070 A CN 200710304070A CN 101470634 B CN101470634 B CN 101470634B
- Authority
- CN
- China
- Prior art keywords
- frequency
- cpu
- frequency adjustment
- cpu resource
- virtual
- 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.)
- Active
Links
Images
Abstract
本发明提供一种CPU资源调度方法及CPU资源调度装置,其中该CPU资源调度装置包括:截获模块,用于截获多个客户操作系统发送的频率调整指令,并获取所有所述频率调整指令各自对应的期望频率;获取模块,用于根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息;分配模块,用于根据所述虚拟CPU的负载信息分配真实CPU资源,进一步地,负载越重的所述虚拟CPU分配到的所述真实CPU资源越多。本发明具有很好的通用性,同时最大程度地利用了真实CPU的资源。
Description
技术领域
本发明涉及虚拟技术,特别是一种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支持动态频率调整的信息,需要调整所述虚拟CPU的运行频率时,发送所述频率调整指令。
上述的CPU资源调度装置,其中,
所述频率调整指令为向频率调整寄存器写入的特定的值;
所述截获模块包括:
计算单元,用于根据所述特定的值获取对应的期望频率。
上述的CPU资源调度装置,其中,所述频率调整寄存器为南桥芯片的电源管理寄存器。
上述的CPU资源调度装置,其中,所述特定的值对应于百分比、倍频倍数或实际频率。
为了更好的实现上述目的,本发明实施例还提供了一种CPU资源调度方法,包括步骤:
截获多个客户操作系统发送的频率调整指令,并获取所有所述频率调整指令各自对应的期望频率;
根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息;
根据所述虚拟CPU的负载信息分配真实CPU资源;
虚拟CPU所分配到的真实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资源越多。
本发明实施例的虚拟机系统中,写模块首先需要将支持频率调整的代码写入到虚拟内存,该支持频率调整的代码如下所示:
在上述的代码段中,包括以下几部分内容:
1、支持ACPI的处理器信息;和
2、GOS动态调整CPU频率时发送的频率调整指令应该发送到哪里,在上述的例子中,频率调整指令应该发送的频率调整寄存器为南桥的一个电源管理的寄存器,即Register(SystemIO,32,0,0x120),当然,上述仅仅是一个例子,根据处理器类型的不同,也可以是其他的寄存器。
GOS执行处理器频率调整时,会向频率调整寄存器写入特定的值,该特定的值对应于期望频率,该频率调整寄存器由对象PTC定义,如上述的例子中,该频率调整寄存器为南桥的一个电源管理的寄存器,即Register(SystemIO,32,0,0x120)。
GOS动态调整CPU频率时向频率调整寄存器写入特定的值,由该特定的值得到期望频率可以是以下的形式:
1、该特定的值对应于百分比,此时,期望频率为CPU支持最高频率与该百分比的乘积;
2、该特定的值对应于倍频倍数,此时,期望频率为CPU基准频率与该倍频倍数的乘积;
3、该特定的值对应于实际频率,此时,期望频率即为该实际频率。
截获模块对应的可通过上述方式获取期望频率。
本发明CPU资源的调度方法如图3所示,包括:
步骤31,VMM将支持频率调整的代码写入到虚拟内存,GOS通过读取所述支持频率调整的代码获取VCPU支持动态频率调整的信息;
步骤32,GOS根据任务量需要动态调整VCPU的运行频率时,向频率调整寄存器发送频率调整指令;
步骤33,VMM截获GOS的频率调整指令,并获取频率调整指令中的期望频率;
步骤34,VMM根据GOS的期望频率获取GOS的VCPU的负载情况;
步骤35,VMM根据VCPU的负载情况分配真实CPU资源,负载越重的VCPU分配到的真实CPU资源越多。
下面以一实际的例子对本发明进行说明。
首先,假设VCPU支持的最高频率为1024Mhz,而GOS根据任务量需要动态调整VCPU的运行频率时,向频率调整寄存器发送频率调整指令中的特定的值对应于百分比,具体如下:
000b为默认值,代表50.0%;
001b代表87.5%;
010b代表75.0%;
011b代表62.5%;
100b代表50.0%;
101b代表37.5%;
110b代表25.0%;
111b代表12.5%。
虚拟机系统中存在4个GOS(GOS 1、GOS 2、GOS 3和GOS 4),其对应的VCPU分别为VCPU 1、VCPU 2、VCPU 3和VCPU 1。
如果GOS 1、GOS 2、GOS 3和GOS 4分别向南桥的电源管理的寄存器,即Register(SystemIO,32,0,0x120)发送的值分别为001b、010b、010b和111b时,VMM截获该值后,可对应得到GOS 1、GOS 2、GOS 3和GOS 4的期望频率分别为:896MHz(1024MHz×87.5%)、768MHz(1024MHz×75.0%)、768MHz(1024MHz×75.0%)和128MHz(1024MHz×12.5%)。
VCPU期望频率越高,表明其负载越重,此时,VMM根据VCPU的负载情况分配真实CPU资源,负载越重的VCPU分配到的真实CPU资源越多。
在此,可采用几种不同的分配算法,如下所述。
1、直接根据VCPU的负载情况分配真实CPU资源,负载越重的VCPU分配到的真实CPU资源越多
假设现有真实CPU资源为200时间片,则在分配步骤中可以分别将70时间片、60时间片、60时间片和10时间片分配给VCPU 1、VCPU 2、VCPU 3和VCPU 4。
第一种真实CPU资源分配方式只需要保证满足以下两个条件即可:
条件1、分配给VCPU的真实CPU资源的总和小于现有真实CPU资源;
条件2、期望频率越大的VCPU分到的真实CPU资源越多。
然而上述的分配方案在分配真实CPU资源时有可能会出现下述情况,如分配给VCPU 1、VCPU 2、VCPU 3和VCPU 4的真实CPU资源分别为40时间片、30时间片、30时间片和20时间片的情况,这样,分配的真实CPU资源为120时间片,有大量的真实CPU资源(80时间片)没有被分配,因此,真实CPU资源没有得到有效的利用。
鉴于上述问题的存在,在本发明的实施例中进一步将条件1修改为:分配给VCPU的真实CPU资源的总和等于现有的真实CPU资源。
这样,在保证负载越重的VCPU可以分到越多真实CPU资源的同时,使真实的CPU资源可以得到最大程度的使用。
2、VCPU所分配到的真实CPU资源的比值等于其期望频率的比值,当然也需要分配给VCPU的真实CPU资源的总和小于现有的真实CPU资源
在上述的分配算法下,VCPU 1、VCPU 2、VCPU 3和VCPU 4分配到的真实CPU资源为:
70时间片、60时间片、60时间片和10时间片;
35时间片、30时间片、30时间片和5时间片;
7时间片、6时间片、6时间片和1时间片。
可以看出,如果按照上述的方式来分配,也有可能存在真实CPU资源利用程度低的问题存在。
鉴于上述问题的存在,一种更加合适的分配方式是:保证VCPU所分配到的真实CPU资源的比值等于对应期望频率的比值的同时,保证分配给VCPU的真实CPU资源的总和等于现有的真实CPU资源,即最后分配给VCPU 1、VCPU 2、VCPU 3和VCPU4的真实CPU资源分别为70时间片、60时间片、60时间片和10时间片,这样,既考虑到了VCPU的负载,也考虑到了真实CPU资源的最大程度的利用。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必须的通用硬件平台的方式来实现,当然也可以通过硬件,但显然前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品包括若干指令用以使得一台计算机设备(这里所说的计算机设备是一个广义的概念,包括但不限于个人计算机,服务器,网络设备等)执行本发明实施例所述方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种CPU资源调度装置,其特征在于,包括:
截获模块,用于截获多个客户操作系统发送的频率调整指令,并获取所有所述频率调整指令各自对应的期望频率;
获取模块,用于根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息;
分配模块,用于根据所述虚拟CPU的负载信息分配真实CPU资源;
虚拟CPU所分配到的真实CPU资源的比值等于其期望频率的比值,分配给虚拟CPU的真实CPU资源的总和小于现有的真实CPU资源。
2.根据权利要求1所述的CPU资源调度装置,其特征在于,还包括:
写模块,用于将支持频率调整的代码写入到虚拟内存;
客户操作系统通过读取所述支持频率调整的代码获取所述虚拟CPU支持动态频率调整的信息,需要调整所述虚拟CPU的运行频率时,发送所述频率调整指令。
3.根据权利要求1或2所述的CPU资源调度装置,其特征在于:
所述频率调整指令为向频率调整寄存器写入的特定的值;
所述截获模块包括:
计算单元,用于根据所述特定的值获取对应的期望频率。
4.根据权利要求3所述的CPU资源调度装置,其特征在于,所述频率调整寄存器为南桥芯片的电源管理寄存器。
5.根据权利要求3所述的CPU资源调度装置,其特征在于,所述特定的值对应于百分比、倍频倍数或实际频率。
6.一种CPU资源调度方法,其特征在于,包括步骤:
截获多个客户操作系统发送的频率调整指令,并获取所有所述频率调整指令各自对应的期望频率;
根据所述期望频率获取所有所述期望频率各自对应的虚拟CPU的负载信息;
根据所述虚拟CPU的负载信息分配真实CPU资源;
虚拟CPU所分配到的真实CPU资源的比值等于其期望频率的比值,分配给虚拟CPU的真实CPU资源的总和小于现有的真实CPU资源。
7.根据权利要求6所述的方法,其特征在于,还包括步骤:
将支持频率调整的代码写入到虚拟内存;
客户操作系统通过读取所述支持频率调整的代码获取所述虚拟CPU支持动态频率调整的信息,需要调整所述虚拟CPU的运行频率时,发送所述频率调整指令。
8.根据权利要求6或7所述的方法,其特征在于:
所述频率调整指令为向频率调整寄存器写入的特定的值;
所述获取所述频率调整指令对应的期望频率具体为:根据所述特定的值获取对应的期望频率。
9.根据权利要求8所述的方法,其特征在于,所述特定的值对应于百分比、倍频倍数或实际频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103040706A CN101470634B (zh) | 2007-12-24 | 2007-12-24 | Cpu资源调度方法及cpu资源调度装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103040706A CN101470634B (zh) | 2007-12-24 | 2007-12-24 | Cpu资源调度方法及cpu资源调度装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101470634A CN101470634A (zh) | 2009-07-01 |
CN101470634B true CN101470634B (zh) | 2012-05-09 |
Family
ID=40828122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103040706A Active CN101470634B (zh) | 2007-12-24 | 2007-12-24 | Cpu资源调度方法及cpu资源调度装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101470634B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364997B2 (en) * | 2009-12-22 | 2013-01-29 | Intel Corporation | Virtual-CPU based frequency and voltage scaling |
CN101719082B (zh) * | 2009-12-24 | 2013-01-02 | 中国科学院计算技术研究所 | 虚拟化计算平台中应用请求调度的方法及其系统 |
CN101923507B (zh) * | 2010-07-30 | 2012-09-26 | 华中科技大学 | 基于驱动的虚拟机通用监控系统 |
US9886083B2 (en) * | 2014-12-19 | 2018-02-06 | International Business Machines Corporation | Event-driven reoptimization of logically-partitioned environment for power management |
CN104572254B (zh) * | 2015-02-12 | 2018-06-05 | 百度在线网络技术(北京)有限公司 | 改变安卓模拟器的运行速度的方法及装置 |
CN106033374A (zh) * | 2015-03-13 | 2016-10-19 | 西安酷派软件科技有限公司 | 在多系统中分配多核中央处理器的方法、装置及终端 |
JP7120199B2 (ja) * | 2019-10-08 | 2022-08-17 | 横河電機株式会社 | 通信処理装置、通信処理方法、およびプログラム |
CN113032101B (zh) * | 2021-03-31 | 2023-12-29 | 深信服科技股份有限公司 | 虚拟机的资源分配方法、服务器及计算机可读存储介质 |
CN117076137B (zh) * | 2023-10-16 | 2024-01-26 | 麒麟软件有限公司 | 虚拟化下的cpu动态调频方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1607505A (zh) * | 2003-09-30 | 2005-04-20 | 国际商业机器公司 | 用于监视计算机系统中的资源的方法和系统 |
US20050262504A1 (en) * | 2004-05-21 | 2005-11-24 | Esfahany Kouros H | Method and apparatus for dynamic CPU resource management |
CN1776568A (zh) * | 2005-11-28 | 2006-05-24 | 北京中星微电子有限公司 | 基于任务的动态调节cpu工作频率的方法及系统 |
-
2007
- 2007-12-24 CN CN2007103040706A patent/CN101470634B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1607505A (zh) * | 2003-09-30 | 2005-04-20 | 国际商业机器公司 | 用于监视计算机系统中的资源的方法和系统 |
US20050262504A1 (en) * | 2004-05-21 | 2005-11-24 | Esfahany Kouros H | Method and apparatus for dynamic CPU resource management |
CN1776568A (zh) * | 2005-11-28 | 2006-05-24 | 北京中星微电子有限公司 | 基于任务的动态调节cpu工作频率的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101470634A (zh) | 2009-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101470634B (zh) | Cpu资源调度方法及cpu资源调度装置 | |
CN100472451C (zh) | 一种虚拟机系统及其硬件设备访问方法 | |
Zhang et al. | Automatic memory control of multiple virtual machines on a consolidated server | |
US9244703B2 (en) | Server system and management unit identifying a plurality of business application software on a virtual machine based on a program boundary for dynamic resource allocation | |
US7739417B2 (en) | Method, apparatus and system for seamlessly sharing a graphics card amongst virtual machines | |
US20020129172A1 (en) | Inter-partition message passing method, system and program product for a shared I/O driver | |
CN102523215B (zh) | 基于kvm虚拟化平台的虚拟机在线杀毒系统 | |
US20020129082A1 (en) | Inter-partition message passing method, system and program product for throughput measurement in a partitioned processing environment | |
CN101354663A (zh) | 应用于虚拟机系统的真实cpu资源的调度方法及调度装置 | |
CN100570562C (zh) | 显卡、应用该显卡的虚拟机系统及显示处理方法 | |
US20180067674A1 (en) | Memory management in virtualized computing | |
CN104615480A (zh) | 基于numa高性能网络处理器负载的虚拟处理器调度方法 | |
WO2006103687A1 (en) | Partitioned resource reallocation system and method | |
CN104123233A (zh) | 一种虚拟机大容量内存共享方法 | |
US8255431B2 (en) | Managing memory | |
CN105550039A (zh) | 一种基于Redhat Linux系统下网卡性能调优的实现方法 | |
CN111475256A (zh) | 资源分配方法、装置及系统 | |
KR20110109074A (ko) | 그리드 컴퓨팅 시스템 및 그리드 컴퓨팅 서비스 제공방법 | |
CN102096594B (zh) | 使用内存中系统资源的方法及装置 | |
Sinha et al. | mWarp: accelerating Intra-host live container migration via memory warping | |
US9720597B2 (en) | Systems and methods for swapping pinned memory buffers | |
CN115098272A (zh) | Gpu资源调度方法、调度器、电子设备和存储介质 | |
Blagodurov et al. | Towards the contention aware scheduling in hpc cluster environment | |
Mkoba et al. | A survey on energy efficient with task consolidation in the virtualized cloud computing environment | |
CN113656161A (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 |