#### DMCA

## Implementing Lock-Free Queues (1994)

Venue: | In Proceedings of the Seventh International Conference on Parallel and Distributed Computing Systems, Las Vegas, NV |

Citations: | 67 - 1 self |

### Citations

1178 | Linearizability: A correctness condition for concurrent objects.
- Herlihy, Wing
- 1990
(Show Context)
Citation Context ...o not require mutual exclusion and those that actually provide the non-blocking property. Several of the algorithms we will discuss in this paper fall into the former category. We use linearizability =-=[7]-=- as the correctness condition for our data structures. Linearizability implies that each operation appears to take place instantaneously at some point in time, and that the relative order of non-concu... |

573 | Algorithms for scalable synchronization on shared-memory multiprocessors.
- Mellor-Crummey, Scott
- 1991
(Show Context)
Citation Context ...rent queue using mutual exclusion. We tested the following locking mechanisms: simple test-and-set locks, test and test-and-set locks, and the ticket locks and queue locks of Mellor-Crummey and Scott =-=[13]-=-. In order to measure only the algorithm performance, we did not implement the safe read protocol in our tests; we avoid the ABA problem by not reusing nodes on the linked list. In addition, to remove... |

350 | A methodology for implementing highly concurrent objects.
- Herlihy
- 1993
(Show Context)
Citation Context ...ntial counterpart. Concurrent operations can take place in any relative sequential order. Universal constructions exist for constructing lockfree data structures from sequential functional algorithms =-=[4, 15]-=-, or concurrent lock-based algorithms [17, 21]. In general, for a simple data structure like a queue, these methods have far more overhead than the algorithms we will be considering. We will assume th... |

