Static analysis of embedded multithreaded programs - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2010

Static analysis of embedded multithreaded programs

Analyse statique de programmes parallèles

Résumé

This Phd thesis presents a static analysis algorithm for programs with threads. It generalizes abstract interpretation techniques used in the single-threaded case and allows to detect runtimes errors, e.g, invalid pointer dereferences, array overflows, integer overflows. We have implemented this algorithm. It analyzes a large industrial multithreaded code (100K LOC) in few hours. Our technique is modular, it uses any abtract domain designed for the single-threaded-case. Furthermore, without any change in the fixpoint computation, sorne abstract domains allow to detect data-races or deadlocks. This technique does not assume sequential consistency, since, in practice (INTEL and SPARC processors, JAVA, ... ), program execution is not sequentially consistent. E.g, it works in TSO (Total Store ordering) or PSO (Partial Store Ordering) memory models.
Cette thèse présente un algorithme d'analyse statique pour des programmes parallèles. Il généralise des techniques d'interprétation abstraite utilisée dans le cas de programmes sans parallélisme et permet de détecter des erreurs d'exécution, exempli gratia, les déréférencements de pointeur invalide, les débordements de tableaux, les débordements d'entiers. Nous avons implémenté cet algorithme. Il analyse un code industriel de taille conséquente (100 000 lignes de code) en quelques heures. Notre technique est modulaire, elle peut utiliser n'importe quel domaine abstrait créé pour le cas de programmes non-parallèles. En outre, sans change le calcul du point fixe, certains de nos domaines abstraits. permettent la détection de data-races ou de deadlocks. Cette technique ne présuppose pas la consistance séquentielle (i.e. ne présuppose pas que l'exécution d'un programme parallèle est l'entrelacement de l'exécution de sous-programmes) puisque, en pratique (les processeurs INTEL et SPARC, JAVA, ... ) l'exécution des programmes n'est pas séquentiellement consistante. Exempli gratia notre technique fonctionne avec les modèles TSO (Total Store Ordering) et PSO (Partial Store Ordering).
Fichier principal
Vignette du fichier
Carre2010mines.pdf (2.49 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-01199739 , version 1 (16-09-2015)

Identifiants

  • HAL Id : tel-01199739 , version 1

Citer

Jean-Loup Carré. Static analysis of embedded multithreaded programs. Computer science. École normale supérieure de Cachan - ENS Cachan, 2010. English. ⟨NNT : 2010DENS0018⟩. ⟨tel-01199739⟩
194 Consultations
112 Téléchargements

Partager

Gmail Facebook X LinkedIn More