Distribution synchrone de programmes SIGNAL

Basés sur l'hypothèse d'un temps logique discret, les langages synchrones (SIGNAL, LUSTRE, ESTEREL) ont prouvé leur efficacité pour la conception d'application temps réel critiques sûres. Ils sont caractérisés par une sémantique forte offrant des techniques de vérification et de preuve.

SIGNAL, un des langages synchrone, est déclaratif et orienté flot de données. Dans ce langage, un signal est une succession de valeurs ; les instants de présence de ce signal sont appelés horloges. Tout au long de la conception, jusqu'à la phase finale de compilation , le compilateur SIGNAL utilise un seul formalisme appelé Graphe Flot de Données Synchronisé (GFDS).

Pour différentes raisons, telles la délocalisation géographique de capteurs, l'accélération de la fréquence de réponse ou une plus grande tolérance aux fautes, les applications temps-réel nécessitent une production de code distribué. Nous allons présenter une méthode de distribution fonctionnelle des programmes, et prouver qu'elle peut se faire par transformations successives du GFDS, ce qui permet de conserver ce formalisme jusqu'à la phase finale de génération de code distribué.

Après une rapide présentation du langage SIGNAL en nous intéressant plus particulièrement au GFDS, nous allons donner une méthode de propagation de directives de distribution du code source jusqu'au GFDS. Nous allons ensuite montrer comment les communications peuvent être introduites dans le GFDS, et comment la partie «contrôle» des programmes SIGNAL peut être distribuée pour obtenir sur chaque processeur, un sous-graphe indépendant des autres. Finalement, nous montrerons des implémentations possibles et des perspectives de ce travail.

In actes des 2èmes Journées Jeunes Chercheurs en Systèmes Répartis, Rennes, Octobre 1995. P. Aubry and Thierry Gautier, IRISA/INRIA, Campus de Beaulieu, F-35042 Rennes Cedex