Title
Tractable Refinement Checking for Concurrent Objects
Abstract
Efficient implementations of concurrent objects such as semaphores, locks, and atomic collections are essential to modern computing. Yet programming such objects is error prone: in minimizing the synchronization overhead between concurrent object invocations, one risks the conformance to reference implementations --- or in formal terms, one risks violating observational refinement. Testing this refinement even within a single execution is intractable, limiting existing approaches to executions with very few object invocations. We develop a polynomial-time (per execution) approximation to refinement checking. The approximation is parameterized by an accuracy k∈N representing the degree to which refinement violations are visible. In principle, more violations are detectable as k increases, and in the limit, all are detectable. Our insight for this approximation arises from foundational properties on the partial orders characterizing the happens-before relations between object invocations: they are interval orders, with a well defined measure of complexity, i.e., their length. Approximating the happens-before relation with a possibly-weaker interval order of bounded length can be efficiently implemented by maintaining a bounded number of integer counters. In practice, we find that refinement violations can be detected with very small values of k, and that our approach scales far beyond existing refinement-checking approaches.
Year
DOI
Venue
2015
10.1145/2676726.2677002
POPL
Keywords
Field
DocType
concurrency,linearizability,mechanical verification,refinement
Linearizability,Integer,Synchronization,Interval order,Parameterized complexity,Semaphore,Concurrency,Computer science,Algorithm,Theoretical computer science,Bounded function
Conference
Volume
Issue
ISSN
50
1
0362-1340
Citations 
PageRank 
References 
17
0.66
26
Authors
4
Name
Order
Citations
PageRank
Ahmed Bouajjani12663184.84
Michael Emmi236521.76
Constantin Enea324926.95
Jad Hamza4716.44