[发明专利]一种虚拟化环境下面向任务并行编程模型的优化方法有效
申请号: | 201510187523.6 | 申请日: | 2015-04-21 |
公开(公告)号: | CN104765613B | 公开(公告)日: | 2017-09-12 |
发明(设计)人: | 吴松;金海;彭亚琼 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/455 |
代理公司: | 华中科技大学专利中心42201 | 代理人: | 廖盈春 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 虚拟 环境 面向 任务 并行 编程 模型 优化 方法 | ||
1.一种虚拟化环境下面向任务并行编程模型的优化方法,其特征在于,该方法包括以下步骤:
(1)获取任务并行编程模型中失败的窃取操作,读取失败的窃取操作对应的受害线程在任务并行编程模型中维护的运行状态和双端队列信息;
(2)根据受害线程的运行状态,判断受害线程是否为执行任务的有用线程,如果是,进入步骤(3);否则,结束本次优化;其中,有用线程是指拥有可执行任务的线程;
(3)判断受害线程的双端队列是否为空,如果是,进入步骤(4);否则,结束本次优化;
(4)通过自定义的系统功能调用,将小偷线程的线程标识符与受害线程的线程标识符,分别作为系统功能调用的第一个参数与第二个参数,发送给客户操作系统的内核层;
(5)操作系统的内核层根据小偷线程的标识符和受害线程的标识符,查找内核中代表小偷线程和受害线程的数据结构,并从中获取受害线程在内核层的运行状态,以及小偷线程和受害线程所在虚拟CPU的标识符;
(6)根据受害线程在内核层的运行状态,判断受害线程是否已被客户操作系统抢占,如果是,结束本次优化;否则,进入步骤(7);
(7)将运行小偷线程的虚拟CPU角色定义为加速发起者,运行受害线程的虚拟CPU角色定义为被加速候选者,并通过自定义的超级调用,将加速发起者的虚拟CPU标识符和被加速候选者的虚拟CPU标识符,分别作为超级调用的第一个参数和第二个参数,发送给虚拟机监控器;
(8)虚拟机监控器接收来自客户虚拟机的虚拟CPU标识符,查找虚拟机监控器中代表加速发起者和被加速候选者的虚拟CPU数据结构,并从中读取它们的运行状态和所在物理CPU的信息;
(9)根据加速发起者和被加速候选者所在物理CPU的信息以及运行状态,决定是否执行加速,如果是,进入步骤(10);否则,结束本次优化;
(10)利用加速发起者的剩余时间片,加速被加速候选者的执行;
执行步骤(10)后结束本次优化。
2.如权利要求1所述的一种虚拟化环境下面向任务并行编程模型的优化方法,其特征在于,步骤(9)中决定是否执行加速的过程具体如下:
(9-1)根据加速发起者和被加速候选者所在物理CPU的信息,判断它们是否属于相同NUMA节点,如果是,进入步骤(9-2);否则,决定不执行加速;
(9-2)根据被加速候选者的运行状态,判断被加速候选者是否已被虚拟机监控器抢占,如果是,进入步骤(9-3);否则,决定不执行加速;
(9-3)根据加速发起者的运行状态,计算它在当前调度的剩余时间片,判断剩余时间片的长度是否大于零,如果是,决定执行加速;否则,决定不执行加速。
3.如权利要求1所述的一种虚拟化环境下面向任务并行编程模型的优化方法,其特征在于,步骤(10)包括以下子步骤:
(10-1)暂停执行加速发起者;
(10-2)保留被加速候选者在当前物理CPU运行队列中的位置,并将被加速候选者迁移到加速发起者所在的物理CPU;
(10-3)调度被加速候选者,且调度时间片等于加速发起者的剩余时间片;
(10-4)当被加速候选者被虚拟机监控器抢占时,如果被加速候选者还处于可运行状态,则将它迁移回原本所在的物理CPU运行队列中的位置,恢复其原本的调度路径;
(10-5)结束本次加速。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510187523.6/1.html,转载请声明来源钻瓜专利网。