[发明专利]虚拟化云中机器启动时间感知的实时任务与资源调度方法有效
申请号: | 201510607539.8 | 申请日: | 2015-09-22 |
公开(公告)号: | CN105159752B | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 朱晓敏;陈黄科;邱涤珊;李志猛;祝江汉;马满好 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/48 |
代理公司: | 国防科技大学专利服务中心43202 | 代理人: | 郭敏 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟 化云中 机器 启动 时间 感知 实时 任务 资源 调度 方法 | ||
1.一种虚拟化云中机器启动时间感知的实时任务与资源调度方法,其特征在于包括以下步骤:
第一步,初始化:
1.1设置等待执行任务集合WT为空,即
1.2令活跃主机的集合为Ha,令关闭主机的集合为Ho;
1.2.1令j=1;
1.2.2如果j>m,m为主机数量,m为正整数,转第二步;否则,执行第1.2.3步;
1.2.3如果则Ha=Ha∪hj;如果则Ho=Ho∪hj;若表示主机hj在时刻t处于活跃状态,表示主机hj在时刻t处于关闭状态;主机hj∈H,1≤j≤m,表示云服务系统中的第j台主机,主机的集合H={h1,h2,…,hm};
1.2.4j=j+1,执行第1.2.2步;
第二步,当新任务动态到达后,更新系统的状态:
2.1将新到达任务加入到等待执行任务集合中,即WT=WT∪Tnew,其中,表示新到达的任务集合,其中|Tnew|为新到达任务的数量,ti'∈Tnew,1≤i≤|Tnew|,为新到达任务集合中的编号为i的任务;
2.2取消等待执行任务与虚拟机之间的映射关系,即令xi,jk=0,映射任务ti到非应急虚拟机vmjk表示让非应急虚拟机vmjk执行任务ti;变量xi,jk表示任务ti是否被分配到非应急虚拟机vmjk,如果任务ti被分配到非应急虚拟机vmjk,则xi,jk=1,如果任务ti没有被分配到非应急虚拟机vmjk,则xi,jk=0;任意一个任务ti表示为ti={ai,li,di},1≤i≤n,其中ai为任务ti的到达时间,li为任务ti的执行长度,单位为Hz,di为任务ti的截止期,n为正整数;
2.3更新每台非应急虚拟机vmjk的就绪时间rtjk,如果非应急虚拟机vmjk正在执行某个任务,vmjk的就绪时间就是虚拟机完成正在执行任务的时间;如果非应急虚拟机vmjk处于空闲状态,vmjk的就绪时间为当前时间;
2.4更新每台活跃主机hj上应急虚拟机lvmj的CPU频率分配,hj∈Ha;
第三步,按任务截止期最早优先的顺序,从WT中选出截止期di最早的任务ti;
第四步,将任务ti分配到可用的非应急虚拟机上,方法是:
4.1令selVmSet为一个虚拟机集合,初始化为minFt为一个变量,初始化为minFt=+∞;
4.2令j=1;|Ha|表示活跃主机的数量;
4.3如果j>|Ha|,则转第4.4步;否则,执行第4.3.1步;
4.3.1令k=1;|VMj|表示主机hj上非应急虚拟机的数量;
4.3.2如果k>|VMj|,则j=j+1,转第4.3步;否则,执行第4.3.3步;
4.3.3计算任务ti在虚拟机vmjk上的完成时间fti,jk,计算公式如下:
其中,为任务ti在虚拟机vmjk上的执行时间;
4.3.4如果任务ti在虚拟机vmjk上的完成时间fti,jk满足fti,jk<minFt,那么,清空虚拟机集合selVmSet即令并将虚拟机vmjk加入到selVmSet中;令minFt=fti,jk;k=k+1,转第4.3.2步;
4.4如果任务ti的最小完成时间满足它的时效性要求即minFt≤di,取出虚拟机集合selVmSet中的虚拟机,记为selVm;
4.5将任务ti映射到虚拟机selVm上即令xi,jk=1,同时更新虚拟机selVm的就绪时间rtjk为rtjk=minFt,转第八步;否则,执行第五步;
第五步,增加一台新虚拟机,并分配任务ti到新增加的虚拟机上,方法是:
5.1确定新增加虚拟机的CPU频率fnew,计算公式如下:
其中,li和di分别表示任务ti的执行长度和截止期;ct为当前时刻;ct(vm)为创建虚拟机的时间延迟;
5.2令selHostSet为一个主机集合,初始化为minRemFre为一个变量,初始化为minRemFre=+∞;
5.3寻找一台剩余资源大于fnew的活跃主机:
5.3.1令j=1;
5.3.2如果j>|Ha|,|Ha|表示活跃主机的数量,转第5.4步;否则,执行第5.3.3步;
5.3.3计算主机的剩余资源rfj,如下所示:
其中,表示主机hj的最大频率;和c(lvmj)分别表示非应急虚拟机集合和应急虚拟机使用的CPU频率;
5.3.4如果主机的剩余资源rfj大于新增加虚拟机的CPU频率fnew,且主机的剩余资源rfj小于minRemFre,即(fnew<rfj)&(rfj<minRemFre),则清空主机集合selHostSet,然后将主机hj加入到selHostSet,令minRemFre=rfj,更新j=j+1,转到第5.3.2步;
5.4如果选择的主机集合selHostSet为非空,即执行第5.5步;否则,执行第5.6步;
5.5创建新虚拟机,并映射任务ti到新虚拟机,转第八步;
5.6确定新增加虚拟机的CPU频率fnew,计算公式如下:
其中,li和di分别表示任务ti的执行长度和截止期;ct为当前时刻;ct(vm)为创建虚拟机的时间延迟;st(host)为启动主机的时间延迟;
5.7启动一台关闭的主机,然后创建一台新虚拟机:
5.7.1令j=1;
5.7.2如果j>|Ho|,|Ho|表示关闭主机的数量,转第六步;否则,转第5.7.3步;
5.7.3如果主机hj的最大CPU频率小于新增加虚拟机的CPU频率需求fnew,即则j=j+1,转第5.7.2步;否则,执行第5.7.4步;
5.7.4启动关闭的主机hj;
5.7.5将主机hj加入到活跃主机集合Ha中,即Ha=Ha∪hj;同时,将主机hj从关闭主机集合Ho中移除;
5.7.6在主机hj上创建一台CPU频率为fnew的虚拟机,记为vmjk;
5.7.7在主机hj上创建一台CPU频率为0的应急虚拟机lvmj;
5.7.8将新建的非应急虚拟机vmjk加入到可用非应急虚拟机集合AVM中;
5.7.9将任务ti映射到新非应急虚拟机vmjk;
5.7.10更新非应急虚拟机vmjk的就绪时间rtjk,即rtjk=di,转第八步;
第六步,将任务ti分配到应急虚拟机上,方法如下:
6.1确定应急虚拟机的最小CPU频率flash-up,计算公式如下:
其中,li和di分别表示任务ti的执行长度和截止期;ct为当前时刻;
6.2使用主机的剩余资源来增加应急虚拟机的CPU频率,然后将任务映射到应急虚拟机上:
6.2.1令j=1;
6.2.2如果j>|Ha|,|Ha|为活跃主机的数量,转第6.3步;否则,转第6.2.3步;
6.2.3如果主机hj上的应急虚拟机lvmj为空闲,即c(lvmj)=0,执行第6.2.4步;否则,更新j=j+1,转回第6.2.2步;
6.2.4如果主机hj的剩余CPU频率rfj不小于应急虚拟机的最小CPU频率flash-up,即rfj≥flash-up,执行第6.2.5步;否则,更新j=j+1,转回第6.2.2步;
6.2.5将主机hj的剩余CPU频率rfj分配给应急虚拟机lvmj,即c(lvmj)=rfj,rfj=0;
6.2.6将任务ti映射到应急虚拟机lvmj上,转第八步;
6.3转移非应急虚拟机的CPU频率到应急虚拟机,然后将任务映射到应急虚拟机上:
6.3.1令j=1;
6.3.2如果j>|Ha|,转第6.4步;否则,转第6.3.3步;
6.3.3如果主机hj上的应急虚拟机lvmj为空闲,即c(lvmj)=0,执行第6.3.4步;否则,更新j=j+1,转回第6.3.2步;
6.3.4令k=1;
6.3.4.1如果k>|VMj|,|VMj|为主机上非应急虚拟机数量,更新j=j+1,转第6.3.2步;否则,执行第6.3.4.2步;
6.3.4.2如果非应急虚拟机vmjk的CPU频率满足c(vmjk)≥flash-up,执行第6.3.4.3步;否则,更新k=k+1,转回第6.3.4.1步;
6.3.4.3令MTjk为映射到非应急虚拟机vmjk的任务集合;
6.3.4.4如果MTjk中每个任务ti'的截止期与完成时间之差不小于li/c(vmjk),即di'-fti',jk≥li/c(vmjk),执行第6.3.4.5步;否则,更新k=k+1,转回第6.3.4.1步;
6.3.4.5转移非应急虚拟机vmjk的CPU频率给应急虚拟机lvmj,即c(lvmj)=c(vmjk),c(vmjk)=0;
6.3.4.6将任务ti映射到应急虚拟机lvmj上,转第八步;
6.4转移非应急虚拟机的CPU频率到应急虚拟机,然后将任务映射到应急虚拟机,接着启动一台关闭的主机,并将非应急虚拟机迁移到新启动的主机上:
6.4.1令j=1;
6.4.2如果j>|Ha|,则转第七步;否则,执行第6.4.3步;
6.4.3如果主机hj上的应急虚拟机lvmj为空闲,即c(lvmj)=0,执行第6.4.4步;否则,更新j=j+1,转回第6.4.2步;
6.4.4令k=1;|VMj|为主机上非应急虚拟机数量;
6.4.4.1如果k>|VMj|,更新j=j+1,则转到第6.4.2步;否则,执行第6.4.4.2步;
6.4.4.2如果非应急虚拟机vmjk的CPU频率满足c(vmjk)≥flash-up,执行第6.4.4.3步;否则,更新k=k+1,转回第6.4.4.1步;
6.4.4.3令MTjk表示映射到非应急虚拟机vmjk的任务集合;
6.4.4.4如果MTjk中每个任务的截止期与完成时间之差满足di-fti,jk≥st(host)+mt(vmjk),st(host)和mt(vmjk)分别表示启动主机和迁移虚拟机的时间,执行第6.4.4.5步;否则,更新j=j+1,转到第6.4.2步;
6.4.4.5转移非应急虚拟机vmjk的CPU频率给应急虚拟机lvmj,即c(lvmj)=c(vmjk),c(vmjk)=0;
6.4.4.6将任务ti映射到应急虚拟机lvmj上;
6.4.4.7启动一台最大CPU频率大于c(lvmj)的关闭主机hj;
6.4.4.8迁移非应急虚拟机vmjk到刚启动的主机hj上;
6.4.4.9配置虚拟机vmjk的CPU频率为c(vmjk)=c(lvmj);
6.4.4.10在主机hj上创建一台CPU频率为0的应急虚拟机lvmj;
6.4.4.11将主机hj加入到活跃主机集合Ha中,即Ha=Ha∪hj;同时,将主机从关闭主机集合Ho中移除,即Ho=Ho-hj;
6.4.4.12转第八步;
第七步,如果任务ti没有被映射到任何一台虚拟机上,则拒绝任务ti,即WT=WT-{ti};
第八步,如果待分配任务集合WT中存在未调度任务,则转第三步;否则,执行第九步;
第九步,结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510607539.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:电梯楼层数自动校正装置及系统
- 下一篇:一种透明瓶装液体中异物检测装置