Practical Lock-Free Implementation of LL/SC Using Only Pointer-Size CAS

The significant benefit of lock (or wait)-freedom for real-time systems is that by avoiding locks the potentials for deadlock and priority inversion are avoided. The lock-free algorithms often require the use of special atomic processor instructions such as CAS (compare and swap) or LL/SC(load linked/store conditional). However, many machine architectures support either CAS or LL/SC with restricted semantics. In this paper, we present a Practical lock-free implementation of the ideal semantics of LL/SC using only pointer-size CAS. To ensure our implementation is not flawed, we used the higher-order interactive theorem prover PVS for mechanical support.

[1]  Maurice Herlihy,et al.  The Repeat Offender Problem: A Mechanism for Supporting Dynamic-Sized, Lock-Free Data Structures , 2002, DISC.

[2]  Prasad Jayanti,et al.  Dartmouth Computer Science Technical Report TR2003-446 Efcient and Practical Constructions of LL/SC Variables Ü , 2003 .

[3]  Amos Israeli,et al.  Disjoint-access-parallel implementations of strong shared memory primitives , 1994, PODC '94.

[4]  Maurice Herlihy,et al.  A methodology for implementing highly concurrent data objects , 1993, TOPL.

[5]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[6]  J. F. Groote,et al.  Lock-free parallel and concurrent garbage collection by mark&sweep , 2007, Sci. Comput. Program..

[7]  Maurice Herlihy,et al.  Bringing practical lock-free synchronization to 64-bit applications , 2004, PODC '04.

[8]  Hui Gao,et al.  A Formal Reduction for Lock-Free Parallel Algorithms , 2004, CAV.

[9]  Claude Jard,et al.  Modeling and Verification of Parallel Processes , 2001, Lecture Notes in Computer Science.

[10]  Hui Gao,et al.  Lock-free dynamic hash tables with open addressing , 2003, Distributed Computing.

[11]  John D. Valois Implementing Lock-Free Queues , 1994 .

[12]  Mark Moir,et al.  Nonblocking k-compare-single-swap , 2003, SPAA '03.

[13]  H. Gao,et al.  A general lock-free algorithm using compare-and-swap , 2007, Inf. Comput..

[14]  Martín Abadi,et al.  The Existence of Refinement Mappings , 1988, LICS.