Summary.
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.
Similar content being viewed by others
Author information
Authors and Affiliations
Additional information
Received: December 1995 / Accepted: February 1997
Rights and permissions
About this article
Cite this article
Anderson, J., Moir, M. Using local-spin k-exclusion algorithms to improve wait-free object implementations. Distrib Comput 11, 1–20 (1997). https://doi.org/10.1007/s004460050039
Issue Date:
DOI: https://doi.org/10.1007/s004460050039