Ecole Polytechnique
Méditerranéenne privée de TUNIS
COURS SYSTÈMES
TEMPS RÉEL
Enseignant:
Mejri Mohamed Radhouane
Expert en Energie renouvelable, Enseignant universitaire -Maitre technologue
ISET Nabeul-
Mejri Med Radhouane 03/11/2019
1) Définition
Plan
2) Caractéristiques
3) Domaines d’application
4) Temps réel soft et hard
5) Temps de réponse
6) Déterminisme
7) Ordonnancement
8) Temps partagé
9) Modes d’ordonnancement
10) Préemption
11) Interruption
12) Multitâche
13) Taches périodiques et apériodiques
14) Horloge temps réel
15) Caractéristiques et performances temporelles
2
16) Exemples
03/11/2019
Mejri Med Radhouane
Définition
1967 : introduction du multitâche avec la technique de partage
du temps (time-sharing).
1970 :première apparition du terme temps réel (coïncide avec
l’apparition des microprocesseurs dans l’environnement
industriel).
« Un système fonctionne en Temps Réel s’il est capable
d’absorber toutes les informations en entrée avant qu’elles
soient trop vielles pour l’intérêt qu’elles présentent et de
réagir à celles-ci suffisamment vite pour que cette réaction
est un sens » (ABRIAL – BOURGNE).
« Un résultat juste, mais hors délai, est un résultat faux ».
03/11/20
Mejri Med Radhouane 3
19
Caractéristiques
Pour commander un environnement industriel, il faudra respecter les
contraintes de temps.
Le temps d’exécution d’une tâche doit être connu et non soumis à des
variations liées à la charge du système.
De nos jours, un calculateur embarqué signifie implicitement calculateur
temps réel embarqué.
Au niveau logiciel, on distingue : l’exécutif Temps Réel (le noyau) et
l’application Temps Réel (les tâches).
Exemples d’OS Temps Réel :
LynxOs, OS9, MTR86, RT-RTAI LINUX, pSOS, VRTX, VxWorks, QNX, …
03/11/20
Mejri Med Radhouane 4
19
Domaines d’application
❖système de commande et de contrôle de processus industriels
❖système de contrôle aériens
❖systèmes embarqués dans les avions, navettes spatiales, etc …
❖gestion des stations spatiales
❖système de défense
❖surveillance médicale intensive
❖coordination des collectivités mixtes robots-humains
❖gestion automatique du trafic et du transport urbain
❖le multimédia
❖les systèmes de télécommunication
... etc ...
03/11/20
Mejri Med Radhouane 5
19
Temps réel soft et hard
Le terme « temps réel » peut prendre des significations très différentes
suivant les applications. Cependant, la littérature informatique définit
généralement uniquement deux types :
les systèmes temps réel soft (mou) et hard (dur).
➢Un « système temps réel soft » se caractérise par la possibilité d’accomplir une tâche qui, en
moyenne, est exécutée selon un planning prédéterminé. L’affichage vidéo est un bon exemple,
où la perte occasionnelle de frames ne causera pas de dégradation perceptible du système,
délivrant une performance moyenne demeurant acceptable. Bien que des techniques comme
l’interpolation puissent être employées pour compenser les frames manquantes, le système
demeure « temps réel soft », car les données réelles sont manquantes et les frames issus de
l’interpolation sont des dérivés et non les données réelles.
➢L’incorporation de « temps réel hard » garantit le timing, ne peut pas manquer les délais
limites et doit avoir des temps de latence liés. Comme les deadlines ne sont jamais manqués,
un système temps réel hard ne peut pas utiliser le cas moyen des performances pour
compenser le pire. Un exemple de système temps réel hard est fourni par la gestion des
transducteurs d’un réacteur nucléaire, lequel doit utiliser un système de contrôle numérique
complexe, afin d’éviter les désastres…
03/11/20
Mejri Med Radhouane 6
19
Temps de réponse
Pour fournir une réponse, un système doit reconnaître, traiter et sortir
un résultat. Le temps de réponse TR est le suivant :
TR = Tcalcul + TE/S
L'apparition d'un phénomène implique l'exécution d'une action
effective au plus tard dans un délai TR appelé temps de réponse. Il
convient de considérer :
les valeurs ou les ordres de grandeur de TR ;
la possibilité ou non de choisir TR ;
les répercussions sur le système du non respect de la contrainte TR.
03/11/20
Mejri Med Radhouane 7
19
Temps de réponse (suite)
Il faut relativiser la notion temps réel car tous les systèmes n'ont
pas les mêmes exigences :
❖ le temps de réponse des STR peut aller de quelques dizaines de µs pour
les systèmes radars à quelques heures pour des systèmes de surveillance
de réactions chimiques (voire plusieurs années dans des systèmes utilisés
en astronomie).
Il existe globalement deux situations :
❖ les systèmes transactionnels où l'on a une tolérance statistique (pour
le non respect des contraintes de temps).
❖ la commande de processus où les respect d'un délai de réponse TR doit
être garanti dans tous les cas sous peine de voir une dégradation ou un
effondrement du système.
03/11/20
Mejri Med Radhouane 8
19
Déterminisme
Un système sera dit "déterministe" lorsque le temps maximal qu'il
mettra pour traiter une tâche quelconque sera connu et déterminé à
l'avance.
Il convient de considérer les différents niveaux constituant le
système :
❖ au niveau processeur : le déterminisme est total.
❖ au niveau de l'exécutif : il sera déterministe si son temps de
réponse est indépendant de sa charge.
❖ au niveau du système : il sera déterministe s'il est capable de
répondre à une requête et la traiter en un temps maximum
indépendant de l'environnement extérieur.
03/11/20
Mejri Med Radhouane 9
19
Ordonnancement (scheduling)
C’est une notion fondamentale des systèmes multitâches et des systèmes temps
réel (STR). Plusieurs tâches peuvent se trouver en concurrence pour obtenir l’UC.
La tâche de plus grande priorité est exécutée en premier. Les tâches restantes
seront sélectionnées à tour de rôle par l’ordonnanceur (scheduler).
L’ordonnanceur (scheduler) doit :
➢ assurer la gestion des tâches de l’état bloqué à l’état prêt (ou éligible)
➢ effectuer le choix de la tâche élue (en exécution) parmi les tâches éligibles.
Les critères de sélection de l’algorithme sont :
➢ garantir à chaque tâche un temps processeur ;
➢ respecter un ordre de priorité entre tâches ;
➢ respecter un temps de réponse donné ;
➢ permettre la préemption.
03/11/20
Mejri Med Radhouane 10
19
Temps partagé (time sharing)
Le temps partagé consiste à découper le temps processeur en
tranches (time - slice) et à attribuer séquentiellement ces
tranches aux différentes tâches (multiplexage temporel du µP).
Le découpage en tranches de temps est géré à partir d’un
circuit d’horloge fonctionnant en IT. Le choix de la durée
(quantum de temps Q ou time-slice) peut être délicat (valeur
courante pour un système de type Unix: 10 ms).
Mejri Med Radhouane 11 03/11/2019
Modes d’ordonnancement (scheduling)
L’ordonnanceur d’un OS POSIX (LynxOs ou Linux RT) propose 3 modes de fonctionnement :
• SCHED_FIFO : lorsqu’un processus devient prêt, il est exécuté immédiatement. Le scheduler choisit
d’élire le processus possédant la plus grande priorité et l’exécute. Le scheduler n’interrompra
l’exécution que dans trois cas :
➢ un autre processus de type SCHED_FIFO possédant une priorité plus élevée passe à l’état prêt, il
est alors exécuté (préemption) ;
➢ le processus se suspend dans l’attente d’un événement ;
➢ le processus abandonne volontairement le temps processeur par un appel yield. Le processus passe
alors à l’état prêt et le scheduler prend la main.
• SCHED_RR (Round – Robin) : lorsqu’un processus devient prêt, il est exécuté immédiatement. Il
lui est attribué un quantum de temps. Lorsque le quantum expire, un processus de priorité
supérieure ou égale peut être choisi et exécuté. Le mode round – robin est aussi appelé priorité
tournante.
03/11/20
12
• SCHED_OTHER : ce mode est différent suivant les systèmes. Pour Lynx, un quantum de temps fixe
19
est défini par niveau de priorité.
Préemption
La préemption est un des outils mis en œuvre pour assurer l'aspect déterministe d'un
système. La préemption se définit comme la réquisition du processeur pour
l'exécution d'une tâche et d'une seule pendant un temps déterminé.
Un ordonnancement statique à base de priorités peut se dérouler de deux façons
distinctes :
❖ ordonnancement sans préemption : lorsque le processeur est inactif, la tâche prête
de plus haute priorité sera choisie pour être exécutée. Une fois choisie, elle s'exécute
jusqu'à ce qu'elle se termine ou rende le processeur.
❖ ordonnancement avec préemption : lorsque le processeur est inactif, la tâche prête
de plus haute priorité sera choisie pour être exécutée. A chaque instant cette tâche
peut être préemptée (remplacée) par n'importe quelle tâche plus prioritaire qui
serait devenue prête.
03/11/20
19
Mejri Med Radhouane
Interruption
Rôle: prendre en compte des évènements externes au processeur (asynchrones)
La prise en compte d'une interruption provoque l'arrêt du programme en cours et l'exécution
d'un programme associé à cette IT.
La gestion des IT est une caractéristique essentielle d’un exécutif TR :
le masquage des interruptions est un autre moyen propre à assurer un certain
déterminisme et intervient au niveau processeur.
03/11/20
Mejri Med Radhouane 14
19
Multitâche
Un exécutif temps réel reprend tout ce qui caractérise un système
multitâche :
exécution concurrente de tâches ;
synchronisation et communication entre tâches, ... etc ...
La qualification "temps réel" n'implique pas forcément l'ajout de
fonctionnalités logicielles supplémentaires par rapport à un système
multitâche, mais plutôt l'adoption de stratégies différentes : le
déterminisme et la préemption.
03/11/20
Mejri Med Radhouane 15
19
Tâches périodiques et apériodiques
Une tâche périodique peut donc être exécutée une fois par
période T et elle peut être synchrone avec une horloge temps
réel. Une tâche périodique sera hors-délai si sa périodicité
n'est pas respectée.
Une tâche apériodique est en général associée à un
événement asynchrone (une interruption) et doit être traitée
dans un délai maximum à ne pas dépasser.
03/11/20
Mejri Med Radhouane 16
19
Horloge temps réel
L'horloge temps réel est utilisée précisément pour :
déclencher périodiquement des tâches quand celles-ci ont été mises en place ;
gérer le temps partagé entre les tâches (round robin) ;
connaître le temps écoulé depuis une certaine action ;
gérer les timeout des primitives RT.
A chaque TIC de l'horloge, l'ordonnanceur est invoqué, il appelle une tâche horloge de plus
haute priorité qui effectue les actions suivantes :
décrémentation d'une unité le compteur pour chaque tâche suspendue sur un timeout
mise en file des tâches prêtes si le compteur de la tâche est arrivée à zéro
lancement des tâches attachées à un mode périodiques
La notion de temps est généralement exprimée en TIC d'horloge
03/11/20
(éventuellement en ns).
Mejri Med Radhouane 17
19
Caractéristiques et performances
temporelles (1)
Pour réduire les surcharges de fonctionnement et afin d'accélérer le système, le noyau d'un
STR doit avoir les caractéristiques suivantes :
une rapide commutation de contexte ;
une petite taille (avec des fonctionnalités minimales) ;
temps de réponse rapide aux interruptions ;
un temps réduit où les IT sont inhibées ;
gérer les partitions de mémoire (pas de mémoire virtuelles) ;
avoir la possibilité de verrouiller dans la mémoire des données ou du code ;
03/11/20
Mejri Med Radhouane 18
19
Caractéristiques et performances
temporelles (2)
Afin de satisfaire les exigences de temps, le noyau doit :
disposer d'une horloge temps réel ;
être doté d'un ordonnanceur de tâches par priorité ;
disposer des fonctions de blocage de tâches sur un délai et de déblocage à la fin du délai
(temporisation) ;
En général, le noyau intègre :
le multitâche
la communication et synchronisation inter tâches.
03/11/20
Mejri Med Radhouane 19
19
Caractéristiques et performances
temporelles (3)
Les performances temporelles d'un RTOS dépendent évidemment des performances du
RTOS lui même mais aussi de la plate-forme matérielle sur lequel il fonctionne et des
procédures de tests et de mesures.
On retrouve généralement les deux critères suivants :
la réponse à une interruption
la commutation de tâche
D'autres facteurs temps influent également sur les performances de l'exécutif :
temps maximum de masquage des IT dans l'exécution des primitives
temps de réarmement d'une interruption
03/11/20
Mejri Med Radhouane 20
19
temps d'exécution de certaines primitives.
Caractéristiques et performances
temporelles (4)
Il convient de noter qu'un exécutif temps réel n'est pas seulement
caractérisé par son aspect déterministe mais aussi par ses outils de
développement, des librairies, de la portabilité, ...
Il faut tout de même considérer que les performances d'un STR ou
d'une application temps réel sont souvent inversement
proportionnelles à leur convivialité et à leur portabilité.
03/11/20
Mejri Med Radhouane 21
19
La conception de
logiciel temps
réel
Mejri Med Radhouane 22
Définition
Un système qui surveille et gère son environnement. Le temps
de réaction est critique. Il est liée en général avec certain
matériel:
Capteurs
Actionneurs
Le SRT comme un système de stimulus - réaction
Stimulus périodique
Stimulus apériodique
Mejri Med Radhouane 23
Exigences vers
l’architecture
Particularités
Changer les processus traitant les stimulus
Chaque stimulus peut exiger un temps différent de réponse – la boucle simple n’est pas
approprié
Une architecture est des processus coopératifs gérés par un composant temps réel
Utilisation d’un langage bas niveau comme C mais il ne support pas les processus
concurrents ( on doit appeler composants du système d’exploitation)
Utilisation de Java – problèmes:
On ne peut pas spécifier le temps d’exécution des fils
Le ramasse-miettes ne peut pas être contrôlé
On ne peut pas voir les tailles des files associées aux ressources partagés.
Le JVM varie est le comportement du programme sera différent aux ordinateurs différents.
On ne peut pas accéder le matériel directement.
Mejri Med Radhouane 24
Modèle d’un système
temps réel
Sensor Sensor Sensor Sensor Sensor Sensor
Real-time
control system
Actua tor Actua tor Actua tor Actua tor
Mejri Med Radhouane 25
Conception du système
Identification des stimulus and les réponses correspondantes
Les contraintes de temps
Choisir la plateforme de système
Matériel
Logiciel
Agréger les stimulus et les réponses en processus concurrents
Mejri Med Radhouane 26
Conception du système
Pour chaque pair concevoir l’algorithme pour les calculs nécessaires
Concevoir le système de planification des processus
Intégrer avec un système d’exploitation temps réel
Les besoins non fonctionnels sont plus importants – notamment les
contraintes de temps.
Mejri Med Radhouane 27
Le processus de gestion
de stimuli/réponses
Sensor Actuator
Stim ulus Response
Sensor Da ta Actua tor
control processor control
Mejri Med Radhouane 28
Modèles des systèmes
temps réel
Modèle d’états
Utile
Il ne donne pas la structure
Il ne modèle qu’une fonction du système à
la fois
Mejri Med Radhouane 29
Modèles des systèmes temps réel
Diagramme des états – pompe d’essence
Système d’exploitation
temps réel
Objectif
Composants
Horloge
Gestionnaire d'interruption
Planificateur
Gestionnaire des ressources
Dispatcher
Composants permanents
Gestionnaire de configuration
Fault Manager
Mejri Med Radhouane 31
Composants de SE temps réel
Scheduling
inf orma tion
R eal-time Interrupt
Scheduler
clock handler
Pr ocess resource
requir ements
Pr ocesses A v ailable
R esource
awaiting r esour ce
manager
r esour ces list
R ead y R eleased
pr ocesses resour ces
R ead y Pr ocessor
Despa tcher
list list
Mejri Med Radhouane 32
Ex ecuting pr ocess
Gestion des processus
Priorité des processus
Niveau d’interruption
Niveau des processus périodiques
Autres
Desservir les interruptions
Le contrôle est transmis à une location prédéfinie où se trouve une instruction vers
la procédure traitante.
Tous les autre interruption sont désactivées. Puis le contrôle est retourné vers le
processus interrompu.
Le service doit être court et rapide.
Mejri Med Radhouane 33
Gestion des processus
Gestion des processus périodiques
Propriétés
Période
Durée d’exécution et délais
Priorité
L’horloge génère les interruptions pour la planification des processus
périodiques
Le gestionnaire choisi le processus qui est prêt à exécuter
Mejri Med Radhouane 34
Gestion des processus
Scheduler R esour ce manager Despatcher
Choose pr ocess Alloca te memory Start execution on an
for e xecution and pr ocessor available pr ocessor
Commutation des processus
Planificateur
Gestionnaire des ressources
Dispatcher
Niveaux de priorité
Niveau d’interruption (obligatoire)
Niveau d’horloge (obligatoire)
Autres niveaux (optionnels) (du fond et c.)
Mejri Med Radhouane 35
Gestion des processus
Stratégies de planification
Planification non préemptive – le processus ne peut être interrompu que par la
fin ou une opération entrée/sortie
Planification préemptive – interruption par un processus plus prioritaire
Algorithmes
Round-robin
Taux monotone
Le délais le plus court
Mejri Med Radhouane 36
Les systèmes de surveillance et de contrôle
Architecture générique
Testing
process
P (A1) A1
S1 P (S1)
Monitoring
processes P (A2) A2
S2 P (S2)
P (A1) A3
Control
S3 P (S1) processes
P (A4) A4
Control panel
processes
Mejri Med Radhouane 37
Système d'alarme contre le vol
Besoins
Quand il y a un voleur le système doit allumer les lampes et
appeler la police
Il doit marcher avec un source d’électricité autonome
Capteurs
Capteur de mouvement, de choc, d’ouverture de fenêtre et de
porte.
Capteur de voltage
Actionneurs
Appel à la police
Allumer les lampes
Brancher une sirène
Commuter à un source autonome quand le courrant est coupé
Mejri Med Radhouane 38
Système d'alarme contre le vol
Conception du système
Stimulus
Panne de courant
Alarme d’intrusion
Mejri Med Radhouane 39
Système d'alarme contre le vol
Stimulus/réponse Timing requirements
Panne de courant Le passage à une alimentation de secours doit être achevée dans un
délai de 50 ms.
Alarme de porte Chaque alarme de porte doit être interrogé deux fois par seconde.
Alarme de fenêtre Chaque alarme de fenêtre doit être interrogé deux fois par seconde
Capteur de mouvement Chaque détecteur de mouvement doit être interrogé deux fois par seconde.
Alarme sonore L'alarme sonore doit être allumé à moins de 1 / 2 seconde d'une
alarme est soulevée par un capteur.
Lumières s'allument Les lumières devraient être allumés dans les 1 / 2 seconde d'une
alarme est soulevée par un capteur.
Communications L'appel à la police devrait commencer dans les 2 secondes d'une
alarme est soulevée par un capteur
Synthétiseur de voix Un message synthétisé devrait être disponible dans les 4 secondes
d'une alarme est soulevée par un capteur.
Mejri Med Radhouane 40
Processus du Système d'alarme
400 Hz 60 Hz 1 00 Hz
Mo vement Door sensor W indo w sensor
detector pr ocess pr ocess pr ocess
Detector sta tus Sensor sta tus Sensor sta tus
5 60 Hz Alar m system
Building monitor Comm unica tion
pr ocess pr ocess
P o w er failur e
R oom n umber
interrupt Building monitor
P o w er s witch Alar m system
Aler t messa ge
pr ocess pr ocess
R oom n umber
Alar m system Alar m system Alar m system
R oom n umber
Audib le alar m Lighting contr ol Voice synthesis er
pr ocess pr ocess pr ocess
Mejri Med Radhouane 41
Système de contrôle
Système de contrôle de la température
500 Hz
Sensor
process
Sensor
500 Hz values
Ther mosta t
process
Switch command
500 Hz Room n umber Ther mosta t process
Hea ter contr ol Furnace
process control process
Mejri Med Radhouane 42
Systèmes d'acquisition de
données
Objectif
Collecter des données pour un analyse et traitement
postérieur
Propriétés
La collection et beaucoup plus rapide que le traitement
On doit organiser une file d’attente pour les données –
tampon circulaire
Mejri Med Radhouane 43
Systèmes d'acquisition de données
Architecture
Sensors (each da
ta f lo w is a sensor v alue)
Sensor Sensor
s1 identifier and identifier and
v alue v alue
Sensor Sensor da ta Pr ocess
s2 Displa y
pr ocess buf fer da ta
s3
Sensor Sensor
s4
identifier and identifier and
value value
Sensor Sensor da ta Pr ocess
s5
pr ocess b uffer da ta
s6
Mejri Med Radhouane 44
Collection de données d’un réacteur
nucléaire
Objectif – suivre le flux de neutrons d’un réacteur
Architecture
Un tampon circulaire
Deux processus concurrents
Écrire
Lire
Les deux processus ne doivent accéder le même élément
Mejri Med Radhouane 45
Le flux de neutrons
Neutron flux sensors
Sensor
identifier and Processed
flux v alue flux le vel
A-D Flux da ta Flux Operator
conver tor buf fer processing display
Mejri Med Radhouane 46
Le flux de neutrons
Tampon circulaire
Pr oducer
process
Consumer
process
Mejri Med Radhouane 47