III
Cet ouvrage fait par tie de
Automatique et ingénierie système
(Réf. Internet ti660)
composé de :
Sur www.techniques-ingenieur.fr
• Saisissez la référence Internet pour accéder directement aux contenus en ligne
• Retrouvez la liste complète des ressources documentaires
IV
Cet ouvrage fait par tie de
Automatique et ingénierie système
(Réf. Internet ti660)
Pierre VIDAL
Professeur honoraire des universités
Chékib GHARBI
Directeur du Centre d'Innovation des Technologies sans Contact (CITC
EuraRFID), Lille
Christian TAHON
Professeur à l'Université de Valenciennes et du Hainaut Cambrésis (UVHC)
Étienne DOMBRE
Directeur de Recherche Émérite du CNRS au LIRMM, UMR 5506 Université
Montpellier-CNRS
Éric BONJOUR
Professeur à l'université de Lorraine / ENSGSI, Vice-président Enseignement
-Recherche de l'AFIS
Dominique LUZEAUX
Ingénieur général de l'armement, HDR
Sur www.techniques-ingenieur.fr
• Saisissez la référence Internet pour accéder directement aux contenus en ligne
• Retrouvez la liste complète des ressources documentaires
V
Les auteurs ayant contribué à cet ouvrage sont :
Sur www.techniques-ingenieur.fr
• Saisissez la référence Internet pour accéder directement aux contenus en ligne
• Retrouvez la liste complète des ressources documentaires
VI
Supervision des systèmes industriels
(Réf. Internet 42396)
SOMMAIRE
Présentation du MES. Pilotage et suivi des fabrications pensés comme un système S8005 11
intégré
Exemple d'application MES. Cas du projet BIOPROD du groupe SARIA S8006 13
Sur www.techniques-ingenieur.fr
• Saisissez la référence Internet pour accéder directement aux contenus en ligne
• Retrouvez la liste complète des ressources documentaires
VII
OS embarqués H8200 93
Sur www.techniques-ingenieur.fr
• Saisissez la référence Internet pour accéder directement aux contenus en ligne
• Retrouvez la liste complète des ressources documentaires
Supervision des systèmes industriels
(Réf. Internet 42396)
Q
1– Méthodes fonctionnelles et outils Réf. Internet page
Présentation du MES. Pilotage et suivi des fabrications pensés comme un système S8005 11
intégré
Exemple d'application MES. Cas du projet BIOPROD du groupe SARIA S8006 13
4– Interaction homme-machine
5– Exigences contractuelles
Sur www.techniques-ingenieur.fr
• Saisissez la référence Internet pour accéder directement aux contenus en ligne
• Retrouvez la liste complète des ressources documentaires
Y
Q
QP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPPU
Présentation du MES
Pilotage et suivi des fabrications pensés
comme un système intégré
par Philippe ALLOT
Q
Ingénieur de l’École Centrale de Paris
PDG d’ORDINAL Software
QQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPPU
d’ailleurs donné son nom à l’association elle-même (MESA). Le MESA s’est aussi
fait connaı̂tre par les « onze fonctions du MES » que nous verrons par la suite.
Néanmoins, arrivé nettement après les autres logiciels, le MES a d’abord pâti
de cette situation. Un peu comme dans les auberges espagnoles d’antan, où les
clients apportaient eux-mêmes à manger, les industriels ont cherché à définir
comme appartenant au MES tout ce qu’ils ne trouvaient pas dans leurs outils
existants…
Q Aujourd’hui, comme nous allons le voir, grâce à des travaux importants tels
que ceux menés par l’ISA (International Standard of Automation), et aux efforts
de recherche des éditeurs de logiciels, le MES a réellement pris sa place dans la
palette des outils indispensables de l’entreprise pour relever ses défis.
– Gestion de la maintenance
Ordonnancement
Maintenance
Qualité
QR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPPV
QS
Q
QT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
beVPPQ
QU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
beVPPQ
1. Systèmes de contrôle- Prenons l’exemple d’un SCI simple présenté sur la figure 2. Le
domaine physique se compose de deux actionneurs (pompe P et sou-
commande industriels pape V), d’un réservoir T, et de deux capteurs, L1 pour indiquer le
niveau haut du réservoir, Lh = 35 cm3, et L2 pour indiquer le niveau bas
comme systèmes du réservoir, Lw = 5 cm. Le tableau 1 présente les valeurs numériques
de cet exemple. Lorsque L1 = 1, ou L2 = 1, le niveau de liquide dans le
cyberphysiques réservoir est haut, ou bas. La section transversale S du réservoir est
égale à 10 cm2, le débit Qp de la pompe est de 20 cm3/sec, et le débit
Qv de la soupape de 10 cm3/sec. Le niveau maximal du réservoir est
Les systèmes cyberphysiques [1], [2] font référence à l’applica- Lmax = 45 cm. La séquence de contrôle est définie comme ci-après
tion des éléments de calcul et de la technologie de communication (figure 3). À l’étape 0, la pompe est à l’arrêt, la soupape fermée, et le
embarquée dans les multiples composants et processus physiques niveau de liquide dans le réservoir est bas (L2 = 1, L1 = 0).
dans différents domaines, tels que le transport, la fabrication, les Étape 1 : le contrôleur envoie la commande « Démarrage de la
systèmes d’alimentation électrique, l’infrastructure civile, la santé, pompe ».
la chimie, l’aérospatiale, etc. Le cyberdomaine comporte des élé-
ments (matériel/logiciel) réalisant des calculs permettant une com- Étape 2 : le liquide dans le réservoir quitte le niveau bas (L2 = 0).
munication en duplex intégral, et des actions de contrôle. Le Étape 3 : le liquide dans le réservoir atteint le niveau haut indiqué
domaine physique comprend des actionneurs, capteurs et tout sys- par le capteur L1 (L1 = 1).
tème naturel créé par l’homme, régi par des lois physiques et fonc- Étape 4 : le contrôleur envoie la commande « Arrêt de la pompe »,
tionnant en permanence. puis attend 5 secondes.
Les systèmes de contrôle-commande industriels (SCI) [3] ont Étape 5 : le contrôleur envoie la commande « Ouverture de la sou-
été rattachés aux systèmes cyberphysiques du fait de l’utilisa- pape ».
tion accrue des réseaux de communication et des technologies Étape 6 : le liquide dans le réservoir est vidé, et le niveau quitte le
d’information pour surveiller et contrôler des systèmes phy- niveau haut (L1 = 0).
siques (figure 1). Les SCI sont des systèmes de contrôle combi- Étape 7 : le niveau de liquide atteint le niveau bas indiqué par la
nant des composants matériels et logiciels afin de surveiller, valeur L2 = 1.
coordonner et contrôler un ensemble d’opérations exécutées par
un système physique dans les environnements industriels. Leurs Étape 8 : le contrôleur envoie la commande « Fermeture soupape ».
cybercouches comprennent principalement des automates pro- Puis le système relance le même cycle (étapes 1 à 8). L’état de la
grammables industriels (API) et des systèmes de contrôle et soupape est représenté par la variable booléenne P. Lorsque P = 1, ou
d’acquisition de données (SCADA) en plus d’une interface V = 1, la pompe est en marche, ou la soupape ouverte. P = 0, ou V = 0,
homme-machine (IHM). L’API est un ordinateur industriel à l’état lorsque la pompe est à l’arrêt, ou la soupape fermée. La figure 3 illustre
solide intégrant une interface d’entrée, une interface de sortie, un automate à l’état fini représentant le modèle opérationnel de cet
une mémoire de programme et de données, un processeur, une exemple. Chaque état est représenté par quatre variables booléennes :
interface de communication, ainsi qu’une alimentation élec- (P, V, L1, L2). Par exemple, à l’état initial, la pompe est à l’arrêt (P = 0),
trique [4]. L’API émet une séquence de commandes selon l’état la soupape est fermée (V = 0) et le niveau de liquide dans le réservoir
du système physique estimé en utilisant les données senso- est bas (L1 = 0 et L2 = 1).
rielles. Ces dernières sont délivrées par les capteurs et trans-
mises par le réseau de communication. Les commandes
contrôlent l’état des actionneurs afin de leur permettre de fonc- Les SCI sont vulnérables aux cyberattaques du fait de l’utilisa-
tionner dans le système physique. Les systèmes SCADA col- tion de grands réseaux de communication ouverts et de technolo-
lectent les données distantes du processus de contrôle affiché gies d’information (TI). La vulnérabilité de ces systèmes augmente
sur l’IHM. de manière significative dans le contexte de la transition éner-
QV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
beVPPQ
Cyberdomaine
Domaine physique
gique. Dans ce dernier cas, le réseau de distribution électrique tra- troniques intelligents, ainsi que de nouveaux services (réponse à
versera une période de transition vers un réseau intelligent où les la demande, gestion intelligente de l’énergie, etc.), le rôle des SCI
cyberdomaines et domaines physiques sont étroitement liés. Les devient critique et requiert une communication intensive avec le
réseaux intelligents constituent un flux d’alimentation et de don- nombre toujours plus important de nœuds (consommateurs) sur
nées bidirectionnel entre producteurs et consommateurs. Pour ce le réseau. Du fait de la complexité des réseaux intelligents en
faire, il est nécessaire de recourir à des centres et des stratégies fonction de leur taille (nombre de nœuds), de la forte inter-
de contrôle d’avant-garde afin de contrôler le flux et la demande connexion entre le cybersystème et le système physique (produc-
de charge. Du fait de l’utilisation croissante de ressources en éner- tion, transmission, distribution), ainsi que de la communication
gie renouvelable, en particulier au niveau du consommateur intensive (SCADA, compteur intelligent, etc.) entre les consomma-
(distribution de ressources en énergie renouvelable), et de l’inté- teurs et les centres de contrôle (SCI), les points d’entrée pour les
gration de nouvelles charges telles que les véhicules hybrides pirates sur le réseau et les conséquences des attaques augmen-
rechargeables, batteries de stockage d’énergie, et dispositifs élec- tent de manière significative.
QW
r←ヲ←イ・ョ」・@iョエ・イョ・エ
beVPPQ
Démarrage pompe
Q
Arrêt pompe
L1
Pompe P
Contrôleur
Qp
L2
Attaque
Ouverture soupape
Fermeture soupape
Soupape V
Qv
(P V L1 L2)
Démarrage
q1 pompe q2 L2 = 0 q3 L1 = 1 q4
(0001) (1001) (1000) (1010)
Fermeture Arrêt
soupape pompe
Ouverture
q8 L2 = 1 q7 L1 = 0 q6 soupape q5
(0101) (0100) (0110) (0010)
Figure 3 – Modèle de contrôle sous forme d’un automate à l’état fini pour l’exemple de la figure 2
QX
Supervision des systèmes industriels
(Réf. Internet 42396)
4– Interaction homme-machine
5– Exigences contractuelles
Sur www.techniques-ingenieur.fr
• Saisissez la référence Internet pour accéder directement aux contenus en ligne
• Retrouvez la liste complète des ressources documentaires
QY
R
RP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUP
et Jean-Pierre ELLOY
Professeur à l’École Centrale de Nantes
Responsable de la valorisation à l’Institut de recherche en communications et
R
cybernétique de Nantes (IRCCyN)
C et article présente les principes de base utilisés dans les exécutifs temps
réel. Ce terme désigne les systèmes d’exploitation adaptés au contexte par-
ticulier, par ses exigences temporelles, de l’informatique qualifiée de « temps
réel ».
p。イオエゥッョ@Z@ェオゥョ@RPQP
RQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUP
R
La garantie de bon fonctionnement est un critère primordial de
1. Contexte conception et de développement de ces systèmes. Exemples : aéro-
nautique, ferroviaire, nucléaire… ;
Les systèmes embarqués produits en très grande quantité, et à
intégrer dans des équipements classiques. Ils doivent être à la fois
1.1 Cadres et enjeux industriels de coût modéré, offrir des garanties de fonctionnement sûr sous
des hypothèses fixées, présenter des propriétés essentielles de
D’abord marginal, devenu phénomène quasi explosif, l’utilisation
modularité, extensibilité, maintenance… Exemples : automobile,
de l’informatique dans la mise en œuvre des systèmes automatisés
équipements ménagers, capteurs et actionneurs intelligents, signa-
a pris une place considérable ces deux dernières décennies dans le
lisation et gestion technique… ;
monde industriel et, également, dans les objets de la vie courante.
L’ordinateur, sous des formes très variées, du microcontrôleur au Les systèmes à l’architecture matérielle ou logicielle dyna-
calculateur vectoriel, s’installe dans de très nombreuses applica- mique. Ce caractère dynamique peut être dû : au nombre chan-
tions, où sa capacité d’adaptation fait merveille et contribue pro- geant d’équipements de l’application, ou au nombre variable de
gressivement à introduire de nouvelles fonctionnalités, mais aussi fonctions gérées par le système informatique en fonction de la
à réaliser des fonctions jusqu’alors à base d’autres technologies. charge, ou mode de fonctionnement du procédé.
Cette nature dynamique peut n’apparaı̂tre qu’au moment de la
Par exemple, la part de l’électronique embarquée dans les véhicu- configuration de l’installation ou au cours de la vie de l’application.
les automobiles s’accroı̂t constamment : Dans le premier cas, elle influe sur la démarche de conception du
– système contrôlant l’injection au niveau du moteur ; système de pilotage. Dans le second cas, elle conditionne la
– commande électronique des essuie-glaces ; conception des outils de mise en œuvre de l’application. Exemples :
– système de contrôle de la stabilité du véhicule ; unités de production en continu (unités chimiques, centrales de
– gestion des équipements multimédia intégrés dans l’habitacle, production d’énergie), lignes de fabrication d’équipements en
etc. série, agroalimentaire, réseaux de communication…
& La problématique du temps réel est apparue au travers des tech-
niques et outils qui ont été progressivement développés pour per-
Actuellement, à l’instar de ce qui se passe dans l’avionique, mettre la mise en œuvre de ces applications. En premier lieu issus
émerge la notion de « tout électronique » (terme anglo-saxon du monde industriel, et en particulier des entreprises et sociétés de
habituel : « X-by-Wire ») qui désigne le remplacement des sys- service intégrateurs de systèmes automatisés, ces outils subissent
tèmes de contrôle mécaniques et/ou hydrauliques par des systè- actuellement des évolutions très importantes en conception et
mes uniquement numériques. architecture. Elles sont dues à l’utilisation croissante de paradig-
mes informatiques modernes qui en accroissent la modularité,
ainsi qu’à la conceptualisation du fonctionnement des systèmes
Des études, déjà avancées chez de nombreux constructeurs auto-
temps réel, travail effectué dans les organismes de recherche aca-
mobiles, sont consacrées, par exemple, au contrôle de direction
démiques ou industriels en vue de pouvoir prouver (et certifier) le
(« Steer-by-Wire »). Il s’agit d’un système qui est, pour des raisons
bon fonctionnement des applications implémentées.
topologiques, entièrement distribué. De plus, les lois de contrôle,
par exemple celles qui commandent la crémaillère d’entraı̂nement Dans le même temps, de nouveaux champs d’application, origi-
de l’axe de direction, imposent des propriétés temporelles fortes au nellement purement informatiques, s’ouvrent à ces techniques,
système. comme le multimédia. Désormais, cette problématique est devenue
Enfin, le bon fonctionnement de ce système est crucial pour la passerelle entre l’automatique et l’informatique avec sa spécificité
sécurité du véhicule, d’où l’importance que prend la sûreté de fonc- intrinsèque : le temps.
tionnement pour les systèmes embarqués temps réel.
1.2 Systèmes réactifs
& Les domaines industriels d’application qui s’ouvrent ainsi à
Synthétiquement définie, une application temps réel « met en
l’informatique « temps réel » peuvent être sommairement classés
œuvre des systèmes informatiques ou informatisés coopérant
en trois groupes.
avec l’homme et destinés à la perception, l’observation, l’aide à la
Les systèmes embarqués dans des équipements de haute décision et la conduite de procédés dynamiques ». Dans ce but ont
technologie, et dont la sécurité est un souci majeur. Le prix de été élaborés des concepts, des modèles, des méthodes et des outils
l’informatique y est considéré comme de peu d’importance, relati- en vue de la conception et de la réalisation matérielle et logicielle
vement aux coûts qui seraient engendrés par la défaillance du pro- des systèmes réactifs informatisés. Tous ces études et produits
cédé piloté. reposent sur la même perception du temps réel.
RR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUP
R
bale dépendant du temps. » nouvelle commande est une opération du système informatique
qui ne peut être instantanée car elle requiert un temps de calcul
Dans [14] citant la norme allemande DIN 44 300 : « Le mode qui peut être conséquent.
de fonctionnement d’un système informatique dans lequel les
programmes de traitement des données entrantes sont cons- Pour un système de pilotage, réagir « dans les temps » implique
tamment prêts afin que leurs résultats soient disponibles dans donc une observation et une action suffisamment rapides pour
des périodes de temps prédéterminées ». que le procédé n’ait pas le temps d’évoluer de façon significa-
Dans [26] : « Un système temps-réel est un système dont on tive entre une variation d’état et l’action qui en résulte.
exige qu’il réagisse aux stimuli de l’environnement (incluant le Le temps réel reflète donc une capacité de réaction à l’échelle
passage de temps) dans l’intervalle de temps relatif imposé par de temps du procédé : c’est un temps relatif.
l’environnement ».
Dans l’« Oxford Dictionary of Computing », cité dans [43] :
« Tout système pour lequel la date à laquelle un résultat est pro-
duit s’avère significative ».
2. Application temps réel
Ces définitions permettent de bien mettre en évidence le particu- 2.1 Architecture fonctionnelle
larisme du temps réel vis-à-vis des autres classes de systèmes
informatiques : la prise en compte du temps. En effet, on en distin-
d’une application
gue généralement trois. Exemple
& Les systèmes transformationnels, comme en relèvent, par exem- Prenons le cas d’une application de régulation de niveau d’un
fluide dans un réservoir à fuite constante (figure 1) où, le rôle du sys-
ple, le calcul scientifique ou la gestion de bases de données, qui
tème de pilotage (un poste de conduite) consiste à asservir le niveau
utilisent des programmes dont les résultats sont élaborés à partir
du fluide à partir de la mesure prélevée par un capteur analogique. Il
de données disponibles à l’initialisation de l’application, et dont
s’agit d’une commande à exécuter périodiquement et dont l’action
les instants de production ne sont pas contraints.
est l’ajustement de l’ouverture de la vanne d’alimentation du
& Les systèmes interactifs, comme les systèmes transactionnels réservoir.
ou les utilitaires de bureautique, qui gèrent des programmes dont À cette fonction de base, on adjoint deux autres missions
les résultats sont fonction de données produites par l’environne- complémentaires :
ment du système (essentiellement l’utilisateur), et dont on souhaite – commuter de boucle ouverte en boucle fermée (et inversement)
que les instants de production respectent des valeurs statistiques. sur ordre de l’opérateur ;
– en cas d’alarme signalant l’imminence d’un débordement (situa-
& Enfin, les systèmes « réactifs » qui gèrent des programmes dont tion pouvant survenir en cas de panne non détectée du capteur prin-
les résultats sont entièrement conditionnés par le comportement cipal), commuter en boucle ouverte et fixer l’ouverture de la vanne à
de l’environnement connecté (le procédé industriel), et dont les ins- une valeur prédéfinie.
tants de production des résultats sont contraints par les dynami-
ques de cet environnement.
Le vocable « réactif », souvent utilisé en synonyme de « temps Commande
réel », a l’intérêt de souligner deux concepts à la base de ces
V
systèmes. Vanne
Il se réfère d’abord aux « interactions » entre le procédé et le
système tout d’abord. Le système informatique réactif doit réagir carac I
aux variations d’état constatées du procédé en lui appliquant les
commandes appropriées, ou en signalant cette variation à l’opéra- A
teur. Une forme de « dialogue » s’établit donc entre le procédé et le
Détecteur Événement
système informatique de pilotage, et ce via trois types de de niveau
grandeurs : « haut »
– des « mesures » que le procédé produit en continu sans signa- N
lisation particulière et que le système de pilotage doit prélever de
lui-même pour assurer sa mission ; Capteur Mesure
de niveau
– des « événements » que le procédé signale au système de pilo-
A Alarme
tage, mais qui sont souvent intrinsèquement fugaces (c’est-à-dire I Information
qui disparaissent sitôt émis), et donc que le système doit saisir N Niveau
« au vol » ; V Vanne
– enfin, et en retour, des « commandes » qui sont des signaux carac Caractère
logiques, ou analogiques, maintenus technologiquement sur les
actionneurs du procédé. Figure 1 – Régulation de niveau
RS
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUP
Contraintes « temporelles »
N Comme les tâches sont sollicitées par des événements aux occur-
rences asynchrones, il se peut qu’à certains moments plusieurs
carac tâches entrent en concurrence pour leur exécution.
HTR
Acquisition BO Æ BF Directives Si le nombre ou la puissance des processeurs du système de
Filtrage Visualisation pilotage sont sous-dimensionnés, il se peut qu’ils ne puissent satis-
I
Commande faire les contraintes temporelles de toutes les tâches en concur-
rence, c’est-à-dire répondre à toutes « à temps ». Pour éviter pareil
BF Æ BO
cas, il faudra modifier l’architecture matérielle en conséquence :
A accroissement de la puissance des unités de traitement, utilisation
V
Émission Alarme de processeurs spécialisés, répartition des tâches sur les
processeurs…
R
& Ainsi, pour satisfaire une ou plusieurs de ces contraintes, on
Figure 2 – Architecture fonctionnelle de la régulation de niveau peut être amené à adopter un système informatique de pilotage
composé de plusieurs stations de traitement interconnectées en
réseau. Le « réseau » devient alors la colonne vertébrale des com-
Nota : un système est dit en boucle ouverte, si la commande du système est calculée munications intra-système et ses performances et capacités jouent,
sans utiliser d’information de valeur de la grandeur contrôlée. Dans l’exemple, l’ouver-
ture de la vanne est faite indépendamment du niveau dans la cuve.
à leur tour, un rôle essentiel dans le respect des contraintes de
À l’inverse, le système est dit en boucle fermée, si le calcul de la commande utilise sûreté et de temps.
une information sur la grandeur contrôlée. Dans l’exemple, l’ouverture de la vanne tient
compte du niveau réel dans la cuve.
Cependant, l’introduction des réseaux amène son lot de difficul-
tés nouvelles qui n’apparaissent pas dans le cas monoprocesseur.
L’analyse du cahier des charges de cette simple application En effet, lorsque les actions à entreprendre sur le procédé sont cal-
conduit au recensement des actions élémentaires que doit effectuer culées en parallèle sur des stations distantes, leurs observations de
le système de pilotage et que l’on regroupe en tâches. Une « tâche » l’état du procédé peuvent différer de l’une à l’autre en raison de
rassemble des fonctions de l’application qui sont exécutées dans l’asynchronisme du fonctionnement des processeurs et des délais
les mêmes conditions événementielles. Dans l’exemple de la de communication. Dans ce cas, les actions appliquées au système
figure 2, on peut ainsi recenser les tâches suivantes : séparément par ces stations peuvent ne pas être cohérentes entre
– « acquisition-filtrage » et calcul de la « commande » de vanne elles. C’est pourquoi l’introduction d’un réseau dans l’architecture
(activité périodique liée à l’horloge temps réel HTR) ; matérielle du système de commande est une donnée qui en condi-
– « émission » de la commande vers l’actionneur ; tionne également la réalisation logicielle. Ces deux aspects ne sont
– commutation de « boucle ouverte en boucle fermée » ; plus à dissocier et leur développement conjoint est nécessaire à la
– commutation de « boucle fermée en boucle ouverte » ; réalisation de l’application.
– réception et analyse des « directives » de l’opérateur ;
– réception et traitement de « l’alarme ». L’aboutissement de ce développement conduit alors à la défini-
tion d’un matériel, d’une décomposition fonctionnelle et d’une
La figure 2 illustre l’architecture fonctionnelle résultante sous la répartition de ces fonctions sur le matériel, le tout garantissant,
forme d’un schéma à flots d’événements. ensemble, les contraintes temporelles de l’application. Ce
résultat est appelé « architecture opérationnelle » de
l’application.
2.2 Architecture matérielle
d’une application
Implémenter cette application passe par le choix de la configura-
tion matérielle du système de pilotage sur lequel seront implémen-
3. Approches synchrone
tées les tâches de l’application. Plusieurs structures de cette confi- et asynchrone
guration sont envisageables, même dans le cas de l’exemple
simple précédent, et pour chaque structure, on peut a priori envisa-
ger l’utilisation de toute une variété d’équipements (processeurs,
Si on poursuit l’étude de l’application de la régulation de niveau
cartes d’interfaces, réseaux) aux performances différentes.
de la figure 1, il faut maintenant spécifier l’architecture matérielle
& Le choix de la configuration et la sélection des équipements du système de pilotage. Plusieurs possibilités se présentent,
sont naturellement et intimement liés. De plus, outre les critères même dans ce cas de l’exemple pourtant simple ; tout dépend des
de coût ou de fiabilité, ils dépendent essentiellement de trois fonctions que l’on décide de déporter dans le capteur (de niveau) et
types de contraintes. dans l’actionneur (la vanne de régulation).
Contraintes « topologiques » Choisissons ici la solution la plus classique : des capteurs et
actionneurs sans intelligence déportée, un poste de conduite
Ces contraintes apparaissent lorsque le procédé est une installa- constitué d’un calculateur monoprocesseur équipé des interfaces
tion éclatée géographiquement, ou quand le procédé est doté d’entrées-sorties appropriées à l’application, une console opéra-
d’une instrumentation intelligente qui en déporte certains traite- teur. C’est la solution illustrée sur la figure 1. Il s’agit maintenant
ments (dans l’exemple présenté, cas où les fonctions d’acquisition de procéder à l’implémentation dans ce calculateur des tâches pré-
et de filtrage seraient intégrées au capteur) ; cédemment décrites.
Contraintes de « sûreté de fonctionnement » À première vue, il pourrait sembler que cette phase d’implémen-
C’est l’impératif de maintien du service du système de pilotage tation relève uniquement de techniques de développement, et que
(nominal ou dégradé) en cas d’anomalie partielle des équipements. les décisions qui conditionnent le bon fonctionnement de l’applica-
Satisfaire cet impératif se traite par la redondance. tion sont déjà prises. Or si cela est vrai sur le plan fonctionnel, rien
Cette redondance peut concerner l’instrumentation (dans l’exemple n’est encore vraiment résolu sur le plan temporel.
présenté, le détecteur de niveau haut supplée un dysfonctionnement Et le traitement des contraintes temporelles va être étroitement
du capteur), mais elle concerne également le système informatique conditionné à ce moment par un choix majeur : celui de la réalisa-
car sa défaillance engendre la perte totale du contrôle du procédé ; tion du « lien entre les tâches et leurs événements activeurs ». En
RT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUP
effet, quels que soient les langages ou formalismes utilisés, pour valide, c’est-à-dire n’engendre pas le dépassement de certaines
décrire l’application, et les outils adoptés pour l’implémentation, échéances temporelles quand on passe en situation réelle, c’est-à-
tous peuvent conduire, au niveau « machine », à deux techniques dire avec les véritables durées d’exécution des actions.
différentes de réalisation du mécanisme d’appel des tâches. Et ces
deux techniques relèvent de deux principes fondamentaux diffé- & Comme le système de pilotage ne constate l’arrivée de nou-
rents, « synchrone » et « asynchrone ». veaux événements qu’à la terminaison de chaque tâche, voire à la
terminaison d’un groupe de tâches, il reçoit à cet instant tous les
événements en attente sans connaı̂tre leur ordre d’arrivée. Si cet
3.1 Démarche synchrone ordre est important pour l’application, c’est-à-dire conditionne l’ac-
tion du système de pilotage, quelle action entreprendre alors ?
La technique de mise en œuvre synchrone consiste à cons- La technique adoptée dans l’approche synchrone, pour traiter
truire directement le lien entre une tâche et son événement acti- cette circonstance, consiste à considérer tous les événements
veur sans se préoccuper de l’existence d’éventuels conflits de observés au même instant comme étant survenus en même
R
cette tâche avec les autres au cours du fonctionnement de temps, c’est-à-dire comme simultanés. Cette « simultanéité » peut
l’application. être perçue alors comme un nouvel événement pour lequel l’utili-
sateur peut définir une action spécifique à entreprendre en ce cas.
Il s’agit donc d’une construction aveugle, et cette technique ne La figure 3 illustre le chronogramme des deux tâches Directives
fonctionne que si cet aveuglement n’engendre pas de fautes com- et Alarme exécutées suite à l’occurrence des événements carac et A
portementales, ni temporelles. dans le cas d’une implémentation synchrone. On suppose que
Sur le plan comportemental, en particulier, aucune tâche ne l’alarme survient au cours de l’exécution du traitement d’une direc-
devra accéder à une ressource partagée alors qu’elle est en cours tive de l’opérateur. Sur cette figure carac’ et A’ désignent les événe-
d’utilisation par d’autres, et qui risquerait alors de devenir incohé- ments réellement perçus par le système de pilotage. On trouvera
rente, car dans cette démarche aucun mécanisme ne peut en proté- plus d’informations dans [3].
ger l’accès exclusif. La solution pour y parvenir consiste à séquen-
tialiser l’exécution des tâches, donc à éviter la « préemption » (voir
Nota) de toute tâche par une autre et à y encapsuler l’utilisation de 3.2 Démarche asynchrone et exécutif
toute ressource partagée.
Nota : la préemption est l’action qui consiste à suspendre l’exécution d’une action au
profit d’une autre jugée plus prioritaire (critère d’urgence par exemple).
La technique de mise en œuvre asynchrone consiste à obser-
ver en permanence les occurrences d’événement, y compris au
Mais, adopter la non-préemption n’est pas sans conséquences cours de l’exécution des tâches. Leurs dates d’arrivée et leurs
sur le plan temporel : ordres relatifs sont donc connus : la nature de l’action à entre-
& La perception qu’a le système de l’occurrence de tout événe- prendre n’est pas ambiguë et son urgence peut être immédiate-
ment est différée du temps d’exécution de la tâche en cours (au ment prise en compte.
moment de l’occurrence). Ce « retard » à la prise en compte peut
affecter n’importe quel événement, quelle qu’en soit la gravité Malheureusement, la préemption, outre son coût temporel,
pour l’application. En outre, ce retard peut être conséquent, en cas engendre de nouveaux problèmes.
d’événements en rafale, pour la tâche traitée en dernier. Il faut donc
à tout prix concevoir l’architecture fonctionnelle, et particulière- & À la différence de la démarche synchrone, il devient beaucoup
ment le découpage des tâches, de façon à éviter qu’une tâche d’im- plus difficile d’observer et, donc, de vérifier le « bon » comporte-
portance faible mobilise le processeur. ment du système informatique de pilotage. Il serait a priori néces-
Dans l’exemple de la figure 1, ce pourrait être le cas de la tâche saire d’envisager toutes les situations de préemption pour vérifier
consacrée à la réception des directives si sa durée est fonction de la qu’aucune n’engendre le non-respect d’une contrainte temporelle
vitesse de saisie de l’opérateur. On constate donc qu’avec cette quelconque, ce qui est naturellement impossible. Il faut, comme
technique les contraintes temporelles de l’application doivent être en synchrone d’ailleurs, passer par une modélisation formelle du
analysées à la conception de l’application. Il faudra vérifier, sur l’ar- comportement de l’application pour pouvoir la vérifier, mais les
chitecture opérationnelle choisie, si l’hypothèse « d’instantanéité » modèles asynchrones qui permettent une telle preuve sont actuel-
des actions, en fait implicite dans la démarche synchrone, est lement plus complexes qu’en démarche synchrone.
En n’observant les
Alarme occurrences
d'événements émis
par le procédé qu’à la
Application fin de l’exécution de
Directives
chaque action, la
réaction du système
est perçue comme
Occurrences carac’ A' immédiate … par le
observées système de contrôle.
RU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUP
Cela est en partie dû au fait que, macroscopiquement, des occur- Cette technique souffre de plusieurs difficultés. Tout d’abord,
rences d’événement très voisines peuvent engendrer des réactions quel est ce paramètre qui définit l’importance d’une tâche : son
parfois bien différentes du même système. Certes, à l’examen très échéance (c’est-à-dire son urgence) ou sa gravité (c’est-à-dire l’am-
fin du déroulement de l’évolution de chaque tâche, ces différences pleur des dommages encourus en cas de non-respect de cette
de réaction sont parfaitement justifiées. Mais, à l’échelle temporelle échéance) ? La réponse n’est pas unique. Certes, si les échéances
du procédé, on prête souvent aux réactions asynchrones le carac- sont toutes satisfaites, la question des dommages ne se pose pas,
tère « d’indéterministes » pour cette raison. mais en cas de l’éventualité du non-respect de toutes les échéan-
ces ? En ce cas, nombre d’applications ne permettent pas de tra-
& À l’instant d’arrivée de tout nouvel événement, on peut mainte- duire l’importance d’une tâche sous la forme d’un indicateur
nant décider à qui allouer le processeur entre : unique, valide pour tous les cas d’occurrence d’événements et
– la nouvelle tâche activée par cet événement ; dans toutes les situations de concurrence des tâches.
– celle qui était déjà en exécution à ce même moment ; De nombreuses variantes de réalisation tentent alors de traduire
– une autre tâche en attente d’un processeur. l’importance multicritères d’une tâche par une priorité variable dans
R De ce choix dépend le respect des contraintes temporelles. Les le temps, en fonction de l’état du procédé ou de la charge du sys-
modalités de ce choix sont donc primordiales pour le bon fonction- tème de pilotage. La priorité perd son sens initial et ces réalisations
nement de l’application : elles constituent ce qu’on appelle une ne suivent alors plus la politique d’ordonnancement, qui avait peut-
« politique d’ordonnancement ». De nombreuses politiques d’or- être pourtant été choisie pour sa garantie de respect des contraintes
donnancement ont été proposées dans la littérature, mais à chaque temporelles. On atteint alors les limites de ce mécanisme.
fois pour satisfaire des contraintes temporelles d’une classe d’ap- & Une fois l’ordonnancement choisi pour sa garantie de respect
plications spécifique. des contraintes, une fois son mécanisme de mise en œuvre défini,
Pour certaines politiques, il existe même une condition formelle qui il s’agit de le réaliser. Reste alors à construire le dispositif qui cen-
permet d’établir hors-ligne si, oui ou non, les contraintes temporelles tralisera la réception de tous les événements, qui suivra l’évolution
seront respectées dans toutes les situations possibles que peuvent de l’exécution des tâches et qui, en conséquence, effectuera le
rencontrer les tâches appartenant à la classe d’application concernée. choix à tout instant des tâches à exécuter. Ce centralisateur s’ap-
Dans ces cas spécifiques, le risque de non-respect des contraintes pelle « l’exécutif », et la composante de l’exécutif qui met en
peut donc être identifié dès la phase de conception et traité par une œuvre la politique d’ordonnancement s’appelle « l’ordonnanceur ».
modification en conséquence de l’architecture matérielle. Adopter la démarche asynchrone conduit à la construction ou à
l’acquisition d’un exécutif temps réel.
Mais, hors de ces cas, pour obtenir le respect des contraintes
temporelles, il faut avoir recours à des palliatifs variés : & À propos de la gestion des ressources partagées. Comme toute
– modification du cahier des charges de l’application pour la tâche est susceptible d’être préemptée à tout moment par d’autres
ramener à un cas standard ; tâches plus prioritaires, les ressources qu’elles se partagent ris-
– construction hors-ligne d’une séquence valide en balayant quent de devenir incohérentes en cas de préemption au milieu de
exhaustivement les situations dangereuses ; leur manipulation. Il devient nécessaire de garantir cette cohérence
– simulation hors-ligne des séquences engendrées par diverses par un mécanisme approprié. C’est un des rôles qui est confié à
politiques fixées a priori, etc. l’exécutif, puisqu’il est indépendant des tâches et déjà gestionnaire
de la ressource commune qu’est le processeur. Mais, la politique
& La mise en œuvre en ligne de la plupart de ces politiques s’ap- de gestion des ressources partagées vient alors se superposer à
puie sur un mécanisme de base bien connu, la « priorité ». Ce celle de l’allocation des processeurs, qui, toutes deux, ont pour
mécanisme est utilisable lorsque la politique d’ordonnancement rôle de décider l’ordre d’exécution des tâches.
consiste à définir l’importance relative de chaque tâche (vis-à-vis Comme leurs critères de décision sont différents, il est inéluc-
des autres) en fonction d’un paramètre unique, comme son table que ces deux politiques entrent en conflit. Dans ce contexte,
échéance, sa période ou sa gravité ; la priorité de chaque tâche est établir a priori si, pour les tâches d’une application donnée, cette
alors une fonction de ce paramètre. superposition de politiques d’ordonnancement garantit le respect
L’emploi de ce mécanisme en ligne est alors très simple. Pour des contraintes temporelles devient encore plus délicat, et ne peut
suivre la politique d’ordonnancement adoptée, il suffit de choisir être vérifié que dans des cas bien spécifiques.
comme tâche à exécuter celle de plus forte priorité parmi toutes La figure 4 illustre le chronogramme des deux mêmes tâches
celles en concurrence. Encore faut-il que l’importance d’une tâche visibles sur la figure 3, mais cette fois dans le cas d’une implémen-
ne dépende que de ce seul paramètre tout au long de l’application. tation asynchrone.
Le système peut
Alarme suspendre le
traitement d’une
action (déclenchée par
Application "carac") au bénéfice
Directives
d’une autre, jugée
plus « importante »,
(déclenchée
Occurrences carac’ A' par « A ») pour
observées le fonctionnement
du procédé.
Système
Les occurrences
Occurrences d'événements émis
émises par le procédé sont
par le procédé carac A Temps immédiatement perçues
par le système.
RV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUR
R
Responsable de l’Équipe « Systèmes Temps Réel » de l’Institut de Recherche en
Communications et Cybernétique de Nantes (IRCCyN)
et Jean-Pierre ELLOY
Professeur à l’École Centrale de Nantes
Responsable de la valorisation à l’Institut de Recherche en Communications et
Cybernétique de Nantes (IRCCyN)
RW
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUR
R
Régulièrement des études de marché paraissent dans la presse temps réel est un exercice extrêmement délicat car il faudrait avoir à
spécialisée ou sont effectuées par des sociétés offrant un service disposition l’ensemble des documentations techniques les concer-
de conseil (donc payantes). D’une manière générale, les résultats nant, ce qui n’est évidemment pas possible, et qui de plus demande-
de ces enquêtes ne sont pas faciles à analyser, même si des ten- rait beaucoup trop de temps et d’espace pour prétendre à l’exhausti-
dances s’en dégagent, la communication des éditeurs de logiciel vité dans un article. Les sites web des constructeurs sont très riches
n’étant pas toujours claire entre ceux qui se disent leaders, ceux d’informations, pas toujours faciles à décrypter car évidemment
qui ont la plus forte croissance, en intégrant bien sûr les chiffres leurs produits sont toujours les meilleurs et les seuls capables de
de croissance du marché qui sont importants chaque année. Une répondre aux besoins. L’objectif de cette description est donc surtout
étude publiée en juin 2006 (http://www.embedded.com) montre la d’arriver à situer les contributions les unes par rapport aux autres, à
répartition entre les types de systèmes d’exploitation utilisés pour charge ensuite à la personne intéressée d’analyser dans le détail les
les systèmes embarqués. La moitié (51 %) sont des OS commer- caractéristiques pertinentes répondant à ses besoins.
ciaux, 21 % sont des OS « propriétaires », 16 % sont des OS open
source et 12 % sont des OS open source avec support commercial.
Dans les OS commerciaux la société Wind River est (depuis long-
temps) leader avec son produit VxWorks et ses déclinaisons, suivi
par les versions « embedded » de Windows‚ (XP embedded et CE).
2. Exemples d’exécutifs
Dans ces résultats, on peut observer une proportion non négli-
geable des réalisations « propriétaires ». Le choix d’une telle solu-
généralistes
tion peut être guidé :
– par des considérations économiques (droit de licence), On donne ci-après les références de quelques exécutifs généra-
– par des considérations techniques qui conduisent à réaliser un listes que l’on peut trouver sur le marché.
produit parfaitement adapté aux besoins des applications visées, et & Société : Wind River (http://www.windriver.com)
donc moins généraliste ou alors apportant une plus-value par rap-
port aux produits du marché, VxWorks 5.x : ce produit est l’avant-dernière version du système
– par des raisons de stratégie d’entreprise (maı̂trise complète du d’exploitation qui a fait la réputation de la société, c’est aussi la ver-
produit). sion la plus répandue. C’est un très complet RTOS avec beaucoup
de services, offrant ainsi de nombreux et parfois complexes modè-
Les produits se rattachent souvent à un standard. Ainsi autant les d’applications (car difficiles à analyser d’un point de vue com-
que l’offre de produits il faut parler de l’offre de standards car portemental, et donc de la prédictibilité). Il offre une certaine com-
c’est cela qui infléchit l’offre (commerciale ou non). Historique- patibilité POSIX‚ 1003.1 et anciennement 1003.1b et 1003.1c.
ment, de nombreuses tentatives de standardisation des exécutifs L’offre, en termes de processeurs cibles est très importante, et la
généralistes ont eu lieu sans qu’aucune n’ait obtenu un crédit suffi- plateforme de développement très riche (Tornado pour la série 5.
sant auprès des utilisateurs et/ou des fournisseurs. On peut citer en x). La société a été rachetée en 2009 par Intel.
premier lieu MOSI (Microprocessor operating system interface & Société : GreenHILLs Software Inc. (http://www.ghs.com)
standard) [38] influencé par iRMX d’Intel, qui est devenu le stan-
dard IEEE 855 en 1984. De même RTEID (Real time executive inter- La société s’enorgueillit d’être celle qui a la plus forte croissante
face definition) fut proposé, peu après, par Motorola auprès des observée sur les années 2002 à 2007 (source : VDC Embedded Mar-
utilisateurs du produit VME Exec. ORKID (Open real time kernel ket Study 2007).
interface definition) fut proposé par l’organisme VITA, regroupe- velOSity RTOS : c’est le noyau d’INTEGRITY, le produit phare et
ment d’utilisateurs du bus VME. ORKID a semblé être influencé complet de la société. Il est conçu pour utiliser une mémoire non
par pSOS d’Integrated System (produit repris ensuite par Wind protégée. Il possède une petite empreinte mémoire très rapide
River). SCEPTRE 2 (1992) fut une proposition française issue d’un (latence minimale obtenue par validation quasi permanente des
groupe de travail financé par le programme STRIN (Solutions interruptions).
temps réel pour l’industrie). Ces travaux faisaient suite à ceux de
m-velOSity Real-Time Microkernel : c’est un noyau temps réel
1982 qui avaient conduit au rapport SCEPTRE, proposition de stan-
basique offrant des services pour le multitâches avec une
dardisation du cœur des exécutifs, qui a influencé la réalisation de
empreinte très faible (quelques kilooctets ROM et RAM).
plusieurs exécutifs français (RTC de GSI-Tecsi, par exemple).
Dès 1995, les travaux dans le milieu automobile débouchèrent & Société : OSE ENEA (http://www.enea.com)
dans les années 2000 sur la proposition OSEK/VDX (Offene systeme La famille de produits de la société ne se réfère à aucun stan-
und deren schnittstellen für die elektronik im kraftfahrzeug/vehicle dard. Trois produits sont proposés, très optimisés pour une
distributed executive), support d’exécution temps réel pour l’« élec- gamme d’application.
tronique embarquée » dans les automobiles. Ces travaux ont ensuite Enea OSE Multicore RTOS : c’est le produit phare, pensé pour
été poursuivis par le consortium AUTOSAR en 2003, en s’appuyant, des architectures multicœurs (architectures AMP/SMP) et les systè-
pour le logiciel de base, sur la proposition OSEK/VDX. mes répartis. La réputation de ce produit a souvent été fondée sur
Vers la même époque, les travaux dans le milieu aéronautique un service d’IPC (Inter process communication) très efficace (direct-
débouchèrent en 1996 sur la première publication de ARINC 653, message-passing model) : tous les processus ne communiquent
standard d’interface Application/OS pour les applications avioniques. que par message.
RX
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUR
Enea OSEck : cette version, moins riche que le précédent produit, À partir de 1998 des travaux communs se sont déroulés au sein
est spécialisée pour les DSP (la société a beaucoup de débouchés d’un groupe de travail nommé « Austin group » (du lieu de la réu-
dans les télécommunications). nion fondatrice au Texas). Ce groupe comprenait des membres de
Enea OSE Epsilon : une version très compacte du système d’ex- l’IEEE PASC (Portable applications standards commitee), des mem-
ploitation, optimisé pour les systèmes à faible ressource à base de bres de l’Open group et des membres de l’ISO/IEC Joint technical
microcontrôleurs. commitee 1 ; il s’agit donc d’un effort combiné de comités de nor-
malisation et d’industriels du logiciel. L’objectif du groupe était de
& Société : Micrium (http://www.micrium.com) réviser et combiner différents standards en partant de la spécifica-
mC/OS-II : il s’agit d’un noyau multitâches préemptif certifié DO- tion « Single UNIX‚ specification, version 2 » de l’Open group car
178B niveau A. elle était un sur ensemble des travaux POSIX‚ (hors 1003.13). Les
premiers résultats ont été produits en 2001, l’IEEE Std 1003.1,
& Société : FreeRTOS (http://www.freertos.org) l’ISO/IEC 9945 et l’Open group base specifications issue 6 consti-
FreeRTOS : il s’agit d’un noyau temps réel en version open tuant le cœur de la Single UNIX‚ specification version 3. Une
mise à jour correctrice a ensuite été éditée en 2004, et des travaux
R
source. Un autre produit de la même société, SafeRTOS, est une
version similaire mais certifié par un organisme de certification sont toujours en cours organisés par l’Austin group. Nous utilise-
allemand (TÜV SÜD). rons dans la suite la dénomination POSIX‚ 1003.1.
Windows Embedded CE : un système d’exploitation temps réel, Le standard est une définition d’interfaces, en aucun cas une
modulaire qui apporte la dimension temps réel aux autres produits implémentation. Il a pour objectif principal de permettre la portabi-
Microsoft, avec lesquels il est prévu pour coopérer. La version lité des applications, au niveau source, sur les systèmes UNIX‚,
actuelle est 6.0R2. quel qu’en soit le fournisseur, en s’appuyant principalement sur le
langage C. POSIX‚ 1003.1 rassemble ce qui été auparavant dis-
persé dans divers standards (1003.1, 1003.1b, 1003.1c, 1003.1d…,
1003.2…), suite au travaux de l’Austin group, et les aspects temps
3. Exécutifs UNIX temps réel réel se retrouvent sous forme optionnelle (le cœur du standard est
tout de même l’UNIX‚ historique !).
RY
R
SP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUU
Michaël RICHARD
R
Maı̂tre de conférences en Informatique à l’ISAE-ENSMA (Chasseneuil du Poitou)
Pascal RICHARD
Professeur des universités en Informatique à l’université de Poitiers
et Frédéric RIDOUARD
Maı̂tre de conférences en Informatique à l’université de Poitiers
SQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUU
SR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUU
(de type buffer), le système doit lire des données entrantes avant qu’elles ne
soient écrasées par les suivantes. Il arrive aussi qu’une commande envoyée à
un actionneur doive absolument être rafraı̂chie à un certain rythme. De façon
générale, dans la théorie utilisée pour la validation temporelle, toutes les
contraintes temporelles, qu’elles soient locales ou de bout-en-bout, sont tradui-
tes sous forme de contraintes locales sur les tâches.
Le respect des contraintes temporelles est plus ou moins important : la viola-
tion de certaines contraintes peut mettre le système ou bien son environnement
en péril : on parle alors de contraintes strictes. Au contraire, certaines contrain-
tes concernent uniquement la qualité du service rendu par le système, dans ce
cas on parle de contraintes relatives. Par exemple, l’attitude d’un aéronef peut
être instable si le contrôle d’attitude (tangage, roulis) ne peut être exécuté une
fois toutes les 50 millisecondes. Les contraintes de temps appliquées aux tâches
du contrôle d’attitude sont strictes. On parle de contraintes fermes lorsque, sur
R
une fenêtre temporelle donnée, un certain nombre de contraintes doivent être
respectées afin de garantir l’intégrité du système. Respecter toutes les contrain-
tes de temps augmente dans ce cas la qualité de service de l’application. On
trouve peu de contraintes relatives dans le domaine du transport, mais on
peut en trouver dans les applications non critiques telles les applications multi-
média, ou le jeu vidéo. Dans cet article, seules les contraintes strictes sont
considérées.
La problématique qui nous intéresse ici est comment assurer qu’étant donné
un système de tâches partageant des ressources de calcul, toutes les contrain-
tes temporelles seront toujours respectées : c’est la validation temporelle, qui
repose sur une étude d’ordonnançabilité. Résoudre ce problème permet aussi
de répondre à la question du dimensionnement : quelles ressources de calcul
sont-elles nécessaires à une application temps réel donnée ?
Il est important de garder à l’esprit que « temps réel » ne signifie pas « rapi-
dité », mais « temporellement déterministe ». Ainsi, on privilégie toujours le
déterminisme à la vitesse d’exécution moyenne. La validation temporelle
repose en effet sur le fonctionnement pire cas du système : il est primordial,
sur un système critique, que le système ne se comporte jamais de manière erro-
née, et il est généralement intolérable que le système ne se comporte très bien
qu’en moyenne, en étant parfois erroné. La validation des systèmes critiques se
base donc sur les pires comportements du système : elle se doit donc d’être
conservative, on parle aussi de pire cas.
Cet article est structuré de la façon suivante : afin de présenter le contexte
global dans lequel la problématique de l’ordonnancement est soulevée, le cha-
pitre 1 introduit les architectures matérielles et logicielles des applications.
Nous verrons en particulier le fonctionnement de base des systèmes d’exploi-
tation temps réel. Après avoir introduit les principes fondamentaux de l’ordon-
nancement temps réel, nous présentons les modèles temporels des tâches, qui
seront utilisés lors de la validation temporelle. Ce chapitre introduit enfin les
principaux types d’algorithmes d’ordonnancement, et les propriétés et mesures
permettant de les caractériser.
Le chapitre 2 se focalise sur les tests d’ordonnançabilité, c’est-à-dire sur les
moyens utilisés pour montrer qu’un système ordonnancé par un ordonnanceur
respectera toujours toutes ses contraintes de temps. Nous commençons par les
modèles les plus simples (tâches indépendantes), pour lesquels nous montrons
les types de tests, classés par familles d’algorithmes d’ordonnancement consi-
dérées. Nous élargissons ensuite ces tests au cas de tâches communicantes ou
se synchronisant.
Les derniers chapitres introduisent des outils liés à l’analyse d’ordonnançabi-
lité et des points d’entrée vers des travaux plus spécifiques. Tout au long de cet
article, certains points d’entrée de références bibliographiques seront cités. Le
lecteur est invité à consulter [Doc. S 8 055v2] pour trouver les références com-
plètes des travaux cités.
SS
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUU
R
seule puce, alors que les systèmes répartis s’exécutent sur diffé- des générations de processeurs. En effet, la consommation d’une
rents calculateurs distants les uns des autres. puce avec des transistors donnés (finesse de gravure) est fonction
du carré de la fréquence de fonctionnement de celle-ci. La puis-
1.1.1 Systèmes centralisés sance de calcul est donc améliorée par l’utilisation de plusieurs
cœurs de calcul fonctionnant en parallèle sur une même puce : on
1.1.1.1 Calculateurs parle de calculateurs multicœurs. Alors que l’avènement du multi-
On qualifie de centralisé un système qui s’exécute sur une seule cœur est déjà bien avancé dans le monde des ordinateurs person-
puce, même si cette puce peut avoir plusieurs cœurs de calcul. Le nels, l’utilisation des calculateurs multicœurs est en passe de se
type de support peut être un microcontrôleur, un microprocesseur, développer aussi dans le monde de l’embarqué, notamment en
un processeur de signal numérique, ou encore un circuit intégré avionique, domaine consommateur de puissance de calcul vu le
spécialisé ; à part les circuits intégrés qui sont à logique câblée, nombre toujours croissant de fonctionnalités gérées par le système
les autres supports physiques sont à logique programmée. Nous embarqué. La problématique de l’ordonnancement multicœur est
utiliserons le terme générique de calculateur ou processeur pour présentée dans l’article [S 8 052].
les supports à logique programmée. Le système peut s’appuyer
sur des calculateurs secondaires spécialisés dans certains traite- 1.1.1.2 Entrées/sorties
ments, qui peuvent être internes ou externes. Un système temps réel est, la plupart du temps, un système de
La puissance de calcul se mesure en FLOPS (nombre d’opéra- contrôle/commande. Il doit donc pouvoir mesurer l’état du procédé
tions en nombres flottants par secondes) ou bien en MIPS (millions contrôlé par le biais de capteur (des entrées) et modifier l’état du
d’instructions par seconde). La puissance de calcul dépend forte- procédé via des actionneurs (sorties). Le passage d’information
ment de la fréquence de fonctionnement interne du calculateur, entre le calculateur et les capteurs et actionneurs peut être de
mesurée en Hertz (en MHz-mégahertz ou GHz-gigahertz pour les trois types :
processeurs). Par un signal électrique à deux états (typiquement 0 ou 5 V ou
Un microprocesseur, à l’instar des microprocesseurs présents encore - 2,5 V ou + 2,5 V), on parle d’entrée/sortie numérique. D’un
dans les ordinateurs personnels, se caractérise par une haute fré- point de vue logique, une ligne numérique est une information
quence de fonctionnement, mais aussi par une consommation binaire, qui, d’un point de vue logique, est associée à un bit d’infor-
électrique relativement élevée par rapport aux autres calculateurs, mation. Pour la plupart des calculateurs manipulant au minimum
et une absence quasi-totale de moyens d’entrées-sorties. Un micro- des octets (groupes de 8 bits), les lignes sont regroupées par 8, 16
processeur a besoin d’une carte-mère, qui dispose de moyens ou 32 en ce que l’on appelle des ports. Ainsi, supposons qu’un cal-
d’entrées-sorties ou bien permet de disposer d’entrées/sorties par culateur soit lié à 8 capteurs de passage, fournissant chacun une
le biais de carte d’extension comme les cartes d’acquisition. Par tension de 0 V si pas de passage, ou 5 V si un véhicule passe sur
conséquent, un couple microprocesseur/carte-mère est relative- le capteur : on branche typiquement les 8 lignes numériques cor-
ment encombrant, a une consommation électrique élevée et donc respondantes à un même port d’entrée numérique du calculateur.
une production de chaleur relativement importante, pour une puis- La lecture du port donne l’état des 8 capteurs, chaque bit corres-
sance de calcul importante. pondant à l’état d’un capteur. Il en va de même pour les action-
Un microcontrôleur est doté d’entrées-sorties et peut fonctionner neurs : par exemple le pilotage d’un relai électrique est typique-
indépendamment d’une carte-mère. Il peut être directement mis ment une sortie numérique. On peut noter que d’un point de vue
sur un circuit relativement simple. Peu consommateur d’énergie, il électronique, il est assez simple d’utiliser physiquement le même
est en revanche considérablement plus lent que les microproces- connecteur qui sera configuré, via le logiciel, soit en entrée, soit
seurs de la même génération. Parmi les calculateurs à logique pro- en sortie. Ainsi, sur les microcontrôleurs, ou bien sur les cartes
grammée, le microcontrôleur est le plus représentatif des calcula- d’extension dites cartes d’acquisition, on parle d’entrées/sorties
teurs embarqués sur des systèmes critiques, grâce à ses qualités numériques.
multiples : faible coût, faible encombrement, faible déperdition de Par un signal électrique évoluant de façon continue entre deux
chaleur, entrées/sorties intégrées, simplicité d’intégration. bornes, typiquement entre 0 et 10 V, on parle d’entrée analogique
Les circuits intégrés spécialisés (ASIC), peuvent être réalisés tota- ou de sortie analogique. Un exemple typique d’entrée analogique
lement sur mesure pour les besoins d’une fonctionnalité, ce qui est un débitmètre : après étalonnage, on définit une fonction de
entraı̂ne un rapport puissance/coût unitaire très bas, mais nécessi- conversion qui prend en entrée le voltage de la ligne, et donne en
tent alors un long et coûteux processus de conception. Ce type sortie le débit correspondant. Une électrovanne à débit variable est
d’ASIC est développé pour des fonctionnalités très répandues (par un exemple typique d’actionneur analogique : le système peut pilo-
exemple des puces 3G, 4G, ou encore des contrôleurs présents sur ter l’ouverture de l’électrovanne en lui envoyant une tension com-
la plupart des micro-ordinateurs, ou dans les MODEM). Pour un prise entre 0 et 10 V. Ces circuits nécessitent des conversions rela-
plus haut coût unitaire, mais plus de flexibilité (notamment la pos- tivement complexes : voltage vers représentation numérique point
sibilité de modification du comportement par système de patch, fixe, ou point fixe vers voltage. Par conséquent, les entrées et les
c’est-à-dire sans remplacement matériel) et une rapidité de concep- sorties analogiques sont généralement des éléments disjoints. Sou-
tion comparable à celle d’un logiciel, les ASIC peuvent aussi utiliser vent les entrées analogiques partagent un même circuit de conver-
des circuits programmables tels que le FPGA. sion analogique-numérique par le biais du multiplexage ; en
ST
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUU
revanche, chaque sortie analogique doit posséder son propre cir- 2. Un récepteur GPS est muni d’une antenne patch qui permet,
cuit de conversion numérique analogique. par triangulation de signaux satellites, de calculer notamment la
position, la vitesse, la vitesse ascensionnelle, et le cap. Ce capteur
Via un bus de communication, comme les bus série (EIA RS- intelligent envoie les informations sous la forme de trames, trans-
232), USB (Universal Serial Bus), CAN (Controller Area Network), mises octet par octet sur un bus série. Le drone utilise une station
etc. Dans ce cas, le capteur, ou l’actionneur, comprend un sol comme organe de dialogue avec l’opérateur.
ensemble de protocoles et le système considéré doit être capable
de comprendre et/ou parler ces protocoles. Par exemple, un récep- 3. Un MODEM sans fil, permettant une communication bidirec-
teur GPS tel que celui du drone utilisé en exemple possède sa pro- tionnelle entre le drone et la station sol. L’opérateur utilise donc la
pre ressource de calcul (un microcontrôleur interne), dont le rôle station sol de façon à dialoguer avec le système du drone. Ce
est de scruter les signaux perçus des satellites de façon à opérer modem communique via un bus série bidirectionnel avec le calcu-
une triangulation, et calculer sa position, sa vitesse, sa vitesse lateur central. Il agit sur la dynamique du procédé à l’aide de deux
ascensionnelle, son cap, etc. Le calculateur du GPS élabore alors, actionneurs : des servomoteurs et un variateur de moteur.
en respectant l’un des formats NMEA (ensemble de formats de 4. Des servomoteurs pilotant des gouvernes : en différentiel, les
R
représentation des informations GPS défini par un ensemble de gouvernes commandent l’aéronef en roulis, alors qu’en parallèle
fabricants), une trame, c’est-à-dire un ensemble d’octets d’informa- elles le commandent en tangage. Pour la commande, on utilise
tion. Cette trame, d’une centaine d’octets environ, est émise quatre une sortie numérique, couplée à un circuit matériel d’horlogerie,
fois par seconde sur une liaison série EIA RS-232, octet par octet. permettant de générer des fronts hauts ou bas d’une certaine
Le calculateur du drone doit alors non seulement être muni d’un durée (signal PPM – Pulse Position Modulation).
port série au format RS-232 lui permettant de recevoir les octets 5. Un variateur de moteur permettant de commander la puis-
un par un, mais aussi d’être doté d’un programme capable d’inter- sance moteur, commandé lui aussi en PPM.
préter les données au format NMEA afin d’interpréter les trames
reçues lorsqu’elles sont complètes. De façon duale, l’émission Les contraintes de temps, strictes, sont d’un ordre de grandeur
d’informations vers le MODEM (considéré alors comme un action- de quelques dizaines de millisecondes pour la chaı̂ne de traitement
neur) sans fil s’effectue en utilisant une seconde liaison série RS- de contrôle d’attitude constituée des traitements suivants :
232, en respectant un protocole de représentation de l’information (1) calcul, à l’aide d’une centrale inertielle, de l’attitude (tangage,
qui soit commun au drone et à la station sol. Puisque les capteurs roulis) d’un aéronef ;
ou actionneurs considérés sont capables de lire ou parler en res-
(1’) en mode assisté, lecture des consignes (données sous la
pectant des protocoles, nous les qualifions de capteurs ou action-
forme de vitesse ascensionnelle, angle de virage, vitesse) reçues
neurs intelligents : ils possèdent forcément un calculateur interne.
de la station sol via une liaison radio ou bien, en mode autonome,
Le type de capteurs et d’actionneurs utilisés, de base ou intelli- calcul des consignes à partir d’un algorithme de navigation prenant
gents, a un impact important sur la conception et sur la validation en entrée le plan de vol, la position courante, le cap courant et la
du système. vitesse ascensionnelle courante ;
(2) utilisation d’algorithmes d’asservissement pour calculer les
1.1.1.3 Exemple d’un aéronef miniature commandes de vol à appliquer ;
Le procédé considéré pour illustrer de nombreux concepts est un (3) application des commandes sur les gouvernes et le moteur.
mini-drone (figure 1), aéronef de moins d’un kilogramme, équipé Ce système est considéré comme un système centralisé utilisant
afin d’être capable de vol autonome. Il embarque les capteurs un microcontrôleur monocœur, même si en y regardant de plus
suivants : près, nous trouvons, en plus du processeur utilisé pour contrôler
1. Une centrale inertielle qui contient trois gyromètres montés en le système un microcontrôleur embarqué sur le récepteur GPS, et
trièdre, permettant de calculer la vitesse angulaire autour des trois un calculateur FPGA embarqué sur la centrale inertielle. Ces pro-
axes, couplés à trois accéléromètres permettant de caler l’informa- cesseurs secondaires font partie intégrante de ce que nous appe-
tion donnée par les gyromètres sur l’information fournie par la gra- lons des capteurs intelligents. En effet, le récepteur GPS et la cen-
vité. C’est un capteur intelligent, envoyant les informations au cal- trale inertielle, bien que bénéficiant de ressources de calcul
culateur central sous forme de trames CAN (réseau de terrain propres, ne sont pas disponibles pour d’autres calculs que ce pour
Control Area Network). quoi ces capteurs ont été conçus, et nous n’en avons pas la
maı̂trise.
L’opérationnel en charge de la gestion des ressources matériel-
les, et de l’ordonnancement, est conforme à la norme Osek, qui
Période = 150 ms
est l’une des nombreuses normes définissant les interfaces de pro-
Envoyer grammation et les fonctionnalités des exécutifs temps réel (§ 1.2.1).
données
MODEM 1.1.2 Systèmes répartis
Commandes On parle de système réparti lorsque le système considéré est
Période = 20 ms constitué de plusieurs calculateurs connectés par un réseau de
Gouvernes communication. Dans le domaine des systèmes temps réel, les
Réguler réseaux de communication utilisés sont généralement des bus
attitude dits de terrain car ils sont relativement simples, déterministes et
Centrale robustes aux conditions extérieures. Exemples de bus de ter-
inertielle Moteur
rain [S 8 140] et [S 8 152] : CAN (Control Area Network), AFDX Avio-
nics Full DupleX), FlexRay, etc.
Période = 100 ms Période = 250 ms
Lire La validation de systèmes répartis a lieu en deux phases interdé-
Lire
consignes GPS
pendantes : validation au niveau temps de transmission pire cas
Récepteur des messages, et impact sur l’ordonnancement des calculateurs.
MODEM
GPS Les techniques utilisées pour mesurer l’impact sur l’ordonnance-
ment des calculateurs sont similaires à celles que nous verrons
dans cet article. La validation des systèmes répartis est abordée
Figure 1 – Un mini-drone et son système embarqué dans l’article [S 8 056].
SU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUU
1.2 Architecture logicielle variables locales sont placées en sommet de pile. À la terminaison
du sous-programme, ses variables locales sont « dépilées » (sup-
primées du sommet de la pile), ainsi que les paramètres d’appel,
1.2.1 Systèmes d’exploitation et exécutifs et l’adresse de retour qui permet de trouver l’endroit dans le code
Le noyau est une couche logicielle permettant la gestion de auquel revenir à la fin du sous-programme. La pile se retrouve
l’accès aux ressources matérielles. Le noyau possède au minimum alors dans le même état qu’avant l’appel de sous-programme.
un ordonnanceur permettant d’allouer le (ou les) processeur(s) aux Toute exécution séquentielle nécessite donc l’emploi d’une pile, et
différentes entités parallèles de l’application. Il gère les interrup- chaque tâche, ainsi que le programme principal, possède sa propre
tions matérielles et permet de déclencher des traitements appelés pile. On peut donc voir une tâche comme un sous-programme
routines de traitement d’interruption (ISR-Interrupt Service Routine) muni d’une pile, ce qui lui permet de s’exécuter parallèlement au
sur occurrence d’interruption matérielle. Il permet aussi, sur cer- programme principal et aux autres tâches. Mais la structure d’une
tains systèmes, d’assurer la gestion de la mémoire. tâche fait qu’elle est elle-même séquentielle. Notons que toutes les
tâches d’une même application peuvent accéder sans limite et sans
Un exécutif est constitué d’un noyau, et d’un ensemble de pilo-
contrôle à toute la mémoire de l’application.
R
tes de périphériques. Par exemple, un exécutif peut posséder une
pile IP (Internet Protocol) avec un certain nombre de protocoles Dans les systèmes d’exploitation généralistes, et dans de rares
d’accès au medium de communication, ou bien des pilotes permet- RTOS, un second niveau de parallélisme est introduit : c’est le pro-
tant de gérer les communications via les ports série du calculateur. cessus. Un processus est une entité parallèle, elle-même pouvant
être multitâche, dont la mémoire est isolée du reste des processus.
Enfin, un système d’exploitation est constitué d’un exécutif, et Ainsi, les systèmes d’exploitation généralistes permettent de parti-
fournit à l’utilisateur des moyens de gestion du système, tels un
tionner totalement les processus, garantissant ainsi confidentialité
shell permettant une interaction utilisateur/système, un certain
et robustesse entre processus s’exécutant sur un même système.
nombre d’outils de développement, de déverminage et de traçage.
En effet, qu’un processus ait un comportement erroné ou byzantin
La différence entre noyau, exécutif et système d’exploitation est ne peut pas, en théorie, nuire aux autres processus s’exécutant sur
illustrée sur la figure 2. le même système. La notion de processus est rarement présente
Aujourd’hui, seul un type de systèmes d’exploitation, UNIX, basé dans les RTOS, car elle nécessite plus de ressources de calcul, et
sur la norme POSIX, et un système d’exploitation propriétaire, une gestion de la mémoire assistée par un dispositif matériel, la
Microsoft Windows, se partagent le marché des ordinateurs per- MMU (Memory Management Unit) que l’on ne trouve qu’occasion-
sonnels : ce sont des systèmes d’exploitation généralistes. Dans nellement sur les microcontrôleurs.
le domaine de l’embarqué, on trouve de nombreux systèmes Par la suite, nous utiliserons toujours les tâches pour définir le
d’exploitation et exécutifs temps réel (RTOS-Real-Time Operating comportement des ordonnanceurs, mais les concepts sont aussi
System), basés soit sur des normes (POSIX, OSEK, Ada, ITRON, valides pour les processus. Notons aussi que les processus sont
ARINC 653, etc.), soit sur des spécifications propriétaires (VxWorks souvent hiérarchisés d’un point de vue ordonnancement. Par
de Wind River, RTEMS, etc.). Pour plus de détails concernant les exemple, dans l’amendement 1003.1b de la norme POSIX (amende-
RTOS, le lecteur peut se référer à l’article [S 8 052]. ment concernant les aspects multiprocessus), chaque processus est
Tous les noyaux permettent le parallélisme par le biais de tâches : muni d’un ordonnanceur interne servant à ordonnancer les sous-
une tâche est une entité logicielle dont le code séquentiel est exé- tâches et sous-processus.
cuté en parallèle des autres tâches. Une tâche, appelée thread en Les états possibles d’une tâche (figure 3) varient en fonction du
anglais, représente un fil d’exécution. noyau, mais on trouve généralement au moins trois états :
En mémoire, une application multitâche est caractérisée par son prête : la tâche doit être exécutée, dès obtention d’un cœur de
code, contenant l’ensemble des instructions et sous-programmes calcul ;
utilisés, ses données dans lequel on stocke les variables globales, endormie ou bloquée : la tâche est en attente d’un événement,
ainsi que la mémoire allouée dynamiquement, et enfin une pile par exemple l’arrivée d’une date, ou bien l’arrivée d’un mes-
par tâche. La pile permet de suivre l’exécution dynamique d’un pro- sage attendu, ou encore la libération d’une ressource, avant
gramme séquentiel pouvant appeler des sous-programmes : lors- d’être à nouveau prête ;
qu’une tâche appelle un sous-programme, l’adresse de retour du
exécutée : la tâche utilise un cœur de calcul unique (une tâche
sous-programme, ainsi que les paramètres d’appel, sont disposés
ne peut pas être parallélisée) pour exécuter séquentiellement
en sommet de pile. Lors de l’exécution du sous-programme, ses
ses instructions.
L’ordonnanceur du noyau connaı̂t et gère la liste des tâches : à
chaque fois que cela est nécessaire, l’ordonnanceur choisit parmi
les tâches prêtes une tâche à exécuter. La tâche qui était exécutée
Système d’exploitation (shell et ne l’est plus est dite préemptée : son contexte (état des registres)
maintenance, déverminage, etc.) est sauvegardé pour être restauré lorsqu’elle sera à nouveau
Créati
Inexistante on
Exécutif (pilotes, protocoles)
Suppression
tion
tion
Prête
Élec
p
Préem
Donne ou ressource
Noyau disponible Terminée
(ordonnancement, Suppression
gestion mémoire, Exécutée Bloquée
interruptions) Attente d’une
donnée ou ressource
Terminaison
SV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUV
R
Ingénieur de l’Institut national polytechnique de Grenoble
Docteur ès sciences
Joëlle DELACROIX
Maître de conférences (Conservatoire national des arts et métiers, Paris)
Docteur en informatique de l’université Pierre-et-Marie-Curie
Claude KAISER
Professeur (Conservatoire national des arts et métiers, Paris)
Ingénieur de l’École polytechnique, ingénieur du génie maritime
Docteur ès sciences
et Zoubir MAMMERI
Professeur d’université (université Paul-Sabatier, Toulouse)
Ingénieur, docteur en informatique
Habilité à diriger des recherches
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 056 − 1
SW
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUV
Réseau d'usine
Passerelle
Contrôleur Gestion de
de qualité Superviseur maintenance
Réseau de cellule
C C Capteurs C C
Bus de Bus de
terrain terrain
A A Actionneurs A A A
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 056 − 2 © Techniques de l’Ingénieur, traité Informatique industrielle
SX
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUV
1. Introduction aux systèmes Le développement des systèmes répartis est motivé par plusieurs
raisons, notamment :
temps réel et répartis — la demande d’interconnecter le plus possible les applications
existantes, en particulier pour les services multimédias (téléconfé-
rence, télé-enseignement, télémédecine, ingénierie coopérative...) ;
On appelle système temps réel et réparti tout système composé
de plusieurs entités interconnectées par un sous-système de com- — la volonté d’augmenter la disponibilité d’un système informa-
munication et qui coopèrent à la réalisation d’un ensemble de fonc- tique pour permettre le remplacement d’un composant du système
tions sujettes à des contraintes de temps (ces contraintes pouvant par un autre sans dégradation significative (voire sans aucune
être strictes ou non selon la nature de l’application à laquelle est dégradation) du service rendu. Cet aspect est primordial dans les
associé le système) [9] [28] [56]. Les systèmes temps réel et répartis applications temps réel et réparties pour lesquelles les situations
sont des cas particuliers des systèmes répartis. C’est la raison pour d’arrêt doivent être les plus rares possibles. Dans les systèmes auto-
R
laquelle nous commençons par nous intéresser aux systèmes répar- matisés de production, l’arrêt du système temps réel est synonyme
tis qui ne prennent pas en compte explicitement des contraintes d’un arrêt de production ;
temporelles, pour voir les principaux problèmes posés par ces sys- — le souci de faciliter l’évolution matérielle ou fonctionnelle d’un
tèmes et nous verrons ensuite les difficultés à considérer pour tenir système en remplaçant ou en ajoutant certains éléments sans avoir
compte des contraintes de temps. à arrêter les autres éléments du système ;
— le partage de ressources matérielles (des imprimantes, des
unités de sauvegarde massive...) ou logicielles (des bases de don-
1.1 Systèmes répartis généraux : nées, des logiciels...) ;
caractéristiques et problèmes — la demande de plus de puissance de calcul au moindre coût
de conception (par exemple, plusieurs PC en réseau coûtent moins cher qu’un gros
ordinateur) ;
— enfin, les besoins d’adaptation du système informatique à son
Un système réparti est constitué d’un ensemble de processeurs environnement : aujourd’hui, que ce soit dans les applications
reliés entre eux par un sous-système de communication qui leur bureautiques ou dans les applications industrielles, les ordinateurs
permet d’échanger des informations. Selon la nature du sous-sys- participant à une application se répartissent sur des étendues géo-
tème de communication, on distingue les multiprocesseurs où la graphiques plus ou moins importantes − sur plusieurs étages d’un
communication peut se passer avec ou sans mémoire commune et immeuble, ou sur des dizaines de kilomètres carrés dans le cas de
les réseaux d’ordinateurs où la communication se passe obligatoire- raffineries de pétrole, par exemple. Il est donc important, pour le
ment sans mémoire commune (c’est-à-dire, avec échange de mes- système informatique, de tenir compte de cette répartition géogra-
sages). Les machines parallèles sont constituées de plusieurs phique.
processeurs, en général identiques, fortement couplés. Les réseaux
d’ordinateurs sont formés de machines autonomes, généralement Les systèmes répartis ont des caractéristiques qui les distinguent
hétérogènes, faiblement couplées. Les distances entre les proces- des systèmes centralisés :
seurs d’un réseau d’ordinateurs peuvent être courtes (quelques
dizaines de mètres, voire moins) ou très importantes (des milliers de — les délais de communication entre sites varient d’un message
kilomètres, voire plus, pour les réseaux de satellites). Les distances à l’autre et aussi selon les protocoles du réseau de communication
entre les processeurs d’une machine multiprocesseur sont infini- utilisés ;
ment plus petites (quelques centimètres, voire moins).
— ils n’ont pas d’horloge commune. Chaque site a sa propre per-
On dit qu’un système réparti est constitué d’un ensemble de pro- ception du temps et, comme les horloges physiques dérivent par
cesseurs, de sites ou de nœuds interconnectés entre eux (figure 1). rapport au temps de référence, les différents temps lus sur les sites
Par la suite, nous utiliserons indifféremment, lorsqu’il n’y a pas peuvent être différents à une même heure universelle ;
d’ambiguïté, les termes nœud, site et processeur et nous ne ferons
pas de distinction entre les systèmes répartis construits autour — l’absence d’une mémoire commune a pour conséquence
d’architectures multiprocesseurs et ceux construits autour de l’impossibilité de définir un état global à l’aide de variables commu-
réseaux d’ordinateurs. nes. Encore plus important, l’existence de délais de communication
variables et l’absence d’un référentiel temporel commun ont pour
conséquence que chaque site a sa propre vue qui peut être diffé-
rente de celles des autres sites à un même instant du temps
universel ;
Site — comme le nombre d’équipements d’un système réparti est
plus élevé que celui d’un système centralisé, les risques de
défaillances y sont plus importants. Des mécanismes de tolérance
aux fautes doivent être intégrés pour répondre à l’exigence de ne
Site Réseau Site pas dégrader la sûreté de fonctionnement et, en particulier, la dispo-
nibilité de ces systèmes [27] ;
Site communication Site — les applications réparties sont plus complexes à spécifier, à
concevoir, à implanter, à tester et à valider.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 056 − 3
SY
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUV
coopérative, etc. C’est aussi l’une des principales sources de com- Il est important de signaler que la répartition (ou décentralisation)
plexité des algorithmes de placement de tâches (cf. § 2). doit être considérée séparément pour chaque fonction du système.
Selon les spécificités d’un système, on peut avoir des fonctions cen-
Exemple : un site i diffuse, à l’instant t, un message pour informer tralisées, d’autres partiellement réparties et d’autres complètement
les autres sites qu’il a une charge faible et qu’il est prêt à accueillir des
réparties. Par exemple, on peut avoir dans un même système : une
tâches en provenance des autres sites. Juste après l’instant t, une ava-
fonction complètement répartie pour la synchronisation d’horloges,
lanche d’événements locaux se produit et le site i est obligé d’exécuter
une base de données éclatées sur plusieurs sites, mais toutes les
un nombre important d’actions pour répondre aux événements surve-
transactions sur la base sont contrôlées par un seul site et une ges-
nus, ce qui conduit à une saturation momentanée de ce site. Les
tion centralisée des fichiers. Tout n’est pas réparti dans un système
autres sites recevant le message du site i décident de lui envoyer des
réparti ! Il est clair qu’il ne peut y avoir de répartition logicielle sans
tâches à exécuter. À la réception des tâches, le site i les rejette, car il
répartition matérielle, mais la réciproque n’est pas vraie. La décen-
est en situation de surcharge.
tralisation matérielle peut aider ou inciter à la répartition logicielle.
R
On remarque, à travers cet exemple, que les délais de communi-
cation donnent une image qui peut être dépassée et qui conduit à
entreprendre des opérations (de transfert de tâches, par exemple)
qui seront annulées.
1.3 Problèmes liés aux systèmes temps
Beaucoup de travaux ont été développés depuis plus d’une quin-
réel et répartis
zaine d’années sur les différents problèmes posés par les systèmes
répartis. Nous conseillons au lecteur désireux d’approfondir ses Dans le cas des systèmes temps réel, la répartition est parfois
connaissances sur les systèmes répartis de consulter des ouvrages indispensable : le procédé physique est fortement réparti, les traite-
tels que [4] [14] [25] [39] [45] [60]. ments, les contraintes temporelles dépassent les capacités d’un seul
processeur, l’arrêt du système est inacceptable…
La répartition des systèmes temps réel introduit de nouveaux pro-
1.2 Répartition matérielle et logique blèmes, notamment :
— les calculs fondés sur les contraintes temporelles qui font réfé-
rence au temps chronométrique ou à une date absolue risquent de
Les termes décentralisé, réparti et distribué sont souvent utilisés comporter des erreurs de calcul trop importantes et, partant, de ne
de manière ambiguë. Pour les préciser, il faut tout d’abord distin- pas être crédibles, à cause de dérives trop grandes entre les horlo-
guer la répartition matérielle et la répartition logique. ges des différents sites ;
— l’observation de l’évolution des différents constituants du pro-
■ La répartition matérielle (ou encore décentralisation physique)
cédé est retardée et différente d’un site à un autre à cause des délais
est obtenue en utilisant plusieurs unités de traitement qui sont inter-
de communication variables ;
connectées par un sous-système de communication. Par exemple,
— les tests d’ordonnançabilité et les calculs de garantie des con-
un système de contrôle/commande constitué de capteurs et
traintes de temps de tâches communicantes, donc l’ordonnance-
d’actionneurs en contact direct avec le procédé physique, d’automa-
ment temps réel réparti, sont tributaires de ces dérives d’horloges et
tes programmables dans les salles de commande et de stations de
de ces délais de communication ;
travail dans les salles de CAO, est un système avec une architecture
— la tolérance aux fautes est beaucoup plus complexe, ce qui
matérielle répartie (ou décentralisée).
rend encore plus difficile de tolérer des fautes tout en respectant les
■ La taxinomie est plus complexe lorsqu’il s’agit du logiciel. En contraintes de temps.
effet, il faut distinguer : Dans le cas de l’ordonnancement temps réel qui nous intéresse
— la répartition des données (ou répartition de l’information) ; ici, la répartition implique l’ordonnancement conjoint de tâches et
— la répartition des traitements ; de messages.
— la répartition du contrôle. Le respect ou non des contraintes temporelles des messages se
● L’ensemble des informations (variables simples, fichiers...) qui répercute de manière directe sur celui des tâches, car l’attente de
sont partagées entre des tâches distantes peut être stocké sur un réception d’un message par une tâche est équivalente à l’attente
seul site (on parle, dans ce cas, de stockage centralisé de l’informa- d’acquisition d’une ressource ; si le message n’arrive pas à temps,
tion) ou éclaté sur plusieurs sites (on parle, dans ce cas, de stockage les contraintes temporelles de la tâche ne peuvent être garanties.
décentralisé de l’information). Cette répartition ne préjuge en rien L’ordonnancement de tâches dans un système réparti se règle à
sur la façon dont le contrôle de l’accès aux informations partagées deux niveaux : au niveau de chaque processeur (ordonnancement
sera géré. local) et au niveau du placement de tâches sur les processeurs. Le
● La répartition des traitements conduit à affecter les program- problème d’ordonnancement local a été présenté dans l’article
mes (ou tâches) à des sites pour y être exécutés. Cette répartition ne [S 8 055] de ce traité ; le problème de placement sera étudié dans le
préjuge en rien de la façon dont l’exécution des programmes sera paragraphe suivant.
gérée, c’est-à-dire, de la façon dont sera effectué le contrôle de La conception et l’implantation des systèmes temps réel et répar-
l’exécution des tâches. tis nécessitent des protocoles de communication qui garantissent
● Le contrôle concerne le déclenchement et l’arrêt des tâches, le aux tâches communicantes de recevoir, dans les délais, les messa-
transfert des tâches d’un site vers un autre, l’accès aux ressources ges qui leur sont destinés. Pour les messages avec des échéances
partagées, la validation d’opérations faisant intervenir plusieurs strictes de délivrance, il faut que les protocoles donnent des garan-
sites, etc. Il peut être à la charge d’un seul site (il s’agit d’un contrôle ties et, pour les messages non critiques du point de vue temporel, la
complètement centralisé), d’une partie des sites (il s’agit d’un con- stratégie du protocole est le meilleur effort (c’est-à-dire, minimiser
trôle partiellement réparti) ou de tous les sites (il s’agit d’un contrôle le retard des messages et le nombre des messages tardifs). Toute-
complètement réparti). Lorsque le contrôle est distribué, la prise de fois, la notion de « meilleur effort » doit être utilisée avec certaines
décision (par exemple, pour valider une opération sur une base de précautions dans le cas de systèmes temps réel. Par exemple, per-
données, pour lancer la production d’un ensemble de pièces ou, dre une image sur dix dans le cas d’une animation vidéo dans une
encore, pour sortir le train d’atterrissage d’un avion) peut être prise salle de commande est souvent sans conséquence, par contre per-
par chaque site séparément, par tous les sites (dans ce cas, si un dre neuf images sur dix rend le système de supervision inutile aux
seul site manque, la décision ne peut être prise) ou à la majorité des yeux des opérateurs. La garantie des contraintes temporelles de
sites (on parle, dans ce cas, de décision par consensus). messages passe par un ordonnancement adéquat des messages.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 056 − 4 © Techniques de l’Ingénieur, traité Informatique industrielle
TP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUV
Le paragraphe 3 est réservé à l’étude du problème de l’ordonnance- qu’une tâche ne requiert qu’un seul processeur à la fois pour son
ment de messages et de ses solutions. exécution). On remarque aisément que si les paramètres n et p ont
Dans un système temps réel et réparti, les tâches sont synchroni- des valeurs élevées, l’obtention d’une solution au bout d’un temps
sées en utilisant le temps chronométrique (par exemple, activation raisonnable devient vite impossible. Sauf pour des cas très simples,
de tâches à des instants précis ou de manière périodique). Il en est le problème de placement de tâches est un problème NP-complet
de même pour la datation de données et d’événements apparais- [20] (c’est-à-dire, un problème qui ne se résout pas avec un algo-
sant sur les différents sites. Le bon fonctionnement d’un système rithme qui donne un résultat au bout d’un temps polynomial). C’est
réparti nécessite le plus souvent l’existence d’un temps global la raison pour laquelle la quasi-totalité des travaux qui ont traité le
accessible à tous les sites. La solution la plus couramment utilisée problème de placement de tâches utilisent des techniques approxi-
pour établir un temps global est la synchronisation d’horloges phy- matives et des heuristiques.
siques. D’autres solutions fondées sur l’utilisation de récepteur d’un Le problème de placement consiste souvent à rechercher d’abord
temps diffusé par une station de radio ou un satellite commencent à une solution qui respecte le plus possible les contraintes initiales
R
être envisagées. Beaucoup d’algorithmes ont été proposés pour puis à choisir le meilleur placement, si plusieurs placements ont été
régler le problème de synchronisation d’horloges. Le lecteur dési- trouvés. La recherche d’un placement doit tenir compte des con-
reux d’approfondir ses connaissances sur ce sujet peut consulter les traintes initiales des tâches, de l’environnement support ainsi que
références [19] [21]. des critères à optimiser.
Les contraintes initiales peuvent être diverses :
— existence ou non de tâches à contraintes strictes pour lesquel-
2. Placement et migration les la garantie des échéances est une nécessité quelle que soit la
charge du système ;
de tâches — obligation pour certaines tâches de résider sur un processeur
précis disposant de ressources matérielles ou logicielles spécifiques
(par exemple, une tâche d’acquisition de mesures doit se trouver
sur la machine en contact direct avec le procédé physique) ;
2.1 Ordonnancement local
— limitation du nombre de tâches s’exécutant sur chaque
et ordonnancement global processeur ;
— interdiction à deux tâches données de s’exécuter sur un même
Dans les systèmes répartis, on distingue deux types site (par exemple, pour des raisons de tolérance aux fautes, on
d’ordonnancement : l’ordonnancement local et l’ordonnancement exige qu’une tâche et sa copie ne s’exécutent pas sur un même
global. site) ;
L’ordonnancement local consiste à allouer un processeur aux — regroupement de tâches utilisant certaines ressources ;
tâches affectées à ce processeur, en tenant compte de leur urgence — etc.
et de leur importance.
Afin de chercher un bon placement, il est important de préciser
L’ordonnancement global a, quant à lui, pour mission d’essayer les critères (ou fonctions de coûts) à optimiser. Dans les systèmes
de garantir les contraintes de tâches en exploitant les capacités de temps réel, le critère le plus important est évidemment le respect
traitement des différents processeurs composant le système réparti des contraintes temporelles : (1) garantir le respect des contraintes
considéré (en procédant, éventuellement, à des migrations de temporelles des tâches à contraintes strictes et (2) minimiser le
tâches). nombre de tâches à contraintes relatives qui dépassent leurs
Ainsi, un ordonnanceur local a pour objectif de répondre à la échéances. D’autres critères peuvent être envisagés ensuite. Beau-
question « quand exécuter une tâche sur le processeur local, de coup de travaux ont été développés dans le contexte de l’ordonnan-
manière à respecter les contraintes imposées à cette tâche ? ». Un cement non temps réel (c’est-à-dire, dans des problèmes
ordonnanceur global, quant à lui, cherche à répondre à la question d’optimisation concernant, par exemple, la gestion de production
« quel est le site le mieux adapté pour exécuter une tâche donnée, ou des emplois du temps, le transport, l’intelligence artificielle, etc.)
de manière à respecter ses contraintes ? ». montrant comment on peut optimiser un ou plusieurs critères. Dans
le cas de l’ordonnancement dans des systèmes répartis, on peut
Le placement et l’ordonnancement sont indissociables dans le cas
avoir comme critère d’optimisation :
des applications temps réel : il faut placer les tâches sur l’ensemble
des processeurs de telle sorte que l’ordonnancement local conduise — la minimisation de la durée totale d’exécution de l’ensemble
impérativement au respect des contraintes de temps des tâches cri- des tâches ;
tiques du point de vue temporel. L’ordonnancement local utilise des — la minimisation du nombre de processeurs utilisés ;
algorithmes comme ceux présentés dans l’article [S 8 055]. Nous
nous intéressons ici aux différents aspects de l’ordonnancement — la minimisation de la charge de communication ;
global, c’est-à-dire, les aspects liés au placement et à la migration — l’équilibrage de charge des processeurs.
des tâches.
Selon la nature de l’application et le système support de l’applica-
tion, on est amené à privilégier certains critères. Par exemple, si le
réseau de communication utilisé est un réseau Ethernet − un réseau
2.2 Placement de tâches qui ne garantit pas de temps de réponse borné et dont le rendement
s’écroule si les demandes de transmission dépassent un certain
seuil − il est souvent conseillé de chercher particulièrement à mini-
2.2.1 Problème de placement de tâches miser les communications pour permettre aux tâches placées sur
des machines distantes de recevoir leurs messages à temps et donc
de se terminer à temps.
À première vue et de manière simplifiée, on peut considérer que
le problème de placement (ou allocation, en anglais − à noter aussi Les critères à optimiser sont parfois en contradiction les uns avec
que certains utilisent le terme « allocation de tâches » au lieu de les autres. Par exemple, réduire la charge de communication con-
« placement de tâches ») de n tâches sur p processeurs conduit à duit à regrouper les tâches sur un nombre réduit de processeurs, ce
étudier pn cas de placements possibles (en supposant évidemment qui aboutit donc à des processeurs plus chargés que d’autres.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 056 − 5
TQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUV
2.2.2 Classes d’algorithmes et techniques placement statique est la solution utilisée aujourd’hui dans les
de résolution du problème de placement applications temps réel réparties industrielles. Il y a deux principales
raisons à cela :
Selon le nombre de processeurs, le nombre de tâches à placer et — le placement dynamique est complexe, encore peu étudié, et
les contraintes temporelles, les contraintes de précédence et les donne rarement une garantie absolue quant au respect des con-
contraintes de ressources, deux familles d’algorithmes peuvent être traintes temporelles ;
utilisées : — le choix d’une architecture matérielle et logicielle (nombre et
— les algorithmes exacts (ou optimaux) qui procèdent par énu- types de processeurs, type de réseau, types de systèmes d’exploita-
mération pour trouver la solution optimale. De tels algorithmes tion...) est souvent dicté par les spécificités de l’application et on
deviennent très vite irréalistes lorsque la taille du problème est construit, par conséquent, une architecture « sur mesure » pour per-
importante, à cause de l’explosion combinatoire de cette mettre aux tâches de respecter leurs échéances tout en étant pla-
énumération ; cées de manière statique.
R — les algorithmes approchés (ou non optimaux) qui permettent On a dépassé aujourd’hui le stade des applications temps réel et
de trouver une solution qui ne respecte pas nécessairement toutes réparties composées uniquement de tâches cycliques de régulation
les contraintes. Parfois, la solution obtenue peut être la solution avec un nombre d’entrées et de sorties parfaitement connu et où
optimale. l’on prévoit un arrêt d’urgence dès qu’un événement survient. Impo-
ser une connaissance figée sur une application temps réel et répar-
Les méthodes utilisées par les algorithmes de placement de
tie complexe est synonyme d’un surdimensionnement parfois
tâches sont notamment :
excessif de l’architecture. C’est ainsi que des travaux sont effectués
— la technique du branch-and-bound, la programmation dynami- pour éviter ce surdimensionnement et proposer des mécanismes
que et la théorie des graphes, pour les algorithmes optimaux (la plus dynamiques [13] [52] [54] [56] [57] [74]. On s’oriente à la fois
théorie des graphes étant la technique la plus utilisée). Une des vers un ordonnancement local dynamique et un placement dynami-
méthodes utilisées dans les algorithmes de placement fondés sur la que.
théorie des graphes consiste à déterminer des coupes minimales
d’un graphe contenant les tâches, les processeurs et les liens de La technique idéale du placement serait celle qui permettrait de
communication, pour déterminer des solutions de placement. Les trouver instantanément le meilleur site pour accueillir une tâche qui
algorithmes fondés sur la programmation dynamique représentent est déclenchée ou qui doit reprendre son exécution après une inter-
le problème de placement sous forme d’un problème d’optimisation ruption. Le transfert d’une tâche d’un site vers un autre ne doit
avec minimisation d’une fonction de coût sous contraintes ; remettre en cause aucune des tâches plus prioritaires en cours
— les méthodes approximatives et heuristiques (telles que le d’exécution sur le système réparti et ne doit pas affecter les perfor-
recuit simulé, le tabou, les algorithmes génétiques, les réseaux de mances globales du système. Ce résultat est impossible à atteindre
neurones et les algorithmes gloutons) pour les algorithmes non dans la pratique à cause du délai nécessaire pour obtenir un état
optimaux. Les méthodes itératives (algorithmes génétiques, exact et valide de l’ensemble des sites d’un système réparti (parce
réseaux de neurones, recuit simulé et tabou) partent d’une solution que l’obtention de cet état demande de nombreux messages avec
et tentent de l’améliorer par des itérations successives. Les algorith- des délais de transfert variables). Par ailleurs, les transferts néces-
mes gloutons tentent d’atteindre la solution sans remettre en ques- saires pour la migration de tâches peuvent compromettre le respect
tion les choix déjà effectués. Ils fournissent en général des solutions des contraintes temporelles de tâches et les performances globales
moins bonnes que les autres méthodes. du système.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 056 − 6 © Techniques de l’Ingénieur, traité Informatique industrielle
TR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUW
Emmanuel GROLLEAU
R
Professeur des universités en Informatique à l’ISAE-ENSMA (Chasseneuil-du-Poitou)
Michaël RICHARD
Maı̂tre de conférences en Informatique à l’ISAE-ENSMA (Chasseneuil-du-Poitou)
et Frédéric RIDOUARD
Maı̂tre de conférences en Informatique à l’université de Poitiers
TS
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUW
TT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUW
R
actuelle de l’ordonnancement, les aspects communication et cohé-
1.1.1 Systèmes centralisés rence de caches sont négligés. Bien entendu, il est clair que cette
1.1.1.1 Calculateurs
Même si cette puce peut avoir plusieurs cœurs de calcul, on qua- Cœur 1 +
lifie de centralisé un processeur contenu dans une seule puce, ou Mém 1
dans plusieurs puces « proches » se trouvant sur un même support
physique.
La taxinomie de Flynn peut être employée pour désigner les
familles de calculateurs :
" SISD (Single Instruction Multiple Data) désigne les architectu-
res de processeurs simples capables de traiter une instruction Cœur 4 + Cœur 2 +
à la fois ; Mém 4 Mém 2
" SIMD (Single Instruction Multiple Data) met en œuvre des
architectures vectorielles ou matricielles, comme sur les pro-
cesseurs graphiques (GPU) ou bien sur des jeux d’instructions
particulières permettant d’effectuer des calculs identiques sur
plusieurs données à la fois ;
" MISD (Multiple Instruction Single Data) traite parallèlement la
même donnée et le même calcul, mais n’a pas ou a peu de Cœur 3 +
mise en œuvre ; Mém 3
" MIMD (Multiple Instruction Multiple Data) est la catégorie
d’architecture qui contient les systèmes multiprocesseurs ou
multicœurs. Cette architecture permet d’exécuter simultané- Figure 2 – Architecture à mémoire distribuée avec un réseau de type
ment plusieurs instructions sur des données différentes. mesh ou hypercube
C’est ce type d’architecture sous-jacente que nous considé-
rons dans cet article.
Les architectures MIMD peuvent avoir une mémoire partagée
(accédée par un bus, ou bien de façon hiérarchique), ou bien avoir Cœur 1 Cœur 2
Cache Cache
Cœur 1 L1 L1
Cache L2
Mémoire
Cache Cache
L1 L1
Figure 1 – Architecture simplifiée généralement considérée lors Figure 3 – Architecture avec mémoire centralisée, utilisant
de l’étude d’ordonnançabilité une hiérarchie de caches
TU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUW
approximation est loin d’être réaliste. Par conséquent, on caracté- La validation de systèmes répartis a lieu en deux phases interdé-
rise de nombreux algorithmes d’ordonnancement par le nombre pendantes : validation au niveau temps de transmission pire cas des
de migrations qui peuvent avoir lieu, et de nombreux travaux s’inté- messages, et impact sur l’ordonnancement des calculateurs. Les tech-
ressent à les limiter. En effet, lors d’une migration, par exemple en niques utilisées pour mesurer l’impact sur l’ordonnancement des cal-
mémoire distribuée, le code et les données d’une tâche doivent être culateurs sont similaires à celles que nous verrons dans cet article. La
transférées ; dans le cas d’une mémoire à caches hiérarchiques, les validation des systèmes répartis est abordée dans l’article [S 8 056].
caches de données doivent être synchronisés, et par exemple une
migration du cœur 1 vers le cœur 2 devrait prendre moins de
temps qu’une migration du cœur 1 au cœur 3. 1.2 Architecture logicielle
Chaque cœur du système contient au moins une unité de contrôle La partie assurant la gestion des ressources matérielles s’appelle le
permettant de décoder et lancer l’exécution des instructions, et une noyau. Celui-ci est en charge de l’ordonnancement, de la gestion de
unité arithmétique et logique. Il peut être muni d’une mémoire cache la mémoire, et de la gestion des interruptions matérielles. Le noyau
de niveau 1 (L1) de façon à utiliser le principe de localité pour opti- est souvent enrichi de pilotes de périphériques (facilitant l’accès aux
R
miser les accès à la mémoire lorsque le cœur est plus rapide que la ports série, à l’écran, etc.) et de piles protocolaires (typiquement
mémoire. Il peut aussi s’adjoindre une unité de calcul spécialisée réseau, tel que IP, CAN, etc.) : cet ensemble noyau, pilotes, protoco-
dans la manipulation des nombres à virgules flottantes. Chaque les, se nomme l’exécutif. Dans le cas où l’opérateur peut dialoguer
cœur, comme dans un système monoprocesseur, est caractérisé par avec le système, ou le gérer, par exemple via une interface graphique
une fréquence de fonctionnement, exprimée en MHz (mégahertz) ou ou bien lignes de commandes, on parle de système d’exploitation.
GHz (gigahertz). Cette fréquence représente le nombre d’instructions L’application utilisateur, typiquement en charge d’un contrôle de
élémentaires que le cœur est capable d’exécuter. Par exemple, la procédé pour les systèmes temps réel, est généralement multitâ-
famille d’architecture ARM Cortex A, très répandue sur les smartpho- che. Chaque tâche représente un fil d’exécution capable de s’exécu-
nes, les petits systèmes multimédias, et les systèmes embarqués, ter parallèlement aux autres tâches. Souvent, une tâche est simple-
possède des cœurs cadencés entre 1 et 2 GHz. ment implémentée par une fonction munie d’une pile, et son état
est connu par le noyau. Les états possibles d’une tâche diffèrent
1.1.1.2 Communications suivant l’exécutif, mais il y a au moins trois états :
Lorsque les processeurs partagent la même mémoire centrale, la " prêt : lorsqu’une tâche est prête, un cœur de calcul doit pou-
communication a lieu soit via des caches partagés (ou des dérivés voir lui être accordé ;
de type scratchpad), soit via la mémoire centrale. Dans le cas de " bloqué : lorsqu’une tâche attend une certaine durée, jusqu’à
systèmes à mémoire distribuée, la communication a lieu sur des une certaine date (une interruption matérielle, un élément de
bus. Les bus de communication entre les cœurs fonctionnent de synchronisation tel qu’un sémaphore par exemple, ou encore
façon synchrone ou asynchrone. Le nombre de cœurs croissant un message provenant d’une boı̂te aux lettres) elle est blo-
empêche un maillage complet du réseau, par conséquent, les quée et ne peut pas se voir allouer un cœur de calcul. Lorsque
réseaux proposés sont de type mesh (chaque cœur est connecté à la condition bloquante est levée (délai écoulé, date atteinte,
ses voisins) ou de type hypercube (même principe mais en trois élément de synchronisation arrivé), la tâche devient prête ;
dimensions). Dans ce cas, un cœur peut servir de routeur pour le " exécuté : lorsqu’une tâche prête est élue par l’ordonnanceur
transfert de données entre deux cœurs non adjacents. Il en résulte du noyau, elle est placée sur un et un seul cœur de calcul.
que les durées de transmission peuvent être hétérogènes en fonc- Ses instructions sont alors exécutées par le cœur de calcul
tion des cœurs qui communiquent. jusqu’à ce qu’elle se bloque, ou bien qu’elle soit préemptée
par l’ordonnanceur.
1.1.1.3 Modèles des plateformes L’ordonnanceur choisit suivant une stratégie que l’on appelle
Les études sur l’ordonnancement multiprocesseur classifient les algorithme d’ordonnancement quelles sont les tâches à élire,
systèmes multiprocesseurs en trois catégories : parmi les tâches prêtes. Notons que si l’algorithme d’ordonnance-
ment ne laisse jamais une tâche dans l’état « Prêt » s’il existe un
" homogène ou identique : les processeurs et les capacités des
cœur disponible, on dit que l’algorithme est conservatif.
processeurs sont identiques. Le WCET d’un processeur est
donc valide pour tous les processeurs de la plateforme ;
1.2.1 Types de tâches
" uniforme : les processeurs ont des structures identiques, mais
leurs capacités sont proportionnelles. Le WCET sur le proces- Les tâches considérées peuvent être de nature diverse.
seur le plus lent (sans perte de généralité, il aura une capacité " Une tâche réveillée périodiquement par l’horloge interne est
unitaire) est multiplié par la capacité du processeur pour obtenir qualifiée de périodique. Typiquement, une tâche chargée de scruter
toutes les durées d’exécution d’une tâche sur les processeurs ; la valeur d’un capteur analogique, comme un débitmètre, est
" hétérogène ou non relié : chaque processeur possède sa pro- implémentée sous la forme d’une tâche périodique. Une tâche
pre capacité de traitement et ses propres caractéristiques périodique est donc caractérisée par sa période, totalement maı̂tri-
internes, indépendantes des autres processeurs. Dans ce cas, sée. De plus, si sa première date d’activation est connue, toute date
le WCET de chaque tâche devra être déterminé pour chacun de réveil future est connue.
des processeurs. " Une tâche déclenchée par un dispositif externe, comme l’arrivée
d’une trame sur un réseau de communication, est généralement
La très grande majorité des résultats connus porte sur les systè-
qualifiée de sporadique. Généralement on ne connaı̂t pas la pre-
mes multiprocesseurs homogènes.
mière date d’arrivée de l’événement déclencheur, donc on ne connaı̂t
pas la première date d’activation. On caractérise une tâche spora-
1.1.2 Systèmes répartis dique par le délai minimal séparant deux activations successives de
la tâche, que l’on appelle période de la tâche sporadique. Il faut noter
On parle de système réparti lorsque le système considéré est
que la période est ici un délai minimal, qui peut croı̂tre à l’infini.
constitué de plusieurs calculateurs connectés par un réseau de com-
munication. Dans le domaine des systèmes temps réel, les réseaux " Une tâche déclenchée par un dispositif externe ou interne, mais
de communication utilisés sont généralement des bus dits de ter- dont on ne peut pas caractériser le délai minimal entre deux activa-
rain car ils sont relativement simples, déterministes, et robustes tions successives, est qualifiée d’apériodique. Notons que les tâches
aux conditions extérieures. Exemples de bus de terrain : CAN apériodiques n’ayant pas ou peu été étudiées dans un contexte multi-
(Control Area Network), AFDX (Avionics Full DupleX), FlexRay, etc. processeur, nous n’étudierons pas ce type de tâches dans cet article.
TV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUX
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur S 8 058 − 1
TW
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUX
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 058 − 2 © Techniques de l’Ingénieur
TX
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUX
R
niveau thermique) ;
version 2.5 donnera naissance à Linux 2.6, et le jeu continuera de
— robuste : une erreur d’un utilisateur ou un « plantage » éven-
plus belle.
tuel d’une application n’affecte pas le reste du système. D’autre
Il faut garder à l’esprit que Linux est développé selon un modèle part, il est exceptionnel de devoir l’arrêter : la quasi-totalité des
ouvert et réparti, contrairement à la plupart des logiciels connus opérations de configuration, mise au point, etc., ne nécessite pas
qui évoluent souvent selon un modèle fermé et centralisé. Cela l’arrêt du système ;
signifie que la version courante de développement est toujours — très bon marché : le prix demandé par les sociétés qui
publique (avec une ou deux semaines de retard) afin que tout le vendent Linux sur CD-ROM ne sert qu’à couvrir leurs frais et à leur
monde puisse l’utiliser. Une version apportant de nouvelles fonc- permettre de financer dans une certaine mesure la poursuite de
tionnalités contient par conséquent presque toujours des bogues, cette activité. Linux étant développé par des passionnés pour le
mais ceux-ci sont découverts et corrigés rapidement, souvent en plaisir, personne n’a à supporter le coût de son développement ;
quelques heures, car ceux qui y travaillent sont nombreux. Il est — conforme à la norme POSIX et aux standards du marché, en
donc facile pour un utilisateur final de les éviter. particulier de l’Internet. Cela signifie qu’un logiciel conçu pour un
À l’opposé, le modèle fermé et centralisé signifie que seule une autre système de la même famille (Solaris de Sun, Digital Unix,
personne ou une équipe travaille sur le projet et qu’elle ne diffuse AIX d’IBM, SCO Unix...) peut être rapidement porté sous Linux et
un programme que lorsqu’elle considère qu’il fonctionne bien. vice versa, ce qui assure une protection de l’investissement logiciel
Cela implique souvent de longs intervalles entre les versions, de en cas d’obligation de changement de système.
longs délais avant correction des bogues et un développement
moins rapide. Bien sûr, la version la plus récente d’un programme
réalisé ainsi est souvent de bonne qualité, mais le développement
en est bien plus lent. 1.2 Principales utilisations
Les caractéristiques essentielles de Linux sont les suivantes :
■ Serveur de fichiers et d’impression : Linux supporte les trois prin-
— multitâche : exécute plusieurs programmes en pseudo-paral- cipaux protocoles de partage de fichiers, NFS pour clients Unix,
lélisme ; SMB pour clients Windows et AppleShare pour clients MacOS, ainsi
— multi-utilisateur : plusieurs utilisateurs actifs sur la même que les protocoles de partage d’imprimantes. Linux peut également
machine en même temps (et sans licence multi-utilisateur !) ; servir de serveur de fax.
— multi-plate-forme : il fonctionne sur différents processeurs, et
pas seulement sur Intel ; ■ Serveur Internet/intranet : on trouve dans les distributions
— exécution en mode protégé sur les processeurs x86 ; standards de Linux tous les logiciels nécessaires pour réaliser un
serveur Internet complet, même sur des machines de puissance
— protection de la mémoire entre les processus, afin qu’un pro- modeste. Cela inclut des fonctionnalités de :
gramme ne puisse à lui seul compromettre le fonctionnement de
l’ensemble du système ; — transfert et distribution du courrier électronique, des news
(Usenet) ;
— bibliothèques partagées liées dynamiquement (DLL, a.out et
ELF) ; des bibliothèques statiques sont bien entendu également — serveur Web ou FTP ;
disponibles ; — serveur de noms de machines ou de domaines.
— très conforme à POSIX, compatible System V et BSD au ■ Serveur d’applications client/serveur : un grand nombre de logi-
niveau du programme source ; ciels de serveurs de bases de données (SGBD), relationnels, rela-
— plusieurs systèmes de fichiers reconnus : minix-1, Xenix, UFS, tionnels-objets ou objets, commerciaux ou libres, sont disponibles
EFS, UDF, FAT, FAT32, NTFS, Ext2fs, Ext3fs, NFS, XFS, certains pour Linux. Avec ces logiciels, surtout du côté commercial, ce sont
offrant une journalisation ; des milliers d’applicatifs qui existent.
— support de l’USB v2, du FireWire, de l’I2O ;
— possibilité avancée de pare-feu (fonctionnalités de filtrage de ■ Station de développement : Linux dispose, le plus souvent sous
paquets, masquerading, load-sharing, quality of service, grâce à forme de logiciel libre, des outils de développement pour la plupart
Netfilter) ; des langages actuels (C, C++, Fortran, Java, Cobol, LISP, Prolog,
SmallTalk). On trouve aussi des outils pour le contrôle des sources,
— support de IPv6 ;
pour le travail en groupe, pour le suivi des erreurs, pour les tests.
— asynchronous I/O (AIO), l’interface POSIX fournissant une
efficacité élevée à l’accès des entrées/sorties asynchrone. Un pro- ■ Station bureautique : grâce à des suites bureautiques intégrées
cessus peut commencer une ou plusieurs demandes d’E/S à un ou commerciales comme Applix ou StarOffice et à des environnements
plusieurs fichiers et continuer son exécution. graphiques comme KDE ou fvwm95, les stations bureautiques sous
Linux offrent les mêmes fonctionnalités que leurs équivalents sous
Windows ou MacOS. L’utilisateur dispose par exemple de traite-
Pour plus de détails, le lecteur est invité à consulter l’article ment de texte, tableur, logiciel de présentation et de dessin, gestion
Système Linux [H 1 538]. de fichiers, partage de documents, intégration des technologies
Internet/intranet (courrier électronique, Web).
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur S 8 058 − 3
TY
R
UP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUY
Michaël RICHARD
Maı̂tre de conférences en Informatique à l’ISAE-ENSMA (Chasseneuil du Poitou)
Pascal RICHARD
Professeur des universités en Informatique à l’Université de Poitiers
R
et Frédéric RIDOUARD
Maı̂tre de conférences en Informatique à l’Université de Poitiers
UQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUY
R
le contrôle et la régulation de trafic en milieu urbain ;
les industries (contrôle/commande de procédés…) ;
le domaine militaire (suivi de trajectoires de missiles…) ;
le domaine aérospatial (suivi de satellites, pilotage automatique…) ;
la domotique (sécurité d’habitations…) ;
les télécommunications (systèmes de commutation…) ;
le domaine médical (assistance et contrôle de malades…).
Un système informatique destiné à commander ou à superviser des opéra-
tions est composé, le plus souvent, de plusieurs unités de traitement (ordina-
teurs, automates programmables, ECU [Electronic Control Unit]…), des cap-
teurs, des actionneurs, des périphériques de visualisation et de dialogue avec
les opérateurs. L’ensemble de ces éléments est interconnecté par un réseau ou
par plusieurs réseaux interconnectés entre eux (des réseaux industriels, des
réseaux bureautiques, des bus de terrain, etc.). Ce type de système est qualifié
de système temps réel et réparti (ou distribué ou encore décentralisé).
Dans ce type de système, l’ordonnancement des tâches et des messages joue
un rôle fondamental dans le processus de validation temporelle de ceux-ci.
Nous présentons dans cet article les différentes techniques d’analyse d’ordon-
nançabilité des tâches, en fonction de leur type, et des messages en fonction du
type de réseau utilisé (CAN, AFDX…).
UR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUY
Réseau d'usine
Passerelle
Contrôleur Gestion de
Superviseur
de qualité maintenance
Réseau de cellule
R
C C Capteurs C C
Bus de Bus de
terrain terrain
A A Actionneurs A A A
US
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUY
– l’absence d’une mémoire commune a pour conséquence l’impos- Selon les spécificités d’un système, on peut avoir des fonctions cen-
sibilité de définir un état global à l’aide de variables communes. tralisées, d’autres partiellement réparties et d’autres complètement
Encore plus important, l’existence de délais de communication varia- réparties. Par exemple, on peut avoir dans un même système : une
bles et l’absence d’un référentiel temporel commun ont pour consé- fonction complètement répartie pour la synchronisation d’horloges,
quence que chaque site a sa propre vue qui peut être différente de une base de données éclatées sur plusieurs sites, mais toutes les tran-
celles des autres sites à un même instant du temps universel ; sactions sur la base sont contrôlées par un seul site et une gestion
– comme le nombre d’équipements d’un système réparti est plus centralisée des fichiers. Tout n’est pas réparti dans un système réparti !
élevé que celui d’un système centralisé, les risques de défaillances Il est clair qu’il ne peut y avoir de répartition logicielle sans répartition
y sont plus importants. Des mécanismes de tolérance aux fautes matérielle, mais la réciproque n’est pas vraie. La décentralisation
doivent être intégrés pour répondre à l’exigence de ne pas dégra- matérielle peut aider ou inciter à la répartition logicielle.
der la sûreté de fonctionnement et, en particulier, la disponibilité
de ces systèmes [4] ; 1.3 Systèmes temps réel répartis
– l’existence d’interfaces de communication avec l’extérieur rend
les systèmes répartis plus vulnérables aux intrusions ; Les systèmes temps réel sont des systèmes informatiques qui doi-
UT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUY
aux tâches communicantes de recevoir, dans les délais, les messa- – définition de l’ensemble des messages avec pour chaque mes-
ges qui leur sont destinés. Pour les messages avec des échéances sage : la tâche émettrice, la tâche réceptrice et la longueur du
strictes de délivrance, il faut que les protocoles donnent des garan- message ;
ties et, pour les messages non critiques du point de vue temporel, – protocole réseau définissant le support, l’échange et l’ordon-
la stratégie du protocole est le meilleur effort (c’est-à-dire, minimi- nancement des messages.
ser le retard des messages et le nombre des messages tardifs). Dans le paragraphe suivant, nous présentons les deux protocoles
Dans un système temps réel et réparti, les tâches sont synchroni- caractéristiques des systèmes répartis critiques : CAN et AFDX.
sées en utilisant le temps chronométrique (par exemple, activation
de tâches à des instants précis ou de manière périodique). Il en est
de même pour la datation de données et d’événements apparaissant
sur les différents sites. Le bon fonctionnement d’un système réparti
2. Réseau
nécessite le plus souvent l’existence d’un temps global accessible à
tous les sites. La solution la plus couramment utilisée pour établir un
2.1 Introduction
R
temps global est la synchronisation d’horloges physiques. D’autres
solutions fondées sur l’utilisation de récepteur d’un temps diffusé Un réseau se définit par un ensemble d’entités communicantes
par une station de radio ou un satellite peuvent être envisagées. Beau- entre elles via un média. Les entités peuvent être aussi bien des per-
coup d’algorithmes ont été proposés pour régler le problème de syn- sonnes (réseaux sociaux), des voitures (réseaux routiers) que des
chronisation d’horloges. Le lecteur désireux d’approfondir ses systèmes informatiques (réseaux informatiques). Un système réparti
connaissances sur ce sujet peut consulter les références [10] [11]. est composé d’un ensemble de processeurs reliés entre eux par un
réseau. Ce réseau permet l’échange de données conduisant au bon
1.3.2 Problématique fonctionnement du système. Ces données ou messages sont repré-
La validation d’un système temps réel passe par une vérification du sentés sous forme de paquets appelés aussi trames de données.
respect des contraintes temporelles de l’ensemble des tâches qui Dans un réseau de paquets, chaque élément permettant le transport
compose le système. Le système utilise un algorithme d’ordonnance- des paquets de bout en bout est appelé un « nœud ».
ment pour choisir à chaque instant la tâche à exécuter. L’algorithme
est en-ligne et se base sur les priorités pour élire la tâche. Les tâches 2.2 Modèle OSI
sont périodiques et la durée de vie du système est supposée infinie.
Les systèmes répartis sont définis par un ensemble de tâches 2.2.1 Définition
s’exécutant sur des processeurs et s’échangeant des messages. Le La complexité des communications réseau a conduit à les norma-
réseau est le seul moyen de communication entre les processeurs. liser par un modèle en couches. Défini en 1977, le modèle OSI (Open
Il représente donc une ressource partagée par les tâches. Le réseau System Interconnected) est composé de sept couches et a été nor-
permet l’échange de données (messages) assurant le bon fonction- malisé par l’ISO (International Organization for Standardization). Ce
nement du système. Plusieurs problèmes sont fonction des carac- modèle définit les principales fonctionnalités de la communication
téristiques du système réparti : entre deux éléments réseau. Pour plus de détails sur le modèle OSI,
– placement des tâches sur les processeurs ; le lecteur peur se référer à l’article [S 7 574], paragraphe 1.2.
– migration entre les processeurs des tâches au cours de leur Dans les réseaux, et plus particulièrement, dans les réseaux embar-
exécution ; qués (ou temps réel), le modèle OSI n’est pas totalement implé-
– synchronisation entre les tâches ; menté. Ainsi, la pile réseau utilisée, dans un contexte embarqué est
– répartition des tâches entre les processeurs : chaque tâche est simple et n’implémente généralement que les quatre premières cou-
assignée (définitivement) à un processeur (pas de migration) ; ches (voire moins). Le schéma général du modèle OSI adapté aux
– algorithme d’ordonnancement des tâches sur les processeurs ; réseaux temps réel est présenté par la figure 3.
ÉMETTEUR RÉCEPTEUR
4 4
Transport Transport
3 3
Réseau Réseau
2 2
Liaison de données Liaison de données
1 1
Physique Physique
UU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPUY
2.3 Délai de bout en bout Enfin, en utilisant les méthodes dynamiques par compétition,
chaque station du réseau essaie quand elle en a besoin d’accéder
Les communications peuvent être classées en deux catégories : au canal sans tenir compte des besoins des autres. Si deux stations
connecté et non-connecté. Le mode connecté est une communica- émettent en même temps, elles rentrent en conflit et une solution
tion de type « téléphonique » : l’émetteur prévient le destinataire doit être définie. La famille des CSMA (Carrier Sense Multiple
d’un envoi de messages qui confirme à l’émetteur sa disponibilité. Access) est un exemple de méthodes dynamiques par compétition.
En mode asynchrone, ou non-connecté, (communication de type Le principe général d’une méthode CSMA consiste à laisser les
« courrier »), l’émetteur envoie son message sans en avoir averti nœuds du réseau émettre librement des trames. Lorsque deux
préalablement le destinataire. nœuds émettent simultanément, une collision se produit. Chaque
Le mode connecté permet des communications point à point (ou station détecte la collision de sa trame, attend un temps aléatoire
unicast). Tandis que le mode non connecté permet le mode diffu- et réessaye d’émettre.
sion (ou multicast) : Pour une étude approfondie sur les protocoles, le lecteur peut se
R
– mode de diffusion : les paquets sont envoyés sur l’ensemble du reporter à l’article [H 2 285]. De plus, pour les méthodes d’accès, il
réseau (ou à un groupe prédéfini de destinataires). Il n’utilise qu’un pourra consulter l’article [S 8 120].
seul support et est adapté à une topologie en bus ou en anneau ;
– mode point à point : les messages sont envoyés de lien en lien
jusqu’à leur arrivée aux destinataires choisis. Ils s’utilisent sur des
topologies en étoile ou maillées. 2.5 Réseaux sans fil
On peut faire une analogie entre le mode non-connecté et l’envoi Les réseaux sans fil regroupent l’ensemble des réseaux qui inter-
de courrier. Il n’y a pas de garantie que le paquet ait été correcte- connectent des éléments entre eux sans aucun câble, uniquement
ment reçu. Pour remédier à ce problème, les réseaux embarqués par ondes. Comme pour les réseaux classiques, ils pourront être
sont définis avec des processus permettant de s’assurer de la fiabi- classifiés selon leur taille :
lité de la communication et par conséquent, de la non perte d’infor-
– les réseaux personnels sans fils (exemple : les réseaux blue-
mation. La majorité des réseaux embarqués fonctionne en mode
tooth) : ils font 1 ou 2 mètres de grandeur ;
non connecté.
– les réseaux locaux sans fil (exemple : le WiFi) : ils mesurent de
En plus de la non perte d’information, dans certains contextes l’ordre d’une dizaine de mètres ou un peu plus ;
critiques comme l’aéronautique, les réseaux ont besoin de garantir – les réseaux métropolitains sans fil (exemple : wimax) : ils
une borne supérieure sur le délai de bout en bout de chaque s’étendent sur plusieurs kilomètres ;
paquet échangé sur le réseau (certification requise du réseau). Le – les réseaux étendus sans fil (exemple : GSM, 4G) : ils s’éten-
délai de bout en bout d’un paquet désigne le temps mis par une dent sur plusieurs centaines de kilomètres.
trame entre son entrée sur le réseau et sa réception à son point de
sortie. Le déploiement d’un réseau sans fil définit le moyen de commu-
Un réseau est dit « déterministe » s’il peut certifier la non perte nication entre les éléments d’un réseau. Il existe deux modèles de
d’information et en plus, garantir une borne supérieure sur le délai déploiement :
de traversée d’un réseau de bout en bout de chaque paquet. Pour – le mode infrastructure : pour communiquer entre eux, les élé-
garantir le déterminisme, il y a deux familles de méthodes : ments réseaux doivent se connecter à des points d’accès et les
– interdire les collisions sur les liens ; données échangées passent de routeur en routeur jusqu’au
– détecter les collisions sur les liens et implémenter des procédu- destinataire ;
res de détection et de réémission. – le mode Ad-Hoc : les éléments réseaux se connectent directe-
ment entre eux pour communiquer.
UV
Supervision des systèmes industriels
(Réf. Internet 42396)
OS embarqués H8200 93
4– Interaction homme-machine
Sur www.techniques-ingenieur.fr
• Saisissez la référence Internet pour accéder directement aux contenus en ligne
• Retrouvez la liste complète des ressources documentaires
UW
5– Exigences contractuelles
UX
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSP
Ce texte est la version actualisée de l’article écrit par Patricia JARGOT en 1999.
S
1. Architecture de projet ............................................................................ S 8 030v2 - 2
2. Objets communs ....................................................................................... — 4
3. Langage SFC .............................................................................................. — 10
4. Langage FC ................................................................................................. — 15
5. Langage FBD .............................................................................................. — 15
6. Langage LD................................................................................................. — 17
7. Langage ST ................................................................................................. — 21
8. Langage IL .................................................................................................. — 26
Pour en savoir plus ........................................................................................... Doc. S 8 030v3
UY
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSP
S
décrivent des opérations séquentielles ou cycliques. Les program-
mes cycliques sont exécutés à chaque cycle de la cible. L’exécution Les programmes exécutés au début du cycle (avant les pro-
des programmes séquentiels a un comportement dynamique. grammes séquentiels) sont typiquement utilisés pour décrire des
Les programmes sont organisés dans un système hiérarchique opérations préliminaires sur les équipements d’entrée, afin de
arborescent. Les programmes placés au sommet de la hiérarchie construire des variables de haut niveau. De telles variables sont
sont activés par le système. Les programmes fils (de niveau fréquemment utilisées par les programmes séquentiels. Les pro-
inférieur dans la hiérarchie – SFC et FC seulement : SFC fils et grammes exécutés à la fin du cycle (après les programmes
sous-programmes FC) sont activés par leur programme père. La séquentiels) sont utilisés typiquement pour décrire des opérations
description d’un programme peut être réalisée à l’aide des de contrôle sur les variables traitées par les programmes séquen-
langages graphiques ou textuels disponibles : tiels, avant d’envoyer les valeurs aux équipements de sortie.
– Sequential Function Chart (SFC ou GRAFCET) ;
– Flow Chart (FC) ; 1.3 Programmes SFC fils
– Function Block Diagram (FBD) ;
– Ladder Diagram (LD) ; Chaque POU SFC peut contrôler d’autres POU SFC. Ces pro-
– Structured Text (ST) ; grammes d’un niveau hiérarchique inférieur s’appellent des
– Instruction List (IL). programmes SFC fils. Un programme SFC fils est un programme
exécuté en parallèle, qui peut être lancé, tué, figé ou relancé par
Plusieurs langages ne peuvent pas être mêlés dans le même
son programme père. Le programme père et le programme fils
programme, à l’exception des langages LD et FBD qui peuvent être
doivent tous deux être décrits avec le langage SFC. Un programme
combinés dans le même diagramme.
SFC fils peut avoir des variables locales.
Les programmes SFC et SFC fils ont des limites de Quand un programme père lance un programme SFC fils, il place
comportements dynamiques qui sont définis au niveau de la res- un jeton SFC (activation) dans chacune des étapes initiales du pro-
source. Tandis que les blocs fonctionnels SFC et blocs fonctionnels gramme fils. Cette commande peut être décrite avec l’énoncé
SFC fils ont chacun leur nombre maximum de jetons qui sont défi- GSTART ou par le nom du programme fils attaché au qualificatif S.
nis dans leurs propriétés individuelles. Quand un programme père tue un programme SFC fils, il enlève
tous les jetons existant dans les étapes du programme fils. Cette
Sur le GRAFCET, le lecteur est invité à consulter les articles commande peut être décrite avec l’énoncé GKILL ou par le nom du
GRAFCET. Concepts de base [S 7 240] et GRAFCET. Structura- programme fils attaché au qualificatif R. Quand un programme père
tion des descriptions. Applications [S 7 241]. lance un programme fils, l’exécution du programme père continue.
Quand un programme père fige un programme SFC fils, il
enlève tous les jetons existant dans les étapes du programme fils,
1.2 Opérations cycliques et séquentielles et mémorise leur position. Cette commande peut être décrite avec
l’énoncé GFREEZE. Quand un programme père relance un pro-
La hiérarchie des POU se divise en trois sections ou groupes gramme SFC fils figé, il remet en place tous les jetons enlevés
principaux : lorsque le programme a été figé. Cette commande peut être
– Programmes : les programmes dans cette partie repré- décrite avec l’énoncé GRST.
sentent le cycle de la cible ;
Les instances de blocs fonctionnels SFC fils, tels que leurs pères
Nota dans cette section, les programmes SFC et FC, qui représentent des opérations
séquentielles, sont regroupés.
blocs fonctionnels, ont un nombre maximum de jetons, contraire-
ment aux programmes SFC qui ont leurs limites de comportement
– Fonctions : ensemble de fonctions qui peuvent être dynamique définis au niveau de la ressource. La limite de jetons
appelées par tous les programmes ; pour un bloc fonctionnel SFC se spécifie dans ses propriétés de para-
– Blocs fonctionnels : ensemble de blocs fonctionnels qui peuvent métrages auxquelles on accède en sélectionnant le bloc, puis à partir
être appelés par tous les programmes. du menu Édition, on choisit Propriétés, puis l’onglet Paramétrages.
Les programmes avant et après les programmes SFC et FC Lors de l’utilisation d’un bloc fonctionnel SFC avec un SFC fils,
décrivent des opérations cycliques, et ne sont pas dépendants du on accède, en mode lecture seulement, aux valeurs locales du fils
temps. Ils sont appelés programmes cycliques. Les programmes à partir de son père en entrant le nom du fils et le paramètre dans
SFC et FC décrivent des opérations séquentielles, où les opérations une action ou un code de transition. Par exemple, pour accéder au
élémentaires sont explicitement synchronisées par le temps. Ils paramètre Local1 d’un fils SFC nommé FB_Fils, dans l’action ou la
sont appelés programmes séquentiels. Les programmes cycliques transition défini pour le bloc fonctionnel FC père, on entre le code
sont exécutés systématiquement au début de chaque cycle. Les suivant :
programmes séquentiels principaux (au sommet de la hiérarchie)
sont exécutés selon le comportement dynamique SFC et FC. FB_Child.Local1
VP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSP
Programme Fonction Fonction L’interface d’un bloc fonctionnel doit être définie explicitement,
principal avec un type et un nom unique pour chacun de ces paramètres
Chaque programme de chaque section peut appeler une ou plu- d’appel (ou paramètres d’entrée) et paramètres de retour (ou para-
sieurs fonctions. Une fonction peut avoir des variables locales. Les mètres de sortie). Un bloc fonctionnel peut avoir plusieurs para-
langages ST, LD, FBD ou IL peuvent être utilisés pour décrire une mètres de sortie.
fonction. Les informations suivantes montrent comment forcer la valeur
d’un paramètre de sortie dans le corps d’un bloc fonctionnel, dans
Attention : le système ne supporte pas la recursivité dans les les différents langages :
appels de fonctions. Une erreur surviendra à l’exécution si un ST : assignation du paramètre de sortie en utilisant son
programme de la section « Fonctions » est appelé par lui-même nom concaténé avec le nom du bloc fonctionnel
ou par l’une des fonctions qu’il appelle. De plus, une fonction FunctionBlockName.OutputParaName:=
ne « stocke » pas la valeur de ses variables locales. Une fonc- <expression>;
tion n’est pas initialisée et ne peut donc pas appeler des blocs
IL : utilisation de l’opérateur LD et ST :
fonctionnels.
LD FunctionBlockName.OutputParaName
ST 20 (* valeur du paramètre = 20 *)
L’interface de la fonction doit être définie explicitement, avec un
type et un nom unique pour chacun de ses paramètres d’appel (ou FBD : forçage du paramètre de retour en utilisant son nom :
paramètres d’entrée) et son paramètre de retour (ou paramètre de OutputParaName
sortie). Afin de respecter les conventions d’écriture du langage ST, LD : utilisation d’une bobine avec le nom du paramètre de
le paramètre de retour doit porter le même nom que la fonction. retour :
Une fonction a un seul paramètre de retour. OutputParaName
Les informations suivantes montrent comment forcer la valeur du
paramètre de retour dans le corps d’une fonction, dans les différents Attention : en cas de besoin d’une boucle dans un bloc fonc-
langages : tionnel, il faut utiliser une variable locale avant la boucle.
ST : assignation du paramètre de retour en utilisant son
nom (le même nom que la fonction) :
Ne fonctionne pas :
FunctionName:=<expression>;
IL : la valeur du résultat courant (registre IL) à la fin de la >=
séquence est stockée dans le paramètre de retour : >=1
LD 10
ADD 20 (* valeur du paramètre de &
retour = 30 *)
FBD : forçage du paramètre de retour en utilisant son nom :
Fonctionne :
>=1 >=
& >=1
IntResult
&
FunctionName
VQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSP
Les blocs fonctionnels SFC, tels leurs blocs SFC fils, ont un
nombre maximum de jetons, contrairement aux programmes SFC 2. Objets communs
pour lesquels les limites de comportement dynamique sont définis
au niveau de la ressource. Pour spécifier la limite de jetons pour Sont présentés ici les fonctionnalités et objets communs de la
un bloc fonctionnel SFC, dans ses propriétés de paramétrages, on base de données de programmation. De tels objets peuvent être
sélectionne le bloc, puis à partir du menu Édition, on choisit utilisés dans toute POU (program organization unit : programmes,
Propriétés, puis l’onglet Paramétrages. fonctions ou blocs fonctionnels) écrit en tout langage SFC, FC,
FBD, IL, ST, LD.
S
– types standards CEI 61131 ;
Flow Chart (FC) pour des opérations de haut niveau
– user types (basés sur les types de base).
Function Block Diagram (FBD) pour des opérations cycliques complexes 2.1.1 Types standards CEI 61131
Dix-huit types de bases sont disponibles pour les objets de
Ladder Diagram (LD) pour des opérations booléennes seulement programmation :
– BOOL : valeur logique (true ou false) ;
Structured Text (ST) pour toutes les opérations cycliques – SINT : valeur continue entière courte (8 bits) ;
– USINT : valeur continue entière courte non signée (8 bits) ;
– BYTE : valeur demi-mot (8 bits) ;
Instruction List (IL) pour des opérations de bas niveau – INT : valeur entière continue (16 bits) ;
– UINT : valeur entière continue non signée (16 bits) ;
– WORD : valeur mot (16 bits) ;
La méthode de distribution IEC 61499 est également disponible pour – DINT : valeur continue entière double (32 bits) ;
la description d’un programme. – UDINT : valeur continue entière double non signée (32 bits) ;
– DWORD : valeur double mot (32 bits) ;
– LINT : valeur continue entière longue (64 bits) ;
Plusieurs langages ne peuvent pas être utilisés ensemble dans le
– ULINT : valeur continue entière longue non signée (64 bits) ;
même programme, à l’exception des langages LD et FBD qui
– LWORD : valeur mot long (64 bits) ;
peuvent être mêlés dans le même diagramme. Le langage de pro-
– REAL : valeur continue réelle (flottante) (32 bits) ;
grammation est sélectionné au moment de la création d’un pro-
gramme et ne peut pas être changé par la suite. – LREAL : valeur continue réelle longue (flottante) (64 bits) ;
– TIME : valeur de temps ou temporisation inférieure à un jour ;
ces types de valeurs ne peuvent pas stocker des dates (32 bits) ;
– DATE : valeur date (32 bits) ;
1.8 Règles d’exécution – STRING : chaîne de caractères ayant une taille définie, qui
représente le nombre maximum de caractères que la chaîne peut
Le système est synchrone. Toutes les opérations sont échantillon- contenir. Par exemple, pour définir MyString, une chaîne de
nées. La durée d’un échantillon est appelée le temps de cycle : 10 caractères, on entre MyString (10).
1. lecture des variables d’entrées ; Nota : au sujet des variables de type STRING, voir § 2.3.17.
2. consommation des variables liées ; Il est possible de définir ses propres types basés sur les types de
3. exécution des POU ; base ci-avant : type utilisateur. De plus, on peut définir des struc-
4. production des variables liées ; tures en utilisant des types de base et des tableaux ou d’autres
5. mise à jour des sorties. types utilisateur.
Quand une variable est créée, une dimension peut être donnée
Attente pour définir un tableau. L’exemple suivant montre la variable MyVar
de type BOOL et qui a une dimension définie comme suit : [1 . . 10]
1 2 3 4 5 1 2 3
FOR i = 1 TO 10 DO
MyVar [i] := FALSE;
Temps de cycle programmé END_FOR;
Dans le cas où des bindings sont définis (le binding est une 2.1.2 Types utilisateurs : tableaux
liaison de données entre les ressources), les variables
consommées par cette ressource sont mises à jour après la lecture L’utilisateur peut définir des tableaux de types standards
des entrées, et les variables produites vers d’autres ressources CEI 61131 ou de types utilisateur. Un tableau a une ou plusieurs
sont envoyées avant la mise à jour des sorties. dimensions. Quand un tableau est défini, une variable peut être
créée avec ce type et une structure peut avoir un champ de ce
Si un temps de cycle est programmé, la machine virtuelle attend type. Les dimensions des tableaux sont des expressions
l’écoulement de ce temps avant de commencer l’exécution d’un constantes DINT positives et les indices des tableaux sont des
nouveau cycle. Le temps d’exécution des POU dépend du nombre expressions constantes DINT ou des variables.
d’étapes actives dans les programmes SFC, et des instructions Nota : les tableaux doivent être déclarés dans le dictionnaire avant de les utiliser dans
comme Jump, IF et Return, etc. les diagrammes de blocs fonctionnels (FBD).
VR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSP
S
FOR I := 1 TO 3 DO 2.2.3 Expressions constantes entières courtes
FOR J := 1 TO 10 DO non signées et demi-mots
MyVar3[I][J] := FALSE;
Une expression constante entière courte non signée, ou
END_FOR; demi-mot, représente une valeur entière non signée (8 bits) : entre
END_FOR; 0 et 255.
Les expressions constantes entières courtes non signées et
2.1.3 Types utilisateur : structures demi-mots peuvent être exprimés dans l’une des bases suivantes.
Les utilisateurs peuvent définir les structures en utilisant les Les expressions constantes entières courtes non signées et
types standards CEI 61131 ou les types utilisateur. Une structure demi-mots doivent commencer par un préfixe qui identifie la base
est composée de sous-entrées appelées champ. Quand une struc- utilisée :
ture est définie, une variable peut être créée avec ce type. Base Préfixe Exemple
Exemples décimale aucun 19
MyStruct1 est composée de : hexadécimale "16#" 16#A1
Field1 qui est de type BOOL octale "8#" 8#28
Field2 qui est de type DINT binaire "2#" 2#0101_0101
MyStruct2 est composée de :
Field1 qui est de type DINT 2.2.4 Expressions constantes entières
Field2 qui est de type BOOL
Field3 qui est un tableau de 10 DINT Une expression constante entière représente une valeur entière
signée (16 bits) : entre – 32 768 et 32 767.
Field4 qui est de type MyStruct1
Les expressions constantes entières peuvent être exprimées
MyVar de type MyStruct2 peut être utilisé comme suit : dans l’une des bases suivantes. Les expressions constantes
Value1 := MyVar.Field1; (* Value1 est de type DINT *) entières doivent commencer par un préfixe qui identifie la base
Ok1 := MyVar.Field2; (* Ok1 est de type BOOL *) utilisée :
Tab[2] := MyVar.Field3[5]; (* Tab est un tableau
Base Préfixe Exemple
de DINT *)
Value2 := MyVar.Field3[8]; (* Value2 est de type décimale aucun – 260
DINT *) hexadécimale "16#" 16#FEFC
Ok2 := MyVar.Field4.Field1; (* Ok2 est de type BOOL *) octale "8#" 8#177374
binaire "2#" 2#0101_0101_0101_0101
2.2 Expressions constantes
Une expression constante est toujours relative à un type. La 2.2.5 Expressions constantes entières
même notation ne peut pas être utilisée pour représenter des non signées et mot
expressions constantes de type différent.
Une expression constante entière non signée ou mot représente
une valeur entière non signée (16 bits) : entre 0 et 65 535.
Le caractère souligné (’_’) peut être utilisé pour séparer des
groupes de chiffres. Il n’a aucune signification sémantique, Les expressions constantes entières non signées et mot peuvent
mais augmente la lisibilité des expressions constantes. être exprimées dans l’une des bases suivantes. Les expressions
constantes entières non signées et mot doivent commencer par un
préfixe qui identifie la base utilisée :
2.2.1 Expressions constantes booléennes Base Préfixe Exemple
Il existe seulement deux expressions constantes booléennes : décimale aucun + 33 000
– TRUE est équivalent à la valeur entière 1 ;
hexadécimale "16#" 16#80E8
– FALSE est équivalent à la valeur entière 0.
Les minuscules et les majuscules ne sont pas différenciées pour octale "8#" 8#100350
l’écriture des mots clefs true et false. binaire "2#" 2#0101_0101_0101_0101
VS
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSP
Exemples
S
2.2.7 Expressions constantes entières doubles 3.14159 – 1.0E + 12
non signées et mots doubles + 1.0 1.0E – 15
Une expression entière double non signée, ou mot double, – 789.56 + 1.0E – 37
représente une valeur entière double non signée (32 bits) : entre 0
L’expression "123" ne représente pas une expression constante
et 4 294 967 295.
réelle. Sa notation correcte est "123.0" .
Les expressions entières doubles non signées et mots doubles
peuvent être exprimés dans une des bases suivantes. Les expres-
sions entières doubles non signées et mots doubles doivent 2.2.11 Expressions constantes longues réelles
commencer par un préfixe qui identifie la base utilisée :
Les expressions constantes longues réelles peuvent utiliser une
Base Préfixe Exemple représentation décimale ou scientifique. Le point décimal (’.’)
décimale aucun + 908 sépare la partie entière de la partie décimale. Il doit obligatoire-
ment être présent car il permet la différenciation des expressions
hexadécimale "16#" 16#1A2B3C4D
constantes entières et réelles. La représentation scientifique utilise
octale "8#" 8#1756402 la lettre ’E’ pour séparer la mantisse de l’exposant. L’exposant
binaire "2#" 2#1101_0001_0101_1101 d’une expression constante scientifique est un entier signé
_0001_0010_1011_1001 compris entre 1.7E – 308 et 1.7E + 308. Une variable réelle longue a
5 chiffres significatifs.
2.2.8 Expressions constantes entières longues
2.2.12 Expressions constantes temporelles
Une expression constante entière longue représente une valeur
entière longue signée (64 bits) : entre – 9 223 372 036 854 775 808 Les expressions constantes temporelles représentent des
et 9 223 372 036 854 775 807. valeurs de temps comprises entre 0 seconde et 1 193 h 2 m
47 s 294 ms. La plus petite unité autorisée est la milliseconde. Voici
Les expressions constantes entières longues signées peuvent
les unités standards de temps utilisées dans les expressions
être exprimées dans une des bases suivantes. Les expressions
constantes temporelles :
constantes entières longues signées doivent commencer par un
préfixe qui identifie la base utilisée : – heure : la lettre "h" doit suivre le nombre d’heures ;
Base Préfixe Exemple – minute : la lettre "m" doit suivre le nombre de
minutes ;
décimale aucun – 908
– seconde : la lettre "s" doit suivre le nombre de
hexadécimale "16#" 16#1A2B3C4D secondes ;
octale "8#" 8#1756402 – milliseconde : les lettres "ms" doivent suivre le nombre de
binaire "2#" 2#1101_0001_0101_1101_ millisecondes.
0001_0010_1011_1001_1101_ L’expression constante temporelle doit commencer par le pré-
0001_0101_1101_0001_0010_ fixe "T#" ou "TIME#". Les préfixes et les lettres d’unité peuvent être
1011_1001 écrits en minuscules ou en majuscules. Certaines unités peuvent
ne pas apparaître.
2.2.9 Expressions constantes entières longues Exemples
non signées et mots longs
T#1H450MS 1 heure, 450 millisecondes
Une expression constante entière longue non signée, ou mot time#1H3M 1 heure, 3 minutes
long, représente une valeur entière longue non signée (64 bits) :
entre 0 et 18 446 744 073 709 551 615. L’expression "0" ne représente pas une valeur temporelle, mais
Les expressions constantes entières longues non signées et mots une expression constante entière.
longs peuvent être exprimés dans une des bases suivantes. Les
expressions constantes entières longues non signées et mots longs 2.2.13 Expressions constantes date
doivent commencer par un préfixe qui identifie la base utilisée :
Base Préfixe Exemple Les expressions constantes date représentent les valeurs date
de format année-mois-jour, séparées par des traits d’union. Les
décimale aucun + 908 expressions constantes date possible sont entre 1970-01-01 et
hexadécimale "16#" 16#1A2B3C4D 2038-01-18 GMT.
VT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSQ
1.
2.
Format principal de programme CEI 61499......................................
Format de bloc fonctionnel CEI 61499 de base ..............................
S 8 031 - 2
— 2
S
3. Format de bloc fonctionnel CEI 61499 composite ......................... — 3
4. Format principal de bloc fonctionnel CEI 61499 ............................ — 3
5. Implémentation du qualificatif WITH ................................................. — 4
6. Temps d’exécution de cycle des programmes CEI 61499 ............ — 4
Pour en savoir plus ........................................................................................... Doc. S 8 031
VU
S
VV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSR
Réalisation technologique
du GRAFCET
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 032 − 1
VW
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSR
S
niveau 1. En effet, les spécifications technologiques et opérationnelles
réceptivités. Il décrit les ordres émis par la partie commande vers amènent des contraintes supplémentaires. Toutefois, il montre que le
la partie opérative en mettant en évidence les actions engen-
GRAFCET de niveau 2 peut être différent du GRAFCET de niveau 1.
drées et les événements qui les déclenchent. Cette représenta-
tion est étroitement liée à la notion d’évolution du processus.
0
Pour parvenir à la réalisation de la partie commande, il est
conseillé de diviser le cahier des charges en deux niveaux successifs
et complémentaires.
m
Le premier niveau décrit le comportement de la partie commande
en fonction de l’évolution de la partie opérative : c’est le rôle des spé-
cifications fonctionnelles décrivant ce que doit faire l’automatisme. À 1 D
ce niveau, les contraintes technologiques (des actionneurs, des cap-
Montée
teurs…) n’interviennent pas, seules comptent les fonctionnalités.
Presse
Le second niveau renseigne sur la nature technologique des b
actionneurs et des capteurs ; on y trouve donc leurs caractéristiques Descente
et les contraintes qui y sont associées. C’est aussi à ce niveau que
les spécifications opérationnelles décrivant les conditions d’utilisa- 2 M
tion de l’application apparaissent.
L’automaticien, confronté à un problème de conception et de réa- h
lisation d’un automatisme, aborde donc l’étude en deux phases suc-
cessives correspondant aux deux niveaux de spécification :
— un niveau fonctionnel ; a principe b GRAFCET fonctionnel
— un niveau technologique.
Cette approche en deux niveaux se retrouve dans la conception Figure 1 – Commande d’une presse
du GRAFCET :
— un premier GRAFCET dit fonctionnel ou de niveau 1, qui ne
prend en compte que la partie fonctionnelle des spécifications et qui
fait donc abstraction de toute réalisation technologique. Ainsi, s’il 0
est bien conçu, il est valable pour tout type de réalisation ;
— un deuxième GRAFCET dit technologique ou de niveau 2, qui,
en s’appuyant sur le GRAFCET de niveau 1, intègre les contraintes m
technologiques et opérationnelles.
A+
Exemples : 1 A+
Une application simplifiée, la commande d’une presse (figure 1),
permet d’illustrer cette approche.
Sur ordre (m) de l’opérateur, la presse descend (D), puis une fois arri- b
vée en bas (b), elle remonte (M) jusqu’à la position haute (h). Le A–
GRAFCET fonctionnel de cette application est fourni par la figure 1b. Il
est dit GRAFCET de niveau 1 car il ne fait intervenir que l’aspect fonction- 2 A–
nel sans tenir compte d’aucune contrainte technologique (la technologie
utilisée pour les actionneurs et les capteurs n’est pas utile à ce niveau).
Supposons maintenant que la technologie utilisée soit une technolo- h
gie pneumatique et que la montée-descente de la presse soit comman-
dée par un vérin double effet (figure 2). L’arrivée d’air en A+ (resp. en
a principe b GRAFCET technologique
A–) provoque la sortie du vérin et donc la descente de la presse (resp.
la rentrée du vérin et donc la montée de la presse). Le GRAFCET tech-
nologique de cette application est la figure 2b. Figure 2 – Commande d’un vérin double effet
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 032 − 2 © Techniques de l’Ingénieur, traité Informatique industrielle
VX
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSR
S
0 information. C’est le cas lorsque l’information est déjà présente
avant que l’action soit commandée.
0 1 R
1 R
m d
1 R 2 R a c
↑d d 2 D 3 M
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 032 − 3
VY
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSR
S
md mg
étapes 1 et 2 (resp. 1 et 3) interdit l’activation de l’étape 2 (resp. étape
3) et donc la demande de déplacement à droite (resp. à gauche) si le
2 D 3 G chariot n’est pas à gauche (resp. à droite). Comme le chariot ne peut
pas être physiquement à droite et à gauche simultanément, il y a exclu-
sivité dans le choix de séquence.
d g Pour certaines applications, il ne peut pas y avoir de choix exclusif
basé sur les propriétés physiques de la partie opérative ; dans ce cas, il
est possible de donner une priorité à une séquence (figure 6d).
b activation simultanée possible Ici, le fait de mettre md ⋅ mg entre l’étape 1 et 2 fait que, si l’opéra-
teur appuie simultanément sur md et mg, alors cette réceptivité est
fausse et donc uniquement l’étape 3 sera activée. La priorité est donc
donnée à la séquence de droite.
1
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 032 − 4 © Techniques de l’Ingénieur, traité Informatique industrielle
WP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSR
a b
■ Solution 1
Si l’étape 0 est active et si m est vraie, chaque chariot part pour un S
aller-retour (figure 9a). Le premier qui termine son trajet (par exem-
ple, le chariot 1) réactive l’étape initiale 0. Supposons que le chariot
10 A 20 B 2 se trouve dans l’étape 22 (en phase de retour) et que l’opérateur
appuie sur le départ cycle. De fait, la transition suivant l’étape 0 est
franchie, ce qui entraîne l’activation des étapes 11 et 21. Comme
l’étape 22 est active, les actions D2 et G2 sont envoyées simultané-
ment à la partie opérative, d’où dysfonctionnement et risque de
a.b
casse.
■ Solution 2
2
Cette fois-ci (figure 9b), l’ordre de départ cycle n’est effectif que si
les chariots se trouvent dans les conditions initiales, ce qui interdit
le problème précédent. Toutefois, on retombe sur le problème ren-
b contré précédemment (§ 1.2.3) : en effet, les contacts g1 et g2 doi-
vent être maintenus et donc ce GRAFCET impose une contrainte
technologique à la réalisation.
Il faut remarquer que même si ces deux GRAFCET (figure 9) sont
corrects d’un point de vue syntaxique, généralement les séquences
simultanées se terminent avec des étapes de synchronisation (fins
10 A 20 B de séquences simultanées, § 1.2.3).
■ Solution 3
a b
L’introduction des étapes de synchronisation 13 et 23 (figure 10a)
permet de supprimer le test des conditions initiales au niveau de la
11 21
réceptivité associée à la transition suivant l’étape 0.
■ Solution 4
L’introduction de deux étapes initiales (figure 10b) permet de
supprimer les étapes de synchronisation (13 et 23). En effet, les éta-
1 pes 10 et 20 jouent aussi le rôle d’étapes de synchronisation.
Cette solution possède une qualité supplémentaire qui permet de
séparer facilement ce GRAFCET en deux GRAFCET indépendants
2
(figure 10c). La synchronisation des deux GRAFCET est réalisée en
testant l’activité de l’étape initiale de l’autre GRAFCET (variables
X10 et X20).
c
G1 D1 m G2 D2
Lorsque l’étape 10 est active, l’action A est vraie jusqu’au moment
où l’information a est vraie. Dans ce cas, la transition entre l’étape C1 C2
10 et 11 est franchie, l’étape 11 est activée et l’étape 10 désactivée.
L’action A est stoppée. L’étape 11 permet à la séquence de gauche
d’attendre que la séquence de droite se termine (étape 21). Si la g1 d1 g2 d2
séquence de droite se termine en premier, l’étape 21 est activée et
permet d’attendre la fin de la séquence de gauche (étape 11 active). Figure 8 – Aller-retour de deux chariots
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 032 − 5
WQ
S
WR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSU
Microcontrôleurs : principes
et aspects temps réel
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 035 − 1
WS
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSU
exemple utilisés au sein d’objets ménagers grand public, tels que des cuisiniè-
res, machines à laver ou aspirateurs. Les microcontrôleurs 8 bits sont capables
de répondre à des exigences plus élevées et sont utilisés pour la commande de
dispositifs informa-tiques tels que des joysticks, tablettes graphiques et
modems. Ils sont également utilisés pour la programmation de petits robots
ainsi que pour l’acquisition de données (convertisseurs A/D, etc.). Les microcon-
trôleurs 16/32 bits sont utilisés pour la commande de machines ou le contrôle
de processus, lorsque les contraintes temps réel sont sévères ou lorsque les
algorithmes de régulation nécessitent une puissance de calcul importante. Des
variantes de microcontrôleurs avec canaux d’accès mémoire direct offrant un
grand débit entre mémoire et entrées-sorties sont utilisés dans les applica-
tions multimédia et pour le contrôle d’imprimantes laser.
Interfaces
Interface Interface pour la
Interface
Processeur Mémoire ligne série entrées- commande
disque
RS232C sorties de dispositifs
mécaniques
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 035 − 2 © Techniques de l’Ingénieur, traité Informatique industrielle
WT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSU
(0)
Lignes d’adresses
Tableau 1 – Signification d’instructions de transfert
et de saut
Mémoire Processeur
Signaux Instruction en assembleur Signification
Zone programme Compteur ordinal
de contrôle
Zone données MOVE.B #QUANTITE, D0 Chargement de QUANTITE dans le
registre D0, QUANTITE est une valeur
Pile Registre d’instructions
immédiate 8 bits qui se trouve dans
l’instruction
Lignes de données bidirectionnelles Vers les interfaces MOVE.B D0, PERIPH Transfert du contenu du registre D0
d’entrée-sortie (8 bits) vers l’adresse d’entrée-sortie
PERIPH
BRA ETIQUETTE Saut relatif à l’instruction se trouvant à
Figure 2 – Architecture von Neumann (mémoire banalisée)
l’adresse spécifiée par ETIQUETTE
(adresse symbolique représentant une
adresse absolue)
Lignes d’adresses
24
Étudions un petit programme qui engendre un son dans le haut-
parleur du système décrit à la figure 7. La seule action du pro-
gramme consiste à envoyer de manière répétitive sur le registre de
S
Lignes sortie haut-parleur un signal binaire alternatif (1,0,1,0...) afin de faire
de contrôle 32 bits PC Compteur ordinal vibrer celui-ci. Selon l’état du signal écrit sur le bit Q0 du registre de
Adresse valide sortie, la membrane du haut-parleur est attirée ou relâchée. Lors
32 bits D0 Registre de données Remise
Données transférées à zéro Reset d’un cycle d’écriture sur un registre d’entrée-sortie, celui-ci ne
(acquittement) mémorise la valeur se trouvant sur les lignes de données que si
16 bits I Registre d’instruction l’adresse apparaissant sur les lignes d’adresses correspond à sa
Lecture/écriture
propre adresse. Si c’est le cas, le décodeur d’adresses engendre un
16
Lignes de données flanc montant sur l’entrée horloge du registre. Seul le bit de poids 20
(Q0) est utilisé pour commander la membrane du haut-parleur.
Dans le programme BruitHP (figure 4), la colonne de gauche indi-
Figure 3 – Architecture d’un processeur élémentaire 16/32 bits que l’adresse où se trouve l’instruction située sur la même ligne. La
deuxième colonne donne le code hexadécimal du code machine
associé à l’instruction assembleur située sur la même ligne. La troi-
Le compteur ordinal détermine, en nombre de bits, la taille de sième colonne décrit l’instruction en langage assembleur. La qua-
l’espace mémoire directement accessible. Les processeurs dits trième colonne est réservée aux commentaires.
8 bits ont, en général, un compteur ordinal 16 bits permettant Sur ce processeur, les instructions sont formées de 2 ou 4 octets.
d’adresser 64 kilo-octets (216 octets). Les lignes de données Chaque mot de 16 bits (2 octets) est représenté par 4 chiffres hexa-
(figure 3) sont au nombre de 8, 16 ou 32. Les instructions recher- décimaux qui représentent chacun 4 bits. Par exemple, la première
instruction est représentée par les mots mémoire H’103C et H’0000,
chées en mémoire et les données lues ou à écrire en mémoire tran-
qui en binaire sont respectivement codés par B’0001’0000’0011’1100
sitent sur les lignes de données. Les lignes d’adresses permettent au et B’0000’0000’0000’0000. Les chiffres hexadécimaux sont les chif-
processeur de spécifier la position mémoire ou l’interface d’entrée- fres 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F, où les lettres A à F sont
sortie sélectionnée pour une opération d’écriture ou de lecture. Les utilisées comme chiffres pour représenter les valeurs 10 à 15. Un
lignes de contrôle synchronisent les échanges d’information entre nombre hexadécimal est précédé de la lettre H ’ et un nombre
binaire de la lettre B ’.
processeur, mémoire et interfaces d’entrée-sortie. La ligne adresse
valide est activée lorsque les adresses sont valides. La ligne lecture/ Dans les figures 7, 8, 9 le code du programme stocké en mémoire
écriture indique s’il s’agit d’un transfert de données en lecture ou en est représenté selon la figure 5.
écriture. La ligne d’acquittement données transférées permet aux Chaque case horizontale correspond à un mot mémoire 16 bits,
mémoires et interfaces d’entrée-sortie de signaler que le transfert qui contient soit le code d’une instruction (par exemple MOVE.B ,
est terminé. Un processeur simple est présenté à la figure 3. L’acti- D0), soit une valeur immédiate (par exemple #HPOFF), soit une
adresse d’entrée-sortie (par exemple HP), soit le code de l’instruc-
vation de la ligne de remise à zéro (reset) remet à zéro la valeur du tion de saut (H’6000) auquel s’additionne un déplacement relatif (−
compteur ordinal et force le processeur à redémarrer. H’12=H’EE) sur 8 bits (c’est-à-dire H’60EE dans l’instruction BRA
OSCIL).
À l’exécution du programme, la valeur #HPOFF définie comme 0
est transférée dans le registre D0. Ensuite le contenu de celui-ci est
1.2 Exécution de programme transmis au registre de sortie HP commandant la membrane du
haut-parleur. La valeur #HPOFF a pour effet de faire relâcher la
membrane. La même action est répétée avec la valeur #HPON, ce
Examinons en détail le fonctionnement du microprocesseur décrit qui a pour effet d’attirer la membrane. Afin d’engendrer un son con-
tinu, ce programme boucle continuellement.
à la figure 3, c’est-à-dire la nature et le séquencement des cycles de
recherche et d’exécution d’instructions. Bien que les instructions Sur les processeurs 16 et 32 bits, il est nécessaire de spécifier
dans l’instruction la taille de l’opérande, par exemple MOVE.B,
machines soient codées en binaire, on les représente de manière
MOVE.W ou MOVE.L pour des instructions de chargement de 8, res-
symbolique par des mots compréhensibles par l’être humain (lan- pectivement 16 et 32 bits. Les instructions en langage assembleur
gage assembleur). Admettons que le processeur considéré possède sont exprimées selon la notation de Motorola pour la famille des
les instructions décrites au tableau 1. processeurs 68000.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 035 − 3
WU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSU
S
0001
000C 11C0 MOVE.B D0, HP ; transfère le contenu du registre D0 à l’adresse
8040 ; de l’interface haut-parleur
00010 60EE BRA.B OSCIL ; saute de -H’12 positions pour recommencer au
; début, c’est-à-dire à la position mémoire définie par
; l’étiquette OSCIL (position 0)
; H’EE représente le nombre -H’12, c’est-à-dire -18
END ; fin du programme
Adresses 4 6 H’8040
Mot mémoire 0000 MOVE.B ,D0 103C
MOVE.B #HPOFF,D0 Données H’11C0 H’8040 0000
Mot mémoire 0002 #HPOFF 0000
Type Lecture mémoire, Lecture mémoire, Écriture espace
de cycle Zone programme Zone programme d’entrée-sortie,
Figure 5 – Représentation en mémoire de l’instruction MOVE.B Zone données
#HPOFF,D0
Figure 6 – Cycles d’accès à la mémoire et à l’espace d’entrée-sortie,
en zone programme et en zone de données
L’exécution d’un programme consiste en une succession de
cycles d’accès mémoire en lecture ou en écriture. L’information cir-
cule sur les lignes de données (16 bits). Lors d’un cycle d’accès On différencie donc, au niveau du processeur, des accès en lec-
mémoire ou d’entrée-sortie, le processeur place, sur les lignes ture à la zone mémoire où se trouve le programme et des accès en
d’adresses, l’adresse de la position sélectionnée. Lors d’un accès en lecture ou écriture dans les zones mémoire ou entrées-sorties où se
lecture, le contenu de la position mémoire accédée est placé sur les trouvent les données. Par exemple, la recherche et l’exécution de
lignes de données. Le processeur mémorise ainsi la valeur corres- l’instruction MOVE.B D0, HP du programme BruitHP entraînent les
pondante dans un de ses registres (registre d’instruction ou de don- cycles d’accès mémoire et entrées-sorties représentés à la figure 6.
nées). Lors d’un cycle d’écriture, le processeur place sur les lignes
de données la valeur à mémoriser. La mémoire ou, le cas échéant, Dans le cas de notre processeur simple, après activation de la
un registre d’entrée-sortie mémorise cette valeur. ligne de remise à zéro (reset) (figure 3) le compteur ordinal (PC) est
À l’exécution, nous distinguons les types d’accès processeur remis à zéro. La première action entreprise par le processeur con-
suivants : siste à effectuer un cycle d’accès mémoire afin de lire le code de la
première instruction à l’adresse 0 en mémoire (figure 7). Le proces-
— recherche du code d’une instruction en mémoire (instruction
seur mémorise ce code (H’103C) dans son registre d’instruction, le
code fetch) : accès en lecture en zone programme ;
décode et l’interprète. Le compteur ordinal (PC) est ensuite mis à
— recherche de la valeur immédiate ou de l’adresse contenue jour pour pointer au prochain mot mémoire.
dans l’instruction courante : accès en lecture en zone programme ;
— lecture d’une opérande provenant de la mémoire ou de Le décodage du code H’103C indique au processeur qu’il s’agit
l’espace d’entrée-sortie lors de l’exécution de l’instruction : accès en d’une instruction de transfert de la valeur immédiate dans le registre
lecture en zone données ; de données D0. Au prochain cycle d’accès mémoire, la valeur immé-
— écriture d’une opérande en mémoire ou dans l’espace diate se trouvant à la position mémoire 2 est transférée dans le
d’entrée-sortie lors de l’exécution de l’instruction : accès en écriture registre de données D0 (figure 8). Le compteur ordinal (PC) est mis
en zone données. à jour afin de pointer à la prochaine instruction.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 035 − 4 © Techniques de l’Ingénieur, traité Informatique industrielle
WV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSU
Adresses 24
Mémoire
00 MOVE.B ,D0 103C
MOVE.B #HPOFF,D0
02 #HPOFF 0000 Haut-parleur
04 MOVE.B D0, 11C0
Processeur MOVE.B D0,HP
06 HP 8040
Interface
+2 PC 08 MOVE.B ,D0 103C d’entrée-
0 2
MOVE.B #HPON,D0 sortie
0A #HPON 0001
AD
0C MOVE.B D0, 11C0 Décodage
MOVE.B D0,HP d’adresses
D0 0E HP 8040
10 BRA.B OSCIL 60EE
S
BRA.B OSCIL
MOVE.B ,D0 Reg Q7 Q0
103C Instr D7 D0
Registre
Données 16 de sortie
Adresses 24
Mémoire
00 MOVE.B ,D0 103C
MOVE.B #HPOFF,D0
02 #HPOFF 0000 Haut-parleur
04 MOVE.BD0, 11C0
Processeur MOVE.B D0,HP
06 HP 8040
Interface
+2 PC 08 MOVE.B ,D0 103C d’entrée-
0 4
MOVE.B #HPON,D0 sortie
0A #HPON 0001
AD
0C MOVE.B D0, 11C0 Décodage
MOVE.B D0,HP d’adresses
#HPOFF D0 0E HP 8040
0000
10 BRA.B OSCIL 60EE BRA.B OSCIL
MOVE.B ,D0 Q7 Q0
RegInstr D7 D0
103C
Registre
Données 16 de sortie
Ainsi s’effectue l’exécution de tout le programme : à chaque ins- est décodée, les opérandes (valeurs immédiates ou adresses) sont
truction, le code de l’instruction est lu de la mémoire, l’instruction recherchées et l’instruction est exécutée.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 035 − 5
WW
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPSU
Adresses 24
Mémoire
00 MOVE.B ,D0 103C
MOVE.B #HPOFF,D0
02 #HPOFF 0000 Haut-parleur
04 MOVE.B D0, 11C0
Processeur MOVE.B D0,HP
06 HP 8040
Interface
08 PC 08 MOVE.B ,D0 103C d’entrée-
MOVE.B #HPON,D0 sortie
0A #HPON 0001
8040 AD
0C MOVE.B D0, 11C0 Décodage
MOVE.B D0,HP d’adresses
#HPOFF D0 0E HP 8040
0000
S MOVE.B D0, HP
11CO
RegInstr
10 BRA.B OSCIL 60EE BRA.B OSCIL
Q7
D7
Q0
D0
Registre
Données 16 de sortie
Lignes de données 103C 0000 11C0 8040 00 103C 0001 11C0 8040 01 60EE 103C 0000 11C0 8040 …
Type de cycle lect lect lect lect écr lect lect lect lect écr lect lect lect lect lect …
(lecture ou écriture, zone P P P P D P P P P D P P P P P
Programme ou Données)
Figure 10 – Succession des cycles d’accès mémoire et entrées sorties lors de l’exécution du programme BruitHP
L’exécution proprement dite d’une instruction peut s’effectuer 1.3 Catégories d’instructions
implicitement à l’intérieur du processeur, sans exiger de cycle
mémoire supplémentaire (par exemple lorsqu’une valeur immé-
diate est chargée dans un registre de données). Elle peut également Le fonctionnement des principales instructions disponibles sur
exiger un ou plusieurs cycles d’accès mémoire, lorsqu’il s’agit microprocesseurs et microcontrôleurs est expliqué. En pratique, la
d’écrire une valeur en mémoire ou à une position d’entrée-sortie. plupart des microcontrôleurs sont programmés en langage C. Nous
Par exemple, lors de l’exécution de la 3ème instruction du pro- montrons donc pour certaines instructions en langage assembleur
l’équivalent en langage C.
gramme MOVE.B D0,HP, il y a d’abord un cycle mémoire de recher-
che de code de l’instruction, puis un cycle de recherche de l’adresse
HP (cette adresse est placée dans le registre interne AD) et enfin 1.3.1 Fanions et instructions de saut conditionnel
l’exécution proprement dite de l’instruction par un cycle d’écriture
de la valeur qui se trouve dans le registre D0 sur l’adresse d’entrée- Chaque processeur comporte un certain nombre de fanions (en
sortie (figure 9). anglais flags) qui permettent de tester le résultat d’une opération.
Par exemple, lors de l’addition de deux nombres positifs 8 bits, il
Le diagramme temporel de la figure 10 donne la succession des peut y avoir un report. Le fanion de report (Carry) devient actif (« 1 »)
cycles d’accès mémoire et entrées-sorties lors de l’exécution du pro- s’il y a eu un report. Autrement, il reste inactif (« 0 »). De manière
gramme BruitHP (figures 7, 8, 9). similaire, la soustraction d’un nombre positif par un autre peut
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 035 − 6 © Techniques de l’Ingénieur, traité Informatique industrielle
WX
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVS
Approche objet
S
1. Contexte...................................................................................................... S 8 063 - 2
1.1 Courants ayant influencé les langages à objets ........................................ — 2
1.2 Langages à objets abordés ......................................................................... — 2
2. Concepts de base ..................................................................................... — 2
2.1 Objet.............................................................................................................. — 2
2.2 Classe ............................................................................................................ — 4
2.3 Message........................................................................................................ — 7
2.4 Héritage......................................................................................................... — 9
3. Approche objet ......................................................................................... — 12
3.1 Application exemple .................................................................................... — 12
3.2 Règles de conduite avec des objets ........................................................... — 14
Pour en savoir plus ........................................................................................... Doc. S 8 063
WY
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVS
XP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVS
Selon les langages, les objets vont bénéficier de propriétés plus Qui plus est, cette indépendance fait partie intégrante du modèle
ou moins intéressantes et plus ou moins contraignantes. des langages à objets. Elle n’est pas « plaquée » sur le langage,
comme l’approche modulaire peut l’être sur Pascal ou sur Fortran.
Elle est obtenue sans contraintes, en utilisant une approche dif-
2.1.2.1 Encapsulation férente (l’approche objet) du problème à régler.
Parmi ces propriétés, nous allons trouver le respect de l’aspect
privé de la composante déclarative. Cette propriété est habituel- 2.1.2.4 Liberté d’implémentation du comportement
lement appelée encapsulation de l’objet. Elle est indispensable
pour garantir la conformité de l’état interne à un ensemble Une même sollicitation peut être reçue par de nombreux objets,
de règles que le programmeur peut fixer dans la spécification de qu’ils soient représentés ou non de la même manière (par
l’objet. En effet, si n’importe quel objet est capable d’altérer la exemple, des points cartésiens ou polaires pourront se voir
valeur d’un attribut d’un objet, ce dernier n’a plus la possibilité de demander leur abscisse). Il va de soi que ces requêtes ne peuvent
vérifier la cohérence de son état interne. Il ne peut le faire que s’il être traitées de la même manière par tous les objets. Or, l’indépen-
est le seul à atteindre, via ses méthodes, les valeurs de ses dance que nous souhaitons obtenir entre les objets nous interdit
attributs. de « spécialiser » la requête (son nom) en fonction du destinataire.
Le respect de cette propriété est donc un credo fondamental des Par exemple, il n’est pas concevable qu’un rectangle doive uti-
langages à objets orientés vers le génie logiciel. On retrouve les liser tantôt abscisse_pour_cartésien ou abscisse_pour_polaire, car il
bons principes de la programmation modulaire, mais vécus non devrait alors connaître la nature de l’objet auquel il s’adresse. Le
pas comme une contrainte à respecter, mais comme une caracté- remplacement définitif des points cartésiens par des points
ristique normale de toute entité du langage. polaires aurait alors un impact non négligeable sur tous les objets
utilisateurs de points cartésiens.
Certains langages à objets qui se destinent au génie logiciel vont
même plus loin, incluant des préconditions et postassertions sur L’objet doit donc être capable d’attacher une implémentation
l’état interne de l’objet, déclenchées respectivement avant et après particulière à une requête qu’il reçoit. Cette requête sera appelée
l’exécution d’une méthode (Eiffel [5] ou D [6]). Cependant, pour message et l’objet pourra associer une méthode spécifique à
qu’une entité d’un langage à objets soit encapsulée, elle doit être chaque message qu’il sait traiter. Nous aborderons au
définie comme un objet. Donc, tout ce qui n’est pas un objet ne paragraphe 2.3 la définition d’un message. La fonction d’asso-
pourra bénéficier de cette propriété. Cela nous conduit à une autre ciation entre message et méthode est donc définie localement
propriété potentielle des langages à objets. pour un objet.
XQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVS
S
la protection est imposée par Smalltalk-80 selon le type
d’Alan Kay), alors que d’autres limiteront pratiquement leur rôle au
d’information : les attributs sont toujours privés, les méthodes
seul compilateur.
toujours publiques.
Cette option n’est pas fondamentalement gênante, puisque, de
par le principe de l’encapsulation, le monde extérieur ne peut 2.2.1 Définition
discerner de différence. Seul le concepteur se voit limité dans son La classe est tout d’abord un « moule » d’objet, c’est-à-dire
implémentation. En effet, si on peut « simuler » des attributs par qu’elle contient une définition de la structure de l’objet qu’elle doit
des méthodes retournant une constante, l’inverse n’est pas vrai. créer. On parlera, pour définir cette structure, de schéma
Notons enfin que le fait de fournir des méthodes d’accès à un d’instance. En corollaire, l’objet qui a été créé par une classe sera
attribut ne supprime pas l’encapsulation, dans la mesure où il appelé une instance de cette classe. Les objets qui sont instances
existe toujours un point d’entrée unique pour atteindre sa valeur : d’une même classe vont, assez normalement, servir dans les
la méthode d’accès. La suppression de l’attribut n’entraînerait mêmes conditions, et donc répondre aux mêmes sollicitations. Il a
qu’une réécriture de la méthode, mais aucune modification du donc paru naturel d’ajouter un second rôle à la classe : elle
monde extérieur. possède toutes les informations partagées entre toutes ses
instances, au premier rang de celles-ci, les méthodes qui carac-
C++ et Java vont se retrouver très souvent ensemble, dans la térisent ses instances.
suite de ce document, puisqu’ils procèdent des mêmes principes :
un typage fort permettant d’atteindre simultanément les objectifs
de sécurité (par une détection d’un maximum d’erreurs dès 2.2.2 Propriétés
compilation) et de rapidité.
Nous avons dit que tout, dans un bon langage à objets, était
Ils constituent les fers de lance des langages à objets actuels. Ils objet. Compte tenu de la définition de la classe que nous venons
garantissent, tant que le programmeur en a décidé ainsi, le respect de donner, on peut compléter en affirmant que tout est issu d’une
de l’encapsulation. Le programmeur peut, à loisir, déclarer un classe. Donc tout est instance.
attribut ou une méthode publique ou privée. Ils décrivent tous
deux une possibilité supplémentaire, mais d’usage différent. 2.2.2.1 La classe est un générateur
C++ parle de friends pour indiquer qu’un objet pourra consulter En tant que telle, elle doit posséder tout ce qui est nécessaire à
les attributs d’un autre objet dont il a été déclaré comme « ami » la création d’une instance, donc un schéma d’instance mais aussi
comme s’ils étaient les siens. Java définit une encapsulation « par le mécanisme de création (d’instanciation). Dans le cas d’un langage
défaut », de type package, dans laquelle les attributs ou méthodes à objets non typé, cette information suffit, puisque tous les attributs
sont visibles de toutes les classes et méthodes du même paque- auront le même encombrement mémoire. Dans le cas contraire, le
tage (qui est en fait un ensemble de classes, définis dans autant de schéma d’instance devra contenir le type de chaque attribut.
fichiers, et retrouve la sémantique que le langage Ada [7] donnait
à cette notion). Le mécanisme d’instanciation procède essentiellement à une
réservation de l’espace-mémoire suffisant, à l’attribution d’un
Il faut conserver à l’esprit que la description d’un attribut comme identifiant unique à la nouvelle instance créée, puis à son initia-
public amoindrit considérablement les possibilités d’évolution de lisation (dans certains langages).
l’objet qui le fait. C’est toujours déconseillé. De ce fait, la seule
Clarifions tout de suite cette notion d’identifiant. La capacité de
justification des friends est la recherche d’efficacité (en transigeant
s’adresser à un objet, et à lui seul, est fondamentale pour le dia-
sur la sécurité), puisque l’accès direct peut être plus rapide qu’un
logue entre objets. Elle repose sur l’existence d’une bijection entre
appel à une fonction d’accès, si elle évite des contrôles de validité
l’ensemble des identifiants et celui des objets. D’un point de vue
d’arguments.
concret, l’identifiant peut, dans un langage à objets non distribué
(c’est-à-dire destiné à s’exécuter sur une seule machine) être un
2.1.3.2 L’objet est-il typé ? pointeur sur l’objet. Par contre, le problème cesse d’être trivial dès
Le typage est une option classique des langages à objets qui se que l’on cherche à distribuer le monde des objets sur plusieurs
destinent au génie logiciel. Il permet d’assigner un domaine de processeurs ou processus, car la notion d’adresse n’est alors plus
valeurs à un attribut (ou de manière plus générale à une variable). significative. Or, le problème de la distribution des objets au sein
Le génie logiciel s’y intéresse car il permet au compilateur de d’une configuration multiprocesseur ou multiprocessus est main-
détecter un grand nombre d’erreurs, et donc d’améliorer la fiabilité tenant excessivement courant dans un contexte opérationnel.
du code. Ce typage est donc partie intégrante du modèle de Le mécanisme de création proprement dit est un comportement
langages à objets destinés au génie logiciel. C++ et Java sont de classe. Il est classiquement le même pour toutes les classes.
typés. Smalltalk-80, comme les extensions objets de Lisp, n’intro- Seule l’initialisation sera particularisée par chaque classe. Le
duit aucune forme de typage. comportement de création est défini par une méthode (tout ce qui
XR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVU
S
1. Présentation générale............................................................................. S 8 065 – 2
2. Améliorations de C++ par rapport à C ............................................... — 3
3. Notion de classe....................................................................................... — 5
4. Fonctions amies ....................................................................................... — 8
5. Surdéfinition d’opérateurs .................................................................... — 8
6. Héritage ...................................................................................................... — 9
7. Fonctions virtuelles et polymorphisme ............................................. — 12
8. Flots d’entrée et de sortie ..................................................................... — 12
9. Patrons de fonctions............................................................................... — 13
10. Patrons de classes ................................................................................... — 14
11. Gestion des exceptions .......................................................................... — 16
12. Bibliothèque standard ............................................................................ — 16
Références bibliographiques ......................................................................... — 18
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 065 − 1
XS
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVU
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 065 − 2 © Techniques de l’Ingénieur, traité Informatique industrielle
XT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVU
classe) qui sont autorisées (par une classe) à accéder aux données namespace une_bibli
(encapsulées) de la classe ; { // déclarations usuelles
— la surdéfinition d’opérateurs permet de doter une classe }
d’opérations analogues à celles que l’on rencontre pour les types
prédéfinis. Par exemple, on pourra définir une classe nommée Pour se référer à des identificateurs définis dans cet espace de
complexe (destinée à représenter des nombres complexes) et la noms, on utilisera une instruction using :
munir des opérations d’addition, de soustraction, de multiplication using namespace une_bibli
et de division. Qui plus est, ces opérations pourront utiliser les sym- // ici, les identificateurs de une_bibli sont connus
boles existants : +, -, *, / ;
— les entrées-sorties deviennent fondées sur la notion de « flot », On peut aussi utiliser l'instruction using pour faire un choix per-
ce qui permet de leur donner un sens pour les types définis par l’uti- manent :
lisateur que sont les classes (grâce au mécanisme de surdéfinition using une_bibli::point ; // dorénavant, l'identificateur point,
d’opérateur) ; // employé seul correspondra à celui
— la notion de patron permet de définir des modèles utilisables // défini dans l'espace de noms une_bibli
pour générer différentes classes ou différentes fonctions qualifiées
parfois de génériques, même si cette généricité n’est pas totalement Tous les identificateurs des fichiers en-tête standards sont définis
intégrée dans le langage lui-même, comme c’est par exemple le cas dans l’espace de noms std ; aussi est-il nécessaire de recourir systé-
avec ADA ; matiquement à l’instruction :
— dans la bibliothèque standard de C++, qui vient compléter
celle du C, toujours disponible, on trouve de nombreux patrons de
classes et de fonctions permettant de mettre en œuvre les structures
using namespace std ; // utilisation des fichiers
// en-tête standard // S
de données et les algorithmes les plus usuels, évitant ainsi d’avoir à Généralement, cette instruction figurera à un niveau global. Elle
réinventer la roue à la moindre occasion. ne peut cependant apparaître que si l’espace de noms qu’elle men-
tionne existe déjà ; en pratique, cela signifie que cette instruction
sera placée après l’inclusion des fichiers en-tête.
2. Améliorations de C++
par rapport à C 2.3 Nouvelles possibilités
d'entrées-sorties
Nous décrivons ici les principales améliorations non orientées
objet que C++ a apporté au langage C. C++ dispose de nouvelles facilités d'entrées-sorties. Bien qu'elles
soient fortement liées à des aspects POO (surdéfinition d'opérateur
en particulier), elles sont parfaitement utilisables en dehors de ce
2.1 Sécurisation de l’utilisation contexte. C'est tout particulièrement le cas des possibilités
des fonctions d'entrées-sorties conversationnelles (clavier, écran) qui remplacent
avantageusement les fonctions printf et scanf. Ainsi :
Le langage C est laxiste en matière de déclaration de fonctions. En cout << expression_1 << expression_2 << ......... << expression_n
effet, s’il permet d’effectuer des déclarations complètes (prototype affiche sur le flot cout (connecté par défaut à la sortie standard
avec type des arguments et de la valeur de retour), il autorise égale- stdout) les valeurs des différentes expressions indiquées, suivant
ment des déclarations partielles, voire même dans certains cas une une présentation adaptée à leur type. De même :
absence totale de déclaration.
C++ ne conserve que l’aspect le plus fiable de C, tel qu’il était déjà cin >> variable_1 >> variable_2 >> ......... >> variable_n
utilisé par les programmeurs C soucieux de sécuriser leurs pro- lit sur le flot cin (connecté par défaut à l'entrée standard stdin) des
grammes. Il impose que toute fonction utilisée dans un fichier informations de l'un des types char, short, int, long, float, double ou
source fasse l’objet : char * (les pointeurs ne sont pas admis). Les conventions d'analyse
— soit d'une déclaration sous forme d'un prototype (il précise à des caractères lus sont comparables à celles de scanf, avec cette
la fois le nom de la fonction, le type de ses arguments éventuels et principale différence que la lecture d'un caractère commence par
le type de sa valeur de retour), comme dans cet exemple : sauter les espaces blancs (espace, tabulation horizontale, tabulation
float fexp (int, double, char *); verticale, fin de ligne, changement de page).
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 065 − 3
XU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVU
En C++, vous pouvez en outre utiliser des « commentaires de fin Exemple : utilisation de la transmission d'arguments par réfé-
de ligne » en introduisant les deux caractères : //. Dans ce cas, tout rence en C++
ce qui est situé entre // et la fin de la ligne est un commentaire. Notez
que cette nouvelle possibilité n'apporte qu'un surcroît de confort et #include <iostream>
de sécurité ; en effet, une ligne telle que : using namespace std ;
main()
cout << "bonjour\n" ; // formule de politesse { void echange (int &, int &) ;
peut toujours être écrite ainsi : int n=10, p=20 ;
cout << "avant appel : " << n << " " << p << "\n" ;
cout << "bonjour\n" ; /*formule de politesse*/
echange (n, p) ; // attention, ici pas de &n, &p
Vous pouvez mêler (volontairement ou non !) les deux formules. cout << "apres appel : " << n << " " << p << "\n" ;
Dans ce cas, notez que, dans : }
/* partie1 // partie2 */ partie3 void echange (int & a, int & b)
{ int c ;
le commentaire « ouvert » par /* ne se termine qu'au prochain */ ; cout << "debut echange : " << a << " " << b << "\n" ;
donc partie1 et partie2 sont des commentaires, tandis que partie3 c=a;a=b;b=c;
est considéré comme appartenant aux instructions. De même, dans : cout << "fin echange : " << a << " " << b << "\n" ;
partie1 // partie2 /* partie3 */ partie4 }
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 065 − 4 © Techniques de l’Ingénieur, traité Informatique industrielle
XV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVV
S
Concepts ............................................................................................................. S 8 065
1. Exemple 1 : ensembles d’entiers ......................................................... S 8 066 – 2
1.1 Première ébauche de solution.................................................................... — 2
1.2 Surdéfinition du constructeur par recopie ................................................ — 2
1.3 Surdéfinition de l’affectation ...................................................................... — 2
2. Exemple 2 : utilisation d’un patron de classes................................ — 4
3. Exemple 3 : liste hétérogène ................................................................ — 5
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Informatique industrielle S 8 066 − 1
XW
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVV
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 066 − 2 © Techniques de l’Ingénieur, traité Informatique industrielle
XX
r←ヲ←イ・ョ」・@iョエ・イョ・エ
hQUWP
Linux embarqué
S
1. Introduction au logiciel libre, le projet GNU ................................... H 1 570v2 - 3
1.1 What’s GNU ? Gnu’s Not Unix................................................................... — 3
1.2 Licences GPL et LGPL ................................................................................. — 3
1.3 Linux ou GNU/Linux ?................................................................................. — 3
2. Linux comme système embarqué ....................................................... — 3
2.1 Contraintes des systèmes embarqués propriétaires ............................... — 4
2.2 Avantages du logiciel libre......................................................................... — 4
2.3 Inconvénients .............................................................................................. — 4
2.4 Pourquoi Linux est-il adapté aux applications embarquées ? ................ — 4
3. Choix du matériel .................................................................................... — 4
3.1 Cas de la MMU ............................................................................................ — 5
3.2 Architecture x86 .......................................................................................... — 5
3.3 Architecture ARM........................................................................................ — 5
4. Architecture d’un système Linux embarqué ................................... — 5
4.1 Structure du système Linux ....................................................................... — 6
4.2 Démarrage du système .............................................................................. — 6
4.3 Noyau Linux ................................................................................................ — 6
4.4 Root filesystem............................................................................................ — 7
4.5 BusyBox ....................................................................................................... — 7
5. Exemples de distributions .................................................................... — 7
5.1 Compilation croisée .................................................................................... — 7
5.2 Choix de la distribution .............................................................................. — 7
5.3 Buildroot ...................................................................................................... — 8
5.4 Production d’une distribution avec Yocto................................................. — 10
5.5 Mise au point............................................................................................... — 13
6. Temps réel ................................................................................................. — 14
6.1 Définitions.................................................................................................... — 14
6.2 Extensions temps réel de Linux................................................................. — 14
7. Conclusion................................................................................................. — 18
Pour en savoir plus ........................................................................................... Doc. H 1 570v2
XY
r←ヲ←イ・ョ」・@iョエ・イョ・エ
hQUWP
rielles comme les PowerPC, ARM, SH4 et désormais des processeurs industriels
spécialisés comme Nios II, MicroBlaze ou Blackfin. Au final, 31 architectures sont
actuellement supportées par la version officielle du noyau Linux.
Linux est conforme au standard POSIX (pour Portable Operating System
Interface for UNIX), ce qui signifie que les sources des programmes déve-
loppés sous Linux peuvent être compilées facilement sur d’autres systèmes
d’exploitation compatibles POSIX. Linux est également réputé pour sa grande
interopérabilité, c’est-à-dire qu’il peut facilement s’intégrer dans un système
informatique complexe utilisant d’autres systèmes d’exploitation propriétaires.
Le code source du noyau Linux est disponible librement sur Internet, tout en
respectant la licence GPL définie pour le projet GNU.
Initialement, le logiciel embarqué était un marché de « niche » totalement
dominé par des éditeurs spécialisés (comme Wind River, fondée en 1981 et
éditeur du système d’exploitation VxWorks), pratiquant des coûts de licence
très élevés du fait du faible volume de production qui se résumait aux appli-
YP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
hQUWP
S
duit car le client doit disposer d’informations (comme des clés de
1.1 What’s GNU ? Gnu’s Not Unix chiffrement) pour installer un nouveau logiciel modifié.
Dans les années 1980, Richard M. Stallman, un chercheur en Plus précisément, la liste des différences entre v2 et v3 est dis-
intelligence artificielle du MIT (Massachusetts Institute of Techno- ponible sur http://www.gnu.org/licenses/gpl-faq.html.
logy), démarre un projet de développement de composants logi-
ciels libres. De par son environnement culturel, Stallman s’oriente
naturellement vers l’environnement UNIX, non qu’il considère ce Comment distribuer un code source sous GPL/LGPL ?
système comme parfait, mais plutôt parce qu’il est, selon ses La plupart des fabricants de matériel intégrant du code
dires, not so bad (pas si mal). Le but du projet est de fournir des source GPL/LGPL mettent en place une page web sur laquelle
versions libres des différentes commandes et outils disponibles les clients peuvent obtenir ce code source. Pour faciliter la ges-
dans les systèmes UNIX. Le nom du projet (GNU) est une défini- tion, ces sites de diffusion sont généralement ouverts, y com-
tion récursive (GNU’s Not Unix), typique de l’humour décalé des pris à ceux qui ne disposent pas de l’équipement (donc pas de
informaticiens. la version binaire).
Néanmoins, un produit peut intégrer d’autres composants,
sous d’autres licences, et dont les sources ne seront pas forcé-
1.2 Licences GPL et LGPL ment diffusables. Il se peut donc que l’obtention du code
source GPL/LGPL ne permette pas de produire un nouveau
Richard Stallman en profita pour mettre en place un nouveau logiciel fonctionnel sur la cible.
type de licence de distribution appelée GPL (pour General Public
License), utilisant le principe du copyleft par opposition au copy-
right des licences propriétaires. La description complète de la
licence est assez longue et disponible sur le site de la Free Soft- 1.3 Linux ou GNU/Linux ?
ware Foundation (http://www.gnu.org/licenses). Il est cependant
fortement recommandé de prendre connaissance de cette licence Comme nous l’avons évoqué dans l’introduction, il est impor-
si vous désirez utiliser Linux ou un logiciel open source sous GPL tant de noter que le travail de Linus Torvalds s’est porté d’emblée
pour un projet industriel. Outre les éléments légaux indispen- sur la partie noyau du système d’exploitation. Les autres utilitaires
sables, cette lecture vous apportera des éléments clés pour la et les commandes UNIX classiques, sont en fait empruntés au
compréhension de la philosophie du logiciel libre. projet GNU ou à d’autres projets libres comme l’interface gra-
La version la plus communément utilisée est la GPLv2 datant de phique X Window System (X11) du MIT. Le fait est qu’aujourd’hui
1991. Linux est plus connu que GNU alors qu’une distribution Linux
La GPL se différencie d’autres licences open source plus permis- contient beaucoup plus de code du projet GNU que du projet
sives permettant l’appropriation d’un code originellement libre : Linux lui-même. De ce fait, les puristes – dont Richard Stallman en
tête – tiennent à ce que Linux soit plus justement nommé GNU/
– la GPL interdit à quiconque de s’approprier le code source d’un
Linux. Cependant, pour alléger l’expression, le système GNU/
logiciel et de ses dérivés modifiés à partir du moment où l’original
Linux sera simplement nommé Linux tout au long de cet article.
a été diffusé sous GPL. Cela oblige à redistribuer le code source
Nous avons déjà fait la nuance dans ce chapitre puisque le sys-
des modifications effectuées à celui qui aurait reçu la version
tème d’exploitation Android est basé sur le noyau Linux, tout en
binaire. Notons que cela n’oblige pas à contribuer au projet initial ;
étant très différent de GNU/Linux.
– l’édition de liens (statique ou dynamique) entre du code GPL et
du code incompatible avec la licence est interdite ;
– la GPL s’applique uniquement en cas de redistribution d’un
exécutable issu de code GPL à un tiers, mais la notion de redistri-
bution a suscité de longues discussions (en particulier dans le cas 2. Linux comme système
des premières versions de la Freebox).
Il existe une autre licence nommée LGPL (pour Lesser ou
embarqué
Library GPL), permettant d’effectuer une édition de liens de code
propriétaire avec des bibliothèques sous LGPL. Cette extension de Nous ne reviendrons pas sur la définition, ni sur les caractéris-
la licence est fondamentale, car elle permet la disponibilité sous tiques d’un logiciel embarqué, ou d’un système d’exploitation
Linux d’applications propriétaires qui utilisent des bibliothèques embarqué. Pour cela, nous renvoyons le lecteur à l’article
indispensables comme la Glibc (GNU C library). [H 8 000] Introduction aux systèmes embarqués ainsi qu’aux nom-
Dans le cas du développement d’un pilote de périphérique, il breux documents disponibles sur Internet ou bien ouvrages cités
sera exécuté dans un espace mémoire différent appelé espace en bibliographie.
YQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
hQUWP
2.1 Contraintes des systèmes embarqués société commerciale qui fournira en général une version prise en
charge (avec support payant) en plus de la version gratuite (sans
propriétaires support). Outre les développements spécifiques, le support tech-
nique est d’ailleurs le principal modèle économique applicable au
Les systèmes embarqués propriétaires souffrent de quelques
logiciel libre puisque la duplication du logiciel est autorisée par la
défauts fort contraignants pour les concepteurs d’équipement.
licence.
Tout d’abord, ils sont souvent réalisés par des sociétés de taille
Concernant les licences, nous avons dispensé une introduction
moyenne, si l’on compare aux géants comme Microsoft ou Goo-
rapide au début du document mais il se peut que certains compo-
gle. Le matériel évolue très vite, et il en est de même des stan-
sants logiciels propriétaires soient incompatibles avec les licences
dards logiciels, alors que de plus en plus d’équipements
GPL et LGPL fréquemment utilisées pour le logiciel libre et en par-
nécessitent l’intégration de composants que l’on doit importer du
ticulier pour Linux. Dans ce cas, on devra adapter l’architecture en
monde des systèmes informatiques grand public. De ce fait, les
conséquence. Notons en particulier que l’architecture du système
coûts de licence et les droits de redistribution de ces systèmes
Android (HAL, isolation de la partie matérielle) est en partie
sont souvent élevés, car l’éditeur travaille sur un segment de mar-
déduite des contraintes de licences.
ché très spécialisé.
L’industriel qui utilise un système propriétaire prend donc le
risque de voir disparaître le produit (et plus rarement l’éditeur) 2.4 Pourquoi Linux est-il adapté
ainsi que le support technique qui va avec. De ce fait, les indus-
S triels paient parfois des sommes conséquentes afin de disposer aux applications embarquées ?
de tout ou partie du code source du système.
Un certain nombre de critères et de qualités fréquemment cités
Le coût de développement d’applications autour de systèmes pour les versions standards de Linux sont fondamentaux pour les
propriétaires est souvent plus élevé, car les outils de développe- systèmes embarqués, en l’occurrence :
ment disponibles sur le marché du travail sont mal connus de la – la fiabilité ;
majorité des développeurs, puisque peu – ou plus – étudiés à
– les performances ;
l’université (qui de nos jours étudie VxWorks ou LynxOS ?). Il est
– le coût ;
donc nécessaire de recruter du personnel très spécialisé, donc
– la portabilité et l’adaptabilité ;
rare et cher. A contrario un développeur Linux peut assez rapi-
dement se spécialiser sur Linux embarqué, sachant que toutes – l’ouverture aux autres systèmes.
les formations d’ingénieur intègrent désormais l’étude de Linux Il existe bien entendu des cas pour lequel Linux n’est pas la
et que certaines proposent des formations spécialisées intégrant meilleure solution. Le principal cas de figure concerne les sys-
des cours sur Linux embarqué (citons l’EPITA et l’ENSEIRB- tèmes embarqués de faible puissance pour lequel le logiciel est
MATMECA). dit profondément enfoui (ou deeply embedded). En effet, même
optimisé et adapté à l’embarqué, Linux reste un système com-
plexe nécessitant plusieurs mégaoctets de mémoire pour fonc-
2.2 Avantages du logiciel libre tionner, tant au niveau de la mémoire vive que de la mémoire de
stockage (mémoire flash). De même, si l’architecture matérielle
Les trois points suivants issus de la définition du logiciel libre utilise un processeur 8 ou 16 bits, l’utilisation de Linux n’est pas
sont fondamentaux dans le cas du logiciel embarqué : envisageable puisque ce système nécessite au minimum un pro-
cesseur 32 bits. Dans ce cas, d’autres systèmes d’exploitation
– la redistribution sans royalties ;
libres sont largement utilisés (citons FreeRTOS, Contiki ou RIOT,
– la disponibilité du code source ;
fréquemment utilisés pour capteurs IoT – Internet of things).
– la possibilité de réaliser un développement dérivé de ce code
source. La conformité à certains standards industriels (DO-178, CEI-
61508) peut également poser des problèmes puisque le modèle
Ces éléments ont des implications importantes tant au niveau libre implique une constante évolution du système peu compa-
économique qu’au niveau de la pérennité du logiciel sur laquelle tible avec les procédures de certification. De même, l’absence de
les exigences peuvent, dans certains cas, se chiffrer en dizaines centralisation ne permet pas d’identifier clairement un acteur qui
d’années (50 ans ou plus sur l’aéronautique ou le ferroviaire). pourrait assumer la charge financière du coût de la certification.
2.3 Inconvénients
Lors de la dernière édition nous avions cité quelques inconvé-
3. Choix du matériel
nients inhérents à la « jeunesse » des solutions libres, soit :
– la crédibilité du logiciel libre au niveau du monde industriel ; Le développement d’un projet Linux embarqué correspond en
– la faiblesse du support technique et de la documentation ; général à deux cas de figure :
– la complexité des licences. – le portage du système vers Linux embarqué, tout en conser-
Le premier argument n’est carrément plus à prendre en compte vant l’architecture matérielle ;
de nos jours car Linux est désormais une référence dans le monde – la réalisation d’un nouveau produit avec choix ou réalisation
industriel. De même, la qualité de la documentation est en du matériel.
constante progression depuis quelques années. À titre d’exemple, Le premier cas peut s’avérer critique car il est nécessaire que le
si l’on considère le projet Yocto (que nous étudierons plus loin matériel existant soit compatible avec le noyau Linux. À partir du
dans cet article), sa documentation est d’une précision remar- moment où l’on utilise un processeur au moins 32 bits, il est forte-
quable, ce qui explique qu’il est aujourd’hui un outil de référence ment probable que le cœur de processeur soit déjà pris en compte
soutenu pas les plus grands industriels comme Intel, TI, NXP, par le noyau Linux (ARM, x86, PowerPC et plus rarement MIPS).
Wind River, Facebook et bien d’autres. Au total, 31 architectures matérielles sont à ce jour prises en
Concernant le support technique, le modèle décentralisé du charge par le noyau Linux standard.
logiciel libre interdit de fait qu’une communauté de développeurs Par contre, il peut arriver, même si c’est rare, que certains péri-
assume la responsabilité légale de la correction des bogues. Pour phériques ne soient pas pris en compte et que la réalisation d’un
disposer d’un support classique, le projet devra être porté par une ou plusieurs pilotes soit nécessaire.
YR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
hXRPP
OS embarqués
—
3
5
S
4. Tour d’horizon des types d’OS employés en embarqué — 6
4.1 Boucle de contrôle ...................................................................................... — 6
4.2 Gestionnaire d’interruptions ...................................................................... — 6
4.3 Multitâche coopératif.................................................................................. — 7
4.4 Multitâche avec préemption ...................................................................... — 7
5. Multiprocesseur ....................................................................................... — 8
6. Architectures des OS embarqués ....................................................... — 9
6.1 Organisation logicielle idéalisée................................................................ — 10
6.2 Implantation BSP ........................................................................................ — 11
6.3 Systèmes d’exploitation usuels ................................................................. — 12
6.4 Implantation à base de composants ......................................................... — 13
6.5 Synthèse ...................................................................................................... — 16
7. En résumé .................................................................................. — 16
Pour en savoir plus ........................................................................................... Doc. H 8 200
es systèmes embarqués et/ou intégrés rappellent par certains côtés les ordina-
L teurs d’antan, par les ressources limitées dont ils disposent. Ceci conduit à des
besoins de compacité de code et à une exploitation optimisée du matériel qui
n’est plus de mise dans les systèmes informatiques actuels où l’abondance de res-
sources de calcul et de mémorisation est la règle. Que l’on ne s’y trompe pas
cependant : comparaison n’est pas raison, et les systèmes informatiques embar-
p。イオエゥッョ@Z@ヲ←カイゥ・イ@RPQQ@M@d・イョゥ│イ・@カ。ャゥ、。エゥッョ@Z@、←」・ュ「イ・@RPQU
qués d’aujourd’hui sont souvent bien plus performants que leurs prédécesseurs
non embarqués, mais ils sont aussi extrêmement contraints, et les quelques kilo-
octets, microsecondes ou milliwatts qui sont épargnés par un système d’exploita-
tion ad hoc seront toujours utiles à l’application, pour permettre de faire
fonctionner mieux, de manière plus sûre et plus longtemps un appareillage. Glo-
balement, le but d’un système d’exploitation consiste à abstraire et partager les
ressources matérielles pour simplifier l’écriture des applications. Les systèmes
d’exploitation des ordinateurs modernes visent à optimiser les temps de réponses
moyens pour l’utilisateur face à un clavier et une souris, quitte à requérir de nom-
breuses ressources à un instant donné pour garantir cet objectif. Dans le monde
de l’embarqué, un tel objectif n’a souvent pas de sens, car il n’y a pas d’utilisateur
à proprement parler et la notion assez subjective et mal formalisée de temps de
réponse acceptable est clairement inadaptée. Les systèmes d’exploitation pour les
systèmes embarqués ont en général besoin de contraintes clairement précisées
pour réaliser les services qu’ils sont censés fournir. Ces critères peuvent être liés à
la performance temporelle, par exemple sur la latence minimale et maximale du
traitement des interruptions, en espace mémoire maximal requis, en capacité de
YS
r←ヲ←イ・ョ」・@iョエ・イョ・エ
hXRPP
OS EMBARQUÉS ____________________________________________________________________________________________________________________
contrôle du matériel en vue par exemple de la basse consommation, etc. Les sys-
tèmes pour lesquels la réalisation d’une action doit être faite dans un laps de
temps prédéfini, potentiellement de manière répétée, sont dits temps réel. Ils ont
une importance particulière dans le monde de l’embarqué, car le contrôle du
déclenchement d’un air bag ou le décodage d’une vidéo n’ont d’intérêt que si
l’action est réalisée dans le temps imparti.
Par ailleurs, les méthodes de construction des systèmes d’exploitation ont
évolué au cours du temps et permettent aujourd’hui de n’inclure que les
parties qui sont utiles à la fois à l’application, si celle-ci est connue d’avance,
ce qui est le cas bien souvent, et au matériel. Elles permettent ainsi de
construire un système « sur mesure » qui maximise l’efficacité de l’appareil.
L’intégration posant des questions cruciales de rendement et de flexibilité, les
systèmes intégrés actuellement en cours de conception tendent à inclure plu-
sieurs (voire de nombreux) processeurs. La gestion de ces nombreux
processeurs, qui peuvent être de type identiques ou différents, par exemple un
YT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
hXRPP
____________________________________________________________________________________________________________________ OS EMBARQUÉS
Interc onnexi on
Cœur B
2. Point sur les architectures à usa ge
généra l
matérielles Cœur
à usa ge
À la différence des ordinateurs classiques [3], les architectures généra l
intégrées sont nombreuses et très différentes, car adaptées à Cœur
l’application ou à la classe d’applications visées. Elles comportent Mémoi re
à usa ge
pa rta gée
en particulier des coprocesseurs spécialisés (par exemple à des généra l
phases de traitement intensif ou à la communication entre les élé-
ments de traitement). Plusieurs alternatives architecturales crédi-
bles existent, et l’on peut en citer trois qui sont représentatives des
choix d’architectures actuels :
Figure 3 – Architecture homogène à quatre processeurs S
• un processeur pilotant des blocs configurables et/ou spéciali-
sés (figure 1) ; Il est également possible d’ajouter des instructions utiles à une
application dans un processeur. Ces processeurs extensibles
• un processeur (ou cœur) à usage général (noté GPP pour peuvent être utilisés seuls si l’extension suffit à satisfaire les
General Purpose Processor, acronyme que nous retrouverons contraintes, ou en multiprocesseur sinon, avec potentiellement des
souvent) et un processeur de traitement de signal (DSP pour
extensions différentes pour chaque instance de processeur. Le pla-
Digital Signal Processor, abréviation également largement
cement des mémoires est une donnée très importante de ces
utilisée dans la suite) travaillant conjointement (figure 2) ;
architectures, car la latence d’accès aux instructions et aux don-
• plusieurs processeurs identiques se partageant un traitement nées influe fortement sur les performances d’un programme.
(figure 3).
L’accès aux données par les processeurs se fait par l’émis-
sion d’adresses qui représentent un emplacement unique de
l’espace de mémorisation dans laquelle ils peuvent lire ou
Cœur écrire des données. Dans le cas où il y a plusieurs processeurs
Péri ph.
à usa ge
A dans un système, la structure de cet espace peut ne pas être
généra l
identique du point de vue des processeurs, i.e. une adresse
Interc onnexi on
YU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
hXRPP
OS EMBARQUÉS ____________________________________________________________________________________________________________________
cesseurs et coprocesseurs spécialisés, par exemple pour le trai- bien sur un surcoût lié à l’utilisation du processeur pour explici-
tement radio et vidéo. tement réaliser tout ou partie des transferts entre la mémoire
locale et la mémoire principale. L’usage de plusieurs proces-
seurs coopérants n’est également pas envisageable. On retrouve
Les problèmes de l’intégration VLSI, principalement la également sur ces systèmes une gestion partagée a priori des
variabilité des caractéristiques électriques qu’il est de plus en ressources, ce qui offre la garantie d’accès à une ressource sur
plus difficile de maîtriser lors de la fabrication, tendent à un intervalle de temps, avec la contrainte de ne pas permettre
favoriser des architectures homogènes, car naturellement l’utilisation de ressources si celui qui possède le droit d’accès
redondantes. Le processeur CELL d’IBM en est un exemple : n’en a pas l’usage. Mais c’est à ce prix que l’on peut assurer for-
son rendement de fabrication est proche de 100 % en n’utili- mellement des propriétés temporelles.
sant pas l’un de ces processeurs spécialisés. De même,
l’International Technology Roadmap for Semi-conductors
prévoit de l’ordre de 250 processeurs dans les systèmes inté- Le principe de multiplexage temporel, ou Time Division
grés grand public à l’horizon 2015, comme on peut le voir sur Multiplexing (TDM), est utilisé depuis fort longtemps pour le
la figure 4. transport de la voix sur les lignes téléphonique. Il consiste à
découper une période de temps T en n parties identiques s’il
y a n émetteurs, et à assigner à chaque émetteur T/n unités
de temps. On peut ainsi garantir, si T et n sont bien choisis,
S
un débit maximal et une latence minimale à une communica-
Il est néanmoins probable que l’un de ces processeurs aura
tion.
un rôle de « gestionnaire » de la totalité du système.
50 2 000
Nombre de proc esseurs
Tailles mémoire et logique (relatives à 2007)
45 1 800
40 1 600
1 435
35 1 400
30 1 200
1 023
25 1 000
878
20 800
669
15 526 600
424
10 348 400
268
212
5 161 200
79 101 126
32 44 58
0 0
2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022
Nombre de proc esseurs (axe Y à droite)
Taille logique totale (relative à 2007)
Taille mémoire totale (relative à 2007, axe Y à gauche)
Figure 4 – Prévisions de l’ITRS concernant l’évolution des architectures pour l’électronique grand public
YV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVX
’utilisation de Java dans les systèmes embarqués et temps réel présente des
L particularités, par rapport à d’autres langages, qu’il convient d’analyser.
Notamment, il faut porter une attention spéciale à ce qui lui manque pour répon-
dre aux besoins des systèmes embarqués contraints, dans le but de présenter un
certain nombre de recommandations.
p。イオエゥッョ@Z@ェオゥョ@RPPT
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Tech
S 8 068 − 1
YW
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVX
S jusqu’au code source. Ensuite, le langage Java est conçu pour être indépendant
de la plate-forme, et donc satisfait aux exigences d’indépendance vis-à-vis du
matériel, intéressantes dans une optique d’approvisionnement multisource.
Enfin, sa facilité d’apprentissage (on trouve un grand nombre de programmeurs
déjà formés) et sa robustesse contribuent à une meilleure productivité et à la
réduction des défauts ; elles permettent à l’équipe de développement de se
concentrer sur des activités plus « haut niveau » comme la définition des
composants logiciels.
L’objectif d’AJACS était de définir une technologie ouverte, basée sur une
structuration standard des logiciels embarqués pour l’automobile, qui saurait
conserver tous les avantages mentionnés précédemment du langage Java tout
en le renforçant sur les points importants que sont le temps réel, le déter-
minisme et l’adaptation à des milieux très contraints tels que l’on en trouve dans
le milieu automobile (par exemple, une unité de contrôle électronique avec
256 ko de ROM et 16 ko de RAM). Ces points importants concernent l’environne-
ment de développement, la programmation système, le « multithreading » et la
synchronisation, les exceptions, le modèle d’initialisation des applications, la
gestion de la mémoire et l’interface Java/natif. Si ces préoccupations sont
encore très en amont pour la plupart des applications automobiles, elles concer-
nent déjà certaines applications multimédias et télématiques dans les voitures et
les applications de l’aéronautique ou du temps réel industriel, qui trouveront ici
une description de la problématique d’un environnement Java dédié à l’embar-
qué et/ou au temps réel.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 068 − 2 © Techniques de l’Ingénieur
YX
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVX
Flo
t
de du
Lire pédale Lire
do véh
de frein Régulateur de vitesse boutons RV
nn icu
(fonction utilisateur)
ée le
sd
ev
ite
Régulateur
sse
Contrôle
S
de vitesse du moteur
Sous-fonction
de contrôle du moteur
termes de threads, mémoire, etc.). C’est souvent une caractéristique, telles que l’infodivertissement/multimédia (autoradio, navigation,
sinon une exigence, des applications sûres de fonctionnement (telles téléphone mobile), l’habitacle (tableau de bord, vitres électriques,
que les applications avioniques, automobiles ou spatiales). Les systè- verrouillage centralisé) ou le contrôle du véhicule (contrôleur
mes fermés/statiques permettent l’optimisation de l’empreinte d’injection, transmission, freinage, suspension).
mémoire et donc du coût du matériel pour deux raisons : Cette pénétration a été rendue possible par l’avènement des tech-
— la mémoire est entièrement utilisée, donc les modules seront nologies réseau (ce qu’on appelle le multiplexage dans l’automobile)
dimensionnés au plus juste ; telles que le réseau CAN (Controller Area Network). Un véhicule typi-
— une grande partie des données peut être placée en mémoire que possède une vingtaine d’UCE interconnectées via plusieurs
ROM ou flash, moins chères, plutôt qu’en RAM. réseaux qui reflètent plus ou moins les domaines fonctionnels (châs-
Les langages typiquement utilisés aujourd’hui pour le développe- sis, groupe motopropulseur, carrosserie, infodivertissement).
ment de systèmes embarqués sont : Les UCE sont typiquement conçues et développées par les équi-
— l’assembleur (voir [H 3 178]). Encore maintenant, de nombreux pementiers conformément aux exigences formulées par les cons-
systèmes embarqués sont écrits en assembleur, pas forcément à tructeurs. Jusque récemment, chaque UCE était dédiée à une seule
cause d’un manque d’expérience ou de savoir-faire, mais le plus fonction utilisateur (par exemple, la climatisation) et les équipemen-
souvent pour des raisons économiques : dans beaucoup d’applica- tiers avaient entière liberté pour l’implémentation (matériel et logi-
tions où la complexité logicielle est très faible, l’assembleur permet ciel). Les constructeurs essayent maintenant d’introduire plus de
de réaliser des programmes de taille minimale, donc d’utiliser des flexibilité dans le processus de développement qui permet l’éclate-
composants bon marché ; ment des fonctions utilisateur en sous-fonctions ayant chacune des
— le C (voir [H 3 068]). La plupart des systèmes automobiles par exigences très précises. Deux exemples d’un tel éclatement, les
exemple sont écrits en C. Ce langage est devenu incontournable fonctions utilisateur « affichage » et « régulation de vitesse », sont
dans les années 1990 quand les systèmes électroniques ont gagné présentées sur la figure 1.
en complexité ; À une certaine étape du processus de développement, les sous-
— le C++ (voir [H 3 078] et [H 3 138]), jugé parfois trop complexe fonctions résultantes seront « placées » sur des sous-systèmes
pour être totalement maîtrisé par une large communauté de pro- matériels, les UCE, qui forment l’architecture physique (figure 2).
grammeurs et posant des problèmes difficiles de vérification par L’intention des constructeurs est de pouvoir mener en parallèle les
des outils automatiques, n’a pas réellement percé pour les logiciels tâches de conception fonctionnelle et physique, avec des points de
embarqués complexes ; synchronisation bien définis (tentatives d’allocation physique des
— Ada (voir [H 2 280]). Il est utilisé dans beaucoup de systèmes sous-fonctions).
embarqués complexes comme les applications militaires, avioniques Les constructeurs attendent d’un tel processus de développement
ou spatiales. Le logiciel du lanceur Ariane par exemple est écrit en Ada. les bénéfices suivants : avoir plus de contrôle sur la spécification
des fonctions utilisateur, garder sous contrôle les fonctions permet-
tant une forte différenciation et réduire le temps de développement
1.2 Cas des applications automobiles et le coût du matériel électronique.
À cause de cette tendance, les relations entre constructeurs et
équipementiers commencent à changer. Ils peuvent fournir une UCE
Les véhicules d’aujourd’hui incluent un nombre grandissant de « incomplète » : une plate-forme (matériel/logiciel) qui doit être
systèmes électroniques. Les UCE (unité de contrôle électronique) complétée par le constructeur ou un tiers (par exemple, une UCE
jouent un rôle crucial dans les parties fonctionnelles du véhicule contrôle du moteur sans les sous-fonctions concernant la boîte de
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur S 8 068 − 3
YY
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPVX
A B S T ableau de bord
Mesure Afficher
de la vitesse valeur
S Régulateur
de vitesse
Contrôle
du moteur
Groupe moto-propulseur
vitesse automatique). Les équipementiers peuvent également être faut ajouter bon nombre d’implémentations propriétaires des cons-
sous-traitants pour un module purement logiciel (par exemple, une tructeurs et équipementiers.
fonction utilisateur complète ou toutes les sous-fonctions situées Les spécifications OSEK/VDX incluent OSEK/OS qui définit le
sur une UCE). comportement et les interfaces d’un système d’exploitation temps
D’un autre point de vue, les équipementiers recherchent plus de réel statique (il assure l’exécution et la synchronisation des tâches
flexibilité dans leur processus de développement. La plupart d’entre applicatives et des routines d’interruption), OSEK/OIL qui définit un
eux mettent en place des plates-formes génériques (matériel/logiciel) langage de configuration d’un composant logiciel ou d’une applica-
pour un domaine fonctionnel donné (par exemple, contrôle de clima- tion (définition des tâches, description des messages pouvant être
tisation). Ainsi, une large gamme de produits peut être dérivée facile- envoyés) ainsi que OSEK/COM et OSEK/Network Management pour
ment et à faible coût à partir d’une plate-forme générique en la communication et la gestion du réseau.
l’adaptant rapidement aux exigences d’un projet particulier. Au niveau
OSEK/VDX fournit un canevas standard pour la structuration du
logiciel, les plates-formes génériques sont basées sur un ensemble
logiciel des unités de contrôle distribuées dans les véhicules. Il res-
défini de composants élémentaires qui peuvent être interconnectés de
pecte deux exigences contraignantes des systèmes automobiles men-
différentes façons, dépendant des exigences particulières.
tionnés précédemment : le temps réel et la faible empreinte mémoire,
Toute l’industrie identifie le besoin d’un guide pour réaliser la comme on peut le voir dans ses caractéristiques principales :
transition vers les architectures électroniques avancées. Elle pousse
— c’est un système statique. Toutes les entités sont connues car
à la définition de standards pour les interfaces comme dans l’initia-
déclarées à l’avance. De plus, toutes les structures de données sont
tive OSEK/VDX [2] présentée ci-après. Elle recherche aussi des
définies et initialisées statiquement en utilisant le langage OIL, ces infor-
méthodes d’ingénierie logicielle avancée (basées sur OMT, UML...)
mations sont stockées en mémoire ROM (ou flash) mais pas en RAM ;
et des approches mettant en avant la réutilisation de composants
logiciels (par exemple, programmation orientée objet, génération — il fournit des services de gestion d’interruptions, de synchroni-
automatique de code). sation de tâches, de gestion de priorités bien adaptés aux applica-
tions temps réel strictes.
Toute reproduction sans autorisation du Centre franç ais d’ exploitation du droit de copie est strictement interdite.
S 8 068 − 4 © Techniques de l’ Ingénieur
QPP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPWP
et Sébastien GÉRARD
Chef du laboratoire Ingénierie dirigée par les modèles pour les systèmes embarqués
CEA, LIST / DILS – Gif-sur-Yvette, France
1.
2.
Intérêt d’UML pour le temps réel.................................................
Vue générale d’UML .......................................................................
S 8 070v2 – 2
— 2
S
2.1 Différents diagrammes d’UML ........................................................... — 2
2.2 Modélisation du fonctionnement global d’un système .................... — 3
3. Caractéristiques temps réel qualitatives ................................... — 4
3.1 Modélisation de la concurrence ........................................................ — 4
3.1.1 Concurrence et objets actifs .................................................... — 4
3.1.2 Concurrence et machine à états .............................................. — 5
3.1.3 Concurrence et objet passif ..................................................... — 5
3.2 Modélisation des communications .................................................... — 6
3.2.1 Envoi de message par appel d’opération ............................... — 6
3.2.2 Envoi de message par émission de signal ............................. — 7
3.3 Modélisation du comportement ........................................................ — 7
3.3.1 Machines à états-transitions ................................................... — 8
3.3.2 Diagrammes d’activité ............................................................. — 10
3.3.3 Diagrammes de séquence ....................................................... — 10
3.3.4 Modélisation des actions ........................................................ — 11
4. Caractéristiques temps réel quantitatives ................................ — 12
4.1 Modélisation de propriétés temporelles dans les diagrammes
de séquence ....................................................................................... — 12
4.2 Modélisation de propriétés temporelles dans les diagrammes
d’états ................................................................................................. — 13
5. Conclusion........................................................................................ — 13
Pour en savoir plus.................................................................................. Doc. S 8 070v2
QPQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPWP
QPR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPWP
– description des interactions entre les objets du système : elle Moyennant cet objectif, la construction d’un diagramme de cas
repose sur les diagrammes de séquence, les diagrammes de com- d’utilisation est intéressante pour trois raisons :
munication, les diagrammes globaux d’interaction et les diagram- premièrement, elle permet à un expert d’un domaine de spéci-
mes temporels. Ces différents types de diagrammes fournissent fier un système avec son point de vue métier, et ceci de façon
une vue gros grain de la dynamique du système centrée sur les suffisamment précise pour qu’un développeur puisse exploiter
échanges entre les objets qui le réaliseront. Le plus utilisé est le cette spécification pour construire un système opérationnel ;
diagramme de séquence. deuxièmement, les éléments constituant les diagrammes de
cas d’utilisation (essentiellement acteurs et cas d’utilisation)
Description de structures : forment un moyen d’expression simple et commun aux diffé-
– description de la structure et de l’architecture logique (logi- rentes personnes intervenant dans la vie d’un système (experts
cielle) du système : elle repose principalement sur les diagrammes du domaine d’application, développeurs de systèmes informa-
de classes qui effectuent une typologie des entités constituant le tiques et utilisateurs). Ainsi, des personnes possédant un point
système et qui précisent les relations entre ces différents types de vue différent d’un système peuvent échanger des idées dans
d’entités. Ils peuvent être étendus pour expliciter des notions de le but d’améliorer le développement de ce système ;
composition à l’aide des diagrammes de structures composites. enfin, les cas d’utilisation peuvent servir de base pour valider
Ils sont complétés par des diagrammes d’objets précisant quelles l’implantation d’un système.
instances particulières des classes seront manipulées pour mettre Dans UML, les diagrammes de cas d’utilisation servent principale-
en œuvre le système ; ment à décrire le comportement d’éléments qui peuvent être de natu-
S
– description de la réalisation du système : elle repose sur les res très différentes : système, sous-système, classe, composites…
diagrammes de composants (au sens d’une implantation finale) et Les concepts principaux manipulés dans ces diagrammes sont
les diagrammes de déploiement de ces composants sur l’architec- les acteurs (Actor) et les cas d’utilisation (UseCase) :
ture matérielle supportant le système.
Actor – un acteur est un ensemble cohérent de rôles que
Ces différents diagrammes ont un rôle plus ou moins prépondé- jouent des utilisateurs par rapport à une entité quand ils interagis-
rant dans la modélisation ; c’est pourquoi seuls les diagrammes les sent avec elle.
plus importants dans une optique de la spécification et de la UseCase – un cas d’utilisation décrit le comportement d’un sys-
conception d’un logiciel temps réel ont été retenus ici. Il s’agit des tème ou toute autre entité sémantique sans en dévoiler la structure
diagrammes de cas d’utilisation, de séquences, de classes, de interne.
machines à états et d’activités.
Exemple
La figure 1 décrit un diagramme de cas d’utilisation simplifié d’un
système de régulation. Celui-ci est ainsi composé :
2.2 Modélisation du fonctionnement
d’un bouton marche/arrêt ;
global d’un système d’un moteur sur lequel est appliquée la consigne de couple calcu-
Dans la plupart des approches de génie logiciel basées sur UML, lée par le système ;
ce sont les diagrammes de cas d’utilisation qui sont utilisés au d’un compteur de vitesse qui fournit la vitesse courante du véhi-
niveau système pour en décrire le comportement à un haut degré cule au système ;
d’abstraction. À ce stade du travail, le système considéré est d’un afficheur qui fournit au conducteur l’état de fonctionnement
regardé comme une boı̂te noire. du régulateur.
Maintenir la vitesse
Moteur
Démarrer
Compteur de vitesse
« include »
Afficher l'état
Marche Arrêt
« include »
Arrêter Afficheur
Cas d’utilisation
QPS
S
QPT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
rXPXP
P arler de qualité est le plus souvent trop abstrait. Il semble plus facile d’abor-
der la question de la qualité par la non-qualité. Chacun a pu voir dans la vie
de tous les jours ou dans le milieu professionnel, les effets de la non-qualité. Les
conséquences sont aussi bien au niveau des coûts, des délais que des personnes
et des biens.
Comme exemple grand public, le logiciel Socrate de la SNCF, dont la mise en
œuvre a été laborieuse, a beaucoup compliqué la vie des utilisateurs et des usa-
gers, et a profondément nui à l’image de l’entreprise. L’exemple du premier tir
d’Ariane 5 vient également à l’esprit. Ces deux faits sont connus de tous, en rai-
son de leur importante couverture médiatique, mais de nombreux autres exem-
ples se rencontrent tous les jours et par tout un chacun.
p。イオエゥッョ@Z@ェオゥョ@QYYX
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Mesures et Contrôle R 8 080 − 1
QPU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
rXPXP
Un état d’esprit encore assez répandu dans le domaine du logiciel laisse enten-
dre que la qualité coûte trop cher, retarde le développement, ... et la décision de
réaliser en premier le produit (exécutable) et ensuite le reste (documentation,
tests, etc.) en fonction du temps restant est encore très souvent d’actualité.
En fait, la qualité n’est pas une entité précise et délimitée à un instant du déve-
loppement mais doit faire partie intégrante de la manière d’être, et se faire tout
au long du cycle de vie d’un produit.
Il semble intéressant de préciser que des secteurs industriels, développant des
logiciels sécuritaires comme l’aéronautique par exemple, ont depuis longtemps
mis en place des méthodes répondant à des besoins de rigueur et donc de qua-
lité. L’apparition de standards a permis de quantifier les besoins et les attentes
de chacun et servent de référence au moment des phases d’acceptation.
Depuis quelques années, le concept de qualité totale est apparu sur le marché.
Les entreprises voulant rattraper leur retard se sont lancées dans des recherches
d’amélioration à travers l’ISO 9000, CMM, SPICE, etc. Ces démarches sont loin
S d’être négatives, les apports sont plus que positifs. Il faut cependant signaler des
échecs cuisants, induits le plus souvent par une non-communication interne à
l’entreprise. Faire avancer à marche forcée tout le personnel, sans explication et
sans tenir compte de leur point de vue, est la garantie d’un échec. La mise en
place d’un système qualité propre à une entreprise, ou à un secteur déterminé,
s’il est bien compris et approprié, ne peut être que positive.
Pour faciliter l’approche, et dans un souci de normalisation, il paraît plus sim-
ple de prendre le cycle de vie du logiciel et de passer en revue tous les processus
le constituant pour en faire ressortir les points qualité. La norme internationale
ISO 12207 « Processus du cycle de vie du logiciel » peut servir de trame dans la
suite de la présentation. Cette norme regroupe les activités qui doivent être
mises en œuvre pendant le cycle de vie, en cinq processus de base, huit proces-
sus de support et quatre processus organisationnels.
L’avantage de cette norme est de ne pas se limiter au développement pur du
logiciel, mais de le mettre dans le contexte de l’entreprise. Un autre avantage, qui
peut être déstabilisant au premier abord, est de ne proposer aucun modèle de
cycle de vie, laissant à l’utilisateur la liberté de choix en fonction de son besoin.
1. Processus de base C’est également pendant cette phase que les exigences qualité
(relatives au produit ou à la prestation, au suivi ou à l’acceptation)
envers le fournisseur sont à définir de la façon la plus exhaustive
possible.
1.1 Processus d’acquisition Pour les entreprises mettant en place un système qualité
conforme à l’ISO 9000, cette étape doit être complètement décrite
Sous cette appellation est rassemblé l’ensemble des activités à dans une procédure, qui doit ensuite être appliquée.
réaliser par l’acquéreur. Il faut noter que leur présence comme pro-
cessus à part entière du cycle de vie est relativement récente. Néan- ■ Le suivi
moins, ces activités existaient au sein de l’entreprise. Ce nouvel La seconde phase est le suivi du fournisseur. Cette activité qui doit
éclairage ne doit que les formaliser davantage. courir tout au long du développement est parfois laissée en som-
Ce processus comprend trois grandes phases. meil, le plus souvent par manque de temps ou par excès de
confiance.
■ La contractualisation
L’intervention de l’acquéreur sous la forme de la participation à
Il s’agit de l’initialisation, l’appel d’offres et le contrat. C’est-à-dire des réunions d’avancement régulières, même espacées dans le
de toutes les activités menant à la signature du contrat. temps peut suffire à éviter un écart final que ce soit au niveau du
Cette phase est très importante dans la mesure où elle est la produit ou de sa date effective de livraison.
pierre angulaire de la réussite du futur projet. La qualité ici intervient
à travers le sérieux des études préalables, les critères de choix du Exemple : la spécification du produit demandait : « la possibilité
fournisseur et les décisions prises, la documentation et les comptes d’écrire sur deux écrans de format différent ». Le fournisseur a prévu
rendus de réunions, l’appel à des experts pour des points nouveaux deux configurations différentes, et l’acquéreur de son côté pensait
ou très particuliers. « en simultané ». La reprise finale est très importante, puisqu’elle
demande au minimum une reprise profonde de l’interface utilisateur.
Exemple : si le contrat doit être fait avec une entreprise étrangère, Cette incompréhension aurait rapidement été détectée au cours d’une
il peut être important de contacter un juriste pour connaître les parti- réunion d’avancement ou lors de la relecture des documents techni-
cularités à spécifier dans le contrat. ques.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
R 8 080 − 2 © Techniques de l’Ingénieur, traité Mesures et Contrôle
QPV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
rXPXP
Pour éviter tout litige, la demande de l’acquéreur d’avoir une vue ■ La seconde phase, qui suit le développement du projet, commence
sur le développement doit être spécifiée dans le contrat. par l’élaboration des plans du projet, que ce soit au niveau des
méthodes de développement (choix du cycle de vie, méthode de tra-
■ La réception vail structurée ou à objets), au niveau de la gestion (avec la gestion de
La dernière phase comprend l’acceptation et l’achèvement du projet ou de configuration...), ou au niveau qualité, avec la descrip-
processus. Si l’acceptation est assez classique et régulièrement réa- tion des directives à respecter pour assurer la qualité du projet. Tous
lisée car liée le plus souvent à une clé de paiement, l’achèvement ces plans sont vitaux, ils doivent être relus et validés avant le démar-
pour sa part est plus rare. Il doit être vu comme la conclusion du pro- rage du développement et suivant les clauses du contrat, ils peuvent
jet. Cette étape doit permettre de tirer les enseignements du projet être soumis pour approbation au client ou à un service officiel.
qui se termine. Il y a quelques années de nombreuses entreprises
Exemple : pour les projets aéronautiques, le standard DO-178B est
ont cherché des outils capables de les aider dans les démarrages de
imposé et la fourniture des plans en début de projet, en vue d’une cer-
nouvelles affaires pour diminuer les risques. Ces outils fonctionnent
tification des équipements, est demandée.
tous à partir d’une base de connaissance. Le principal point blo-
quant fut le manque d’informations pour l’enrichir. D’autre part, ces Il est très important de réaliser un planning précis de l’affaire.
outils demandent le réglage de nombreux paramètres avant de four- L’expérience préconise de signaler que la montée de charge sur un
nir un résultat fiable. projet n’est jamais à coût nul. La prise en compte de ce phénomène,
Le côté positif de ces essais est la prise de conscience du risque ainsi que les vacances, les réunions extérieures et les formations
S
inhérent au démarrage de tout projet et de l’importance de garder la envisageables permettront la construction d’un planning réaliste. Le
trace de l’antécédent. raisonnement voulant qu’une personne soit productive sur un projet
huit heures par jour, cinq jours par semaine, cinquante-deux semai-
Exemple : sans aller si loin, l’idée la plus simple est la mise à jour nes par an, peut entraîner des dérives importantes par rapport au
de la liste des fournisseurs. C’est également la décision de ne plus planning initial. Pour ce processus, le niveau de granularité des
sous-traiter, ou alors dans des conditions très particulières, certains tâches reste encore assez faible, le but recherché étant l’évaluation
types de projets. des différentes enveloppes. Les activités doivent toutes être listées
Quels qu’ils soient, ces enseignements sont toujours enrichis- et placées dans le temps. Un affinage est à mener par le processus
sants pour le futur et la pérennité de l’entreprise. de management.
Cette phase couvre l’exécution et la maîtrise des activités du four-
nisseur. Le point le plus important est la notion de maîtrise. Le four-
1.2 Processus de fourniture nisseur ne doit jamais se laisser porter par l’avancement du projet,
mais à partir du planning initial, des revues et des évaluations
menées régulièrement, produire un nouveau planning, mais surtout
Ce processus est le pendant exact du processus d’acquisition. Il comprendre et, si possible, corriger les dérives.
regroupe les activités du fournisseur.
Exemple : les retards sont dus à :
Il peut également être découpé en trois phases.
— une épidémie de grippe (30 % des effectifs atteints pendant
■ La première doit contenir l’initialisation, la réponse à l’appel 15 jours) (c’est une cause non prévisible) ;
d’offres et se poursuivre jusqu’à la signature du contrat. Cette étape — un produit non disponible dans les temps (c’est une cause exté-
est vitale pour la suite du projet et même dans certains cas pour la rieure prévisible) ;
survie de l’entreprise. Le premier point est la décision de répondre, — un manque de rigueur dans les développements (c’est une cause
qui ne doit jamais se faire à la légère. Comme contre-exemple par- intérieure).
fait, il est facile d’imaginer un ordre qui arrive de la direction et qui
balaie toutes les contradictions. Autre cas de figure, pour la survie Quelle que soit la cause, il est important de la déterminer et de la
de l’entreprise, il faut prendre ce contrat et le mener à son terme corriger et même si possible de l’éviter.
contre vents et marées, si nécessaire. Il est important de signaler Exemple : la livraison est prévue le 15 mars. Le 15 février, il reste
que même dans ces cas extrêmes, les études doivent être menées « si tout se passe bien » 40 jours de travail non parallélisables. Les
avec le plus grand soin. Comme dans le cas de l’acquéreur, la signa- miracles étant fort rares dans une entreprise, il convient peut-être de
ture du contrat portant des clauses particulières ou avec des clients songer à prévenir le futur acquéreur ou, tout au moins, de décider la
nouveaux peut demander l’aide d’experts. politique à suivre.
Exemple : 1. Il est important de signaler que la propriété des con- Pour des raisons politiques ou financières (une clé de paiement), il
naissances et du savoir-faire n’est pas régie de façon identique dans peut être décidé de ne pas immédiatement prévenir l’acquéreur du
tous les pays. retard. C’est une arme à double tranchant dont il faut savoir se servir.
2. Au moment de la réponse à l’appel d’offres, il arrive souvent que
■ La dernière phase de ce processus, est la livraison du produit, la
la demande ressemble beaucoup à une autre affaire terminée ou en
fourniture. Il est très important de s’assurer que tout est conforme et
cours de réalisation. Il suffit alors de présenter la même proposition.
complet avant de le livrer. Dans le cas contraire, le flou peut être vu
Il convient quand même de se méfier de plusieurs points : par l’acquéreur comme un manque de savoir-faire et donc comme
— l’ensemble des petits détails formant le delta entre les deux affai- une non-qualité.
res crée des différences importantes ;
— le contrat initial de la précédente affaire a pu être renégocié pour Exemple : il faut éviter de livrer au client, un produit comprenant
rendre le projet réalisable (solution technique non viable, ...) ; plusieurs logiciels dans des versions incompatibles ou avec une do-
— les dépassements de budget sont importants. cumentation périmée.
Ces points n’étant pas toujours présentés sous leur vrai jour, une Le fait qu’à la mise sous tension du système, rien ne se passe, est
attention particulière est de mise lors de la reprise de travaux antérieurs. du plus mauvais effet et correspond à une absence de contrôle de
sortie et toujours à de la non-qualité.
La réutilisabilité, très à la mode actuellement avec le développe-
ment des méthodes à objets, est à prendre en considération dans ce Exemple : à la mise sous tension d’un oscilloscope électronique,
processus. La décision de faire un logiciel, une bibliothèque ou l’écran reste muet. Le dévissage de la face arrière met en évidence
même un composant réutilisable n’est pas neutre. Il est admis que l’absence de circuit de traitement des signaux. L’acquéreur vient
les coûts du premier développement sont plus élevés. Il convient d’acheter à prix d’or une boîte vide. La suite est facilement envisagea-
d’en tenir compte au moment du choix. ble et surtout compréhensible.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur, traité Mesures et Contrôle R 8 080 − 3
QPW
S
QPX
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPYP
Contrefaçon de logiciel
S
Avocat, Counsel, droit des NTIC, SCP Courtois-Lebel
Chargé d’enseignement à l’université de Paris-II
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur S 8 090 − 1
QPY
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPYP
S
contrefaçon du logiciel, tant par les experts que par les tribunaux.
Mais avant d’aborder l’aspect technique, la notion de contrefaçon étant
d’essence juridique, il convient de donner au lecteur qui n’est pas nécessaire-
ment un juriste quelques notions de droit sur le sujet.
L’approche juridique en matière de contrefaçon de logiciel La propriété littéraire et artistique désigne des droits exclusifs et
consiste à aller du général vers le particulier, afin d’appréhender temporaires d’exploitation accordés par l’État aux artistes et créa-
les notions juridiques indispensables, s’agissant de propriété teurs d’œuvre de l’esprit [4]. En droit français, le régime juridique de
intellectuelle, de droit d’auteur et de protection des logiciels protection du logiciel est celui de la propriété littéraire et artistique,
contre la contrefaçon. donc du droit d’auteur. Ainsi, sont considérés comme des œuvres
de l’esprit au sens du Code de la propriété intellectuelle « les logi-
Il nous semble donc important d’exposer la matière dans son ciels, y compris le matériel de conception préparatoire » [5].
ensemble, puis de présenter des notions connexes telles que le
savoir-faire et le secret des affaires. Cette situation nous conduit logiquement à présenter plus spécifi-
quement la propriété littéraire et artistique avant d’exposer le cas
particulier des logiciels et de la contrefaçon.
1.1 Propriété intellectuelle
En juillet 1992, les règles applicables à la propriété intellectuelle 1.2 Propriété littéraire et artistique
en droit français ont fait l’objet d’une codification au sein du Code de
la propriété intellectuelle. Ce code comprend deux grandes parties,
une première consacrée à la propriété littéraire et artistique (droit La propriété littéraire et artistique comprend le droit d’auteur et
d’auteur et droits voisins) et une seconde consacrée à la propriété les droits voisins. S’agissant du premier, il désigne l’ensemble des
industrielle (notamment le brevet). prérogatives, d’ordre moral et d’ordre patrimonial, reconnu aux
auteurs d’œuvre de l’esprit. Les seconds désignent les prérogatives
La définition de la propriété, en tant que telle, se trouve dans le reconnues aux auxiliaires de la création littéraire et artistique que sont
Code civil [1] qui dispose que la propriété « est le droit de jouir et de les artistes interprètes, les producteurs de phonogramme et de vidéo-
disposer des choses de la manière la plus absolue, pourvu qu’on gramme, ainsi que les entreprises de communication audiovisuelle.
n’en fasse pas un usage prohibé par les lois ou par les règlements ».
Il s’agit donc d’un monopole, d’une exclusivité, reconnu à un indi- Depuis la loi no 98-536 du 1er juillet 1998, il convient d’y ajouter les
vidu sur une chose. Ainsi, le Code civil présente la propriété comme droits spécifiques dont peuvent être investis les producteurs de
un droit à caractère perpétuel et absolu. La propriété est d’ailleurs base de donnée [6].
un droit constitutionnel [2]. Le caractère perpétuel du droit de pro- S’agissant de logiciels, il ne saurait être question, bien entendu,
priété implique notamment qu’il ne s’éteint pas par le non-usage [3]. que du droit d’auteur.
Cependant, la limite du droit de propriété est atteinte en cas
d’abus de droit. Le concept d’abus de droit vise les hypothèses dans La propriété littéraire et artistique confère donc aux auteurs de
lesquelles une personne exerce un droit dont elle est le légitime logiciels un ensemble de prérogatives qui sont présentées comme
détenteur, mais avec la finalité de nuire à autrui. autant de « droits ». C’est la raison pour laquelle on parle parfois des
« droits de l’auteur ».
De manière générale, la propriété désigne toutes les catégories de
droits exclusifs et temporaires accordés par l’État pour l’exploitation Plus précisément, c’est la loi no 85-660 du 3 juillet 1985, confir-
de créations intellectuelles. La propriété intellectuelle comprend mant une jurisprudence antérieure de la Cour de cassation, qui
deux volets : le droit de la propriété littéraire et artistique d’une part organise l’inclusion des logiciels d’ordinateurs dans la liste des
et le droit de la propriété industrielle d’autre part. œuvres protégeables par le droit d’auteur.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 090 − 2 © Techniques de l’Ingénieur
QQP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPYP
Au plan international, il convient de se référer à la convention de La directive européenne 91/250/CEE du 14 mai 1991 concernant
Berne du 9 septembre 1886, plusieurs fois révisée, s’agissant d’un les logiciels fait état de la « création intellectuelle propre à son
texte fondamental ayant concouru à l’harmonisation des législa- auteur » [9]. Ainsi, une œuvre est dite originale lorsqu’elle porte
tions au plan international. Elle est administrée par l’Organisation l’empreinte de la personnalité de son auteur.
mondiale de la propriété intellectuelle (OMPI).
Le Code de la propriété intellectuelle protège le droit des auteurs,
Le premier article du Code de la propriété intellectuelle dispose que : sur toutes les œuvres de l’esprit, quel qu’en soit le genre, la forme
d’expression, le mérite ou la destination.
« L’auteur d’une œuvre de l’esprit jouit sur cette œuvre, du seul
fait de sa création, d’un droit de propriété incorporel exclusif et Ainsi, l’originalité ne doit pas être assimilée avec le mérite,
opposable à tous. l’apport ou l’intérêt d’une œuvre.
Ce droit comporte des attributs d’ordre intellectuel et moral ainsi Nous verrons (§ 1.3) comment cette caractéristique d’originalité
que les attributs d’ordre patrimonial (…). est appréciée concernant la propriété des logiciels.
L’existence ou la conclusion d’un contrat de louage d’ouvrage ou
de service par l’auteur d’une œuvre de l’esprit n’apporte aucune 1.2.3 Notion d’auteur
dérogation à la jouissance du droit reconnu à l’alinéa 1er ».
Ce texte fondamental nous permet d’évoquer les principaux L’auteur est celui dont la personnalité est véhiculée par
S
concepts suivants : l’œuvre, une fois le processus de création achevé.
— notion d’œuvre de l’esprit ;
— caractéristique de l’œuvre de l’esprit protégeable ; N’est donc pas auteur la personne qui se contente d’actes d’exé-
— titularité des droits d’auteur ; cution, de suivre des instructions préétablies, par exemple un mode
d’emploi.
— droits patrimoniaux ;
— droit moral ; Il en est également ainsi de la personne qui est à l’origine de l’idée
— durée des droits ; ou du thème.
— procédures et sanctions. Exemple : la Cour de cassation a pu juger que n’était pas un auteur
le client d’un architecte ayant précisé sa commande par des esquisses
sommaires établies gratuitement par un autre architecte ami [10].
1.2.1 Notion d’œuvre de l’esprit
Ainsi, à la question de l’identification du titulaire d’un droit
Une œuvre de l’esprit consiste en une création intellectuelle. d’auteur, le Code de la propriété intellectuelle répond que la qualité
L’œuvre de l’esprit est susceptible d’appropriation au sens de la pro- d’auteur appartient, sauf preuve contraire, à celui ou ceux sous le
priété littéraire et artistique lorsqu’elle résulte d’une activité créa- nom de qui l’œuvre est divulguée [11].
tive. Dès lors, le droit d’auteur ne saurait être acquis du fait de la
simple mise en œuvre d’un savoir-faire, dans le sens où la loi protège À ce titre, la jurisprudence considère que la qualité d’auteur d’une
l’œuvre de l’esprit et non la performance technique matérielle [7]. œuvre ne peut être attribuée à une personne physique que s’il est
établi que cette personne a personnellement réalisé l’œuvre [12].
Par exemple, il a été jugé qu’un travail de compilation d’informa-
tion n’est pas protégé en soi [8]. Il a également été jugé que la qualité d’auteur ne peut être
reconnue au simple exécutant matériel. En effet, même si elle a
Enfin, la notion d’œuvre de l’esprit semble supposer que l’auteur effectué un lourd travail, une personne ne saurait en revendiquer la
se représente un résultat qu’il cherche à atteindre, et que de ce fait, qualité d’auteur sans apporter la preuve de son activité créatrice
il exerce un minimum de maîtrise intellectuelle du processus créatif. personnelle [13].
Cette maîtrise du processus de création et la conscience du résul- Le monopole institué par le droit d’auteur ne bénéficie en principe
tat à atteindre posent bien entendu la question des œuvres qu’aux personnes physiques. Cette présomption de titularité bénéfi-
« créées » à l’aide d’ordinateurs (les fameux L4G, langages de cie à tous les auteurs personnes physiques dont le nom a été porté
4e génération) s’agissant, dès lors, de logiciels qui créent ou à la connaissance du public par un quelconque moyen.
contribuent à créer d’autres logiciels. Ce type de processus exige
une analyse, au cas par cas, de la démarche de création. Ainsi, sous réserve de l’exception de l’œuvre collective (§ 1.3.5),
une personne morale ne peut pas être investie à titre originaire du
La notion d’œuvre de l’esprit pose la question de la matérialisa- droit d’auteur.
tion ou encore de la concrétisation du travail créatif de l’auteur. Cela
nous conduit à rappeler que l’idée, en tant que telle, ne peut pas être La Cour de cassation rappelle ce principe et énonce qu’une per-
susceptible d’appropriation, en application du principe fondamental sonne morale ne peut être investie à titre originaire des droits de
selon lequel les idées sont de libre parcours. l’auteur que dans le cas où une œuvre collective, créée à son initia-
tive, est divulguée sous son nom [14].
Pour bénéficier de la protection par le droit d’auteur, l’idée Réservons cependant le cas des logiciels créés par des salariés
doit donc être formalisée, donner lieu à la création effective qui est évoqué spécifiquement au paragraphe 1.3.3.
d’une œuvre de l’esprit, devant remplir un certain nombre de cri-
tères pour être protégeable.
1.2.4 Notion de droit moral
Le Code de la propriété intellectuelle ne protège pas les idées
exprimées, mais seulement la forme originale sous laquelle elles Le droit de propriété intellectuelle comporte des attributs d’ordre
sont présentées. Par exemple, un synopsis, une méthode ou encore un intellectuel et moral, ainsi que les attributs d’ordre patrimonial [15].
concept dès lors qu’ils ne sont pas formalisés ne sont pas des créations
intellectuelles protégeables en tant que telles par le droit d’auteur. Les droits moraux de l’auteur résident dans la possibilité d’inter-
dire et de se réserver les prérogatives suivantes :
— droit de divulgation ;
1.2.2 Œuvres de l’esprit protégeables
— droit de repentir et de retrait ;
Est protégeable l’œuvre de l’esprit qui présente la caractéristique — droit à la paternité ;
d’être originale. — droit au respect de l’œuvre [16].
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur S 8 090 − 3
QQQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPYP
Le droit moral présente en outre un certain nombre de caractéris- 1.2.6 Durée des droits
tiques telles que l’unité du droit moral, son caractère personnel, son
caractère d’ordre public, perpétuel, inaliénable, insaisissable,
La protection issue du droit d’auteur bénéficie aux auteurs durant
imprescriptible.
toute leur vie. Au décès de l’auteur, cette protection persiste aux
Nota : pour une étude plus spécifique de la notion de droit moral, nous invitons le lec- bénéfices des ayants droit pendant l’année civile en cours et les
teur à se reporter à la bibliographie [Doc. S 8 090].
70 années qui suivent [21]. Le logiciel ainsi que le matériel de
conception préparatoire sont définis pour la même durée que celle
que prévoit le droit commun, à savoir 70 ans [21].
1.2.5 Notion de droit patrimonial
Notons ici que différentes réglementations et règles d’application
se sont succédé dans le temps, ce qui peut poser, selon les cas, des
1.2.5.1 Cas général difficultés d’application de la loi dans le temps. Ajoutons que cette
notion de 70 ans est assez théorique quand on connaît la rapidité
d’obsolescence du matériel informatique.
Les droits patrimoniaux sont la matérialisation de la vocation
de l’auteur à tirer profit de la communication de son œuvre au
public [17].
1.3 Propriété des logiciels
S Il s’agit en l’occurrence des droits de reproduction, de représenta-
tion et de suite.
1.3.1 Rappel de quelques définitions techniques
Chacun de ces droits est divisé en différentes prérogatives. Toute
représentation ou reproduction intégrale ou partielle faite sans le
Un logiciel se définit comme un ensemble de programmes, eux-
consentement de l’auteur est illicite. Il en est de même pour la tra-
mêmes constitués de séquences d’instructions adressées à une
duction, l’adaptation ou la transformation, l’arrangement ou la
machine, en vue du traitement d’une information donnée.
reproduction par un procédé quelconque [18].
Le terme logiciel recouvre un ensemble de produits, allant du logi-
ciel d’exploitation, ou encore logiciel de base, jusqu’au logiciel
1.2.5.2 Cas particulier des logiciels d’application utilisé par l’utilisateur final. Sont compris les interfa-
S’agissant des logiciels, la loi n’applique pas la distinction habi- ces, les outils ou même les patchs qui sont des morceaux de logiciel
tuelle entre le droit de reproduction et le droit de représentation, à vocation correctrice.
mais énonce des prérogatives constitutives du droit d’exploitation Dans la pratique, les logiciels se divisent en deux catégories com-
de l’auteur du logiciel [19]. Ces prérogatives consistent en la repro- prenant d’une part les progiciels, c’est-à-dire des programmes stan-
duction, l’adaptation et la distribution du logiciel. Si la représenta- dards s’adressant à un ensemble d’utilisateurs présentant des
tion ou l’utilisation du logiciel ne sont pas expressément besoins similaires, et d’autre part les logiciels dits « spécifiques »,
mentionnées, il est admis qu’elles font partie des prérogatives de c’est-à-dire qui ont été conçus sur commande, par un entrepreneur
l’auteur. chargé de réaliser un programme couvrant les besoins spécifiques
d’un utilisateur déterminé.
Le Code de la propriété intellectuelle prévoit que le droit d’exploi-
tation appartenant à l’auteur d’un logiciel comprenne le droit
d’effectuer et d’autoriser :
1.3.2 Régime de propriété des logiciels
— la reproduction permanente ou provisoire d’un logiciel en tout
ou partie par tout moyen et sous toute forme ; dans la mesure où le
Rappelons que les logiciels sont considérés comme des œuvres
chargement, l’affichage, l’exécution, la transmission ou le stockage
de l’esprit, y compris les matériels de conception préparatoires [5].
de ce logiciel nécessitent une reproduction, ces actes ne sont possi-
Dès lors et en raison de l’absence de protection des idées, les fonc-
bles qu’avec l’autorisation de l’auteur ;
tions d’un logiciel en tant que telles ne sont pas protégées [22].
— la traduction, l’adaptation, l’arrangement ou toute autre modi-
fication d’un logiciel et la reproduction du logiciel en résultant ; Les matériels de conception préparatoires désignent les études,
les analyses fonctionnelles, les spécifications générales et
— la mise sur le marché à titre onéreux ou gratuit, y compris la détaillées, les analyses organiques et les dossiers d’architectures
location, du ou des exemplaires d’un logiciel par tout procédé. techniques, le modèle conceptuel de données. Il s’agit donc de tous
Toutefois, la loi prévoit que les actes précités ne soient pas soumis les travaux préparatoires et nécessaires à la réalisation d’un logiciel.
à l’autorisation de l’auteur lorsqu’ils sont nécessaires pour permet- Il doit être noté que le régime juridique de la propriété du logiciel
tre l’utilisation du logiciel, conformément à sa destination, par la doit être distingué de celui du bien qui lui sert de support. En consé-
personne ayant le droit d’utiliser, y compris pour corriger les erreurs quence, le fait d’acquérir le support matériel d’un logiciel (disquette,
(sauf si l’auteur s’est réservé par contrat le droit de corriger lui- CD-Rom, DVD) ne transfert à l’acquéreur aucun droit sur le logiciel,
même ces erreurs). œuvre de l’esprit. À ce stade, il ne faut pas parler de « vente » de
De surcroît, la personne ayant le droit d’utiliser le logiciel peut, logiciel, mais de vente d’un support associé à la « cession » d’un
sans l’autorisation de l’auteur observer, étudier ou tester le fonction- droit d’utilisation.
nement de ce logiciel afin de déterminer les idées et principes qui Du fait de leur appartenance aux œuvres de l’esprit, protégées par
sont à la base de n’importe quel élément du logiciel, et ce, le droit d’auteur, les logiciels :
lorsqu’elle effectue toute opération de chargement, d’affichage, — bénéficient d’une protection qui leur est acquise de façon auto-
d’exécution, de transmission ou de stockage du logiciel qu’elle est matique dès la création indépendamment de toutes formalités ou de
en droit d’utiliser. tout dépôt (pour autant, un dépôt dans un organisme agréé peut
Enfin, la reproduction du code du logiciel ou la traduction de la s’avérer très utile (§ 5)) ;
forme de ce code n’est pas soumise à l’autorisation de l’auteur, pour — sont protégés au moyen de sanctions civiles et pénales qui
effectuer une copie de sauvegarde ou lorsque la reproduction ou la peuvent être très dissuasives dans un contexte où la loi institue au
traduction est indispensable pour obtenir les informations nécessaires bénéfice des auteurs de logiciels des procédures particulières pour
à l’interopérabilité d’un logiciel créé de façon indépendante avec faire constater et sanctionner les atteintes à leurs droits ;
d’autres logiciels, le tout sous un certain nombre de réserves qui — sont protégés dans leur forme d’expression, et non quant aux
sont énoncées dans le code de la propriété intellectuelle [20]. idées et principes qui sous-tendent leur création.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 090 − 4 © Techniques de l’Ingénieur
QQR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXPYP
S
ments excessifs qu’ils pourraient être tentés de souscrire, notam-
Le texte vise « les logiciels et leur documentation « créés » dans ment au cours des périodes où ils ont peu de succès. Cette règle ne fait
l’exercice de leurs fonctions ou d’après les instructions de leur toutefois pas obstacle à la cession de droits d’auteur sur une ou plu-
employeur » par un ou plusieurs salariés. sieurs créations futures identifiées, mais non encore créées au jour de la
conclusion du contrat. Ce ne saurait donc être un élément déterminant ;
Est réputée faite dans l’exercice de ses fonctions toute création de — technique : par essence, les informaticiens d’une SSII passent
logiciel effectuée par un salarié, dans l’exécution d’un contrat de tra- d’un client à un autre et réutilisent au moins leur savoir-faire si ce
vail comportant une mission inventive qui correspond aux fonctions n’est des parties entières de « codes ». En changeant de chantier, il
effectives d’études et de recherches qui lui sont explicitement con- pourrait leur être reproché d’être contrefacteurs si la propriété du
fiées. Elle appartient donc à l’employeur [25]. logiciel était par défaut dévolue au client. Là encore, la difficulté peut
être contournée en autorisant la SSII à réutiliser le « savoir-faire »
Par ailleurs, il est nécessaire que le créateur du logiciel ait bien la
acquis durant le chantier.
qualité d’employé au moment de la création, ce qui est effective-
ment le cas de l’employé d’une société qui aurait « réfléchi » au logi- Pour conclure, nous attirons l’attention du lecteur sur le fait
ciel avant d’être embauché et de passer au stade de la réalisation que lorsqu’une société fait développer un logiciel spécifique par
formelle [26]. un prestataire informatique et qu’elle souhaite en avoir la pro-
Il a également été jugé qu’un logiciel, créé par un salarié en priété, il est impératif qu’elle fasse inscrire dans le contrat que la
dehors de ses heures de travail à l’aide du matériel appartenant à propriété du logiciel lui est transférée, en respectant les formes
l’employeur, est la propriété de ce dernier puisqu’il a été élaboré imposées par la loi.
avec son « concours » [27].
1.3.5 Œuvre collective et œuvre de collaboration
1.3.3.2 Effets
Pour les lecteurs que cela intéresse et sans entrer dans les détails,
Si l’intégralité des droits patrimoniaux est dévolue à l’employeur,
il n’est pas inutile de faire la différence entre ces deux notions.
il convient de considérer que l’auteur reste investi de son droit
moral qui est d’ailleurs imprescriptible et incessible. Est dite collective l’œuvre créée sur l’initiative d’une personne
physique ou morale qui l’édite, la publie et la divulgue sous sa direc-
Nota : la doctrine est presque unanime sur ce point [28]. tion ou sous son nom, et dans laquelle la contribution personnelle
Exemple : c’est ainsi qu’un salarié pourrait s’opposer à ce que le des divers auteurs participant à son élaboration se fond dans
site web qu’il a réalisé soit utilisé à des fins pornographiques ou, à plus l’ensemble en vue duquel elle est conçue, sans qu’il soit possible
forte raison, pédophiles. d’attribuer à chacun un droit distinct sur l’ensemble réalisé [31]. À
titre d’exemple, les dictionnaires et les encyclopédies peuvent être
À l’exception de ce cas particulier, il apparaît que s’agissant de qualifiés d’œuvres collectives.
logiciels, les droits dits « moraux » ne soient que très formels et S’agissant d’un logiciel, il peut être qualifié d’œuvre collective dès
qu’en réalité, l’employeur qui dispose de la totalité des droits patri- lors qu’il a été réalisé à l’initiative d’une personne physique ou
moniaux puisse disposer du logiciel comme il le souhaite et, s’il le morale, et qu’il résulte de la contribution de plusieurs collaborateurs
veut, puisse le modifier. qui ont participé à son élaboration, s’il a été publié ou édité sous le
nom de la personne qui a pris l’initiative de sa création.
1.3.3.3 Aménagements possibles
L’œuvre collective est la propriété de la personne physique ou
Le Code de la propriété intellectuelle prévoit que des dispositions morale sous le nom de laquelle elle est divulguée [32].
statutaires ou des stipulations contraires à la dévolution des droits
sur le logiciel au profit de l’employeur puissent être organisées. Le Code de la propriété intellectuelle définit l’œuvre de collabora-
tion comme une œuvre à la création de laquelle ont concouru plu-
Ainsi, le contrat de travail peut mettre en place une solution plus sieurs personnes physiques [31].
favorable au salarié. Il n’est, en revanche, pas possible de restreindre À titre d’exemples, peuvent être considérés œuvres de collabo-
les droits de celui-ci, notamment d’organiser la cession de son droit ration les logiciels de jeux et d’autres œuvres multimédias dans
moral, par définition inaliénable. lesquelles la partie graphique et la partie informatique, bien
En substance, si l’employeur bénéficie d’une présomption d’attri- qu’étroitement imbriquées, peuvent être dissociées quant à la
bution des droits de l’auteur, il convient tout de même de noter que le contribution respective des divers auteurs.
salarié qui fait commercialiser son propre logiciel par des concurrents
de la société qui l’emploie, commet un acte de concurrence déloyale, L’œuvre de collaboration est la propriété commune des coau-
constitutif d’une faute lourde justifiant son licenciement [29]. teurs qui doivent exercer leurs droits d’un commun accord.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur S 8 090 − 5
QQS
S
QQT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXQPP
Spécifications fonctionnelles
Génération automatique de code
par Henri BRENIER
Ingénieur de l’École spéciale de mécanique et d’électricité (ESME)
Consultant en génie automatique
Time) [2] [3] pour les systèmes de contrôle. En France, le Grafcet était utilisé
déjà depuis de nombreuses années pour la modélisation des automatismes
séquentiels.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur S 8 100 − 1
QQU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXQPP
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 100 − 2 © Techniques de l’Ingénieur
QQV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXQPP
1. Contexte industriel
Analyse Mise en route
Spécification Maintenance
1.1 Cycles de vie
et modes de développement Conception
Intégration
préliminaire
Il est habituel, surtout dans le monde anglo-saxon, de parler du
« paradigme » du cycle de vie. « Paradigme » est un mot d’origine Conception Tests
grecque déjà employé (dans le sens qu’on lui donne encore main- détaillée unitaires
tenant) au IVe siècle avant notre ère par le philosophe Platon. Un
« paradigme » est alors une sorte de modèle servant de guide et de
repère à une activité humaine. Dans le cas qui nous occupe, le Codage
paradigme du cycle de vie décrit les épisodes (appelés aussi étapes
ou phases) d’un déroulement temporel se rapportant à la création
et à l’exploitation d’un bien (qui, dans notre cas, est de nature
industrielle). Le cycle de vie commence à la naissance du projet et Figure 1 – Cycle de vie en V des automatismes industriels
S
se termine à la disparition physique du bien. Le caractère cyclique
se trouve dans la reproduction des mêmes épisodes pour tous les
biens d’un même type.
nouveaux concepts de développement. Cette nouvelle manière de
travailler entraîne une nouvelle philosophie du cycle de vie. Celui-ci
1.1.1 Cycles de vie en V se dégage du cadre trop rigide où il était enfermé. Activités et pha-
ses sont désolidarisées. Ces dernières portent des noms différents :
Le cycle en V possède de nombreuses variantes. Nous présentons
perception, élaboration, construction, transmission. Les activités
sur la figure 1 sa version la plus élémentaire. Dans cette représen-
peuvent chevaucher plusieurs phases avec des intensités variables.
tation, la phase de codage est placée au creux du V et marque le
Le cycle de vie d’UML (figure 2) se présente alors sous la forme d’un
passage entre deux périodes de développement de type différent.
tableau à double entrée : les colonnes correspondent aux phases et
La branche descendante du V est associée à des phases de
les lignes aux activités.
conception tandis que la branche montante est dédiée à la réalisa-
tion. Cette présentation a l’avantage d’établir virtuellement un lien
de correspondance entre les phases situées sur une même ligne
horizontale, celle de droite pouvant être considérée comme la 1.2 Cultures industrielles concernées
réponse à l’attente exprimée par celle de gauche.
Les spécifications fonctionnelles des systèmes de contrôle
1.1.2 Cycle de vie UML concernent un grand nombre de types d’industries. Elles se rap-
portent à deux grandes catégories de produits :
Le cycle en V est un concept ancien. Il a le grand mérite de struc-
turer les étapes de développement et de favoriser de bonnes habi- — les systèmes de contrôle inclus dans des produits de série,
tudes de travail. Mais des réflexions conduites à propos d’UML, et proposés sur le marché ;
dans le cadre des systèmes de gestion, ont permis l’émergence de — les automatismes industriels des outils de production.
Phases
Modélisation
Spécifications
Analyse et design
Implémentation
Tests
Déploiement
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur S 8 100 − 3
QQW
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXQPP
Modélisation/modifications
Spécifications Simulation
Modèle
Spécifications OK
Modifications
Prototypage Débogage Génération
automatique
Prototype OK
Modifications Code
exécutable
Vérifications Débogage
Code OK
S
Figure 3 – Utilisation d’un langage
de modélisation adapté
1.2.1 Développements temps réel La programmation par blocs fonctionnels ouvre des perspectives
qui seront généralisées par la norme CEI 61499.
Les modules intégrés aux produits grand public sont caractérisés Les systèmes numériques de contrôle-commande (SNCC) et les
avant tout par un effet de série. Il convient alors de réduire les coûts ensembles hardware /software proposés sont les matériels de base
de production et d’optimiser les performances. En contrepartie, les utilisés en instrumentation, ou autrement dit dans le contexte des
coûts de développement sont amortis sur des grandes quantités et industries de processus. L’ensemble composé du logiciel LabView
autorisent des budgets conséquents. À chaque application est dédié [S 8 205] et des cartes électroniques de National Instrument
un module spécifique qui doit être étudié complètement sous les constitue une proposition originale dont le succès ne se dément pas.
aspects hardware et software.
Les développeurs temps réel ont été parmi les premiers utilisa-
teurs d’ateliers de génie logiciel. L’analyse et la spécification 1.3 La demande en matière
fonctionnelle possèdent un caractère technique élevé. Suivant les
applications, différents environnements sont utilisés. D’une
d’outils de modélisation
manière non exhaustive, nous pouvons citer :
Dans le contexte de l’assistance par ordinateur, un atelier de déve-
— des environnements s’appuyant sur des langages impératifs loppement n’est utile que s’il permet de passer insensiblement et
comme Statecharts ou ESTEREL associés pour la définition de la d’une manière continue du modèle de spécification au prototype
logique câblée, avec le langage VHDL ; puis au code exécutable (figure 3). Le principe de base est de ne pas
— des ateliers comme Object GEODE (qui s’appuie sur le demander à l’utilisateur de recommencer sous une autre forme, un
langage SDL) ou SCADA (qui s’appuie sur le langage synchrone travail déjà effectué. D’une manière concrète, cela signifie que le
Lustre) ; modèle fonctionnel permette la génération de code.
— une émergence d’environnements s’appuyant sur UML. Cependant, l’outil de spécification fonctionnelle doit tout d’abord
posséder les qualités demandées pour ce genre d’activité,
c’est-à-dire :
1.2.2 Automatismes industriels et instrumentation
— proposer une approche naturelle, graphique et abordable par
Il est de tradition de différencier les industries manufacturières des non-spécialistes de la programmation ;
des industries de processus. Ce distinguo s’appuie sur ce qui les — posséder une aptitude à modéliser tous les aspects rencontrés
sépare, à savoir le caractère principalement séquentiel ou continu dans les applications (c’est-à-dire les systèmes hybrides) ;
de leurs chaînes de production. Dans la pratique, les applications — permettre l’obtention de modèles simulables.
présentent un caractère hybride et ne sont pas fondamentalement Pour que les modèles de spécification permettent la génération
différentes. Les cycles de vie et les problèmes techniques, de code, ils doivent induire une structure d’exécution pertinente.
financiers, administratifs rencontrés lors des développements sont Le langage de modélisation utilisé doit donc :
similaires. Cependant, les différences culturelles sont encore
— s’appuyer sur un ensemble bien défini de concepts ;
vivaces et ces deux types d’industries utilisent des équipements et
— déboucher sur des modèles non ambigus, précis et concis ;
des outils de développement propres à leur discipline.
— permettre des vérifications de cohérence et de consistance ;
L’automate programmable industriel (API) [S 8 015] est le maté- — être susceptible de supporter les techniques de preuves
riel de base des industries manufacturières. La norme CEI 61131-3 formelles.
[S 8 030] est une norme de programmation des API. Elle propose
Toutes ces qualités doivent se retrouver dans un seul et même
des langages de programmation graphiques et textuels. Le langage
langage ! A priori, on pourrait penser que la rigueur des concepts
SFC (Sequential Function Chart) est un langage sémantiquement
et la convivialité de l’approche graphique sont les deux qualités les
identique au Grafcet mais considéré sous l’angle de la program-
plus difficiles à concilier. En fait, de nombreux langages tels que
mation (et non de la spécification). Les possibilités offertes par la
Grafcet, Statecharts, le langage G de LabView, etc., parviennent à
norme sont plus étendues que celles proposées par les ateliers des
cette alliance. Mais ces langages sont spécialisés et leur approche
constructeurs.
applicative est verticale et non pas horizontale. Le défi de tels lan-
Certains éléments de la norme (définition des tâches et des prio- gages se trouve donc posé en terme d’alliance entre universalité et
rités) rapprochent la programmation des API de celle du temps réel. rigueur.
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
S 8 100 − 4 © Techniques de l’Ingénieur
QQX
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXQPP
2. Modélisation
des systèmes de contrôle Données
d'entrée
Système
transformationnel
Données
de sortie
Toute reproduction sans autorisation du Centre français d’exploitation du droit de copie est strictement interdite.
© Techniques de l’Ingénieur S 8 100 − 5
QQY
S
QRP
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXRPU
Programmation graphique
des applications de contrôle-
commande
Notions générales et langage G
par Michel PINARD
Professeur au Conservatoire national des arts et métiers CNAM
Professeur à l’École supérieure d’ingénieurs en électronique et électrotechnique
QRQ
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXRPU
S
PXI PCI eXtensions for Instrumentation
FPGA Field Programmable Gate Array
SA Structured Analysis
GIPB General Purpose Interface Bus
GRAFCET Graphe fonctionnel de commande des étapes et tran- SA-RT Structured Analysis – Real Time
sitions SD Structured Design
HOOD Hierarchical Objet Oriented Design SFC Sequential Function Chart
LXI LAN eXtensions for instrumentation
USB Universal Serial Bus
Méthodes d’étude et de réalisation informatique pour
MERISE VI Virtual Instrument
les systèmes d’entreprise
ODS Structured Object Definition Skeleton VXI VMEbus eXtension for Instrumental
QRR
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXRPU
Une définition d’un dispositif informatique de contrôle-com- – la relation avec le processus ou le système grâce aux action-
mande pourrait être la suivante : neurs ; l’ingénieur doit déterminer exactement les moyens techni-
ques qui vont permettre la mise en œuvre la commande. Non seu-
lement il faut caractériser les cartes de sortie mais aussi placer les
Un dispositif informatique de contrôle-commande d’un pro- interfaces (amplificateur, drivers…) nécessaires au bon fonctionne-
cessus ou d’un système reçoit des informations sur l’état de ce ment des actionneurs ;
processus ou de ce système grâce à des capteurs, traite les don- – la gestion de l’interface vers l’opérateur en visualisant de
nées obtenues le plus rapidement possible, pour aboutir à une manière ergonomique les données et le pilotage ;
décision qui agit de manière telle que l’évolution de l’ensemble – la relation avec le réseau, qu’il soit local, ou qu’il se réduise à
dispositif-système ira vers un état stable de fonctionnement. un bus de terrain ;
– la liaison avec une unité de stockage de masse, pour la sauve-
garde des données.
1.1.3 Caractéristiques des applications
La figure 1 donne un aperçu de ce que peut être l’architecture
de contrôle-commande
logicielle d’une application de contrôle-commande d’un processus
À la différence de l’informatique classique, les dispositifs de industriel.
contrôle-commande font appel à des méthodes et des techniques La figure 2 montre les fonctionnalités essentielles d’une applica-
spécifiques. Il s’agit de mettre en œuvre simultanément : tion de contrôle-commande : acquisition, traitement et sortie des
S
– une partie matérielle consistant à relier des cartes électroni- données pour la commande.
ques, (dont certaines contiennent des processeurs), à des capteurs, La programmation et la vérification du bon déroulement des
et à un ordinateur ; diverses tâches du logiciel demandent beaucoup de soin et d’atten-
– une partie logicielle (souvent grâce à un langage approprié…). tion, car il est possible que l’évolution du processus ou du système
commandé soit mal gérée par les algorithmes de traitement des
Le but de la partie logicielle est de permettre à l’ingénieur le
données.
développement du dispositif de contrôle-commande avec toutes
les contraintes envisagées ci-avant. Le développement récent des logiciels permet une complexité
plus grande de la commande et du contrôle.
1.1.4 Développement des applications
de contrôle-commande La figure 3 présente un exemple de fonctionnement en réseau
d’un système de gestion de données fonctionnant sur plusieurs
Le matériel utilisé est très divers : carte électronique équipée réseaux (en particulier internet) utilisant des cartes électroniques
d’un microcontrôleur, d’un FPGA (Field Programmable Gate Array) d’acquisition classiques et des liaisons temps réel PXI haut débit.
ou d’un processeur de signal (DSP Digital Signal Processor),
caméra vidéo, téléphone portable (cf. [S 8 206]).
On peut étendre l’utilisation à plusieurs ordinateurs, reliés par un
bus de terrain. L’avantage pour l’ingénieur est la possibilité d’ajou-
ter de nouveaux systèmes à l’ensemble commandé à partir du logi-
ciel de pilotage.
Il est souvent intéressant de constituer un miniréseau reliant plu-
sieurs ordinateurs, plusieurs cartes équipées de processeurs lors-
qu’il s’agit par exemple :
– de contrôler un processus de fabrication ;
– de multiplier les contrôles sur un ensemble de systèmes fonc- Mesures
(capteurs)
tionnant en parallèle ;
Commandes
– lorsque le nombre de signaux à traiter est important, de traiter (actionneurs)
chacun d’entre eux, car il contiennent beaucoup d’information.
QRS
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXRPU
S
s
eur
igat portables Un réseau de Pétri est un ensemble fini de places reliées entre
Nav Web
elles par un nombre fini de transitions. Dans chaque place un ou
plusieurs jetons, qui passent à une place voisine selon l’équation
Serveurs de mesure
Enregistrement
logique de la transition qui les relie. Il est possible ainsi de définir
tion s de données une succession d’états de l’ensemble, qui évoluent selon les
Ges ation Analyse et
inform Base de données publication « ordres » de commande appliqués aux transitions.
d’
Le langage CHART utilise des fonctions séquentielles décrites
comme une suite d’évènements ou de processus. Les éléments
uds Ethernet essentiels de ce langage sont le schéma d’une étape de ce proces-
Nœ sure
e me sus et la fonction de décision qui est selon une logique simple et
d
qui permet ou non la transition à l’étape suivante. Si la transition
est autorisée, l’étape suivante est activée tandis que l’étape précé-
dente est désactivée. L’avantage de ce langage est qu’il est possible
de réduire une commande complexe en un ensemble (souvent
important) de fonctions élémentaires basiques de prises de déci-
Carte d’acquisition Instruments PXI temps réel E/S distribuées sion. Le concepteur peut donc facilement partir d’un problème sim-
de données GPIB traditionnels
ple pour le compliquer progressivement, en y ajoutant de nouvel-
les fonctions testées séparément. Un autre avantage de ce
Figure 3 – Extension plus complexe du rôle du logiciel de contrôle-
commande langage est qu’il est facilement compatible avec le GRAFCET.
Alors qu’un ensemble d’appareils fixes (serveur, base de don- 1.2.1.3 Approche par les traitements des données
nées, cartes…) impose l’essentiel du dispositif contrôle-commande, On utilise les données, et tout le génie logiciel, pour obtenir le
des ordinateurs portables permettent l’intervention à distance sur meilleur traitement possible de ces données : génération, modifica-
cet ensemble grâce à la liaison internet. tion, utilisation d’algorithmes, consommation.
PXI PCI eXtensions for Instrumentation.
PCI Peripheral Component Interconnect. La méthode d’analyse SA (Structured Analysis) [4] permet la
GIPB General Purpose Interface Bus. décomposition du processus global du système en sous-processus
reliés entre eux par des échanges de données. La méthode SA uti-
lise la notion de diagramme de flots de données.
1.2 Principes de la programmation La méthode SD (Structured Design) utilise la décomposition
des applications de contrôle- modulaire des systèmes séquentiels.
commande Les méthodes SA et SD ne sont pas adaptées aux systèmes en
temps réel. Elles ne permettent pas la modélisation du mode opé-
1.2.1 Méthodes de conception ratoire du processus commandé, et du contrôle du traitement des
informations.
Concevoir, c’est s’imposer une méthode rigoureuse de création
qui réduise le risque de dysfonctionnement dans la commande, La méthode SA-RT (Structured Analysis – Real Time) [5] ajoute la
soit à cause d’une erreur ou d’un oubli, soit tout simplement possibilité du traitement du temps réel selon trois points de vue
parce que cette commande est anormalement sensible aux don- « orthogonaux » :
nées de contrôle. – le fonctionnel ; on décompose le système en une hiérarchie de
L’ingénieur peut choisir l’une des méthodes suivantes, qui sont fonctions ;
autant d’approches possibles de conception d’une application – l’informationnel ; on définit les données traitées par les
industrielle. Il s’agit à chaque fois d’obtenir une description structu- fonctions ;
relle, fonctionnelle et comportementale de l’application. – la dynamique ; on exprime le contrôle du flux des données et
l’activation des fonctions.
1.2.1.1 Approche par les données Alors un système de gestion des données correspond à trois
Les étapes sont les suivantes : descriptions :
– on identifie les entités constituant le dispositif en question ; – la description des fonctions (des processus) à réaliser ;
– on écrit les relations entre les divers types de données ; – la description du contrôle du flux informationnel ;
– on caractérise les traitements qui s’y rapportent. – la description de l’architecture matérielle du système.
QRT
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXRPU
S
Step1
Ces méthodes regroupent l’approche par les données et par les
traitements au sein d’un même module, appelé objet. Cet objet est Les « pas » Step1 et Step2 sont des étapes correspondant à des états de
une entité autonome. Un exemple bien connu est la méthode fonctionnement ou d'arrêt. Les traits In1 et In2 sont des transitions entre
HOOD (Hierarchical Objet Oriented Design) [6] qui est très utilisée étapes. Les grandeurs N et Out1 correspondent à des variables à l'étape
dans les développements d’applications spatiales européennes « Step2 ».
(ESA).
L’idée sous-jacente de cette méthode est qu’il est possible de Figure 4 – Extrait de programme GRAFCET
modéliser la solution à un problème donné par une série d’objets
HOOD. Pendant l’analyse du problème, on crée des « sous-objets »
qui sont d’autant de parties de solution à implémenter jusqu’à l’ob-
tention d’un objet HOOD. Un diagramme représentant le dispositif
0001
peut être obtenu caractérisant les relations entre les objets, et aussi
en créant une hiérarchie dans ces relations. À côté du diagramme,
une partie textuelle est établie en cohérence avec le diagramme. Step1._x Step1.x
Une édition structurée par texte ODS (Structured Object Definition
Skeleton) est alors possible vers le langage ADA, FORTRAN ou C.
0002
1.2.1.5 GRAFCET
Step2._x Step2.x
C’est la méthode la plus utilisée actuellement dans le domaine
des applications de contrôle-commande de complexité moyenne
(cf. [S 8 206]). Le GRAFCET (graphe fonctionnel de commande éta-
0003
pes transitions) est destiné aux automates programmables. Il repré-
sente des automatismes logiques ou discrets dans lesquels les
Step1.x In1 Step1._x
informations sont booléennes, ou peuvent s’y ramener (résultat
de comparaisons…). R
C’est un outil très intéressant (cf. figure 4) facile à mettre en
forme à partir d’un modèle ou d’un cahier des charges, et qui per- Step2._x
met par la suite un passage vers l’automate en programmant par S
exemple en langage (ou diagramme à relais) Ladder (figure 5).
0004
Le langage GRACET est défini par une norme internationale (CEI/
IEC 1131-3). Sa version américaine est le SFC (Sequential Function
Chart). Step2.x In2 Step2._x
R
Remarque : il est également possible d’utiliser le GRAFCET
pour programmer la présentation d’un écran tactile (grâce à Step1._x
un logiciel approprié) et de l’échange commande-contrôle S
entre l’opérateur et l’automate avec cet écran.
On retrouvera en [J 8 206] le concept « échange écran/com- 0005
mande-contrôle » avec le concept diagramme/face avant ou
même la notion « d’interface homme-machine » en utilisant le
Step2.x Out1
logiciel LabVIEW.
1.2.2 Programmation
Exemple : si In1 devient vrai au ke cycle, alors Step1._x = 0 et
On conçoit facilement que le choix du langage de programma- Step2._x = 1 au cycle k + 1.
tion va dépendre non seulement de la taille et de la complexité de
l’application, mais aussi des matériels mis en œuvre. Pour les
applications de contrôle-commande, le langage choisi doit assurer Figure 5 – Conversion de l’extrait du programme GRAFCET
les fonctions suivantes. de la figure 4 en écriture Ladder
QRU
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXRPU
Langages spécifiques
(LabVIEW, …)
Des langages dits « graphiques » se sont développés ces der-
nières années comme LabVIEW (société National Instruments)
Langages de haut niveau adapté
(Ada, Visual C++)
ou MatLab/SIMULINK (société The MathWorks). On utilise
alors la notion de bloc fonctionnel pour décrire un système,
une commande, un contrôle.
Langages évolués avec bibliothèques spécifiques
(C,C++, …)
h) Présentation des données à l’utilisateur ou au réseau. Toute méthode, quels que soient ses avantages, a aussi ses
inconvénients :
i) Interface graphique et interactive.
– difficulté de visualisation des graphiques dans le cas d’un pro-
j) Représentation des courbes 2D ou 3D. gramme important ou complexe ;
– ambiguı̈tés possibles ;
k) Représentation d’images avant et après traitement. – difficulté pour prévoir une extension ou l’introduction d’un
autre programme. Il faut alors prévoir une architecture modulaire
l) Stockage de données. et hiérarchique.
m) Lien avec le réseau.
1.3.2 Classification des langages graphiques
Il est très difficile de choisir un langage qui permette la réalisa-
tion de toutes les fonctions énumérées ci-dessus. Aussi utilise-t-on On classe généralement les langages de programmation selon la
plusieurs langages et/ou des bibliothèques spécialisées pour obte- manière de programmer. On distingue :
nir tout ce qui est nécessaire à la réalisation d’un projet.
– la programmation impérative qui consiste à exprimer une suite
Il est par exemple très courant de réaliser des programmations de commandes ou d’instructions qui s’exécutent dans un ordre
d’interface en utilisant un microcontrôleur ou un PIC (Program- précis. C’est le cas des langages textuels ;
mable Interrupt Controller). Son fonctionnement est déterminé par – la programmation déclarative pour laquelle le programmeur ne
des gestionnaires bas niveau en utilisant un langage assembleur. suit pas directement la structure déterminant la suite des instruc-
Certains PIC sont directement accessibles par liaison USB venant tions, car le séquencement des actions est préexistant. Il doit seule-
de l’ordinateur. ment fournir des informations sur les objets qu’il doit traiter et sur
QRV
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXRPV
Programmation graphique
des applications de contrôle-
commande
Logiciel LabVIEW et applications
industrielles
Michel PINARD
S
par
Professeur au Conservatoire national des arts et métiers CNAM
Professeur à l’École supérieure d’ingénieurs en électronique et électrotechnique ESIEE
QRW
r←ヲ←イ・ョ」・@iョエ・イョ・エ
sXRPV
S
GPIB General Purpose Interface Bus
TCP/IP Transmission Control Protocol/Internet Protocol
Graphe fonctionnel de commande des étapes
GRAFCET ToR Tout ou Rien
et transitions
HMI Human Machine Interface USB Universal Serial Bus
IOC Input/Output Controller VB Visual Basic
LDD Data Definition Language VI Virtual Instrument
LXI LAN eXtensions for Instrumentation VME Versatile Module Europe
MXI Multisystem eXtension Interface VXI Versatile eXchange Interface
1. Logiciel LabVIEW
en acquisition et en DAQ Assistant