thesis

Vérification de contraintes temporelles strictes sur des programmes par composition d'analyses partielles

Defense date:

Jan. 1, 2010

Edit

Institution:

Toulouse 3

Disciplines:

Directors:

Abstract EN:

Hard real-time systems are subject to real-time constraints. It is necessary to prove that no constraint violation can occur, and the WCET (Worst Cast Execution Time) computation plays an important role in this proof. The WCET computation by static analysis is traditionally performed on a complete program. This approach has two drawbacks: most computation methods run in non linear time with respect to the size of the analysed program, and problems arise when this program is made up of multiple components (some components may be unavailable at analysis time). Therefore, it is necessary to introduce a partial analysis method, in order to process separately each program component, producing partial WCET results for each component. The partial results can then be composed to get the WCET of the whole program. The WCET computation by IPET (Implicit Path Enumeration Technique) involves several analyses, each one contributes to an ILP system, and this system is solved to get the WCET. To perform partial analysis, each analysis involved in WCET computation must be adapted. We illustrate this process by taking the example of several existing analyses, then a more general framework for partial analysis is described. Next, we show that it is possible to take advantage of partial analysis to speed up ILP solving. Our experimentations show that the partial analysis leads to faster WCET computation time and allows handling programs made up of components, without adding too much overestimation.

Abstract FR:

Les systèmes temps-réel critiques doivent impérativement obéir à des contraintes temporelles strictes. Le respect de ces contraintes doit donc être prouvé, et le calcul de pire temps d'exécution (WCET ou Worst Case Execution Time) joue un rôle important dans cette preuve. Le calcul de WCET par analyse statique est généralement réalisé sur un programme entier. Ceci présente deux inconvénients : la plupart de ces méthodes de calcul voient leur temps d'exécution augmenter de manière non linéaire par rapport à la taille de la tâche à analyser, et un problème se pose lorsque cette tâche est constituée de plusieurs composants (dont certains ne sont pas disponibles au moment de l'analyse). Il est donc nécessaire d'introduire une approche d'analyse partielle, permettant d'analyser séparément les composants d'un programme, produisant un résultat de WCET partiel pour chaque composant. Ces résultats partiels peuvent ensuite être composés pour obtenir le WCET du programme. Le calcul de WCET comporte plusieurs analyses dont les résultats sont exprimés sous forme d'un système ILP, qui doit ensuite être résolu pour obtenir le WCET. Chaque analyse doit être adaptée pour faire de l'analyse partielle. Cette adaptation sera illustrée à l'aide de diverses analyses existantes, et une formulation générale pour l'analyse partielle sera donnée. Il sera ensuite montré qu'il est possible d'utiliser l'analyse partielle afin d'accélérer la résolution ILP. L'expérimentation montre que l'analyse partielle permet de réduire le temps de calcul et de traiter le cas des programmes avec composants, sans rajouter trop de pessimisme.