Weak memory models describe the semantics of concurrent programs on modern multi-core architectures. Reasoning techniques for concurrent programs, like Owicki-Gries-style proof calculi, have to be based on such a semantics, and hence need to be freshly developed for every new memory model. Recently, a more uniform approach to reasoning has been proposed which builds correctness proofs on the basis of a number of core axioms. This allows to prove program correctness independent of memory models, and transfers proofs to specific memory models by showing these to instantiate all axioms required in a proof. The axiomatisation is built on the notion of thread views as first class elements in the semantics. In this paper, we investigate the applicability of this form of axiomatic reasoning to the Partial Store Order (PSO) memory model. As the standard semantics for PSO is not based on views, we first of all provide a view-based semantics for PSO and prove it to coincide with the standard semantics. We then show the new view-based semantics to satisfy all but one axiom. The missing axiom refers to message-passing (MP) abilities of memory models, which PSO does not guarantee. As a consequence, only proofs without usage of the MP axiom are transferable to PSO. We illustrate the reasoning technique by proving correctness of a litmus test employing a fence to ensure message passing.
翻译:微弱的记忆模型描述现代多核心结构中同时程序语义的语义。 类似 Owicki- Gries- system 校准计算计算器等同时程序的合理技术必须建立在这种语义学的基础上, 因此需要为每一个新的记忆模型进行新开发。 最近, 提出了一个更统一的推理方法, 以一些核心轴值为基础建立正确性证明。 这样可以证明程序是否正确, 并且通过展示这些来向特定记忆模型传输证据, 以显示在证据中需要的所有正弦值来显示所有正弦值。 xixom化的理论必须建立在作为语义学中头等元素的线索视图概念上。 在本文中, 我们调查了这种形式对“ 部分存储命令” (PSO) 记忆模型的共性推理的适用性。 由于PSO的标准语义不是基于观点的, 我们首先为 PSO提供了一种基于 We 的语义学术语, 并证明它与标准的语义学相吻合。 我们随后展示了基于新观点的“ 流” 表达的语义学概念概念概念概念概念概念概念, 而不是“ 选择“ 学习“ ” 学习“ ” 学习“ ” 逻辑” 的逻辑” 逻辑”,, 它只能代表一个“ 的逻辑“ 的逻辑” 。