-
题名并发程序中数据竞争检测方法
被引量:5
- 1
-
-
作者
张杨
梁亚楠
张冬雯
孙仕欣
-
机构
河北科技大学信息科学与工程学院
-
出处
《计算机应用》
CSCD
北大核心
2019年第1期61-65,共5页
-
基金
国家自然科学基金资助项目(61440012)
河北省自然科学基金资助项目(F2016208007)
河北省基础研究计划重点基础专项(18960106D)~~
-
文摘
针对数据竞争检测过程中的误报和漏报问题,提出一种静态数据竞争检测方法。首先,使用控制流分析自动构造线程内和线程间函数调用图;然后,收集线程内变量访问事件信息,定义竞争产生条件并分析检测出所有可能的竞争;其次,为了提高检测的准确率,进行别名变量和别名锁的分析降低漏报和误报;最后,通过控制流分析来抽象访问事件之间的时序关系,并结合程序切片技术对访问事件的发生序关系进行判断,以此避免因忽略线程交互带来的误报。依据该方法,使用Java语言在Soot软件分析框架下实现了一个数据竞争检测工具。在实验中,对JGF和IBM Contest基准测试套件中的raytracer和airline等程序进行数据竞争检测,并与目前已有的数据竞争检测算法和工具(HB算法和RVPredict)进行对比。实验结果表明,与HB算法和RVPredict工具相比,该方法检测到的数据竞争总数分别增加了81%和16%,数据竞争检测的准确率分别提升了约14%和19%,有效地避免了数据竞争检测中的漏报和误报现象。
-
关键词
并发程序
数据竞争
控制流分析
别名分析
程序切片
-
Keywords
concurrent program
data race
control flow analysis
alias analysis
program slicing
-
分类号
TP311.53
[自动化与计算机技术—计算机软件与理论]
-