Aspect-Oriented Linearizability Proofs

Linearizability of concurrent data structures is usually proved by monolithic simulation arguments relying on the identification of the so-called linearization points. Regrettably, such proofs, whether manual or automatic, are often complicated and scale poorly to advanced non-blocking concurrency patterns, such as helping and optimistic updates. In response, we propose a more modular way of checking linearizability of concurrent queue algorithms that does not involve identifying linearization points. We reduce the task of proving linearizability with respect to the queue specification to establishing four basic properties, each of which can be proved independently by simpler arguments. As a demonstration of our approach, we verify the Herlihy and Wing queue, an algorithm that is challenging to verify by a simulation proof.

[1]  D. M. Hutton,et al.  The Art of Multiprocessor Programming , 2008 .

[2]  Mark Moir,et al.  Nonblocking Algorithms and Backward Simulation , 2009, DISC.

[3]  Viktor Vafeiadis,et al.  RGSep Action Inference , 2010, VMCAI.

[4]  Mark Moir,et al.  Using elimination to implement scalable and lock-free FIFO queues , 2005, SPAA '05.

[5]  Viktor Vafeiadis,et al.  Shape-Value Abstraction for Verifying Linearizability , 2008, VMCAI.

[6]  Thomas A. Henzinger,et al.  Automatic Linearizability Proofs of Concurrent Objects with Cooperating Updates , 2013, CAV.

[7]  Nir Shavit,et al.  Flat combining and the synchronization-parallelism tradeoff , 2010, SPAA '10.

[8]  John Derrick,et al.  Verifying Linearisability with Potential Linearisation Points , 2011, FM.

[9]  Yanhong A. Liu,et al.  Model Checking Linearizability via Refinement , 2009, FM.

[10]  Cliff B. Jones,et al.  Specification and Design of (Parallel) Programs , 1983, IFIP Congress.

[11]  Nir Shavit,et al.  An optimistic approach to lock-free FIFO queues , 2004, Distributed Computing.

[12]  Viktor Vafeiadis,et al.  A Marriage of Rely/Guarantee and Separation Logic , 2007, CONCUR.

[13]  Parosh Aziz Abdulla,et al.  Correction to: An integrated specification and verification technique for highly concurrent data structures , 2013, TACAS.

[14]  Robert Colvin,et al.  Verifying Concurrent Data Structures by Simulation , 2005, Electron. Notes Theor. Comput. Sci..

[15]  Nancy A. Lynch,et al.  Forward and Backward Simulations: I. Untimed Systems , 1995, Inf. Comput..

[16]  Eran Yahav,et al.  Comparison Under Abstraction for Verifying Linearizability , 2007, CAV.

[17]  N. Lynch,et al.  Forward and backward simulations , 1993 .

[18]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[19]  Thomas A. Henzinger,et al.  Aspect-Oriented Linearizability Proofs , 2013, CONCUR.

[20]  Nir Shavit,et al.  The Baskets Queue , 2007, OPODIS.

[21]  John Derrick,et al.  How to Prove Algorithms Linearisable , 2012, CAV.

[22]  Pierre Wolper,et al.  Expressing interesting properties of programs in propositional temporal logic , 1986, POPL '86.

[23]  Viktor Vafeiadis Automatically Proving Linearizability , 2010, CAV.