# Online efficient predictive safety analysis of multithreaded programs

By

Full Text:
http://dx.doi.org/10.1007/978-3-540-24730-2_9

## Abstract

An automated and configurable technique for runtime safety analysis of multithreaded programs is presented, which is able to predict safety violations from successful executions. Based on a user provided safety formal specification, the program is automatically instrumented to emit relevant state update events to an observer, which further checks them against the safety specification. The events are stamped with dynamic vector clocks, enabling the observer to infer a causal partial order on the state updates. All event traces that are consistent with this partial order, including the actual execution trace, are analyzed on-line and in parallel, and a warning is issued whenever there is a trace violating the specification. This technique can be therefore seen as a bridge between testing and model checking. To further increase scalability, a window in the state space can be specified, allowing the observer to infer the most probable runs. If the size of the window is 1 then only the received execution trace is analyzed, like in testing; if the size of the window is ∞ then all the execution traces are analyzed, such as in model checking.

## BibTeX

@inproceedings{conf/tacas/SenRA04,
author = "Sen, Koushik and Rosu, Grigore and Agha, Gul",
editor = "Jensen, Kurt and Podelski, Andreas",
title = "Online Efficient Predictive Safety Analysis of
booktitle = "TACAS",
crossref = "conf/tacas/2004",
ee = "http://dx.doi.org/10.1007/978-3-540-24730-2_9",
keywords = "formal methods, sensor networks, real-time systems",
pages = "123-138",
year = "2004",
}

@proceedings{conf/tacas/2004,
editor = "Jensen, Kurt and Podelski, Andreas",
title = "Tools and Algorithms for the Construction and Analysis of
Systems, 10th International Conference, TACAS 2004, Held as Part
of the Joint European Conferences on Theory and Practice of
Software, ETAPS 2004, Barcelona, Spain, March 29 - April 2, 2004,
Proceedings",
isbn = "3-540-21299-X",
publisher = "Springer",
series = "Lecture Notes in Computer Science",
volume = "2988",
year = "2004",
}