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

Azadeh Farzan, Zachary Kincaid

Research output: Chapter in Book/Report/Conference proceedingConference contribution

23 Scopus citations

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.

Original languageEnglish (US)
Title of host publicationPOPL'12 - Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Pages297-308
Number of pages12
DOIs
StatePublished - 2012
Externally publishedYes
Event39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'12 - Philadelphia, PA, United States
Duration: Jan 25 2012Jan 27 2012

Publication series

NameConference Record of the Annual ACM Symposium on Principles of Programming Languages
ISSN (Print)0730-8566

Other

Other39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'12
Country/TerritoryUnited States
CityPhiladelphia, PA
Period1/25/121/27/12

All Science Journal Classification (ASJC) codes

  • Software

Keywords

  • Abstract interpretation
  • Compositional reasoning
  • Concurrency
  • Data flow graphs
  • Parameterized programs
  • Thread invariants

Fingerprint

Dive into the research topics of 'Verification of parameterized concurrent programs by modular reasoning about data and control'. Together they form a unique fingerprint.

Cite this