compilation : transcription d’un programme d’instructions codées dans un langage informatique en une séquence d’instructions exécutables par l’ordinateur. Les compilateurs (programmes de compilation) vérifient en général la cohérence des instructions et la limitation du nombre d’opérations à effectuer.
CPU (Central Processing Unit) : unité centrale ou « cœur » d’exécution des instructions d’un programme, aussi nommée processeur
système d’exploitation : ensemble de programmes permettant à un ordinateur de piloter ses composants matériels pour exécuter des logiciels et de piloter des matériels périphériques (écran, clavier, imprimante, etc.). Il permet aussi à l’utilisateur de modifier les paramètres de ces programmes.
Des contraintes non seulement temporelles...
L’informatique « embarquée » et « temps réel » opère au cœur de systèmes
complexes et souvent mobiles (une voiture, un avion, un téléphone
portable...), et les programmes qu’elle développe doivent être exécutés
sur un ou plusieurs calculateurs en respectant des contraintes temporelles
parfois très strictes. À titre d’exemple, le calculateur qui gère le freinage
d’un véhicule doit réagir dans un délai de l’ordre de 20 millisecondes
après l’appui sur la pédale de frein ; si, dans ce calculateur, l’exécution
des programmes dépasse ce délai, elle peut créer un danger pour le
véhicule et ses occupants.
L’exécution d’une application temps réel s’appuie sur un système
d’exploitation spécifique, dénommé RTOS (Real-Time Operating System).
Le RTOS gère l’exécution en parallèle d’un ensemble de « programmes
coopérants », communiquant les uns avec les autres et correspondant à
des tâches synchronisées. Pour respecter les contraintes temporelles de ces
tâches, il utilise un « algorithme d’ordonnancement » (ou ordonnanceur),
qui détermine les instants et les durées d’allocation du ou des processeurs
à l’exécution des différentes tâches.
Les travaux de recherche auxquels participent notre équipe portent
sur divers thèmes : la conception de ces RTOS ; des langages adaptés
à l’analyse des architectures logicielle et matérielle de l’application
visée ; des algorithmes d’ordonnancement qui garantissent a priori les
contraintes temporelles ; des techniques de modélisation de l’application
qui permettent, avant d’engager des essais sur un prototype, de vérifier
ses propriétés par des méthodes formelles (mathématiques) ou par des
simulations ; la sûreté de fonctionnement de l’application (la gestion
des pannes éventuelles).
Nous travaillons notamment sur les calculateurs « contrôle moteur » de
véhicules à essence. Ces calculateurs doivent contrôler la position du
papillon motorisé (qui remplace le carburateur) et le déclenchement de la
combustion du carburant dans chaque cylindre à partir de mesures de
la position de la pédale d’accélérateur et de la vitesse de rotation
du moteur, entre autres, et cela afin notamment de minimiser la
consommation d’essence et la pollution.
…mais aussi énergétiques
L’essor de l’informatique embarquée a intensifié ces activités de recherche,
dont les avancées récentes les plus remarquables portent en particulier
sur la conception et la mise en œuvre de nouvelles architectures
matérielles ayant des processeurs à plusieurs cœurs (capables d’exécuter
simultanément des calculs différents), qui augmentent les capacités de
gestion de systèmes complexes. Cependant, une autre contrainte que
celle du temps d’exécution doit être de plus en plus souvent intégrée :
celle de la consommation d’énergie, par exemple dans les téléphones
mobiles et dans les réseaux de capteurs sans fil.
En collaboration avec le Commissariat à l’énergie atomique, nous
venons de développer un logiciel de simulation du comportement d’un
ensemble complexe de tâches exécutées sur une architecture multicœur
novatrice. Plusieurs caractéristiques rendent ce logiciel lui-même innovant
dans le domaine de la simulation temps réel : il a été développé avec
un langage (Java) qui le rend exécutable sur différentes plateformes
informatiques ; l’extension de ses fonctionnalités est facilitée par sa
conception modulaire, qui sépare notamment l’ordonnanceur des autres
éléments du simulateur ; grâce à un modèle physique du processeur, il
calcule l’énergie consommée par les cœurs ; il permet d’analyser les
possibilités de gestion optimale de la tension électrique d’alimentation
des cœurs et de leurs fréquences de fonctionnement.
Tous les systèmes embarqués
temps réel (SETR) ne se trouvent
pas dans des objets mobiles : certains
sont enfouis dans des équipements
fixes. L’un des SETR sur lequel nous
avons récemment travaillé a été en
partie installé sur une portion de
la RD961, route du Maine-et-Loire,
dans le cadre du projet Vizir1. Ce dernier
visait, d’une part, à connaître les facteurs
responsables de la tendance observée, chez
les conducteurs, à s’écarter du milieu de leur
voie en sommet de côte (le plus souvent vers
la ligne médiane) et, d’autre part, à tester des
aménagements (bandes d’alerte sonore sur la
ligne médiane, accotement stabilisé) destinés à
réduire ce comportement dangereux.2
Les dispositifs de mesure (cf. la figure) devaient
être enterrés pour ne pas être vus des conducteurs
et ainsi ne pas influencer leurs comportements.
Cette contrainte a suscité la conception d’un
système innovant, comportant différents types
de capteurs (boucles électromagnétiques pour
mesurer la vitesse, capteurs résistifs ou à fibres
optiques pour le positionnement latéral)3 dont
les données étaient prétraitées par l’électronique
enfouie puis collectées par l’unité superviseur du
SETR qui en faisait une synthèse quotidienne,
télétransmise à notre laboratoire pour y
être analysée conjointement à des données
météorologiques.
Un logiciel temps réel et une infrastructure de
transfert de données ont été spécialement
développés pour ce projet. Les contraintes
temporelles étaient principalement liées au cas
dans lequel un véhicule en suit un autre de près ;
l’acquisition des données devait être rapide, tandis
qu’il faut du temps notamment pour prendre en
compte l’incertitude des mesures physiques des
capteurs. Le développement de ces derniers a fait
l’objet d’une thèse de doctorat4 et d’un brevet,
et la modélisation de leurs comportements, avec
celle des autres composantes du système, a permis
d’effectuer des simulations de l’ensemble du SETR
pour vérifications et ajustements avant sa mise
en œuvre.
La voie de la métamodélisation
La modélisation ne permet pas seulement
d’assurer le bon fonctionnement a priori des
SETR : elle peut aussi servir à les développer selon
des schémas préétablis pour éviter, à des fins
économiques, de reproduire des travaux réalisés
lors de précédents projets. Cette stratégie de
réutilisation, intégrée dans une « ingénierie dirigée
par les modèles », nécessite que les applications
temps réel et leurs supports d’exécution matériels
(processeurs, mémoires, etc.) ou logiciels (systèmes
d’exploitation) soient modélisés indépendamment ;
lors de la conception d’un SETR, une phase
de « déploiement d’application » consiste à
« fusionner » le modèle de l’application logicielle
correspondante avec ceux de ses supports
d’exécution, pour procéder aux vérifications.
Un autre travail de thèse5 a proposé un langage de modélisation (un « métamodèle ») des supports d’exécution logiciels temps réel et un algorithme générique de déploiement d’application sur ces supports. Un prototype d’outil logiciel recourant à ce langage et à cet algorithme permet de développer un SETR en suivant un processus dans lequel les différents spécialistes (de la modélisation d’applications temps réel ou des supports d’exécution) peuvent collaborer, quels que soient les supports d’exécution logiciels du SETR. Cet outil a été élaboré grâce à une analyse des connaissances et des activités respectives de tels spécialistes puis intégré dans un atelier logiciel6 pour en valider les concepts. Son expérimentation entreprise dans trois projets distincts a montré, au moyen d’une comparaison avec des méthodes classiques, qu’il permettait de gagner du temps de développement grâce à la réutilisation des différents modèles développés et à la simplicité qu’offre un métamodèle pour décrire des supports d’exécution, et qu’il facilitait à la fois le déploiement et les activités de vérification. La généralisation de cette métamodélisation aux supports matériels est en cours.
1. dans le cadre du programme Sari, Surveillance automatisée des routes pour l’information des conducteurs et des gestionnaires et Projet VIZIR
2. Le projet a permis de mettre évidence l’effet positif de ces bandes rugueuses et celui d’un accotement revêtu.
3. Système de transport intelligent
4. Réseaux de capteurs coopératifs dédiés aux suivis de trajectoire de véhicules, S. Aubin (Institut national polytechnique de Toulouse, 2009)
5. Contribution à la considération explicite des platesformes d’exécution logicielles lors d’un processus de déploiement d’application, M. Brun (ÉCN, 2010)
6. TopCased. Un atelier logiciel est un logiciel qui sert à développer des logiciels.
Têtes chercheuses ©2007 |
mentions légales |
contactez nous |
page d'accueil |
Réalisation : Intelliance 2007