skip to main content
research-article
Free access

Proving the correctness of nonblocking data structures

Published: 01 July 2013 Publication History

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.
[2]
Arm. ARM Architecture Reference Manual, 2010; http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.architecture/index.html.
[3]
Baier, C. and Katoen, J. Principles of Model Checking. MIT Press, cambridge, MA, 2008; http://books.google.ca/books?id=nDQiAQAAIAAJ.
[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.
[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.
[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.
[7]
Clarke, E., Grumberg, O. and Peled, D. 1Model checking. MIT Press, Cambridge, MA, 1999; http://books.google.ca/books?id=Nmc4wEaLXFEC.
[8]
Click, C. Lock-free hash table. JavaOne Conference, 2007.
[9]
Corbet, J. The kernel lock validator. LWN, 2006; http://lwn.net/Articles/185666/.
[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.
[11]
Desnoyers, M., McKenney, P.E. and Dagenais, M.R. Forthcoming. Multicore systems modeling for formal verification of parallel algorithms. Operating Systems Review.
[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.
[13]
Drusinsky, D. Modeling and Verification Using UML Statecharts. Elsevier Science, 2011; http://books.google.ca/books?id=JMz-SWTfgiAC.
[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.
[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.
[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.
[17]
Gotsman, A., Rinetzky, N. and Yang, H. Verifying concurrent memory reclamation algorithms with grace. In European Symposium on Programming. (Rome, Italy, 2013) Springer.
[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).
[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.
[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.
[21]
Holzmann, G.J. The model checker Spin. IEEE Transactions on Software Engineering 23, 5 (1997):279--295.
[22]
IBM. Power ISA Version 2.06 Revision B, 2010; http://www.power.org/resources/reading/.
[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.
[24]
International Organization for Standards. 2011. Programming languages - C++, ISO/IEC 14882:2011.
[25]
Kirsch, C.M., Lippautz, M. and Payer, H. Fast and scalable k-fifo queues. University of Salzburg, Salzburg, Austria. Technical Report 2012--04.
[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.
[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.
[28]
MIPS Technologies Inc. MIPS Architecture for Programmers, Volume II-A: The MIPS64 Instruction Set, 2012
[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.
[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.

Cited By

View all
  • (2017)High-level C++ implementation of the read-copy-update pattern2017 IEEE 14th International Scientific Conference on Informatics10.1109/INFORMATICS.2017.8327254(243-248)Online publication date: Nov-2017
  • (2015)Integrating Lock-Free and Combining Techniques for a Practical and Scalable FIFO QueueIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2014.233300726:7(1910-1922)Online publication date: 1-Jul-2015
  • (2013)The roles of mathematics in computer scienceACM Inroads10.1145/2537753.25377774:4(74-80)Online publication date: 1-Dec-2013

Recommendations

Comments

Information & Contributors

Information

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
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: 01 July 2013
Published in CACM Volume 56, Issue 7

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Popular
  • Refereed

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)251
  • Downloads (Last 6 weeks)46
Reflects downloads up to 30 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2017)High-level C++ implementation of the read-copy-update pattern2017 IEEE 14th International Scientific Conference on Informatics10.1109/INFORMATICS.2017.8327254(243-248)Online publication date: Nov-2017
  • (2015)Integrating Lock-Free and Combining Techniques for a Practical and Scalable FIFO QueueIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2014.233300726:7(1910-1922)Online publication date: 1-Jul-2015
  • (2013)The roles of mathematics in computer scienceACM Inroads10.1145/2537753.25377774:4(74-80)Online publication date: 1-Dec-2013

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Digital Edition

View this article in digital edition.

Digital Edition

Magazine Site

View this article on the magazine site (external)

Magazine Site

Login options

Full Access

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media