An Operational Approach to Library Abstraction under Relaxed Memory Concurrency

Abhishek Kr Singh, Ori Lahav

Research output: Contribution to journalArticlepeer-review

Abstract

Concurrent data structures and synchronization mechanisms implemented by expert developers are indispensable for modular software development. In this paper, we address the fundamental problem of library abstraction under weak memory concurrency, and identify a general library correctness condition allowing clients of the library to reason about program behaviors using the specification code, which is often much simpler than the concrete implementation. We target (a fragment of) the RC11 memory model, and develop an equivalent operational presentation that exposes knowledge propagation between threads, and is sufficiently expressive to capture library behaviors as totally ordered operational execution traces. We further introduce novel access modes to the language that allow intricate specifications accounting for library internal synchronization that is not exposed to the client, as well as the library's demands on external synchronization by the client. We illustrate applications of our approach in several examples of different natures.

Original languageEnglish
Pages (from-to)1542-1572
Number of pages31
JournalProceedings of the ACM on Programming Languages
Volume7
Issue numberPOPL
DOIs
StatePublished - 9 Jan 2023

Keywords

  • Concurrent objects
  • Library abstraction
  • Linearizability
  • Relaxed memory consistency

Fingerprint

Dive into the research topics of 'An Operational Approach to Library Abstraction under Relaxed Memory Concurrency'. Together they form a unique fingerprint.

Cite this