Abstract
The ideal semantics of the instructions LL/SC/VL (Load-Linked, Store-Conditional, Validate) are inherently immune to the ABA problem which is a fundamental problem that affects most lock-free algorithms. This paper presents practical lock-free and wait-free implementations of arbitrary-sized LL/SC/VL variables using 64-bit CAS (Compare-and-Swap). The implementations improve on Jayanti and Petrovic’s 64-bit wait-free implementations by reducing the space overhead per variable to a small constant, and not requiring advance knowledge of the maximum number of participating threads, while maintaining minimal amortized expected time and work complexities.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Anderson, J.H., Moir, M.: Universal constructions for multi-object operations. In: Proceedings of the Fourteenth Annual ACM Symposium on Principles of Distributed Computing, pp. 184–193 (1995)
Herlihy, M.P.: Wait-free synchronization. ACM Transactions on Programming Languages and Systems 13(1), 124–149 (1991)
Herlihy, M.P.: A methodology for implementing highly concurrent objects. ACM Transactions on Programming Languages and Systems 15(5), 745–770 (1993)
Herlihy, M.P., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems 12(3), 463–492 (1990)
IBM System/370 Extended Architecture, Principles of Operation, Publication No. SA22-7085 (1983)
Jayanti, P.: A complete and constant time wait-free implementation of CAS from LL/SC and vice versa. In: Proceedings of the Twelfth International Symposium on Distributed Computing, September 1998, pp. 216–230 (1998)
Jayanti, P., Petrovic, S.: Efficient and practical constructions of LL/SC variables. In: Proceedings of the Twenty-Second Annual ACM Symposium on Principles of Distributed Computing, July 2003, pp. 285–294 (2003)
Michael, M.M.: ABA prevention using single-word instructions. Technical Report RC 23089, IBM T. J. Watson Research Center (January 2004)
Michael, M.M.: Hazard pointers: Safe memory reclamation for lock-free objects. IEEE Transactions on Parallel and Distributed Systems 15(6), 491–504 (2004); Earlier version in 21st PODC, pp. 21–30 (July 2002)
Michael, M.M.: Scalable lock-free dynamic memory allocation. In: Proceedings of the 2004 ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2004, pp. 35–46 (2004)
Moir, M.: Practical implementations of non-blocking synchronization primitives. In: Proceedings of the 16th Annual ACM Symposium on Principles of Distributed Computing, August 1997, pp. 219–228 (1997)
PowerPC Microprocessor Family: The Programming Environment (1991)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Michael, M.M. (2004). Practical Lock-Free and Wait-Free LL/SC/VL Implementations Using 64-Bit CAS. In: Guerraoui, R. (eds) Distributed Computing. DISC 2004. Lecture Notes in Computer Science, vol 3274. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30186-8_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-30186-8_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23306-0
Online ISBN: 978-3-540-30186-8
eBook Packages: Springer Book Archive