skip to main content
research-article
Free Access

Proving the correctness of nonblocking data structures

Published:01 July 2013Publication History
Skip Abstract Section

Abstract

Nonblocking synchronization can yield astonishing results in terms of scalability and real-time response, but at the expense of verification state space.

References

  1. Alglave, J., Maranget, L., Sarkar, S. and Sewell, P. Litmus: Running tests against hardware. In Proceedings of the 17th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, (2011); http://dl.acm.org/citation.cfm?id=1987389.1987395. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Arm. ARM Architecture Reference Manual, 2010; http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.architecture/index.html.Google ScholarGoogle Scholar
  3. Baier, C. and Katoen, J. Principles of Model Checking. MIT Press, cambridge, MA, 2008; http://books.google.ca/books?id=nDQiAQAAIAAJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bergan, T., Anderson, O., Devietti, J., Luis, C. and Grossman, D. Coredet: A compiler and runtime system for deterministic multithreaded execution. ACM SIGARCH Computer Architecture News 38, 1 (2010), 53--64; http://doi.acm.org/10.1145/1735970.1736029. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bernstein, P., Shipman, D. and Wong, W. Formal aspects of serializability in database concurrency control. IEEE Transactions on Software Engineering 5, 3 (1979), 203--216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Burnim, J., Elmas, T., Necula, G. and Sen, K. CONCURRIT: testing concurrent programs with programmable state-space exploration. In Proceedings of the 4th Usenix Conference on Hot Topics in Parallelism, (2012), 16--16; http://dl.acm.org/citation.cfm?id=2342788.2342804. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Clarke, E., Grumberg, O. and Peled, D. 1Model checking. MIT Press, Cambridge, MA, 1999; http://books.google.ca/books?id=Nmc4wEaLXFEC. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Click, C. Lock-free hash table. JavaOne Conference, 2007.Google ScholarGoogle Scholar
  9. Corbet, J. The kernel lock validator. LWN, 2006; http://lwn.net/Articles/185666/.Google ScholarGoogle Scholar
  10. Desnoyers, M. Low-impact operating system tracing. Ph.D. dissertation. Ecole Polytechnique de Montreal; http://www.lttng.org/pub/thesis/desnoyers-dissertation-2009-12.pdf.Google ScholarGoogle Scholar
  11. Desnoyers, M., McKenney, P.E. and Dagenais, M.R. Forthcoming. Multicore systems modeling for formal verification of parallel algorithms. Operating Systems Review.Google ScholarGoogle Scholar
  12. Desnoyers, M., McKenney, P.E., Stern, A.S., Dagenais, M.R. and Walpole, J. User-level implementations of read-copy-update. IEEE Transactions on Parallel and Distributed Systems 23, 2 (2012), 375--382. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Drusinsky, D. Modeling and Verification Using UML Statecharts. Elsevier Science, 2011; http://books.google.ca/books?id=JMz-SWTfgiAC. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Ferrante, J., Ottenstein, K.J. and Warren, J.D. The program dependence graph and its use in optimization. ACM Transactions on Programming Languages and Systems 9, 3 (1987); 319--349; http://doi.acm.org/10.1145/24039.24041. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Gosling, J., Joy, B., Steele, G., Bracha, G. and Buckley, A. The Java Language Specification, Java SE 7 Edition. Pearson Education, 2013; http://books.google.ca/books?id=2RYN9exiTnYC. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Gotsman, A., Cook, B., Parkinson, M. and Vafeiadis, V. Proving that nonblocking algorithms don't block. In Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (2009), 16--28; http://doi.acm.org/10.1145/1480881.1480886. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Gotsman, A., Rinetzky, N. and Yang, H. Verifying concurrent memory reclamation algorithms with grace. In European Symposium on Programming. (Rome, Italy, 2013) Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Haas, A., Kirsch, C. M., Lippautz, M. and Payer, H. How FIFO is your concurrent FIFO queue? In Proceedings of the Workshop on Relaxing Synchronization for Multicore and Manycore Scalability, (2012). Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Herlihy, M. Wait-free synchronization. ACM Transactions on Programming Languages and Systems 13, 1 (1991), 124--149; http://doi.acm.org/10.1145/114005.102808. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Herlihy, M.P. and Wing, J.M. Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems 12, 3 (1990), 463--492; http://doi.acm.org/10.1145/78969.78972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Holzmann, G.J. The model checker Spin. IEEE Transactions on Software Engineering 23, 5 (1997):279--295. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. IBM. Power ISA Version 2.06 Revision B, 2010; http://www.power.org/resources/reading/.Google ScholarGoogle Scholar
  23. Intel Corporation. Intel 64 and IA-32 Architectures Software Developer's Manual: Instruction Set Reference, A-Z; http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-vol-2a-2b-instruction-set-html.Google ScholarGoogle Scholar
  24. International Organization for Standards. 2011. Programming languages - C++, ISO/IEC 14882:2011.Google ScholarGoogle Scholar
  25. Kirsch, C.M., Lippautz, M. and Payer, H. Fast and scalable k-fifo queues. University of Salzburg, Salzburg, Austria. Technical Report 2012--04.Google ScholarGoogle Scholar
  26. Michael, M.M. Hazard pointers: safe memory reclamation for lock-free objects. IEEE Transactions on Parallel and Distributed Systems 15, 6 (2004), 491--504; http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=1291819. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Michael, M.M. and Scott, M.L. Simple, fast, and practical nonblocking and blocking concurrent queue algorithms. In Proceedings of the 15th Annual ACM Symposium on Principles of Distributed Computing (1996), 267--275; http://doi.acm.org/10.1145/248052.248106. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. MIPS Technologies Inc. MIPS Architecture for Programmers, Volume II-A: The MIPS64 Instruction Set, 2012Google ScholarGoogle Scholar
  29. Olszewski, M., Ansel, J. and Amarasinghe, S. Kendo: efficient deterministic multithreading in software. ACM SIGPLAN Notices 44, 3 (2009), 97--108; http://dl.acm.org/citation.cfm?id=1508256. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Sarkar, S., Sewell, P., Alglave, J., Maranget, L. and Williams, D. Understanding power multiprocessors. ACM SIGPLAN Notices 46, 6 (2011), 175--186; http://doi.acm.org/10.1145/1993316.1993520. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Proving the correctness of nonblocking data structures

                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 Communications of the ACM
                  Communications of the ACM  Volume 56, Issue 7
                  July 2013
                  99 pages
                  ISSN:0001-0782
                  EISSN:1557-7317
                  DOI:10.1145/2483852
                  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: 1 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