一句话:将持久不透明性验证模块化,分离持久性证明与不透明性证明,并给出 NOrec 的持久不透明版本。
非易失性内存(NVM)在掉电后仍保留内容,为并发编程抽象的正确性验证带来新挑战。软件事务内存(STM)通常以不透明性(opacity)作为正确性条件;作者此前提出持久不透明性(durable opacity)并给出基于精化(refinement)的验证技术。本文从两方面扩展:一是为已有 STM 算法 NOrec(无所有权记录)开发持久不透明版本;二是将原有验证方法模块化,把共享内存访问的持久性证明与不透明性证明分离。对 NOrec,该模块化使已有不透明性证明可被复用,并补充持久性证明,从而降低验证持久 STM 的证明负担。
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.
@article{paperbot1681,
title = {Modularising Verification Of Durable Opacity},
author = {Eleni Bila and John Derrick and Simon Doherty and Brijesh Dongol and Gerhard Schellhorn and Heike Wehrheim},
journal = {Logical Methods in Computer Science},
volume = {Volume 18, Issue 3},
year = {2022},
doi = {10.46298/lmcs-18(3:7)2022}
}