Java memory model-aware model checking

  • Authors:
  • Huafeng Jin;Tuba Yavuz-Kahveci;Beverly A. Sanders

  • Affiliations:
  • University of Florida;University of Florida;University of Florida

  • Venue:
  • TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Java memory model guarantees sequentially consistent behavior only for programs that are data race free. Legal executions of programs with data races may be sequentially inconsistent but are subject to constraints that ensure weak safety properties. Occasionally, one allows programs to contain data races for performance reasons and these constraints make it possible, in principle, to reason about their correctness. Because most model checking tools, including Java Pathfinder, only generate sequentially consistent executions, they are not sound for programs with data races. We give an alternative semantics for the JMM that characterizes the legal executions as a least fixed point and show that this is an overapproximation of the JMM. We have extended Java Pathfinder to generate these executions, yielding a tool that can be soundly used to reason about programs with data races.