Static analysis of run-time errors in embedded real-time parallel C programs - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Journal Articles Logical Methods in Computer Science Year : 2012

Static analysis of run-time errors in embedded real-time parallel C programs

Abstract

We present a static analysis by Abstract Interpretation to check for run-time errors in parallel and multi-threaded C programs. Following our work on Astrée, we focus on embedded critical programs without recursion nor dynamic memory allocation, but extend the analysis to a static set of threads communicating implicitly through a shared memory and explicitly using a finite set of mutual exclusion locks, and scheduled according to a real-time scheduling policy and fixed priorities. Our method is thread-modular. It is based on a slightly modified non-parallel analysis that, when analyzing a thread, applies and enriches an abstract set of thread interferences. An iterator then re-analyzes each thread in turn until interferences stabilize. We prove the soundness of our method with respect to the sequential consistency semantics, but also with respect to a reasonable weakly consistent memory semantics. We also show how to take into account mutual exclusion and thread priorities through a partitioning over an abstraction of the scheduler state. We present preliminary experimental results analyzing an industrial program with our prototype, Thésée and demonstrate the scalability of our approach.
Fichier principal
Vignette du fichier
article-mine-LMCS12.pdf (624.33 Ko) Télécharger le fichier
Origin : Files produced by the author(s)
Loading...

Dates and versions

hal-00748098 , version 1 (04-11-2012)

Identifiers

Cite

Antoine Miné. Static analysis of run-time errors in embedded real-time parallel C programs. Logical Methods in Computer Science, 2012, 8 (1:26), pp.63. ⟨10.2168/LMCS-8⟩. ⟨hal-00748098⟩
182 View
99 Download

Altmetric

Share

Gmail Facebook X LinkedIn More