A promising semantics for relaxed-memory concurrency

Jeehoon Kang, Chung Kil Hur, Ori Lahav, Viktor Vafeiadis, Derek Dreyer

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Despite many years of research, it has proven very difficult to develop a memory model for concurrent programming languages that adequately balances the conflicting desiderata of programmers, compilers, and hardware. In this paper, we propose the first relaxed memory model that (1) accounts for a broad spectrum of features from the C++11 concurrency model, (2) is implementable, in the sense that it provably validates many standard compiler optimizations and reorderings, as well as standard compilation schemes to x86-TSO and Power, (3) justifies simple invariant-based reasoning, thus demonstrating the absence of bad "out-of-thin-air" behaviors, (4) supports "DRF" guarantees, ensuring that programmers who use sufficient synchronization need not understand the full complexities of relaxed-memory semantics, and (5) defines the semantics of racy programs without relying on undefined behaviors, which is a prerequisite for applicability to type-safe languages like Java. The key novel idea behind our model is the notion of promises: a thread may promise to execute a write in the future, thus enabling other threads to read from that write out of order. Crucially, to prevent out-of-thin-air behaviors, a promise step requires a threadlocal certification that it will be possible to execute the promised write even in the absence of the promise. To establish confidence in our model, we have formalized most of our key results in Coq.

Original languageEnglish
Title of host publicationPOPL 2017 - Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages
EditorsAndrew D. Gordon, Giuseppe Castagna
Pages175-189
Number of pages15
ISBN (Electronic)9781450346603
DOIs
StatePublished - 1 Jan 2017
Externally publishedYes
Event44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017 - Paris, France
Duration: 15 Jan 201721 Jan 2017

Publication series

NameConference Record of the Annual ACM Symposium on Principles of Programming Languages

Conference

Conference44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017
Country/TerritoryFrance
CityParis
Period15/01/1721/01/17

Keywords

  • C++11
  • Operational semantics
  • Weak memory models

All Science Journal Classification (ASJC) codes

  • Software

Fingerprint

Dive into the research topics of 'A promising semantics for relaxed-memory concurrency'. Together they form a unique fingerprint.

Cite this