Checking Just Pairs of Threads for Efficient and Scalable Incremental Verification of Multithreaded Programs

P. Parízek, Filip Kliber
{"title":"Checking Just Pairs of Threads for Efficient and Scalable Incremental Verification of Multithreaded Programs","authors":"P. Parízek, Filip Kliber","doi":"10.1145/3573074.3573082","DOIUrl":null,"url":null,"abstract":"Many techniques of automated verification target multithreaded programs, because subtle interactions between threads may trigger concurrency errors such as deadlocks and data races. However, techniques and tools involving systematic exploration of the whole space of possible thread interleavings do not scale to large software systems, despite various clever algorithmic optimizations. A viable approach is to use incremental verification techniques that, in each run, focus just on the recently modified code and the relatively small number of affected execution traces, and therefore can provide results (bug reports) very quickly. In this paper we present a new algorithm for incremental verification of multithreaded programs based on the pairwise approach, whose key idea is systematic exploration of all possible thread interleavings just for specific relevant pairs of threads. We implemented the algorithm with Java Pathfinder as the backend verification tool, and evaluated it on several multithreaded Java programs. Results show that our incremental algorithm (1) can find errors very fast, (2) greatly reduces time needed for complete safety verification, and (3) it can find the same errors as full verification of the whole state space.","PeriodicalId":432885,"journal":{"name":"ACM SIGSOFT Software Engineering Notes","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-01-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM SIGSOFT Software Engineering Notes","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3573074.3573082","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

Many techniques of automated verification target multithreaded programs, because subtle interactions between threads may trigger concurrency errors such as deadlocks and data races. However, techniques and tools involving systematic exploration of the whole space of possible thread interleavings do not scale to large software systems, despite various clever algorithmic optimizations. A viable approach is to use incremental verification techniques that, in each run, focus just on the recently modified code and the relatively small number of affected execution traces, and therefore can provide results (bug reports) very quickly. In this paper we present a new algorithm for incremental verification of multithreaded programs based on the pairwise approach, whose key idea is systematic exploration of all possible thread interleavings just for specific relevant pairs of threads. We implemented the algorithm with Java Pathfinder as the backend verification tool, and evaluated it on several multithreaded Java programs. Results show that our incremental algorithm (1) can find errors very fast, (2) greatly reduces time needed for complete safety verification, and (3) it can find the same errors as full verification of the whole state space.
检查线程对对多线程程序的有效和可扩展的增量验证
许多自动验证技术都针对多线程程序,因为线程之间的微妙交互可能会触发并发性错误,比如死锁和数据争用。然而,尽管有各种巧妙的算法优化,涉及系统地探索可能的线程交织的整个空间的技术和工具并不适用于大型软件系统。一种可行的方法是使用增量验证技术,在每次运行中,只关注最近修改的代码和相对较少的受影响的执行跟踪,因此可以非常快速地提供结果(bug报告)。本文提出了一种基于成对方法的多线程程序增量验证新算法,其核心思想是系统地探索所有可能的线程交织,仅针对特定的相关线程对。我们使用Java Pathfinder作为后端验证工具实现了该算法,并在多个多线程Java程序上对其进行了评估。结果表明,我们的增量算法(1)可以非常快地发现错误,(2)大大减少了完全安全验证所需的时间,(3)可以发现与整个状态空间完全验证相同的错误。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信