Exécution de tâches asynchrones depuis ESTEREL
Institution:
NiceDisciplines:
Directors:
Abstract EN:
Pas de résumé disponible.
Abstract FR:
De nombreux systèmes informatiques sont considérés comme des systèmes réactifs car ils maintiennent une interaction synchrone permanente avec leur environnement. Le langage parallèle ESTEREL est spécialement conçu pour programmer de tels systèmes. L'hypothèse de synchronisme parfait d’ESTEREL s'énonce ainsi : les sorties d'un programme ESTEREL sont délivrées en même temps que les entrées, les réactions d'un programme se faisant idéalement en temps nul. Cette hypothèse est utilisée par le compilateur pour engendrer l'automate représenté par la source ESTEREL et doit être validée a posteriori lors de l'implémentation. Cependant cette validation pose problème lorsque le programme doit réaliser des calculs qui durent. Dans cette thèse, nous présentons une extension d’ESTEREL qui permet de lancer des actions de durée non nulle: les taches asynchrones. La présentation s'appuie sur une sémantique formelle d’ESTEREL incluant une nouvelle primitive Exec mais excluant variables et signaux values pour des raisons de simplicité de l'expose. Cette sémantique est illustrée par des exemples d'exécution de programmes. Ensuite, nous présentons les modifications réalisées dans le compilateur pour traiter cette nouvelle primitive. A cette occasion, nous décrivons les codes intermédiaires de la chaine de compilation ESTEREL-v3. Les modifications traitent le langage ESTEREL complet: nous montrons ici comment résoudre les problèmes d'atomicité entre retour des arguments des taches asynchrones et interruption de ces taches par des gardes temporelles. Finalement, nous décrivons le producteur de code développe pour simplifier l'implémentation d'un automate utilisant Exec.