Conférence d’informatique - Pascal Raymond (Verimag)

Analyse de pire temps d’exécution et programmation synchrone

Par Pascal Raymond (Verimag)

Les systèmes embarqués sont des dispositifs informatisés dédiés à une tâche spécifique, typiquement le contrôle/commande d’un processus physique. On en trouve dans le domaine des transports (freinage assisté, allumage moteur, commande de vol), du contrôle de processus industriel, ou de la production d’énergie. Les termes de systèmes réactifs, systèmes temps-réel (dur) couvrent à peu près la même réalité.
Une caractéristique principale de ces systèmes est la criticité : les défaillances peuvent être catastrophiques. Il faut donc s’assurer de la correction de ses systèmes avant leur mises en service.


Pour être considéré comme correct, un tel système doit essentiellement : - calculer juste : il réalise bien la fonctionnalité attendue, sans bogue de conception ni erreur à l’exécution ; - calculer (suffisamment) vite : la vitesse de réaction du système doit être en adéquation avec la dynamique du processus physique qu’il contrôle.
L’approche synchrone, formalisée dans le courant des années 80, s’intéresse spécifiquement aux aspects fonctionnels. Elle propose un cadre idéalisé pour la conception des systèmes (concurrence déterministe), et fournit les outils nécessaires pour la programmation, la validation, la compilation et l’implantation du logiciel embarqué. L’outil Scade (Esterel technologies) est un exemple typique d’un environnement de programmation synchrone, utilisé en production dans l’industrie (commandes de vol Airbus et bien autres).
L’analyse temporelle cherche à vérifier que le temps de réaction du système implanté est conforme aux contraintes temps-réel de son environnement. Aux méthodes dynamiques classiques, basées sur le test et la mesure, se sont ajoutées à partir des années 90 des méthodes d’analyse statiques qui cherchent à déterminer des bornes supérieures garanties aux temps de réaction. Le problème de base de ces méthodes est l’estimation du pire temps d’exécution d’un code séquentiel donné sur une architecture donnée (Worst Case Execution Time, ou WCET).
Cet exposé présente les complémentarités des deux domaines, puis aborde plus spécifiquement des travaux récents qui visent à analyser la sémantique des programmes synchrones pour découvrir des chemins d’exécutions infaisables sur le code compilé, et donc, potentiellement, d’affiner les estimations de pire temps d’exécution.

Mis à jour le 6/1/2017