主页期刊介绍编委会编辑部服务介绍道德声明在线审稿编委办公English
2022年专刊出版计划 微信服务介绍 最新一期:2021年第2期
     
在线出版
各期目录
纸质出版
分辑系列
论文检索
论文排行
综述文章
专刊文章
美文分享
各期封面
E-mail Alerts
RSS
旧版入口
中国科学院软件研究所
  
投稿指南 问题解答 下载区 收费标准 在线投稿
高凤娟,王豫,周金果,徐安孜,王林章,吴荣鑫,张川,苏振东.GUARD:上下文敏感的大规模程序低误报数据竞争检测方法.软件学报,2021,32(7):15-0
GUARD:上下文敏感的大规模程序低误报数据竞争检测方法
GUARD:Scalable, Context-Sensitive, Guarded Data Race Detection
投稿时间:2020-09-05  修订日期:2020-10-26
DOI:10.13328/j.cnki.jos.006260
中文关键词:  数据竞争  MHP分析  静态分析
英文关键词:data race  MHP analysis  static analysis
基金项目:国家自然科学基金(62032010)
作者单位E-mail
高凤娟 计算机软件新技术国家重点实验室(南京大学), 江苏 南京 210023  
王豫 计算机软件新技术国家重点实验室(南京大学), 江苏 南京 210023  
周金果 蚂蚁集团, 广东 深圳  
徐安孜 计算机软件新技术国家重点实验室(南京大学), 江苏 南京 210023  
王林章 计算机软件新技术国家重点实验室(南京大学), 江苏 南京 210023 lzwang@nju.edu.cn 
吴荣鑫 厦门大学 信息学院 国家示范性软件学院, 福建 厦门 361005  
张川 香港科技大学 计算机科学与工程系, 香港  
苏振东 苏黎世联邦理工学院 计算机科学系, 瑞士  
摘要点击次数: 172
全文下载次数: 64
中文摘要:
      随着技术的不断发展,软件系统的非确定性(Uncertainty)不断增强,数据竞争是并发系统这一类典型的非确定性软件系统中常见的缺陷.尽管数据竞争静态检测近年来取得了巨大进展,但其面临的重要问题仍然存在.先前的静态技术要么以分析精度为代价达到高扩展性,要么由于高精度分析而导致可扩展性问题.本文提出一种解决上述矛盾的分段分析方法——GUARD.它首先基于程序值流进行轻量级上下文敏感的数据访问分析,以识别出候选的数据竞争子路径而非完整的程序路径.接下来,进行可能并行执行(May-Happen-in-Parallel,即MHP)分析来确定程序中的两个数据访问操作是否可能会同时执行.MHP分析基于线程流图(TFG)将线程信息进行编码以便于高效地查询各个子路径之间的并发关系.最后,对于每条存在MHP数据访问的子路径,进行重量级路径敏感分析以确定数据竞争路径的可行性.针对12个开源项目的实验评估显示GUARD能够在1870秒内完成对130万行代码的工业规模项目的检测,且平均误报率为16.0%.此外GUARD的分析速度更快,比现有的前沿技术平均快了6.08倍并且显著降低误报率.除此之外,GUARD在其中还发现了12个数据竞争漏洞.我们将它们全部报告给了开发者,其中8个已得到了确认.
英文摘要:
      With the development of techniques, the uncertainty in software systems are continuously increasing. Data race is a typical bug in current programs, which is a classic type of uncertainty programs. Despite significant progress in recent years, the important problem of practical static race detection remains open. Previous static techniques either suffer from a high false positive rate due to the compromise of precision, or scalability issues caused by a highly precise analysis. In this paper, we present GUARD, a staged approach to resolve this paradox. It first performs a lightweight context-sensitive data access analysis, based on the value flow of a program, to identify the candidate data race subpaths instead of the whole program paths. Second, we employ May-Happen-in-Parallel (MHP) analysis to identify whether two data accesses in a program may execute concurrently. This stage is scalable, due to the design of the thread flow graph (TFG), that encodes thread information to query MHP relationship of the subpaths. Finally, for each subpath whose two data accesses are MHP, we apply heavyweight path-sensitive analysis to verify the feasibility of the data races. The evaluation demonstrates that GUARD can finish checking industrial-sized projects, up to 1.3MLoC, in 1,870 seconds with an average false positive rate of 16.0%. Moreover, GUARD is faster than state-of-the-art techniques with the average speedup 6.08X and significantly fewer false positives. Besides, GUARD has found 12 new race bugs in real-world programs. We report all of them to the developers and 8 of them have been confirmed.
HTML  下载PDF全文  查看/发表评论  下载PDF阅读器
 

京公网安备 11040202500064号

主办单位:中国科学院软件研究所 中国计算机学会 京ICP备05046678号-4
编辑部电话:+86-10-62562563 E-mail: jos@iscas.ac.cn
Copyright 中国科学院软件研究所《软件学报》版权所有 All Rights Reserved
本刊全文数据库版权所有,未经许可,不得转载,本刊保留追究法律责任的权利