计算机应用

北大核心,INSPEC,JST,Pж(AJ),CSCD扩展版

国内刊号:51-1307/TP

国际刊号:1001-9081

计算机应用杂志2019年第1期:并发程序中数据竞争检测方法

发布日期:

作者:张杨, 梁亚楠, 张冬雯, 孙仕欣

单位:河北科技大学 信息科学与工程学院, 石家庄 050000

关键词:并发程序,数据竞争,控制流分析,别名分析,程序切片

基金:国家自然科学基金资助项目(61440012);河北省自然科学基金资助项目(F2016208007);河北省基础研究计划重点基础专项(18960106D)。

针对数据竞争检测过程中的误报和漏报问题,提出一种静态数据竞争检测方法。首先,使用控制流分析自动构造线程内和线程间函数调用图;然后,收集线程内变量访问事件信息,定义竞争产生条件并分析检测出所有可能的竞争;其次,为了提高检测的准确率,进行别名变量和别名锁的分析降低漏报和误报;最后,通过控制流分析来抽象访问事件之间的时序关系,并结合程序切片技术对访问事件的发生序关系进行判断,以此避免因忽略线程交互带来的误报。依据该方法,使用Java语言在Soot软件分析框架下实现了一个数据竞争检测工具。在实验中,对JGF和IBM Contest基准测试套件中的raytracer和airline等程序进行数据竞争检测,并与目前已有的数据竞争检测算法和工具(HB算法和RVPredict)进行对比。实验结果表明,与HB算法和RVPredict工具相比,该方法检测到的数据竞争总数分别增加了81%和16%,数据竞争检测的准确率分别提升了约14%和19%,有效地避免了数据竞争检测中的漏报和误报现象。

来源:2019年第1期

《计算机应用》期刊编辑部

查看计算机应用杂志2019年第1期

联系我们

  • 地址:四川天府新区兴隆街道科智路1369号
  • 电话:028-85224283-803
  • E-mail:bjb@joca.cn

咨询工作人员