当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Modular Verification of Concurrent Programs via Sequential Model Checking
arXiv - CS - Programming Languages Pub Date : 2021-06-01 , DOI: arxiv-2106.00732
Dan Rasin, Orna Grumberg, Sharon Shoham

This work utilizes the plethora of work on verification of sequential programs for the purpose of verifying concurrent programs. We reduce the verification of a concurrent program to a series of verification tasks of sequential programs. Our approach is modular in the sense that each sequential verification task roughly corresponds to the verification of a single thread, with some additional information about the environment in which it operates. Information regarding the environment is gathered during the run of the algorithm, by need. While our approach is general, it specializes on concurrent programs where the threads are structured hierarchically. The idea is to exploit the hierarchy in order to minimize the amount of information that needs to be transferred between threads. To that end, we verify one of the threads, considered "main", as a sequential program. Its verification process initiates queries to its "environment" (which may contain multiple threads). Those queries are answered by sequential verification, if the environment consists of a single thread, or, otherwise, by applying the same hierarchical algorithm on the environment. Our technique is fully automatic, and allows us to use any off-the-shelf sequential model checker. We implemented our technique in a tool called CoMuS and evaluated it against established tools for concurrent verification. Our experiments show that it works particularly well on hierarchically structured programs.

中文翻译:

通过顺序模型检查对并发程序进行模块化验证

这项工作利用了大量的顺序程序验证工作来验证并发程序。我们将并发程序的验证简化为一系列顺序程序的验证任务。我们的方法是模块化的,因为每个顺序验证任务大致对应于单个线程的验证,以及一些关于它运行的环境的附加信息。在算法运行期间根据需要收集有关环境的信息。虽然我们的方法是通用的,但它专门用于线程分层结构的并发程序。这个想法是利用层次结构来最小化需要在线程之间传输的信息量。为此,我们验证其中一个线程,认为“ 如果环境由单个线程组成,或者,通过在环境上应用相同的分层算法。我们的技术是全自动的,允许我们使用任何现成的顺序模型检查器。我们在名为 CoMuS 的工具中实现了我们的技术,并针对已建立的并发验证工具对其进行了评估。我们的实验表明它在分层结构的程序上特别有效。如果环境由单个线程组成,或者,通过在环境上应用相同的分层算法。我们的技术是全自动的,允许我们使用任何现成的顺序模型检查器。我们在名为 CoMuS 的工具中实现了我们的技术,并针对已建立的并发验证工具对其进行了评估。我们的实验表明它在分层结构的程序上特别有效。
更新日期:2021-06-03
down
wechat
bug