240 | Proteus: A High-Performance Parallel Architecture Simulator,"
- Brewer, Dellarocas, et al.
- 1991
(Show Context)
Citation Context ...mance of the different lock-free algorithms discussed in this paper, as well as equivalent lock-based algorithms, we have implemented several of them using the Proteus parallel architecture simulator =-=[2]. All nume-=-rical results are quoted in "cycles" as simulated by Proteus. To asses the performance of these algorithms, we measured two quantities: the sequential latency of each operation (i.e., the ti... |

122 |
Systems programming: Coping with parallelism.
- Treiber
- 2006
(Show Context)
Citation Context ...as quicksort and branch-and-bound, and are generally useful as a means of distributing work to a number of processes [14]. Many authors have proposed algorithms for lock-free queues in the literature =-=[6, 8, 11, 12, 16, 18, 19, 20]-=-. In the remainder of this paper we examine practical implementations of lock-free FIFO queues. Section 2 introduces some essential concepts related to lock-free data structures. Sections 3 surveys pr... |

107 | A lock-free multiprocessor OS kernel.
- Massalin, Pu
- 1991
(Show Context)
Citation Context ...as quicksort and branch-and-bound, and are generally useful as a means of distributing work to a number of processes [14]. Many authors have proposed algorithms for lock-free queues in the literature =-=[6, 8, 11, 12, 16, 18, 19, 20]-=-. In the remainder of this paper we examine practical implementations of lock-free FIFO queues. Section 2 introduces some essential concepts related to lock-free data structures. Sections 3 surveys pr... |

94 | Basic techniques for the efficient coordination of very large numbers of cooperating sequential processors.
- Gottlieb, Lubachevsky, et al.
- 1983
(Show Context)
Citation Context ... for both algorithms the running time of the Dequeue operation degrades as more Enqueue operations are done. An algorithm proposed by Treiber [20] also suffers from poor performance. Gottlieb et al . =-=[3]-=- present an algorithm that is efficient, but which blocks under certain conditions. Although the probability of blocking occurring can be made smaller by increasing the size of the array used, it is n... |

91 | Axioms for Concurrent Objects
- Herlihy, Wing
(Show Context)
Citation Context ...as quicksort and branch-and-bound, and are generally useful as a means of distributing work to a number of processes [14]. Many authors have proposed algorithms for lock-free queues in the literature =-=[6, 8, 11, 12, 16, 18, 19, 20]-=-. In the remainder of this paper we examine practical implementations of lock-free FIFO queues. Section 2 introduces some essential concepts related to lock-free data structures. Sections 3 surveys pr... |

51 | Wait-free parallel algorithms for the unionfind problem,
- Anderson, Woll
- 1991
(Show Context)
Citation Context ...n the queue abstract data type; other data types could benefit from lock-free methods as well. Other researchers have presented lock-free algorithms for a variety of problems, including disjoint-sets =-=[1]-=-, garbage collection [5], priority queues [10], and a multiprocessor operating system kernel [11]. We are currently investigating implementations of other lock-free data structures such as linked list... |

51 |
Lock-free garbage collection for multiprocessors.
- Herlihy, Moss
- 1992
(Show Context)
Citation Context ...a type; other data types could benefit from lock-free methods as well. Other researchers have presented lock-free algorithms for a variety of problems, including disjoint-sets [1], garbage collection =-=[5]-=-, priority queues [10], and a multiprocessor operating system kernel [11]. We are currently investigating implementations of other lock-free data structures such as linked lists and binary search tree... |

50 |
Sticky Bits and the Universality of Consensus
- Plotkin
- 1987
(Show Context)
Citation Context ...ntial counterpart. Concurrent operations can take place in any relative sequential order. Universal constructions exist for constructing lockfree data structures from sequential functional algorithms =-=[4, 15]-=-, or concurrent lock-based algorithms [17, 21]. In general, for a simple data structure like a queue, these methods have far more overhead than the algorithms we will be considering. We will assume th... |

44 |
A non-blocking algorithm for shared queues using compare-and-swap
- Prakash, Lee, et al.
- 1994
(Show Context)
Citation Context |

18 |
Efficient wait-free implementation of a concurrent priority queue
- Israeli, Rappaport
- 1993
(Show Context)
Citation Context ...pes could benefit from lock-free methods as well. Other researchers have presented lock-free algorithms for a variety of problems, including disjoint-sets [1], garbage collection [5], priority queues =-=[10]-=-, and a multiprocessor operating system kernel [11]. We are currently investigating implementations of other lock-free data structures such as linked lists and binary search trees [22]. The universal ... |

12 | A library of concurrent objects and their proofs of correctness
- Wing, Gong
- 1990
(Show Context)
Citation Context ...locate and deallocate memory on every operation. Herlihy and Wing [7] present an array based queue that is non-blocking and linearizable, but which requires an array of infinite length. Wing and Gong =-=[23]-=- propose a modification to this algorithm removing the need for an infinite array; however, for both algorithms the running time of the Dequeue operation degrades as more Enqueue operations are done. ... |

11 |
A simple and correct shared-queue algorithm using Compare-and-Swap
- Stone
- 1990
(Show Context)
Citation Context |

10 |
Problem-heap: A paradigm for multiprocessor algorithms
- MOELLER-NIELSEN, STAUNSTRUP
- 1987
(Show Context)
Citation Context ... Queues are also useful in implementing parallel versions of many algorithms, such as quicksort and branch-and-bound, and are generally useful as a means of distributing work to a number of processes =-=[14]-=-. Many authors have proposed algorithms for lock-free queues in the literature [6, 8, 11, 12, 16, 18, 19, 20]. In the remainder of this paper we examine practical implementations of lock-free FIFO que... |

10 | Non-blocking algorithms for concurrent data structures
- Prakash, Lee, et al.
- 1991
(Show Context)
Citation Context ...take place in any relative sequential order. Universal constructions exist for constructing lockfree data structures from sequential functional algorithms [4, 15], or concurrent lock-based algorithms =-=[17, 21]-=-. In general, for a simple data structure like a queue, these methods have far more overhead than the algorithms we will be considering. We will assume that the target architecture supports common ato... |

4 |
Operating systems and computer architecture
- Sites
- 1978
(Show Context)
Citation Context |

4 |
Resilient Computation in the Presence of Slowdowns
- Turek
- 1991
(Show Context)
Citation Context ...take place in any relative sequential order. Universal constructions exist for constructing lockfree data structures from sequential functional algorithms [4, 15], or concurrent lock-based algorithms =-=[17, 21]-=-. In general, for a simple data structure like a queue, these methods have far more overhead than the algorithms we will be considering. We will assume that the target architecture supports common ato... |

1 |
Concurrent queues: Practical fetch-and-OE algorithms
- Mellor-Crummey
- 1987
(Show Context)
Citation Context |