软件学报

北大核心,INSPEC,JST,Pж(AJ),EI

国内刊号:11-2560/TP

国际刊号:1000-9825

软件学报杂志2021年第7期:高精度的大规模程序数据竞争检测方法

发布日期:

作者:高凤娟,王豫,周金果,徐安孜,王林章,吴荣鑫,张川,苏振东

单位:高凤娟,计算机软件新技术国家重点实验室(南京大学), 江苏 南京 21002311,王豫,计算机软件新技术国家重点实验室(南京大学), 江苏 南京 21002302,周金果,蚂蚁集团, 广东 深圳 51800003,徐安孜,计算机软件新技术国家重点实验室(南京大学), 江苏 南京 21002304,王林章,计算机软件新技术国家重点实验室(南京大学), 江苏 南京 21002305,吴荣鑫,厦门大学 信息学院, 福建 厦门 36100506,张川,Department of Computer Science and Engineering, The Hongkong University of Science and Technology, Hongkong, China07,苏振东,Department of Computer Science (ETH Zurich), Zürich, Switzerland08

关键词:数据竞争;MHP分析;静态分析

基金:国家自然科学基金(62032010)

随着技术的不断发展,软件系统的非确定性(uncertainty)不断增强,数据竞争是并发系统这一类典型的非确定性软件系统中常见的缺陷.尽管数据竞争静态检测近年来取得了巨大进展,但其面临的重要问题仍然存在.先前的静态技术要么以分析精度为代价达到高扩展性,要么由于高精度分析而导致可扩展性问题.提出一种解决上述矛盾的分段分析方法——GUARD.它首先基于程序值流进行轻量级上下文敏感的数据访问分析,以识别出候选的数据竞争子路径而非完整的程序路径.接下来,进行可能并行执行(may-happen-in-parallel,即MHP)分析来确定程序中的两个数据访问操作是否可能会同时执行.MHP分析基于线程流图(TFG)将线程信息进行编码以便于高效地查询各个子路径之间的并发关系.最后,对于每条存在MHP数据访问的子路径,进行重量级路径敏感分析以确定数据竞争路径的可行性.针对12个开源项目的实验评估显示,GUARD能够在1 870s内完成对130万行代码的工业规模项目的检测,且平均误报率为16.0%.此外,GUARD的分析速度更快,比现有的前沿技术平均快了6.08倍,并且显著降低了误报率.除此之外,GUARD在其中还发现了12个数据竞争漏洞.将它们全部报告给了开发者,其中8个已得到了确认.

来源:2021年第7期

《软件学报》期刊编辑部

查看软件学报杂志2021年第7期

联系我们

  • 地址:北京8718信箱
  • 电话:010-62562563
  • E-mail:jos (a) iscas. ac. cn

咨询工作人员