Dans les avions de dernière génération, de plus en plus de systèmes critiques font intervenir de l’électronique numérique et des composants logiciels. Pour chaque composant matériel et logiciel embarqués dans de tels systèmes, il est nécessaire d’apporter des garanties sur son bon fonctionnement. On parle informellement de satisfaire une exigence de déterminisme. Cette notion couvre des exigences portant sur le comportement du logiciel vis-à-vis de sa spécification, ainsi que le respect de contraintes temporelles.
La plupart des systèmes avioniques critiques sont dits “temps réel durs”. Cela signifie qu’ils doivent remplir leur fonction dans une durée finie. Quand ils embarquent des tâches logicielles, on associe à ces tâches des échéances, qui sont en général périodiques ou bien définies à partir d’évènements externes. Une analyse d’ordonançabilité peut être effectuée pour montrer que chaque tâche respecte son échéance. Cependant, cette analyse suppose que toutes les tâches complètent leur exécution en un temps fini si elles sont exécutées seules. Ce problème est habituellement abordé par des techniques d’évaluation de pire temps d’exécution (ou WCET).
Depuis le milieu des années 2000, la communauté avionique considère les processeurs multi-cœurs comme de bons candidats pour équiper les prochaines générations de systèmes embarqués. L’enjeu est à la fois d’obtenir des systèmes plus efficaces en termes de puissance de calcul, plus économes en consommation et en place occupée, mais également de trouver une solution pérenne à l’obsolescence des processeurs mono-cœurs.
Comme toute nouvelle technologie, l’usage de processeurs multi-cœurs dans les systèmes avioniques ne doit pas entraîner de régression au niveau de l’exigence de déterminisme. A ce titre, il est nécessaire de montrer qu’il est possible d’évaluer le WCET d’un ensemble d’applications exécutées sur un processeurs multi-cœurs. Nous étudions ce problème général dans cette thèse.
On décompose un système avionique en unités d’exécutions autonomes, appelées calculateurs, qui communiquent via des liens réseaux. Sur un calculateur on distingue trois types de composants : le support d’exécution qui est en général un processeur, les briques logicielles appelées aussi applications et les briques matérielles (excepté le processeur).
Nous abordons la thématique des systèmes avioniques sous l’angle de trois problématiques générales :
Déterminisme. Pour être certifiables, les systèmes avioniques doivent être déterministes. Cette exigence porte sur des aspects d’intégrité de l’exécution du logiciel avionique, mais également sur des aspects temporels
Efficacité. Pour être industriellement viables, les systèmes avioniques doivent être performants. L’efficacité d’un système se mesure sur des critères tels que sa puissance de calcul moyenne et en pire cas, ou encore sa consommation électrique. La problématique d’efficacité est habituellement abordée à travers l’usage de processeurs COTS , l’emploi de technologies semi-conducteurs récentes , mais également le développement de systèmes intégrés .
Intégration. De nombreuses applications avioniques sont déployées dans le cadre de systèmes intégrés. Cela signifie que les calculateurs affectés à ces systèmes hébergent plusieurs applications avioniques qui sont en général indépendantes et de niveaux de criticité différents. Cela permet notamment de limiter le nombre de calculateurs à embarquer dans un avion, ce qui contribue globalement à l’efficacité des systèmes avioniques. Les ressources matérielles d’un calculateur et le temps de calcul sont partagés entre les différents composants logiciels par un algorithme d’ordonnancement.
Un avion est un système critique dont la défaillance, définie par la perte de sa capacité à voler et atterrir, a en général des conséquences lourdes sur le plan humain. Afin d’éviter ce type de scenario, on demande à un avion et aux systèmes qui le composent de remplir des exigences de sûreté de fonctionnement. On dit informellement qu’ils doivent être déterministes. La notion de déterminisme à proprement parler n’a cependant été introduite que récemment [5] dans la règlementation portant sur les systèmes IMA, qui sont un sous-ensemble des systèmes avioniques.
I Introduction générale |