当前位置: X-MOL 学术Form. Asp. Comput. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Verifying correctness of persistent concurrent data structures: a sound and complete method
Formal Aspects of Computing ( IF 1 ) Pub Date : 2021-05-17 , DOI: 10.1007/s00165-021-00541-8
John Derrick 1 , Simon Doherty 1 , Brijesh Dongol 2 , Gerhard Schellhorn 3 , Heike Wehrheim 4
Affiliation  

Abstract

Non-volatile memory (NVM), aka persistent memory, is a new memory paradigm that preserves its contents even after power loss. The expected ubiquity of NVM has stimulated interest in the design of persistent concurrent data structures, together with associated notions of correctness. In this paper, we present a formal proof technique for durable linearizability, which is a correctness criterion that extends linearizability to handle crashes and recovery in the context ofNVM.Our proofs are based on refinement of Input/Output automata (IOA) representations of concurrent data structures. To this end, we develop a generic procedure for transforming any standard sequential data structure into a durable specification and prove that this transformation is both sound and complete. Since the durable specification only exhibits durably linearizable behaviours, it serves as the abstract specification in our refinement proof. We exemplify our technique on a recently proposed persistentmemory queue that builds on Michael and Scott’s lock-free queue. To support the proofs, we describe an automated translation procedure from code to IOA and a thread-local proof technique for verifying correctness of invariants.



中文翻译:

验证持久并发数据结构的正确性:一种完善的方法

摘要

非易失性内存 (NVM),又名持久内存,是一种新的内存范例,即使在断电后也能保留其内容。NVM 的普遍存在激发了人们对持久 并发数据结构设计的兴趣,以及相关的正确性概念。在本文中,我们提出了一种持久线性化的形式证明技术,这是一个正确性标准,可扩展线性化以处理 NVM 上下文中的崩溃和恢复。我们的证明基于并发数据结构的输入/输出自动机 (IOA) 表示的改进。为此,我们开发了一个通用程序,用于将任何标准顺序数据结构转换为持久规范,并证明这种转换是合理且完整的。由于持久规范仅表现出持久线性化的行为,因此它在我们的细化证明中用作抽象规范。我们在最近提出的基于 Michael 和 Scott 的无锁队列的持久内存队列上举例说明了我们的技术。为了支持证明,我们描述了从代码到 IOA 的自动翻译过程和用于验证不变量正确性的线程局部证明技术。

更新日期:2021-05-17
down
wechat
bug