首页 | 官方网站   微博 | 高级检索  
     

高精度的大规模程序数据竞争检测方法
引用本文:高凤娟,王豫,周金果,徐安孜,王林章,吴荣鑫,张川,苏振东. 高精度的大规模程序数据竞争检测方法[J]. 软件学报, 2021, 32(7): 2039-2055
作者姓名:高凤娟  王豫  周金果  徐安孜  王林章  吴荣鑫  张川  苏振东
作者单位:计算机软件新技术国家重点实验室(南京大学),江苏南京210023;蚂蚁集团,广东深圳518000;厦门大学信息学院,福建厦门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
基金项目:国家自然科学基金(62032010)
摘    要:随着技术的不断发展,软件系统的非确定性(uncertainty)不断增强,数据竞争是并发系统这一类典型的非确定性软件系统中常见的缺陷.尽管数据竞争静态检测近年来取得了巨大进展,但其面临的重要问题仍然存在.先前的静态技术要么以分析精度为代价达到高扩展性,要么由于高精度分析而导致可扩展性问题.提出一种解决上述矛盾的分段分析...

关 键 词:数据竞争  MHP分析  静态分析
收稿时间:2020-09-05
修稿时间:2020-10-26

High-precision Data Race Detection Method for Large Scale Programs
GAO Feng-Juan,WANG Yu,ZHOU Jin-Guo,XU An-Zi,WANG Lin-Zhang,WU Rong-Xin,ZHANG Charles,SU Zhen-Dong. High-precision Data Race Detection Method for Large Scale Programs[J]. Journal of Software, 2021, 32(7): 2039-2055
Authors:GAO Feng-Juan  WANG Yu  ZHOU Jin-Guo  XU An-Zi  WANG Lin-Zhang  WU Rong-Xin  ZHANG Charles  SU Zhen-Dong
Affiliation:State Key Laboratory for Novel Software Technology (Nanjing University), Nanjing 210023, China;ANT Group, Shenzheng, China;School of Informatics, National Demonstrative Software School (Xiamen University), Xiamen 361005, China;Department of Computer Science and Engineering (The Hongkong University of Science and Technology), Hongkong, China; Department of Computer Science (ETH Zurich), Zürich, Switzerland
Abstract: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.
Keywords:data race  MHP analysis  static analysis
本文献已被 万方数据 等数据库收录!
点击此处可从《软件学报》浏览原始摘要信息
点击此处可从《软件学报》下载全文
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司    京ICP备09084417号-23

京公网安备 11010802026262号