Lock-free reference counting

Assuming the existence of garbage collection makes it easier to design implementations of concurrent data structures. However, this assumption limits their applicability. We present a methodology that, for a significant class of data structures, allows designers to first tackle the easier problem of designing a garbage-collection-dependent implementation, and then apply our methodology to achieve a garbage-collection-independent one. Our methodology is based on the well-known reference counting technique, and employs the double compare-and-swap operation.

[1]  Mark Moir,et al.  Transparent Support for Wait-Free Transactions , 1997, WDAG.

[2]  Corporate Motorola,et al.  MC 68000 16-Bit Microprocessor User's Manual , 1982 .

[3]  Rafael Dueire Lins,et al.  Garbage collection: algorithms for automatic dynamic memory management , 1996 .

[4]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[5]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[6]  Guy L. Steele,et al.  Multiprocessing compactifying garbage collection , 1975, CACM.

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

[8]  Jeremy Brown Memory Management on a Massively Parallel Capability Architecture , 1999 .

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

[10]  David R. Cheriton,et al.  Non-blocking synchronization and system design , 1999 .

[11]  Jan Friso Groote,et al.  RAPPORT Waitfree Distributed Memory Management by Create , and Read Until Deletion ( CRUD ) , 1999 .

[12]  Mohammad Farook,et al.  Managing Long Linked Lists Using Lock-Free Techniques , 1998 .

[13]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[14]  Mordechai Ben-Ari On-the-Fly Garbage Collection: New Algorithms Inspired by Program Proofs , 1982, ICALP.

[15]  Maged M. Michael,et al.  Simple, fast, and practical non-blocking and blocking concurrent queue algorithms , 1996, PODC '96.

[16]  Janice M. Stone A simple and correct shared-queue algorithm using compare-and-swap , 1990, Proceedings SUPERCOMPUTING '90.

[17]  Greg Barnes,et al.  A method for implementing lock-free shared-data structures , 1993, SPAA '93.

[18]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[19]  David Detlefs Garbage Collection and Run-time Typing as a C++ Library , 1992, C++ Conference.

[20]  David A Chappell Understanding ActiveX and OLE , 1996 .

[21]  H. T. Kung,et al.  Concurrent manipulation of binary search trees , 1980, TODS.

[22]  Jan L. A. van de Snepscheut "Algorithms for On-the-Fly Garbage Collection" Revisited , 1987, Inf. Process. Lett..

[23]  Nir Shavit,et al.  Even Better DCAS-Based Concurrent Deques , 2000, DISC.

[24]  Maged M. Michael,et al.  Relative performance of preemption-safe locking and non-blocking synchronization on multiprogrammed shared memory multiprocessors , 1997, Proceedings 11th International Parallel Processing Symposium.

[25]  Mordechai Ben-Ari Algorithms for on-the-fly garbage collection , 1984, TOPL.

[26]  John D. Valois Lock-free linked lists using compare-and-swap , 1995, PODC '95.

[27]  Maurice Herlihy,et al.  Lock-Free Garbage Collection for Multiprocessors , 1992, IEEE Trans. Parallel Distributed Syst..

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

[29]  William Pugh,et al.  Concurrent maintenance of skip lists , 1990 .

[30]  Mark Moir,et al.  Lock-free reference counting , 2002 .

[31]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, CACM.

[32]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

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