常曦,薛建新,张卓,毛晓光.面向收敛的并发程序执行轨迹静态简化方法.软件学报,2017,28(5):1107-1117 |
面向收敛的并发程序执行轨迹静态简化方法 |
Convergence-Oriented Static Approach for Simplifying Execution Traces of Concurrent Programs |
投稿时间:2016-07-15 修订日期:2016-09-25 |
DOI:10.13328/j.cnki.jos.005210 |
中文关键词: 并发程序 执行轨迹 轨迹等价 轨迹简化 调试 |
英文关键词:concurrency program execution trace trace equivalence trace simplification debugging |
基金项目:国家自然科学基金(61502296,61379054,61672529);上海市自然科学基金(15ZR1417000) |
|
摘要点击次数: 3011 |
全文下载次数: 1452 |
中文摘要: |
轨迹静态简化技术是在确保与原轨迹等价的前提下,通过随机减少程序执行时线程切换的数量,达到提高程序员调试并发程序效率的目的.然而,轨迹中可减少的线程切换分布往往是不均匀的,因此,随机简化策略难以有效地发现可简化的线程切换.为此,提出了面向收敛的合并算法致力于这个问题.该算法的基本思想是:不断地随机选择一线程执行区间作为中心,在同一线程内,采用面向收敛的合并算法迭代地寻找可与其合并的前置执行区间和后置执行区间.实验结果表明,该方法可以高品质地减少执行轨迹中的线程切换数量,进而有助于程序员快速发现引发错误的线程交错. |
英文摘要: |
Static trace simplification technique is a method to improve the efficiency of debugging through reducing the number of thread contexts in a buggy execution trace without changing the dependency information. However, the application of static trace simplification technique to simply a buggy trace still faces a strong challenge in that the distribution of reduced thread contexts is usually non-uniform, and therefore a random trace simplification technique is difficult to achieve. In this paper, a convergence-oriented static trace simplification approach is proposed to address this challenge. The essential idea of this approach is to build a static trace simplification model, and then repeatedly adopt a convergence-oriented merging algorithm to search the mergeable previous and succeeding intervals in the same thread. Experimental results show that this new approach can simply the traces with high quality. It can help programers find the thread interleaves that cause the faults. |
HTML 下载PDF全文 查看/发表评论 下载PDF阅读器 |