Instrumentation Expressive et Correcte de Programmes Distribues et Verification a L'execution

par Chukri Soueidi

Projet de thèse en Informatique

Sous la direction de Gwen Salaun.

Thèses en préparation à l'Université Grenoble Alpes , dans le cadre de École doctorale mathématiques, sciences et technologies de l'information, informatique , en partenariat avec Institut National de Recherche en Informatique et en Automatique (laboratoire) depuis le 01-10-2020 .


  • Résumé

    Cette thèse vise à résoudre les situations susmentionnées dans le paysage des outils de vérification d'exécution afin de fournir un cadre complet pour la vérification d'exécution sonore et expressive d'applications multithreads. Tout d'abord, nous visons à concevoir une méthode et un outil d'instrumentation offrant suffisamment de flexibilité pour effectuer certaines tâches d'instrumentation qui nécessitent d'atteindre des régions de code de bas niveau, telles que des instructions de bytecode, des variables locales d'une méthode et des blocs de base dans le graphe de flux de contrôle. (CFG). Un tel outil devrait rendre compte de la (des) trace (s) d'exécution du programme de manière saine, soit comme un ensemble de traces possibles compatibles avec l'exécution en cours, soit comme une séquence d'événements partiellement ordonnée. Deuxièmement, nous visons à concevoir un langage de spécification polyvalent pour prendre en charge la spécification de propriétés définies par l'utilisateur sur des programmes multithread. Un tel langage devrait prendre en charge une construction spécifique non seulement pour raisonner sur l'état attendu du programme, l'ordre des instructions, mais également des événements spécifiques liés à la concurrence (par exemple, synchronisation, fork, etc.). Le langage doit être doté d'une sémantique formelle et doit pouvoir exprimer des classiques. propriétés traditionnelles sur des traces totalement ordonnées. En tant que tel, le langage doit être capable de prendre en charge des formes hybrides de traces avec des régions concurrentes et séquentielles avec un ordre partiel et total entre les événements. Naturellement, le cadre sera démontré sur des références et des applications pertinentes. Au cours de la thèse, nous allons également concevoir des benchmarks spécifiques aux applications multi-threadées car il n'y a pas de benchmark spécifique qui cible les applications multi-threadées. Les théories et techniques seront appliquées à un sujet pertinent disponible dans les projets d'équipe

  • Titre traduit

    A Framework for Sound and Expressive Runtime Verification of Multithreaded Applications


  • Résumé

    This thesis aims at solving the aforementioned situations in the landscape of runtime verification tools so as to provide a complete framework for the sound and expressive runtime verification of multi-threaded applications. First, we aim to design an instrumentation method and tool that offers enough flexibility to perform some instrumentation tasks that require to reach low-level code regions, such as bytecode instructions, local variables of a method, and basic blocks in the control-flow graph (CFG). Such a tool should report the execution trace (s) of the program in a sound manner, either as a set of possible traces compatible with the current execution or as a partially ordered sequence of events. Second, we aim to design a versatile specification language to support the specification of user-defined properties on multithreaded programs. Such a language should support specific construct to not only reason about the expected state of the program, the ordering of statements, and also specific concurrency-related events (e.g., synchronization, fork, etc). The language should be endowed with a formal semantics and should be able to express classic. traditional properties over totally ordered traces. As such, the language should be able to support hybrid forms of traces with concurrent and sequential regions with partial and total order between events. Naturally, the framework will be demonstrated on relevant benchmarks and applications. During the thesis, we shall also design benchmarks specific to multi-threaded applications as there is no specific benchmark that property target multi-threaded applications. The theories and techniques will be applied to relevant subject available from the team projects.