Évaluation du coût des threads dans un système temps réel


1 Contexte

L’équipe Émeraude est une équipe du LIFL/IRCICA depuis le 1er juillet 2011. L’équipe a pour objectif d’explorer les technologies post-CMOS et de proposer des solutions de programmation adaptées.

Le contexte applicatif est celui des systèmes temps réel embarqués, qui équipent bon nombre de dispositifs critiques, notamment les systèmes de contrôle-commande des navettes aérospatiales, avions, véhicules automobiles... Ce sont des systèmes informatiques autonomes à ressources limitées (unités de calcul, mémoire, etc) et soumis à de fortes contraintes temporelles en raison de leur interaction permanente avec leur environnement physique.

2 Problématique

En raison de leur complexité, les logiciels embarqués que nous considérons sont découpés en un ensemble de fonctionnalités haut-niveau (exemple : commande d’un aileron, récupération de données sur un capteur, etc), plus ou moins indépendantes, dont le nombre peut s’élever à plus de 1000 (pour les logiciels de vol Airbus par exemple). Du point de vue de l’architecture logicielle, une solution naïve consiste à implémenter chaque fonctionnalité par un thread et à laisser le système d’exploitation gérer la concurrence entre les threads. L’utilisation d’un nombre aussi élevé de threads a cependant un coût (mémoire, changements de contextes, etc). L’équipe Emeraude étudie des techniques visant à regrouper automatiquement différentes fonctionnalités dans un même thread (task clustering) afin de limiter le surcoût lié aux threads.

3 Travail à réaliser

Le but de ce projet est de mesurer expérimentalement l’impact du task clustering sur un système temps réel, du point de vue consommation mémoire, coût des changements de contexte, etc. En d’autres termes, l’objectif sera d’étudier en pratique s’il est préférable de privilégier un système avec un nombre restreint de tâches pour des fonctionnalités équivalentes.

Concrètement, il s’agira de programmer des fonctions en langage C qui seront exécutées via des threads sur un système d’exploitation temps réel et de développer un protocole, ou outil, de mesure de l’impact d’un nombre plus ou moins élevé de threads.

4 Encadrants

Julien Forget
julien.forget@lifl.fr

Pierre Boulet
pierre.boulet@lifl.fr

References

[1]   Antoine Bertout, Julien Forget, and Richard Olejnik. Automated runnable to task mapping. Technical report, May 2013.

[2]   Edward A Lee. The problem with threads. Computer, 39(5):33–42, 2006.

[3]   Chung Laung Liu and James W Layland. Scheduling algorithms for multiprogramming in a hard-real-time environment. Journal of the ACM (JACM), 20(1):46–61, 1973.