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

From MaRDI portal
Publication:3000591

DOI10.1007/978-3-642-19718-5_21zbMATH Open1239.68021arXiv1203.3724OpenAlexW1531955077MaRDI QIDQ3000591FDOQ3000591

Antoine Minรฉ

Publication date: 19 May 2011

Published in: Programming Languages and Systems (Search for Journal in Brave)

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'ee, 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'es'ee, and demonstrate the scalability of our approach.


Full work available at URL: https://arxiv.org/abs/1203.3724





Cites Work


Cited In (7)

Uses Software


   Recommendations





This page was built for publication: Static analysis of run-time errors in embedded critical parallel C programs

Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q3000591)