2019 · 43 citations · 55 references
ComputingComputer EngineeringComputer ScienceData StructuresOperating SystemsProgramming LanguagesMemory ManagementVirtual MemoryLock-free Data StructuresLock-free ProgrammingMemory ReclamationNon-volatile MemoryPersistent MemoryTransactional MemoryVolatile MemoryWait-free Data Structures
A persistent transactional memory (PTM) library provides an easy-to-use interface to programmers for using byte-addressable non-volatile memory (NVM). Previously proposed PTMs have, so far, been blocking. We present OneFile, the first wait-free PTM with integrated wait-free memory reclamation. We have designed and implemented two variants of the OneFile, one with lock-free progress and the other with bounded wait-free progress. We additionally present software transactional memory (STM) implementations of the lock-free and wait-free algorithms targeting volatile memory. Each of our PTMs and STMs is implemented as a single C++ file with ~1,000 lines of code, making them versatile to use. Equipped with these PTMs and STMs, non-expert developers can design and implement their own lock-free and wait-free data structures on NVM, thus making lock-free programming accessible to common software developers.
55
Maurice Herlihy, J. Eliot B. Moss · 1993 · 2.2K citations
Maurice Herlihy · ACM Transactions on Programming Languages and Systems · 1991 · 1.8K citations · Full text
Haris Volos, Andres Jaan Tack, Michael M. Swift · 2011 · 723 citations
Joel Coburn, Adrian M. Caulfield, Ameen Akel et al. · 2011 · 658 citations