skip to main content
10.1145/1122971.1122993acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
Article

Accurate and efficient runtime detection of atomicity errors in concurrent programs

Published:29 March 2006Publication History

ABSTRACT

Atomicity is an important correctness condition for concurrent systems. Informally, atomicity is the property that every concurrent execution of a set of transactions is equivalent to some serial execution of the same transactions. In multi-threaded programs, executions of procedures (or methods) can be regarded as transactions. Correctness in the presence of concurrency often requires atomicity of these transactions. Tools that automatically detect atomicity violations can uncover subtle errors that are hard to find with traditional debugging and testing techniques.This paper presents new algorithms for runtime (dynamic) detection of violations of conflict-atomicity and view-atomicity, which are analogous to conflict-serializability and view-serializability in database systems. In these algorithms, the recorded events are formed into a graph with edges representing the synchronization within each transaction and possible interactions between transactions. We give conditions on the graph that imply conflict-atomicity and view-atomicity. Experiments show that these new algorithms are more efficient in most experiments and are more accurate than previous algorithms with comparable asymptotic complexity.

References

  1. R. Agarwal, A. Sasturkar, L. Wang, and S. D. Stoller. Optimized run-time race detection and atomicity checking using partial discovered types. In Proc. 20th IEEE/ACM International Conference on Automated Software Engineering (ASE). ACM Press, Nov. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. R. Agarwal, L. Wang, and S. D. Stoller. Detecting potential deadlocks with static analysis and runtime monitoring. In Proceedings of the Parallel and Distributed Systems: Testing and Debugging (PADTAD) Track of the 2005 IBM Verification Conference. Springer-Verlag, Nov. 2005.Google ScholarGoogle Scholar
  3. P. A. Bernstein, V. Hadzilacos, and N. Goodman. Concurrency control and recovery in database systems. Addison Wesley, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. Flanagan. Verifying commit-atomicity using model-checking. In Proc. 11th Int'l. SPIN Workshop on Model Checking of Software, volume 2989 of LNCS, pages 252--266. Springer-Verlag, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  5. C. Flanagan and S. N. Freund. Atomizer: A dynamic atomicity checker for multithreaded programs. In Proc. of ACM Symposium on Principles of Programming Languages (POPL), pages 256--267. ACM Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Flanagan and S. N. Freund. Type inference against races. In Static Analysis Symposium (SAS), volume 3148 of LNCS. Springer-Verlag, Aug. 2004.Google ScholarGoogle ScholarCross RefCross Ref
  7. C. Flanagan, S. N. Freund, and S. Qadeer. Exploiting purity for atomicity. IEEE Transactions on Software Engineering, 31(4), Apr. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Flanagan and S. Qadeer. A type and effect system for atomicity. In Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). ACM Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Hatcliff, Robby, and M. B. Dwyer. Verifying atomicity specifications for concurrent object-oriented software using model-checking. In Proc. 5th International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI), volume 2937 of LNCS. Springer-Verlag, Jan. 2004.Google ScholarGoogle ScholarCross RefCross Ref
  10. K. Havelund. Using runtime analysis to guide model checking of Java programs. In Proc. 7th Int'l. SPIN Workshop on Model Checking of Software, volume 1885 of LNCS, pages 245--264. Springer-Verlag, Aug. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. P. Herlihy and J. M. Wing. Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems, 12(3):463--492, July 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Java Grande Forum. Java Grande Multi-threaded Benchmark Suite. version 1.0. Available from http://www.javagrande.org/.Google ScholarGoogle Scholar
  13. Jigsaw, version 2.2.4. Available from http://www.w3c.org.Google ScholarGoogle Scholar
  14. Decision Management Systems GmbH, Kopi compiler. Available from http://www.dms.at/kopi/.Google ScholarGoogle Scholar
  15. R. J. Lipton. Reduction: A method of proving properties of parallel programs. Communications of the ACM, 18(12):717--721, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. C. H. Papadimitriou. The serializability of concurrent database updates. Journal of the ACM, 26(4):631--653, Oct. 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. A. Sasturkar, R. Agarwal, L. Wang, and S. D. Stoller. Automated type-based analysis of data races and atomicity. In Proc. ACM SIGPLAN 2005 Symposium on Principles and Practice of Parallel Programming (PPoPP). ACM Press, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. V. Vefeiadis, M. Herlihy, T. Hoare, and M. Shapiro. Proving correctness of highly-concurrent linearizable objects. In Proc. ACM SIGPLAN 2006 Symposium on Principles and Practice of Parallel Programming (PPoPP). ACM Press, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. von Praun and T. R. Gross. Object race detection. In Proc. 16th ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), volume 36(11) of SIGPLAN Notices, pages 70--82. ACM Press, Oct. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. C. von Praun and T. R. Gross. Static detection of atomicity violations in object-oriented programs. In Journal of Object Technology, vol.3, no. 6, June 2004.Google ScholarGoogle Scholar
  21. L. Wang and S. D. Stoller. Run-time analysis for atomicity. In Third Workshop on Runtime Verification (RV03), volume 89(2) of Electronic Notes in Theoretical Computer Science. Elsevier, 2003.Google ScholarGoogle Scholar
  22. L. Wang and S. D. Stoller. Runtime analysis of atomicity for multi-threaded programs. Technical Report DAR-04-14, SUNY at Stony Brook, Computer Science Dept., July 2004. (revised May 2005). To appear in IEEE Transactions on Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. L. Wang and S. D. Stoller. Accurate and efficient runtime detection of atomicity errors in concurrent programs. Technical Report DAR-05-26, SUNY at Stony Brook, Computer Science Dept., Sept. 2005.Google ScholarGoogle Scholar
  24. L. Wang and S. D. Stoller. Static analysis for programs with non-blocking synchronization. In Proc. ACM SIGPLAN 2005 Symposium on Principles and Practice of Parallel Programming (PPoPP). ACM Press, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Accurate and efficient runtime detection of atomicity errors in concurrent programs

                  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
                  • Published in

                    cover image ACM Conferences
                    PPoPP '06: Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
                    March 2006
                    258 pages
                    ISBN:1595931899
                    DOI:10.1145/1122971

                    Copyright © 2006 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: 29 March 2006

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Qualifiers

                    • Article

                    Acceptance Rates

                    Overall Acceptance Rate230of1,014submissions,23%

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader