首页> 中文期刊>软件学报 >高精度的大规模程序数据竞争检测方法

高精度的大规模程序数据竞争检测方法

     

摘要

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

著录项

  • 来源
    《软件学报》|2021年第7期|2039-2055|共17页
  • 作者单位

    计算机软件新技术国家重点实验室(南京大学) 江苏南京210023;

    计算机软件新技术国家重点实验室(南京大学) 江苏南京210023;

    蚂蚁集团 广东深圳518000;

    计算机软件新技术国家重点实验室(南京大学) 江苏南京210023;

    计算机软件新技术国家重点实验室(南京大学) 江苏南京210023;

    厦门大学信息学院 福建厦门361005;

    Department of Computer Science and Engineering The Hongkong University of Science and Technology Hongkong China;

    Department of Computer Science (ETH Zurich) Zürich Switzerland;

  • 原文格式 PDF
  • 正文语种 chi
  • 中图分类 程序设计、软件工程;
  • 关键词

    数据竞争; MHP分析; 静态分析;

  • 入库时间 2023-07-25 13:18:38

相似文献

  • 中文文献
  • 外文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号