[发明专利]一种基于运行快照序列的并行程序重现调试方法在审
申请号: | 201410697303.3 | 申请日: | 2014-11-26 |
公开(公告)号: | CN104461876A | 公开(公告)日: | 2015-03-25 |
发明(设计)人: | 刘轶;王博弘 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 李有浩 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 运行 快照 序列 并行 程序 重现 调试 方法 | ||
1.一种基于运行快照序列的并行程序重现调试方法,其特征在于具有以下步骤:在多核多线程的并行程序运行环境中,在用户并行程序运行的过程中通过快照保存触发模块(4)触发快照捕捉执行模块(1),捕捉多个运行快照;所捕捉到的快照信息由快照信息维护模块(2)进行维护,并经由辅助转存线程模块(5)写入外部存储器中;在快照捕捉的过程中,让额外进程调度策略模块(3)与系统中已有的调度策略结合,以实现性能的优化;在并行程序运行结束后,将多个快照的详细信息经由快照数据重现模块(6)展示给用户,并提供快照间的前后跳转操作;
所述的运行快照,包含用户并行程序所使用的如运行栈,堆的全部内存资源,以及保存时刻所有处理器核的上下文。
2.根据权利要求1所述的基于运行快照序列的并行程序重现调试方法,其特征在于:在用户并行程序运行的过程中捕捉多个运行快照的具有以下步骤:提供快照触发程序库,将快照的触发方式以程序库的方式提供给用户,由用户根据程序具体逻辑决定快照的捕捉点;在用户触发快照的捕捉后,对硬件环境中的多个处理器核进行控制,以保证快照捕捉的有效性;转入操作系统中预先添加的快照捕捉执行模块,完成快照内容的捕捉和存储;一次快照捕捉执行结束后,用户的并行程序继续正常的执行。
3.根据权利要求1所述的基于运行快照序列的并行程序重现调试方法,其特征在于:所述快照保存触发模块(4)在快照的触发方式中,以程序库的方式提供用户的条件下,程序库中包含多种的快照触发方式的:
直接触发,即用户调动快照捕捉函数直接触发快照的捕捉;
条件触发,即用户使用assert以及try/catch等予以,在程序执行满足某种条件时触发快照的捕捉等。提供程序库的意义在于允许用户通过代码逻辑自行灵活定义快照的触发时机。
与程序库相关的保护范围包含但不限于上述的具体触发方式。
4.根据权利要求1所述的基于运行快照序列的并行程序重现调试方法,其特征在于:所述快照捕捉执行模块(1)对硬件环境中的多个处理器核进行控制,当多个处理器核其中的一个触发后,使用硬件提供的控制功能,控制其他所有的处理器核中断当前程序的指令并转入特定的中断处理器程序。
5.根据权利要求1所述的基于运行快照序列的并行程序重现调试方法,其特征在于:在所述的快照捕捉执行模块(1)中,对当前所执行的处理器核进行判断,如果当前处理器核触发了快照的保存,则称之为触发核,否则,称之为响应核;对于触发核,首先要向快照信息管理模块声明快照保存的开始,根据用户定制策略筛选出需要保存的快照信息,并将快照信息写入与进程对应的内存区域。随后,向快照信息管理模块声明快照保存结束,结束快照的保存过程;对于响应核,需要判断当前执行的代码是否为需要保存快照的目标进程的代码,如果是,则主动结束当前时间片的指令,否则,恢复程序的正常指令,不受快照保存过程的影响。
6.根据权利要求1所述的基于运行快照序列的并行程序重现调试方法,其特征在于:在所述的额外进程调度策略模块(3)中,作为一个额外的调度策略添加到操作系统已有的线程调度模块中;首先调用操作系统已有的线程调度模块,得到一个新的调度操作<T,P>,即将线程T调度至处理器P上执行。与快照信息管理模块进行交互,判断线程T对应的进程是否正在执行快照保存,如果正在执行,则拒绝此次调度,并申请一个新的线程调度结果,如果未执行快照保存,则通过此次调度,并实际执行线程调度。
7.根据权利要求1所述的基于运行快照序列的并行程序重现调试方法,其特征在于:在所述的辅助转存线程模块(6)中,伴随操作系统而启动,之后始终使用一个独立的线程执行如下的循环:A访问快照信息管理模块,获得当前所有需要保存快照的进程列表;B对列表中的每个进程进行检查,如果进程已经执行结束,则将该进程在内存中保存的全部快照信息写入外部存储中,并通知快照信息管理模块删除该进程的信息。如果进程未执行结束,则检查进程写入内存中的快照信息是否超过预先定义的容量限制,如果超过,则将该进程当前写入内存中的快步快照信息都写入内部存储中;C跳至A,继续循环。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410697303.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:安卓软件的操作录制装置和方法
- 下一篇:一种软件演化过程故障分析方法