Distributed Computing

, Volume 11, Issue 1, pp 1–20 | Cite as

Using local-spin k-exclusion algorithms to improve wait-free object implementations

  • James H. Anderson
  • Mark Moir


 We present the first shared-memory algorithms for k-exclusion in which all process blocking is achieved through the use of “local-spin” busy waiting. Such algorithms are designed to reduce interconnect traffic, which is important for good performance. Our k-exclusion algorithms are starvation-free, and are designed to be fast in the absence of contention, and to exhibit scalable performance as contention rises. In contrast, all previous starvation-free k-exclusion algorithms require unrealistic operations or generate excessive interconnect traffic under contention. We also show that efficient, starvation-free k-exclusion algorithms can be used to reduce the time and space overhead associated with existing wait-free shared object implementations, while still providing some resilience to delays and failures. The resulting “hybrid” object implementations combine the advantages of local-spin spin locks, which perform well in the absence of process delays (caused, for example, by preemptions), and wait-free algorithms, which effectively tolerate such delays. We present performance results that confirm that this k-exclusion-based technique can improve the performance of existing wait-free shared object implementations. These results also show that lock-based implementations can be susceptible to severe performance degradation under multiprogramming, while our hybrid implementations are not.

Key words: k-Assignment k-Exclusion Local spinning Resiliency Shared-memory multiprocessors Shared subjects Wait-free 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • James H. Anderson
    • 1
  • Mark Moir
    • 2
  1. 1.Department of Computer Science, The University of North Carolina, Chapel Hill, NC 27599, USAUS
  2. 2.Department of Computer Science, The University of Pittsburgh, Pittsburgh, PA 15260, USAUS

Personalised recommendations