Bringing practical lock-free synchronization to 64-bit applications

Many lock-free data structures in the literature exploit techniques that are possible only because state-of-the-art 64-bit processors are still running 32-bit operating systems and applications. As software catches up to hardware, "64-bit-clean" lock-free data structures, which cannot use such techniques, are needed.We present several 64-bit-clean lock-free implementations: load-linked/store-conditional variables of arbitrary size, a FIFO queue, and a freelist. In addition to being portable to 64-bit software, our implementations also improve on previous ones in that they are space-adaptive and do not require knowledge of the number of threads that will access them.

[1]  Prasad Jayanti,et al.  Efficient and practical constructions of LL/SC variables , 2003, PODC '03.

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

[3]  Alex Garthwaite,et al.  Mostly lock-free malloc , 2002, ISMM '02.

[4]  Maged M. Michael Safe memory reclamation for dynamic lock-free objects using atomic reads and writes , 2002, PODC '02.

[5]  Maged M. Michael,et al.  Nonblocking Algorithms and Preemption-Safe Locking on Multiprogrammed Shared Memory Multiprocessors , 1998, J. Parallel Distributed Comput..

[6]  Mark Moir,et al.  Preliminary Version Space-and Time-adaptive Nonblocking Algorithms , .

[7]  Robert Sims,et al.  Alpha architecture reference manual , 1992 .

[8]  Maged M. Michael Hazard pointers: safe memory reclamation for lock-free objects , 2004, IEEE Transactions on Parallel and Distributed Systems.

[9]  Mark Moir Practical implementations of non-blocking synchronization primitives , 1997, PODC '97.

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

[11]  David L Weaver,et al.  The SPARC architecture manual : version 9 , 1994 .

[12]  James H. Anderson,et al.  Proceedings of the twelfth annual ACM symposium on Principles of distributed computing , 1993, PODC 1993.

[13]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[14]  Brian Case,et al.  SPARC architecture , 1992 .

[15]  Maged M. Michael Scalable lock-free dynamic memory allocation , 2004, PLDI '04.

[16]  Paul Strauss,et al.  Motorola Inc. , 1993 .

[17]  Mark Moir,et al.  Universal Constructions for Large Objects , 1995, IEEE Trans. Parallel Distributed Syst..

[18]  Maurice Herlihy,et al.  Dynamic-sized lock-free data structures , 2002, PODC '02.

[19]  Theodore Johnson,et al.  A Nonblocking Algorithm for Shared Queues Using Compare-and-Swap , 1994, IEEE Trans. Computers.

[20]  Jeffrey S. Chase,et al.  Opal: A Single Address Space System for 64-bit Architectures , 1992, OPSR.

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