Skip to main content
QUICK REVIEW

[论文解读] On the Completeness of Verifying Message Passing Programs under Bounded Asynchrony

Ahmed Bouajjani, Constantin Enea|arXiv (Cornell University)|Apr 18, 2018
Formal Methods in Verification参考文献 28被引用 7
一句话总结

本文提出了一种有界分析框架,用于在存在无界FIFO缓冲区的情况下验证消息传递程序,通过定义$k$-同步计算——即最多$k$个发送操作序列随后是相应的接收操作——实现。该文提出了一种$PSPACE$-完全的决策过程来判断$k$-同步性,并证明了对流有界程序而言,存在此类$k$的可判定性,从而在有界异步环境下实现了完整验证。

ABSTRACT

We address the problem of verifying message passing programs, defined as a set of parallel processes communicating through unbounded FIFO buffers. We introduce a bounded analysis that explores a special type of computations, called k-synchronous. These computations can be viewed as (unbounded) sequences of interaction phases, each phase allowing at most k send actions (by different processes), followed by a sequence of receives corresponding to sends in the same phase. We give a procedure for deciding k-synchronizability of a program, i.e., whether every computation is equivalent (has the same happens-before relation) to one of its k-synchronous computations. We also show that reachability over k-synchronous computations and checking k-synchronizability are both PSPACE-complete. Furthermore, we introduce a class of programs called {\em flow-bounded} for which the problem of deciding whether there exists a k>0 for which the program is k-synchronizable, is decidable.

研究动机与目标

  • 解决在完全异步环境下验证具有无界FIFO缓冲区的消息传递程序的不可判定性问题。
  • 开发一种有界分析技术,捕捉所有相关行为,而无需探索所有交错执行。
  • 定义并判定$k$-同步性——即所有计算是否等价于$k$-同步计算。
  • 识别一个可判定子类(流有界程序),使得存在$k$-同步边界的存在性可判定。
  • 为广泛的一类并发消息传递系统提供一种完整且可终止的验证方法。

提出的方法

  • 引入$k$-同步计算,即由不同进程执行的最多$k$个发送操作,随后是相应的接收操作。
  • 将$k$-同步性定义为:每个计算在发生前因关系上等价于某个$k$-同步计算。
  • 提出一种基于冲突图分析和推导依赖图中环检测的$k$-同步性决策过程。
  • 通过引入额外布尔变量来强制阶段顺序,使用代码注入技术模拟$k$-同步语义。
  • 使用监视器作为辅助进程,观察$k$-交换序列并检测$k$-同步性违反。
  • 将$k$-同步性与$k$-同步计算上的可达性问题归约为有界通道下的状态可达性问题,证明了$PSPACE$-完全性。

实验结果

研究问题

  • RQ1我们能否判定某个消息传递程序的所有计算是否等价于某个固定$k$的$k$-同步计算?
  • RQ2对于给定的$k$,判定$k$-同步性的问题是可判定且可高效求解的吗?
  • RQ3在哪些类型的消息传递程序类中,存在一个有限的$k$,使得程序是$k$-同步的?
  • RQ4我们能否将无界异步环境下的可达性验证归约为具有保证完整性的有界分析?
  • RQ5与现有的部分序或有界缓冲技术相比,该方法在表达能力和完备性方面有何表现?

主要发现

  • 对于给定$k$,判定$k$-同步性的问题是$PSPACE$-完全的。
  • $k$-同步计算上的可达性问题同样是$PSPACE$-完全的。
  • 对于流有界程序,存在$k>0$使得程序是$k$-同步的,其存在性是可判定的。
  • 该方法在真实世界示例(电梯、两阶段提交、德国协议、OSR)上进行了评估,$k$值在1到4之间,每个用例耗时10至25分钟。
  • 实验结果证实了使用代码注入和Spin模型检测方法的可行性。
  • 该方法在有界异步环境下提供了完整验证,避免了完全异步环境下的不可判定性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。