The Commutativity Quotients of Concurrent Objects

01/13/2023
by   Constantin Enea, et al.
0

Concurrent objects form the foundation of many applications that exploit multicore architectures. Reasoning about the fine-grained complexities (interleavings, invariants, etc.) of those data structures, however, is notoriously difficult. Formal proof methodologies for arguing about the correctness – i.e., linearizability – of these data structures are still somewhat disconnected from the intuitive correctness arguments. Intuitions are often about a few canonical executions, possibly with few threads, whereas formal proofs would often use generic but complex arguments about arbitrary interleavings over unboundedly many threads. As a way to bring formal proofs closer to intuitive arguments, we introduce a new methodology for characterizing the interleavings of concurrent objects, based on their commutativity quotient. This quotient represents every interleaving up to reordering of commutative steps and, when chosen carefully, admits simple abstractions in the form of regular or context-free languages that enable simple proofs of linearizability. We demonstrate these facts on a large class of lock-free data structures and the infamously difficult Herlihy-Wing Queue. We automate the discovery of these execution quotients and show it can be automatically done for challenging data-structures such as Treiber's stack, Michael/Scott Queue, and a concurrent Set implemented as a linked list.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/12/2021

A Simple Way to Verify Linearizability of Concurrent Stacks

Linearizability is a commonly accepted correctness criterion for concurr...
research
06/21/2018

Proving Linearizability Using Reduction

Lipton's reduction theory provides an intuitive and simple way for deduc...
research
09/27/2022

Embedding Hindsight Reasoning in Separation Logic

Proving linearizability of concurrent data structures remains a key chal...
research
04/27/2023

Proving Logical Atomicity using Lock Invariants

Logical atomicity has been widely accepted as a specification format for...
research
05/15/2019

Quantifiability: Concurrent Correctness from First Principles

Architectural imperatives due to the slowing of Moore's Law, the broad a...
research
04/25/2019

Performance Prediction for Coarse-Grained Locking

A standard design pattern found in many concurrent data structures, such...
research
03/22/2021

Differentiated nonblocking: a new progress condition and a matching queue algorithm

In this paper, we first propose a new liveness requirement for shared ob...

Please sign up or login with your details

Forgot password? Click here to reset