Projet recherche : Gestion d’erreurs dans les systèmes temps réel


La poursuite en stage sur ce thème est possible.

1 Contexte

L’équipe Émeraude est une équipe du laboratoire CRIStAL. Elle a pour objectif de contribuer à l’utilisation simple et efficace des générations futures de processeurs destinés aux systèmes embarqués. L’équipe se focalise en particulier sur la gestion du temps à tous les niveaux d’une application informatique (langage, compilation, système d’exploitation, machine virtuelle).

2 Problématique

Dans le domaine des transports (ferroviaire, automobile, aéronautique), une erreur ou une panne survenant dans un système informatique embarqué peuvent avoir des conséquences catastrophiques. Le développement de tels systèmes inclut donc des mécanismes permettant soit de prévenir les erreurs ou pannes, soit de continuer à fonctionner correctement lorsqu’elles surviennent. Ces systèmes sont par ailleurs dits temps réel, car ils sont soumis à de fortes contraintes temporelles en raison de leur interaction permanente avec leur environnement physique : le système, à intervalles réguliers (contraintes de périodicité), observe son environnement physique à l’aide de capteurs (de vitesse, pression, etc) et réagit en conséquence en temps borné (contraintes d’échéance) à l’aide d’actionneurs (moteurs, ailerons, etc).

Dans le cadre de ce projet, nous nous intéressons aux mécanismes de gestion d’erreurs dans un système informatique temps réel. Les techniques de gestion d’erreur dans les systèmes non temps réel sont nombreuses, par exemple : les exceptions, les interruptions, la programmation par transaction, les mécanismes de check-point, etc. La question que l’on se pose dans ce projet est de savoir si elles peuvent être appliquées dans un contexte temps réel, car ce contexte induit des difficultés supplémentaires dans la mise en place de la gestion d’erreurs. Par exemple, un ordre erroné appliqué sur un actionneur n’est pas trivialement annulable car l’action impacte et modifie l’environnement dès qu’elle a lieu. Par ailleurs, en raison des contraintes d’échéance le système peut manquer de temps pour effectuer un calcul correctif. Soulignons de plus qu’une “erreur” peut correspondre à une échéance manquée (et non pas seulement une valeur incorrecte), auquel cas la correction d’erreur peut consister à modifier le comportement temporel du système (relâcher une contrainte d’échéance, modifier la périodicité d’un traitement, etc).

3 Travail à réaliser

L’objectif de ce projet est d’étudier les mécanismes de programmation utilisables pour gérer les erreurs dans un système temps réel. Le travail se décompose en deux parties : 1) Une étude bibliographique ; 2) La réalisation d’exemples montrant les difficultés à appliquer les techniques classiques dans un contexte temps réel.

4 Encadrants

Julien Forget
Julien.Forget@univ-lille1.fr

Giuseppe Lipari (HDR)
Giuseppe.Lipari@univ-lille1.fr

References

[1]   Alan Burns and Andy Wellings. Real-Time Systems and Programming Languages: Ada, Real-Time Java and C/Real-Time POSIX. Addison-Wesley Educational Publishers Inc, USA, 4th edition, 2009.

[2]   E Kligerman and A D Stoyenko. Real-time euclid: A language for reliable real-time systems. IEEE Trans. Softw. Eng., 12(9):941–949, September 1986.

[3]   Jun Lang and David B. Stewart. A study of the applicability of existing exception-handling techniques to component-based real-time software technology. ACM Trans. Program. Lang. Syst., 20(2):274–301, March 1998.