Platform-Specific Restrictions on Concurrency in Model Checking of Java Programs

  • Authors:
  • Pavel Parizek;Tomas Kalibera

  • Affiliations:
  • Distributed Systems Research Group, Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague, Prague 1, Czech Republic 118 00;Distributed Systems Research Group, Department of Software Engineering, Faculty of Mathematics and Physics, Charles University in Prague, Prague 1, Czech Republic 118 00

  • Venue:
  • FMICS '09 Proceedings of the 14th International Workshop on Formal Methods for Industrial Critical Systems
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

The main limitation of software model checking is that, due to state explosion, it does not scale to real-world multi-threaded programs. One of the reasons is that current software model checkers adhere to full semantics of programming languages, which are based on very permissive models of concurrency. Current runtime platforms for programs, however, restrict concurrency in various ways -- it is visible especially in the case of critical embedded systems, which typically involve only a single processor and use a threading model based on limited preemption. In this paper, we present a technique for addressing state explosion in model checking of Java programs for embedded systems, which exploits restrictions on concurrency common to current Java platforms for such systems. We have implemented the technique in Java PathFinder and performed a number of experiments on Purdue Collision Detector, which is a non-trivial multi-threaded Java program. Results of experiments show that use of the restrictions on concurrency in model checking with Java PathFinder reduces the state space size by an order of magnitude and also reduces the time needed to discover errors in Java programs.