论文标题
耐用性不透明度的模块化验证
Modularising Verification Of Durable Opacity
论文作者
论文摘要
非挥发记忆(NVM),也称为持续记忆,是一种新兴的内存范式,即使在功率损失后,也可以保留其内容。 NVM被普遍期望变得无处不在,硬件体系结构已经为NVM编程提供了支持。这激发了人们对新颖概念的设计的兴趣,从而确保面对持久性和相关验证方法的发展,确保并发编程抽象的正确性。 软件交易内存(STM)是一个关键的编程抽象,可同时访问共享状态。以类似于线性化的方式,如并发数据结构的正确性条件,对STMS的正确性有一个已称为不透明度的正确性。我们最近提出了耐用的不透明度作为无挥发性内存的环境的自然扩展。加上这种新颖的正确性条件,我们设计了一种基于改进的验证技术。在本文中,我们将此工作扩展到两个方向。首先,我们开发了不透明的不透明版本的Norec(没有所有权记录),这是一种现有的STM算法被证明是不透明的。其次,我们通过将内存访问的持久性证明与不透明度证明分开,使我们现有的验证方法模块化。对于Norec,这使我们可以重新使用现有的不透明度证明,并通过证明访问共享状态的持久性的证明。
Non-volatile memory (NVM), also known as persistent memory, is an emerging paradigm for memory that preserves its contents even after power loss. NVM is widely expected to become ubiquitous, and hardware architectures are already providing support for NVM programming. This has stimulated interest in the design of novel concepts ensuring correctness of concurrent programming abstractions in the face of persistency and in the development of associated verification approaches. Software transactional memory (STM) is a key programming abstraction that supports concurrent access to shared state. In a fashion similar to linearizability as the correctness condition for concurrent data structures, there is an established notion of correctness for STMs known as opacity. We have recently proposed durable opacity as the natural extension of opacity to a setting with non-volatile memory. Together with this novel correctness condition, we designed a verification technique based on refinement. In this paper, we extend this work in two directions. First, we develop a durably opaque version of NOrec (no ownership records), an existing STM algorithm proven to be opaque. Second, we modularise our existing verification approach by separating the proof of durability of memory accesses from the proof of opacity. For NOrec, this allows us to re-use an existing opacity proof and complement it with a proof of the durability of accesses to shared state.