We study abstraction for crash-resilient concurrent objects using non-volatile memory (NVM). We develop a library correctness criterion that is sound for ensuring contextual refinement in this setting, thus allowing clients to reason about library behaviors in terms of their abstract specifications, and library developers to verify their implementations against the specifications abstracting away from particular client programs. As a semantic foundation we employ a recent NVM model, called Persistent Sequential Consistency, and extend its language and operational semantics with useful specification constructs. The proposed correctness criterion accounts for NVM-related interactions between client and library code due to explicit persist instructions, and for calling policies enforced by libraries. We illustrate our approach on two implementations and specifications of simple persistent objects with different prototypical durability guarantees. Our results provide the first approach to formal compositional reasoning under NVM.
翻译:我们用非挥发性内存(NVM)研究崩溃抗御性共生物体的抽象性。我们开发了一种图书馆正确性标准,该标准对于确保在这一环境中对背景进行完善,从而使客户能够根据抽象的规格解释图书馆的行为,并使图书馆开发者能够根据从特定客户程序抽取的规格来核查其执行情况。作为一个语义基础,我们使用最近的NVM模型,称为 " 持续序列一致性 ",并将其语言和操作语义扩展为有用的规格结构。由于明确持续的指示,拟议中的客户与图书馆代码之间与NVM相关的互动的正确性标准账户,以及要求图书馆执行的政策。我们说明了我们对于具有不同原质持久性保证的简单持久性物体的两种实施和规格的方法。我们的结果为NVM下的正式构成推理提供了第一种方法。