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

基于约束依赖图的并发程序模型检测工具
引用本文:苏杰,杨祖超,田聪,段振华. 基于约束依赖图的并发程序模型检测工具[J]. 软件学报, 2023, 34(7): 3064-3079
作者姓名:苏杰  杨祖超  田聪  段振华
作者单位:西安电子科技大学 计算机理论与技术研究所, 陕西 西安 710071;ISN国家重点实验室(西安电子科技大学), 陕西 西安 710071
基金项目:科技创新2030—“新一代人工智能”重大项目(2018AAA0103202);国家自然科学基金(62192730-62192734,61732013,62172322).
摘    要:模型检测是一种基于状态空间搜索的自动化验证方法,可以有效地提升程序的质量.然而,由于并发程序中线程调度的不确定性以及数据同步的复杂性,对该类程序验证时存在更为严重的状态空间爆炸问题.目前,大多采用基于独立性分析的偏序约简技术缩小并发程序探索空间.针对粗糙的独立性分析会显著增加需探索的等价类路径问题,开发了一款可细化线程迁移依赖性分析的并发程序模型检测工具CDG4CPV.首先,构造了待验证可达性性质对应的规约自动机;随后,根据线程迁移边的类型和共享变量访问信息构建约束依赖图;最后,利用约束依赖图剪裁控制流图在展开过程中的独立可执行分支.在SV-COMP 2022竞赛的并发程序数据集上进行了对比实验,并对工具的效率进行比较分析.实验结果表明,该工具可以有效地提升并发程序模型检测的效率.特别是,与基于BDD的程序分析算法相比,该工具可使探索状态数目平均减少91.38%,使时间和空间开销分别平均降低86.25%和69.80%.

关 键 词:约束依赖图  偏序约简  并发程序  模型检测  工具
收稿时间:2022-09-04
修稿时间:2022-10-08

Model Checking Tool for Concurrent Program Based on Constrained Dependency Graph
SU Jie,YANG Zu-Chao,TIAN Cong,DUAN Zhen-Hua. Model Checking Tool for Concurrent Program Based on Constrained Dependency Graph[J]. Journal of Software, 2023, 34(7): 3064-3079
Authors:SU Jie  YANG Zu-Chao  TIAN Cong  DUAN Zhen-Hua
Affiliation:Institute of Computing Theory and Technology, Xidian University, Xi''an 710071, China;State Key Laboratory of Integrated Service Networks (Xidian University), Xi''an 710071, China
Abstract:Model checking is an automatic verification approach based on the state-space exploration strategy, which can effectively improve the quality of a program. However, due to the non-deterministic of thread scheduling and the complexity of data synchronization, the state-space explosion problem in concurrent program verification is more serious. At present, the independence analysis based partial-order reduction techniques have been widely applied to reduce the exploration space of concurrent program verification tasks. In the face of the problem that imprecise independence analysis will significantly increase the number of equivalent trace classes to be explored, a concurrent program model checking tool CDG4CPV that can refine the dependencies between thread transitions has been developed. Firstly, we construct a specification automata corresponding to the reachability property. Then, a constrained dependency graph is constructed according to the types of transition edges of threads and the access information of shared variables. Finally, the constrained dependency graph is utilized to prune the independent and enabled branches when unwiding the control-flow graph. We have carried out experiments on the concurrency track of SV-COMP 2022 benchmark suite, and the efficiency of our tool is also compared and analyzed. Empirical results show that the proposed tool can effectively improve the efficiency of model checking for concurrent programs. Specially, compared with the BDD-based program analysis algorithm, our tool reduces the number of explored states by 91.38%, and the time and memory overheads are reduced by 86.25% and 69.80%, respectively.
Keywords:constrained dependency graph  partial-order reduction  concurrent program  model checking  tool
点击此处可从《软件学报》浏览原始摘要信息
点击此处可从《软件学报》下载全文
设为首页 | 免责声明 | 关于勤云 | 加入收藏

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

京公网安备 11010802026262号