Static versioning of global state for race condition detection

  • Authors:
  • Steffen Keul

  • Affiliations:
  • Dept. of Programming Languages, Universität Stuttgart, Stuttgart, Germany

  • Venue:
  • Ada-Europe'10 Proceedings of the 15th Ada-Europe international conference on Reliable Software Technologies
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

The implementation of concurrent reliable software systems is very difficult. Race conditions on shared data can cause a program’s memory state to become inconsistent and result in unpredictable behavior of the software. Much work has been published on analyses to identify access sites to shared data which do not conform to an accepted synchronization pattern. However, those algorithms usually cannot determine if a computation will use a consistent version of more than one shared data object. In this paper, we present a new static analysis algorithm to identify computations which can potentially load values that were stored independently of each other. These uses of global state are affected by race conditions and may yield undesired values during the execution of the program. We show applicability of an implementation of the analysis on several open-source systems.