Description
Date depot: 1 janvier 1900
Titre: Langage synchrone fonctionnel pour la programmation et la simulation de systèmes temps-réel distribués
Directeur de thèse:
Marc POUZET ()
Domaine scientifique: Sciences et technologies de l'information et de la communication
Thématique CNRS : Non defini
Resumé:
Nous étudions un problème fondamental issu de l’expérience industrielle et académique : la programmation et la simulation de systèmes embarqués temps réel physiquement distribués. On en trouve des exemples significatifs dans le suivi et le contrôle de trains (train tracking), les réseaux de capteurs ou ad-hoc, la simulation d’usines, etc. Ces applications sont formées d’un grand nombre (jusqu’à plusieurs milliers) de systèmes élémentaires ayant chacun des contraintes de temps réel dur, l’ensemble pouvant évoluer dynamiquement dans un cadre asynchrone et distribué.
Les langages synchrones sont particulièrement bien adaptés à la programmation de systèmes embarqués ayant des contraintes de temps réel dur et ils ont largement prouvé leur expressivité sur des projets industriels de grande taille, de l’aéronautique à l’électronique grand public. De plus, le modèle de concurrence synchrone est suffisamment expressif pour décrire des systèmes asynchrones et les mécanismes de synchronisation classiques, des politiques d’ordonnancement dynamique, des contraintes de temps physique ou la communication par échantillonnage périodique (modèle Quasi-synchrone de Caspi). Des travaux importants ont été menés pour générer du code embarqué séquentiel, sous forme de tâches pour un OS temps réel ou de code distribué (communication par envoi de messages).
Les langages synchrones tels que LUSTRE ou ESTEREL sont cependant limités à la programmation de systèmes s’exécutant en temps et mémoire bornés. Ils ne permettent pas de modéliser des traits dynamiques (e.g., création dynamique de processus, topologie changeante du système). Cela se comprend bien lorsque les applications visées ont des contraintes de temps réel dure ou nécessitant un haut niveau de sûreté. Cette restriction d’expressivité empêche cependant de programmer à partir d’un code source unique à la fois un système temps réel et la simulation complète de milliers d’entre eux. Ce problème intervient, en particulier, lors de la conception de protocoles de routage basse consommation dans les réseaux de capteur : chaque capteur est un système temps réel qui pourrait être facilement programmé dans un langage synchrone mais la simulation de milliers d’entre eux ou encore l’ajout possible de noeuds au cours de la simulation devant alors être programmés autrement. REACTIVEML a apporté une première solution en permettant de décrire à la fois le fonctionnement d’un capteur et la simulation de l’ensemble des capteurs évoluant dynamiquement. L’implémentation en REACTIVEML s’est révélée plus efficace d’un ordre de grandeur que les outils de simulation réseaux dédiés (e.g., NS2, OPNET) et d’une programmation impérative à base de processus légers (threads). Le concepteur dispose ici d’un vrai langage de programmation lui permettant de programmer finement le niveau de simulation souhaité (e.g., couches réseaux jusqu’à la couche MAC) et il peut interfacer un programme REACTIVEML avec des modèles de l’environnement physique (e.g., programmés en LUTIN). REACTIVEML est utilisé par l’e ́quipe Synchrone de VERIMAG pour le de ́veloppement de protocoles basse consommation dans les re ́seaux de capteurs.
Doctorant.e: Pasteur Cedric