Static analysis of run-time errors in embedded real-time parallel C programs - Archive ouverte HAL Accéder directement au contenu
Article Dans Une Revue Logical Methods in Computer Science Année : 2012

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

Résumé

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
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

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

Identifiants

Citer

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 Consultations
99 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More