A simple and correct shared-queue algorithm using compare-and-swap

  • Authors:
  • Janice M. Stone

  • Affiliations:
  • IBM T. J. Watson Research Center, P. O. Box 704, Yorktown Heights, NY

  • Venue:
  • Proceedings of the 1990 ACM/IEEE conference on Supercomputing
  • Year:
  • 1990

Quantified Score

Hi-index 0.00

Visualization

Abstract

The shared queue is a paradigm of concurrent processes. Because shared queues are central to many multiprocessor systems, their implementations require correctness and efficiency. We present a Compare-and-Swap shared-queue algorithm that permits concurrent access and is nondelaying, in that no processor need wait for an action by another processor. We present a verification method that analyzes the states of the shared data-structure. By drawing a graph that incorporates in a simple way the effects of multi-processor interleaving, one can quickly find errors in an algorithm or produce a proof of correctness. Since enqueue and dequeue operations may begin at any time, concurrent queue operations are represented by providing, in each state of the shared data-structure, one transition that initiates an enqueue operation and another transition for a dequeue operation. The method is a practical one that is applicable to a variety of algorithms that use shared data-structures.