一句话:本文证明两类因果一致共享内存下有限状态并发程序的安全性验证可判定,并给出基于有损操作语义的判定方法。
本文研究在弱于顺序一致性的因果一致共享内存模型下,有限状态并发程序的安全性验证是否可判定。作者针对两种标准因果一致性变体,分别构造等价的“有损”操作语义:其状态记录可能的未来而非执行历史。利用共享内存因果性原则,他们证明这些语义构成良结构迁移系统(well-structured transition systems),从而得到安全性验证的可判定性。与此形成对比,在 C/C++11 的 Release/Acquire 片段这一介于两种模型之间的因果一致变体下,该问题不可判定;但作者进一步证明,对于无写/写竞争的程序,三种变体一致,因此 Release/Acquire 下这类程序的安全性验证仍可判定。
While causal consistency is one of the most fundamental consistency models weaker than sequential consistency, the decidability of safety verification for (finite-state) concurrent programs running under causally consistent shared memories is still unclear. In this article, we establish the decidability of this problem for two standard and well-studied variants of causal consistency. To do so, for each variant, we develop an equivalent “lossy” operational semantics, whose states track possible futures, rather than more standard semantics that record the history of the execution. We show that these semantics constitute well-structured transition systems, thus enabling decidable verification. Based on a key observation, which we call the “shared-memory causality principle,” the two novel semantics may also be of independent use in the investigation of weakly consistent models and their verification. Interestingly, our results are in contrast to the undecidability of this problem under the Release/Acquire fragment of the C/C++11 memory model, which forms another variant of causally consistent memory that, in terms of allowed outcomes, lies strictly between the two models studied here. Nevertheless, we show that all these three variants coincide for write/write-race-free programs, which implies the decidability of verification for such programs under Release/Acquire.