Skip to main content

Practical Lock-Free and Wait-Free LL/SC/VL Implementations Using 64-Bit CAS

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3274))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. Herlihy, M.P.: Wait-free synchronization. ACM Transactions on Programming Languages and Systems 13(1), 124–149 (1991)

    Article  Google Scholar 

  3. Herlihy, M.P.: A methodology for implementing highly concurrent objects. ACM Transactions on Programming Languages and Systems 15(5), 745–770 (1993)

    Article  Google Scholar 

  4. 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)

    Article  Google Scholar 

  5. IBM System/370 Extended Architecture, Principles of Operation, Publication No. SA22-7085 (1983)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. Michael, M.M.: ABA prevention using single-word instructions. Technical Report RC 23089, IBM T. J. Watson Research Center (January 2004)

    Google Scholar 

  9. 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)

    Article  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. PowerPC Microprocessor Family: The Programming Environment (1991)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics