Abstract
Nonblocking synchronization can yield astonishing results in terms of scalability and real-time response, but at the expense of verification state space.
- 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 ScholarDigital Library
- Arm. ARM Architecture Reference Manual, 2010; http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.architecture/index.html.Google Scholar
- Baier, C. and Katoen, J. Principles of Model Checking. MIT Press, cambridge, MA, 2008; http://books.google.ca/books?id=nDQiAQAAIAAJ. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Clarke, E., Grumberg, O. and Peled, D. 1Model checking. MIT Press, Cambridge, MA, 1999; http://books.google.ca/books?id=Nmc4wEaLXFEC. Google ScholarDigital Library
- Click, C. Lock-free hash table. JavaOne Conference, 2007.Google Scholar
- Corbet, J. The kernel lock validator. LWN, 2006; http://lwn.net/Articles/185666/.Google Scholar
- 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 Scholar
- Desnoyers, M., McKenney, P.E. and Dagenais, M.R. Forthcoming. Multicore systems modeling for formal verification of parallel algorithms. Operating Systems Review.Google Scholar
- 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 ScholarDigital Library
- Drusinsky, D. Modeling and Verification Using UML Statecharts. Elsevier Science, 2011; http://books.google.ca/books?id=JMz-SWTfgiAC. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Gotsman, A., Rinetzky, N. and Yang, H. Verifying concurrent memory reclamation algorithms with grace. In European Symposium on Programming. (Rome, Italy, 2013) Springer. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Holzmann, G.J. The model checker Spin. IEEE Transactions on Software Engineering 23, 5 (1997):279--295. Google ScholarDigital Library
- IBM. Power ISA Version 2.06 Revision B, 2010; http://www.power.org/resources/reading/.Google Scholar
- 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 Scholar
- International Organization for Standards. 2011. Programming languages - C++, ISO/IEC 14882:2011.Google Scholar
- Kirsch, C.M., Lippautz, M. and Payer, H. Fast and scalable k-fifo queues. University of Salzburg, Salzburg, Austria. Technical Report 2012--04.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- MIPS Technologies Inc. MIPS Architecture for Programmers, Volume II-A: The MIPS64 Instruction Set, 2012Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Proving the correctness of nonblocking data structures
Recommendations
Test data as an aid in proving program correctness
Proofs of program correctness tend to be long and tedious, whereas testing, though useful in detecting errors, usually does not guarantee correctness. This paper introduces a technique whereby test data can be used in proving program correctness. In ...
Test data as an aid in proving program correctness
POPL '76: Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languagesProofs of program correctness tend to be long and tedious whereas testing, though useful in detecting errors, usually does not guarantee correctness. This paper introduces a technique whereby test data can be used in proving program correctness. In ...
Comments