Program executions under relaxed memory model (rmm) semantics are significantly more difficult to analyze; the rmm semantics result in out of order execution of program events leading to an explosion of state-space. Dynamic partial order reduction (DPOR) is a powerful technique to address such a state-space explosion and has been used to verify programs under rmm such as TSO, PSO, and POWER. Central to such DPOR techniques is the notion of trace-equivalence, which is computed based on the independence relation among program events. We propose a coarser notion of rmm-aware trace equivalence called observational equivalence (OE). Two program behaviors are observationally equivalent if every read event reads the same value in both the behaviors. We propose a notion of observational independence (OI) and provide an algorithmic construction to compute trace equivalence (modulo OI) efficiently. We also demonstrate the effectiveness of DPOR with OE on threaded C/C++ programs by first providing an elaborate happensbefore (hb) relation for capturing the C/C++ concurrency semantics. We implement the presented technique in a runtime model checker called Drista. Our experiments reflect that (i) when compared to existing nonOE techniques, we achieve significant savings in the number of traces explored under OE, and (ii) our treatment of C/C++ concurrency is more extensive than the existing state-of-the-art techniques.
翻译:在宽松的记忆模型(rmm)语义学下,程序执行过程在宽松的记忆模型(rmm)语义学下,分析起来要困难得多;语义学导致程序事件执行的秩序导致州空间爆炸的爆炸。动态部分排序(DPOR)是处理这种州空间爆炸的有力技术,并被用于核查程序,如TSO、PSO和POWER。这种DPOR技术的核心是追踪等同概念,它是根据方案事件的独立性关系计算的。我们提出了一种粗略的Rmm-aware追踪等同概念,称为观测等同(OE)。如果每个阅读事件在两种行为中都有同样的价值,则两种程序行为在观察上是等同的。我们提出了观察独立(OI)的概念,并提供了一种算法结构构造,以有效地计算等等同(Modulo OI OI) 。我们还展示了DPOR和OE 在线性C/C++程序上与OE 的等同概念的有效性,首先提供了详细的预想(h) 与捕捉捉到C/C+conmantictict(h) rodual Te) 相比,在运行中我们现有的货币技术中,我们现有的C-C-C-tratitutionroticreal 是在进行重大的实验中,我们现有的技术,我们在进行重大的C-trac-tatic-tratical 。我们进行重大的实验,我们现有的技术,我们在进行重大的实验。我们现有的技术,我们在进行重大的C-toal-traal-toal-toal-toal-tratratratatic-tra 。