Glossaire

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.

DOSSIER
Des forces logicielles

Systèmes embarqués temps réel

Des contrôles qui ne trainent pas

Yvon TRINQUET, Professeur à l’Université de Nantes, chercheur à l’Irccyn, Institut de recherche en communications et cybernétique de Nantes (École centrale de Nantes/Université de Nantes/École des mines de Nantes/CNRS), responsable de l’équipe « Systèmes temps réel »

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.

Simulation d’exécution de trois tâches © RC2C. Source : Irccyn-STR

Une modélisation plus économe

L’élaboration d’un outil générique de conception et de vérification de systèmes temps réel devrait simplifier et accélérer leur développement.
par Matthias BRUN et Patrick PLAINCHAULT, enseignants et respectivement chercheur et directeur des recherches à l’Éséo, École supérieure d’électronique de l’Ouest (équipe Trame, Transformation de modèles pour l’embarqué ; http://trame.eseo.fr)

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.

En complément...

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