skip to main content
research-article
Free Access

The Balancing Act of Choosing Nonblocking Features: Design requirements of nonblocking systems

Published:22 July 2013Publication History
Skip Abstract Section

Abstract

What is nonblocking progress? Consider the simple example of incrementing a counter C shared among multiple threads. One way to do so is by protecting the steps of incrementing C by a mutual exclusion lock L (i.e., acquire(L); old := C ; C := old+1; release(L);). If a thread P is holding L, then a different thread Q must wait for P to release L before Q can proceed to operate on C. That is, Q is blocked by P.

References

  1. Attiya, H., Hendler, D. 2005. Time and space lower bounds for implementations using k-CAS. In Proceedings of the 19th International Conference on Distributed Computing: 169-183. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Brown, P. J., Smith, R. M. 1973. U.S. Patent 3,886,525. Shared data controlled by a plurality of users (filed June 1973).Google ScholarGoogle Scholar
  3. Cain, H. W., Frey, B., Williams, D., Michael, M. M., May, C., Le, H. 2013. Robust architectural support for transactional memory in the Power architecture. ACM/IEEE 40th International Symposium on Computer Architecture (ISCA). Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Dragojevic, A., Herlihy, M., Lev, Y., Moir, M. 2011. On the power of hardware transactional memory to simplify memory management. 30th Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing (PODC): 99-108. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Fatourou, P., Kallimanis, N. D. 2011. A highly efficient wait-free universal construction. ACM Symposium on Parallelism in Algorithms and Architectures (SPAA): 325-334. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Heller, S., Herlihy, M., Luchangco, V., Moir, M., Scherer III, W. N., Shavit, N. 2005. A lazy concurrent list-based set algorithm. Ninth International Conference on Principles of Distributed Systems (OPODIS): 3-16. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Herlihy, M. 1991. Wait-free synchronization. ACM Transactions on Programming Languages and Systems 13(1): 124-149. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Herlihy, M., Luchangco, V., Martin, P. A., Moir, M. 2005. Nonblocking memory management support for dynamic-sized data structures. ACM Transactions on Computer Systems 23(2): 146-196. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Herlihy, M., Luchangco, V., Moir, M. 2003. Obstruction-free synchronization: double-ended queues as an example. 23rd International Conference on Distributed Computing Systems (ICDCS): 522-529. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. IBM System/370 Principles of Operation. 1975. GA22-7000-4.Google ScholarGoogle Scholar
  11. Intel Architecture Instruction Set Extensions Programming Reference. 2012.Google ScholarGoogle Scholar
  12. Jacobi, C., Slegel, T. J., Greiner, D. F. 2012. Transactional memory architecture and implementation for IBM System Z. 45th Annual IEEE/ACM International Symposium on Microarchitecture: 25-36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. McKenney, P. 2013. Structured deferral: synchronization via procrastination. ACM Queue. http://queue.acm.org/detail.cfm?id=2488549 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. McKenney, P. E., Slingwine, J. D. 1998. Read-copy update: using execution history to solve concurrency problems. Proceedings of the 10th IASTED International Conference on Parallel and Distributed Computing and Systems.Google ScholarGoogle Scholar
  15. Michael, M. M., Scott, M. L. 1996. Simple, fast, and practical nonblocking and blocking concurrent queue algorithms. Proceedings of the 15th Annual ACM Symposium on Principles of Distributed Computing: 267-275. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Michael, M. M. 2004. Hazard pointers: safe memory reclamation for lock-free objects. IEEE Transactions on Parallel Distributed Systems 15(6): 491-504. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Michael, M. M. 2004. Scalable lock-free dynamic memory allocation. In Proceedings of the 2004 ACM SIGPLAN Conference on Programming Language Design and Implementation. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Michael, M. M. 2004. Practical lock-free and wait-free LL/SC/VL implementations using 64-bit CAS. In Proceedings of the 18th International Conference on Distributed Computing: 144-158.Google ScholarGoogle ScholarCross RefCross Ref
  19. Timnat, S., Braginsky, A., Kogan, A., Petrank, E. 2012. Wait-free linked-lists. 16th International Conference on Principles of Distributed Systems: 330-344.Google ScholarGoogle ScholarCross RefCross Ref
  20. Valois, J. D. 1995. Lock-free linked lists using compare-and-swap. In Proceedings of the 14th Annual ACM Symposium on Principles of Distributed Computing: 214-222. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Wang, A., Gaudet, M., Wu, P., Amaral, J. N., Ohmacht, M., Barton, C., Silvera, R., Michael, M. M. 2012. Evaluation of Blue Gene/Q hardware support for transactional memories. In Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques: 127-136. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The Balancing Act of Choosing Nonblocking Features: Design requirements of nonblocking systems
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image Queue
        Queue  Volume 11, Issue 7
        Development
        July 2013
        36 pages
        ISSN:1542-7730
        EISSN:1542-7749
        DOI:10.1145/2508834
        Issue’s Table of Contents

        Copyright © 2013 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 22 July 2013

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Popular
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      HTML Format

      View this article in HTML Format .

      View HTML Format