[发明专利]一种虚拟CPU调度方法有效
申请号: | 201210523614.9 | 申请日: | 2012-12-06 |
公开(公告)号: | CN103049332A | 公开(公告)日: | 2013-04-17 |
发明(设计)人: | 童薇;冯丹;刘景宁;张炬;李宇 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/455 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 方放 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种虚拟CPU调度方法,属于计算机虚拟化技术领域,解决现有虚拟CPU调度方法对所有虚拟CPU采用定长时间片进行调度,使得虚拟机性能因资源限制而受到影响的问题。本发明包括初始化步骤、更新虚拟CPU信用值步骤、加入队列步骤、选取运行虚拟CPU步骤、处理IO请求位图步骤和运行步骤。本发明根据虚拟CPU运行状态设置调度时间片,在调度虚拟CPU时,根据虚拟CPU所属虚拟机的IO请求位图以及调度时间片表的情况从而动态设置虚拟CPU的调度时间片,IO请求位图反映了各虚拟机的运行特点,因此以CPU操作为主的虚拟机具有较小的切换开销,而以IO操作为主的虚拟机具有较短的响应延迟,从而能够达到适用于多种不同应用环境,满足不同应用服务类型需求的效果。 | ||
搜索关键词: | 一种 虚拟 cpu 调度 方法 | ||
【主权项】:
一种虚拟CPU调度方法,包括如下步骤:(1)初始化步骤,包括下述子步骤:(1.1)将每个虚拟机的虚拟CPU信用值初始化,其中第i个虚拟机的第j个虚拟CPU信用值Cij为:Cij=CT×Wi/(WT×Mi),其中,CT为总信用值,WT为总权重,Wi为第i个虚拟机的权重,由用户设定,为正整数;Mi为第i个虚拟机的虚拟CPU个数,由用户设定,为小于P的整数;i=1~V,虚拟机的总数V=1~100,j=1~Mi,物理CPU的个数P=1~64;CT=P×300, W T = Σ i = 1 V ( W i × M i ) , (1.2)初始化各虚拟机的IO请求位图;将各虚拟机的IO请求位图各位初始化为0;IO请求位图为一维的N位数组,数组中不同的位,表示由不同IO设备产生的IO请求,“1”表示有IO请求,“0”表示无IO请求,N=10~40;(1.3)初始化调度时间片表;调度时间片表为一维的N字节数组,每字节8位,数组中每字节与各虚拟机的IO请求位图中的一位对应,表示IO请求位图中对应位的调度时间片;判断是否N≤T0‑1,T0=20~40,是则将调度时间片表中第q字节的值初始化为qms,q=1~N,转子步骤(1.4);否则将调度时间片表中第q字节的值初始化为qms,q=1~T0‑1,再将调度时间片表中第T0字节~第N字节的值初始化为T0ms,转子步骤(1.4);(1.4)将各虚拟CPU的优先级初始化为1;(2)更新虚拟CPU信用值步骤:置当前虚拟CPU信用值=当前虚拟CPU信用值‑10×T1,T1为当前虚拟CPU从上次开始运行至今经历的时间,单位为ms;判断当前虚拟CPU信用值是否小于或者等于0,是则将当前虚拟CPU的优先级设置成0,转步骤(3);否则直接转步骤(3);(3)加入队列步骤:从物理CPU的运行队列队首开始,比较当前虚拟CPU的优先级是否大于运行队列中的虚拟CPU优先级,是则将当前虚拟CPU插入运行队列中相应虚拟CPU之前,否则顺序往后比较,直至运行队列队尾;(4)选取运行虚拟CPU步骤,包括如下子步骤:(4.1)从当前虚拟CPU所在物理CPU的运行队列中,检查队首虚拟CPU信用值是否小于或者等于0,是则转子步骤(4.2),否则从运行队列中取出队首虚拟CPU,转步骤(5);(4.2)从其它各物理CPU上的运行队列中,检查队首虚拟CPU信用值是否均小于或者等于0,是则转子步骤(4.3);否则取出第一个信用值大于0的队首虚拟CPU,转步骤(5);(4.3)将每个虚拟机的虚拟CPU优先级重新设置为1,每个虚拟机的虚拟CPU信用值重新初始化,其中第i个虚拟机的第j个虚拟CPU信用值Cij为:Cij=Cij+CT×Wi/(WT×Mi);(4.4)选择空闲虚拟CPU运行,运行时间为T0,当达到运行时间,转步骤(2);(5)处理IO请求位图步骤,包括如下子步骤:(5.1)检查所取出的队首虚拟CPU所属虚拟机的IO请求位图,判断该IO请求位图中是否各位都为“0”,是则转步骤(5.2),否则转步骤(5.3);(5.2)设置该队首虚拟CPU的调度时间片为T0,转步骤(6);(5.3)遍历该IO请求位图和调度时间片表,找到该IO请求位图中值为“1”的位并且在调度时间片表中找到相应各字节,从相应各字节中找到其值最小的字节;将所述队首虚拟CPU的调度时间片设置为其值最小的字节的值,并且置其所属虚拟机的IO请求位图中对应该字节的位为“0”,转步骤(6);(6)运行步骤:将所述队首虚拟CPU从所在运行队列中删除,并开始运行,运行时间为该虚拟CPU的调度时间片,当达到运行时间,转步骤(2)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210523614.9/,转载请声明来源钻瓜专利网。
- 上一篇:一种万向扳手
- 下一篇:一种互感器测试线端夹持装置