[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article
Open access

Concurrent software verification with states, events, and deadlocks

Published: 01 December 2005 Publication History

Abstract

We present a framework for model checking concurrent software systems which incorporates both states and events. Contrary to other state/event approaches, our work also integrates two powerful verification techniques, counterexample-guided abstraction refinement and compositional reasoning. Our specification language is a state/event extension of linear temporal logic, and allows us to express many properties of software in a concise and intuitive manner. We show how standard automata-theoretic LTL model checking algorithms can be ported to our framework at no extra cost, enabling us to directly benefit from the large body of research on efficient LTL verification.
We also present an algorithm to detect deadlocks in concurrent message-passing programs. Deadlock- freedom is not only an important and desirable property in its own right, but is also a prerequisite for the soundness of our model checking algorithm. Even though deadlock is inherently non-compositional and is not preserved by classical abstractions, our iterative algorithm employs both (non-standard) abstractions and compositional reasoning to alleviate the state-space explosion problem. The resulting framework differs in key respects from other instances of the counterexample-guided abstraction refinement paradigm found in the literature.
We have implemented this work in the magic verification tool for concurrent C programs and performed tests on a broad set of benchmarks. Our experiments show that this new approach not only eases the writing of specifications, but also yields important gains both in space and in time during verification. In certain cases, we even encountered specifications that could not be verified using traditional pure event-based or state-based approaches, but became tractable within our state/event framework. We also recorded substantial reductions in time and memory consumption when performing deadlock-freedom checks with our new abstractions. Finally, we report two bugs (including a deadlock) in the source code of Micro-C/OS versions 2.0 and 2.7, which we discovered during our experiments.

Cited By

View all
  • (2022)Approximate verification of concurrent systems using token structures and invariantsInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-022-00650-624:4(613-633)Online publication date: 1-Aug-2022
  • (2019)Efficient verification of concurrent systems using local-analysis-based approximations and SAT solvingFormal Aspects of Computing10.1007/s00165-019-00483-231:3(375-409)Online publication date: 1-Jun-2019
  • (2019)Local Nontermination Detection for Parallel C++ ProgramsSoftware Engineering and Formal Methods10.1007/978-3-030-30446-1_20(373-390)Online publication date: 18-Sep-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Formal Aspects of Computing
Formal Aspects of Computing  Volume 17, Issue 4
Dec 2005
95 pages
ISSN:0934-5043
EISSN:1433-299X
Issue’s Table of Contents

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 December 2005
Published in FAC Volume 17, Issue 4

Author Tags

  1. Concurrent software
  2. Model checking
  3. Temporal logic
  4. States and events
  5. Deadlock
  6. Compositional reasoning
  7. Counterexample-guided abstraction refinement

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)23
  • Downloads (Last 6 weeks)4
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Approximate verification of concurrent systems using token structures and invariantsInternational Journal on Software Tools for Technology Transfer (STTT)10.1007/s10009-022-00650-624:4(613-633)Online publication date: 1-Aug-2022
  • (2019)Efficient verification of concurrent systems using local-analysis-based approximations and SAT solvingFormal Aspects of Computing10.1007/s00165-019-00483-231:3(375-409)Online publication date: 1-Jun-2019
  • (2019)Local Nontermination Detection for Parallel C++ ProgramsSoftware Engineering and Formal Methods10.1007/978-3-030-30446-1_20(373-390)Online publication date: 18-Sep-2019
  • (2019)Efficient Formal Verification for the Linux KernelSoftware Engineering and Formal Methods10.1007/978-3-030-30446-1_17(315-332)Online publication date: 18-Sep-2019
  • (2007)A compositional symbolic verification framework for concurrent softwareProceedings of the 2nd international conference on Scalable information systems10.5555/1366804.1366905(1-4)Online publication date: 6-Jun-2007

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media