skip to main content
10.1145/2103656.2103693acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Verification of parameterized concurrent programs by modular reasoning about data and control

Published:25 January 2012Publication History

ABSTRACT

In this paper, we consider the problem of verifying thread-state properties of multithreaded programs in which the number of active threads cannot be statically bounded. Our approach is based on decomposing the task into two modules, where one reasons about data and the other reasons about control. The data module computes thread-state invariants (e.g., linear constraints over global variables and local variables of one thread) using the thread interference information computed by the control module. The control module computes a representation of thread interference, as an incrementally constructed data flow graph, using the data invariants provided by the data module. These invariants are used to rule out patterns of thread interference that can not occur in a real program execution. The two modules are incorporated into a feedback loop, so that the abstractions of data and interference are iteratively coarsened as the algorithm progresses (that is, they become weaker) until a fixed point is reached. Our approach is sound and terminating, and applicable to programs with infinite state (e.g., unbounded integers) and unboundedly many threads. The verification method presented in this paper has been implemented into a tool, called Duet. We demonstrate the effectiveness of our technique by verifying properties of a selection of Linux device drivers using Duet, and also compare Duet with previous work on verification of parameterized Boolean program using the Boolean abstractions of these drivers.

Skip Supplemental Material Section

Supplemental Material

popl_5a_1.mp4

mp4

211.2 MB

References

  1. J. Alglave, D. Kroening, N. He, A. Ranjan, N. Seghir, and M. Tautschnig. CPROVER project, Nov. 2011. URL http://www.cprover.org/.Google ScholarGoogle Scholar
  2. T. Arons, A. Pnueli, S. Ruah, J. Xu, and L. D. Zuck. Parameterized verification with automatically computed inductive assertions. In CAV, pages 221--234, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. G. Basler, M. Mazzucchi, T. Wahl, and D. Kroening. Symbolic counter abstraction for concurrent software. In CAV, pages 64--78, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Berdine, T. Lev-Ami, R. Manevich, G. Ramalingam, and M. Sagiv. Thread quantification for concurrent shape analysis. In CAV, volume 5123 of LNCS, pages 399--413. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Bertrand and A. Miné. Apron: A library of numerical abstract domains for static analysis. In CAV, pages 661--667, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Bouajjani, B. Jonsson, M. Nilsson, and T. Touili. Regular model checking. In CAV, pages 403--418, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Choi, K. Lee, A. Loginov, R. O'Callahan, V. Sarkar, and M. Sridharan. Efficient and precise datarace detection for multithreaded object-oriented programs. SIGPLAN Not., 37: 258--269, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. Clarke, D. Kroening, and F. Lerda. A tool for checking ANSI-C programs. In K. Jensen and A. Podelski, editors, Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2004), volume 2988 of Lecture Notes in Computer Science, pages 168--176. Springer, 2004. ISBN 3--540--21299-X.Google ScholarGoogle Scholar
  9. E. M. Clarke, D. Kroening, N. Sharygina, and K. Yorav. Satabs: Sat-based predicate abstraction for ansi-c. In TACAS, pages 570--574, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Cohen and K. S. Namjoshi. Local proofs for linear-time properties of concurrent programs. In CAV, pages 149--161, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. F. Donaldson, A. Kaiser, D. Kroening, and T. Wahl. Symmetry-aware predicate abstraction for shared-variable concurrent programs. In CAV, pages 356--371, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. E. A. Emerson and V. Kahlon. Model checking large-scale and parameterized resource allocation systems. In TACAS, pages 251--265, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. E. A. Emerson and A. P. Sistla. Symmetry and model checking. Form. Methods Syst. Des., 9: 105--131, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Engler and K. Ashcraft. Racerx: effective, static detection of race conditions and deadlocks. SIGOPS Oper. Syst. Rev., 37: 237--252, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Gupta, C. Popeea, and A. Rybalchenko. Predicate abstraction and refinement for verifying multi-threaded programs. In POPL, pages 331--344, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. C. N. Ip and D. L. Dill. Verifying systems with replicated components in murφ;, 1997.Google ScholarGoogle Scholar
  17. R. Johnson and K. Pingali. Dependence-based program analysis. In PLDI, pages 78--89, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. V. Kahlon, S. Sankaranarayanan, and A. Gupta. Semantic reduction of thread interleavings in concurrent programs. In TACAS, pages 124--138, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. A. Kaiser, D. Kroening, and T. Wahl. Dynamic cutoff detection in parameterized concurrent programs. In CAV, pages 645--659. 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Y. Kesten, O. Maler, M. Marcus, A. Pnueli, and E. Shahar. Symbolic model checking with rich assertional languages. In CAV, pages 424--435, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Y. Kesten, A. Pnueli, E. Shahar, and L. D. Zuck. Network invariants in action. In CONCUR, pages 101--115, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. S. La Torre, P. Madhusudan, and G. Parlato. Model-checking parameterized concurrent programs using linear interfaces. In CAV, pages 629--644. 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. K. Lahiri and R. E. Bryant. Predicate abstraction with indexed predicates. ACM Trans. Comput. Logic, 9, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. L. Lamport. A new solution of dijkstra's concurrent programming problem. Commun. ACM, 17 (8): 453--455, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 011)}mineA. Miné. Static analysis of run-time errors in embedded critical parallel c programs. In ESOP, pages 398--418, Berlin, Heidelberg, 2011. Springer-Verlag. ISBN 978--3--642--19717--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Naik and A. Aiken. Conditional must not aliasing for static race detection. SIGPLAN Not., 42: 327--338, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. Naik, A. Aiken, and J. Whaley. Effective static race detection for Java. SIGPLAN Not., 41: 308--319, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. G. C. Necula, S. McPeak, S. P. Rahul, and W. Weimer. Cil: Intermediate language and tools for analysis and transformation of c programs. In CC, pages 213--228, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. A. Pnueli, S. Ruah, and L. D. Zuck. Automatic deductive verification with invisible invariants. In TACAS, pages 82--97, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. A. Pnueli, J. Xu, and L. D. Zuck. Liveness with (0, 1, ı)-counter abstraction. In CAV, pages 107--122, 2002. ISBN 3--540--43997--8. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. P. Pratikakis, J. S. Foster, and M. Hicks. Locksmith: context-sensitive correlation analysis for race detection. SIGPLAN Not., 41: 320--331, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. N. Sterling. Warlock - a static data race analysis tool. In USENIX Winter, pages 97--106, 1993.Google ScholarGoogle Scholar
  33. J. Whaley and M. S. Lam. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. SIGPLAN Not., 39: 131--144, June 2004. ISSN 0362--1340. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Verification of parameterized concurrent programs by modular reasoning about data and control

              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
                POPL '12: Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                January 2012
                602 pages
                ISBN:9781450310833
                DOI:10.1145/2103656
                • cover image ACM SIGPLAN Notices
                  ACM SIGPLAN Notices  Volume 47, Issue 1
                  POPL '12
                  January 2012
                  569 pages
                  ISSN:0362-1340
                  EISSN:1558-1160
                  DOI:10.1145/2103621
                  Issue’s Table of Contents

                Copyright © 2012 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: 25 January 2012

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • research-article

                Acceptance Rates

                Overall Acceptance Rate824of4,130submissions,20%

                Upcoming Conference

                POPL '25

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader