MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Lock-Free Linked Lists Using Compare-and-Swap (1995) [65 citations — 1 self]

by John D. Valois
In Proceedings of the Fourteenth Annual ACM Symposium on Principles of Distributed Computing
Add To MetaCart

Abstract:

Lock-free data structures implement concurrent objects without the use of mutual exclusion. This approach can avoid performance problems due to unpredictable delays while processes are within critical sections. Although universal methods are known that give lock-free data structures for any abstract data type, the overhead of these methods makes them inefficient when compared to conventional techniques using mutual exclusion, such as spin locks. We give lock-free data structures and algorithms for implementing a shared singly-linked list, allowing concurrent traversal, insertion, and deletion by any number of processes. We also show how the basic data structure can be used as a building block for other lock-free data structures. Our algorithms use the single word Compare-and-Swap synchronization primitive to implement the linked list directly, avoiding the overhead of universal methods, and are thus a practical alternative to using spin locks. 1 Introduction A concurrent object is an...

Citations

1089 Impossibility of Distributed Consensus with One Faulty Process – Fischer, Lynch, et al. - 1985
582 Linearizability: A Correctness Condition for Concurrent Objects – Herlihy, Wing - 1990
529 Wait-free synchronization – Herlihy - 1991
372 Algorithms for Scalable Synchronization on SharedMemory Multiprocessors – MELLOR-CRUMMEY, SCOTT - 1991
254 A methodology for implementing highly concurrent data objects – Herlihy - 1993
218 Skip Lists: A Probabilistic Alternative to Balanced Trees – Pugh - 1989
96 Concurrent reading and writing – Lamport - 1977
90 Synchronization Algorithms for Shared-Memory Multiprocessors – Graunke, Thakkar - 1990
81 The Scalable Coherent Interface and Related Standards Projects – GUSTAVSON - 1992
81 Alock-free multiprocessor os kernel – Massalin, Pu - 1991
70 Impossibility and universality results for wait-free synchronization – Herlihy
59 Fast Mutual Exclusion for Uniprocessors – Bershad, Redell, et al. - 1992
58 A method for implementing lock-free shared data structures – Barnes - 1993
50 Lock-Free Data Structures – Valois - 1995
43 Wait-Free Parallel Algorithms for the Union-Find Problem – Anderson, Woll - 1991
43 Sticky Bits and Universality of Consensus – Plotkin - 1989
43 Implementing lock-free queues – Valois - 1994
40 Low-overhead scheduling of nested parallelism – Hummel, Schonberg - 1991
33 Performance issues in non-blocking synchronization on sharedmemory multiprocessors – Alemany, Felten - 1992
33 Lock-free garbage collection for multiprocessors – Herlihy, Moss - 1992
33 Locking Without Blocking: Making Lock Based Concurrent Data Structure Algorithms Non-Blocking – Turek, Shasha, et al. - 1992
23 Concurrent Maintenance of Skip Lists – Pugh - 1990
21 Concurrent set manipulation without locking – Lanin, Shasha - 1988
11 An Analysis of Concurrent Priority Queue Algorithms – Huang - 1990
7 Operating System Support for High Performance Multiprocessing – Anderson - 1991
6 Implementation of general-purpose atomic primitives for distributed shared-memory multiprocessors – Michael, Scott - 1995
3 Process synchronization without longterm interlock – Easton - 1972