Page 121 - 《软件学报》2021年第7期
P. 121

软件学报 ISSN 1000-9825, CODEN RUXUEW                                       E-mail: jos@iscas.ac.cn
                 Journal of Software,2021,32(7):20392055 [doi: 10.13328/j.cnki.jos.006260]   http://www.jos.org.cn
                 ©中国科学院软件研究所版权所有.                                                         Tel: +86-10-62562563


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

                              1
                                      2
                                                                      4
                                                      1
                                                              3
                                              1
                      1
                 高凤娟 ,   王   豫 ,   周金果 ,   徐安孜 ,   王林章 ,   吴荣鑫 ,   张   川 ,   苏振东   5
                 1
                 (计算机软件新技术国家重点实验室(南京大学),江苏  南京  210023)
                 2
                 (蚂蚁集团,广东  深圳  518000)
                 3 (厦门大学  信息学院,福建  厦门   361005)
                 4 (Department of Computer Science and Engineering, The Hongkong University of Science and Technology, Hongkong, China)
                 5
                 (Department of Computer Science (ETH Zurich), Zürich, Switzerland)
                 通讯作者:  王林章, E-mail: lzwang@nju.edu.cn

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


                 中文引用格式:  高凤娟,王豫,周金果,徐安孜,王林章,吴荣鑫,张川,苏振东.高精度的大规模程序数据竞争检测方法.软件学报,
                 2021,32(7):2039–2055. http://www.jos.org.cn/1000-9825/6260.htm
                 英文引用格式: Gao FJ, Wang Y, Zhou JG, Xu AZ, Wang LZ, Wu RX, Zhang C, Su ZD. High-precision data race detection method
                 for large scale programs. Ruan Jian Xue Bao/Journal of Software, 2021,32(7):20392055 (in Chinese). http://www.jos.org.cn/1000-
                 9825/6260.htm

                 High-precision Data Race Detection Method for Large Scale Programs
                                                          2
                              1
                                          1
                                                                                                       3
                                                                                        1
                                                                     1
                 GAO Feng-Juan ,  WANG  Yu ,  ZHOU Jin-Guo ,  XU An-Zi ,   WANG Lin-Zhang ,  WU Rong-Xin ,
                                            5
                             4
                 ZHANG Charles ,   SU Zhen-Dong
                 1 (State Key Laboratory for Novel Software Technology (Nanjing University), Nanjing 210023, China)
                 2 (ANT Group, Shenzheng 518000, China)

                     高凤娟和王豫为共同第一作者,作者顺序依据姓氏首字母排序.
                     基金项目:  国家自然科学基金(62032010)
                    Foundation item: National Natural Science Foundation of China (62032010)
                    本文由“面向非确定性的软件质量保障方法与技术”专题特约编辑陈俊洁副教授、汤恩义副教授、何啸副教授以及马晓星教授
                 推荐.
                    收稿时间: 2020-09-05;  修改时间: 2020-10-26;  采用时间: 2020-12-14; jos 在线出版时间: 2021-01-22
   116   117   118   119   120   121   122   123   124   125   126