Université de Gafsa
Institut Supérieur des Sciences Appliquées et de Technologie de GAFSA
Département d’Automatiques des Systèmes Industriels
Mastère 2 SE
Programmation temps-reel
Cours
Mr. NASRI Hani
2024/2025
01/09/2024 Mr. NASRI ISSATGF 1
Environnements d’exécution
Objectif d’un système multitâche
o Faire coexister plusieurs traitements (calculs) sur le même processeur
Niveaux d’abstraction
o Système d’exploitation (exécutif)
o Environnement d’exécution d’un langage supportant les tâches (ex: Ada)
01/09/2024 Mr. NASRI ISSATGF 2
Applications temps-réel embarquées
Systèmes en interaction avec l’environnement physique
Contraintes de temps à satisfaire
o La date de livraison d’un résultat est un critère de correction autant que la valeur du
résultat elle-même
Systèmes dédiés (non généralistes)
o Matériel (processeur, DSP, FPGA, ASICs, capteurs, actionneurs)
o Logiciel
Contraintes industrielles
o Systèmes embarqués : contraintes de poids, taille, consommation énergétiques, coût,
surface
o Time-to-market
o Sûreté de fonctionnement
01/09/2024 Mr. NASRI ISSATGF 3
Un système temps réel est un système pour lequel le temps d’arrivée du résultat est aussi
important que le résultat lui-même
Par opposition aux systèmes transformationnels
Notion de contraintes de temps
Définition
o Limite quantifiée (en rapport avec le temps réel) sur le temps séparant deux événements
o Ex : échéance de terminaison au plus tard (deadline)
Source des contraintes de temps
o Délai de réaction du système avant dysfonctionnement plus ou moins grave
o Stabilité du processus physique contrôlé (ex: pendule inversé)
01/09/2024 Mr. NASRI ISSATGF 4
Structure
typique:
Contrôle
01/09/2024 Mr. NASRI ISSATGF 5
Structure
typique:
Prédiction
01/09/2024 Mr. NASRI ISSATGF 6
Définition
Abrial-Bourgne:
Un système fonctionne en temps réel s’il est capable d’absorber toutes les
informations d’entrée sans qu’elles soient trop vieilles pour l’intérêt qu’elles
représentent, et par ailleurs, de réagir à celles-ci suffisamment vite pour que cette
réaction ait un sens.
Adage:
Un résultat juste mais hors délai est un résultat faux.
Exemple
01/09/2024 Mr. NASRI ISSATGF 7
Catégories de systèmes temps réel
Les contraintes de temps peuvent être de type:
Temps réel strict (hard)
Temps réel ferme (firm)
Temps réel mou, ou souple (soft)
Un même système peut être soumis à des contraintes de différents types
Echéance stricte
01/09/2024 Mr. NASRI ISSATGF 8
Echéance
stricte:
Exemples
01/09/2024 Mr. NASRI ISSATGF 9
Echéance ferme
01/09/2024 Mr. NASRI ISSATGF 10
Echéance ferme:
Exemples
01/09/2024 Mr. NASRI ISSATGF 11
Echéance
molle
01/09/2024 Mr. NASRI ISSATGF 12
Echéance molle: Exemples
01/09/2024 Mr. NASRI ISSATGF 13
Ordres de
grandeur
01/09/2024 Mr. NASRI ISSATGF 14
Déterminisme
Les systèmes temps réel doivent posséder 3 caractéristiques fondamentales
Déterminisme logique (aspect fonctionnel / spécification)
o Les mêmes entrées appliquées au système produisent les mêmes résultats.
Déterminisme temporel (aspect dynamique / simulation)
o Respect des contraintes temporelles (échéances)
Fiabilité (aspect matériel / datasheet)
o Le système répond à des contraintes de disponibilité
(matériel/logiciel).
Par conséquent, le comportement d’un système temps-réel doit être prédictible
Maîtrise des temps de latence et de leurs variations (gigue)
Un système temps-réel n’est PAS un système "qui va vite", mais un système qui satisfait à des
contraintes temporelles.
Un système temps réel n’est pas forcément :
Rapide (fast)
Tolérant aux fautes (fault-tolerant)
Sûr (safe)
01/09/2024 Mr. NASRI ISSATGF 15
Prédictibili
té
01/09/2024 Mr. NASRI ISSATGF 16
Prédictibilité - temps de
réponse
01/09/2024 Mr. NASRI ISSATGF 17
Prédictibilité - temps de
réponse
01/09/2024 Mr. NASRI ISSATGF 18
Prédictibilité - mémoire
01/09/2024 Mr. NASRI ISSATGF 19
Prédictibilité - Appels
système
01/09/2024 Mr. NASRI ISSATGF 20
Prédictibilité - mémoire
Gestion de la mémoire
• Problèmes avec mémoire
paginée/segmentée
• Lenteur de l’accès
• Défaut de page non prévisible
Verrous/Sémaphores
• Problème d’inversion de priorité
• Ce problème sera abordé durant le
cours
01/09/2024 Mr. NASRI ISSATGF 21
01/09/2024 Mr. NASRI ISSATGF 22
01/09/2024 Mr. NASRI ISSATGF 23
01/09/2024 Mr. NASRI ISSATGF 24
Prédictibilité - matériel
• Interruptions
• Générées par les périphériques
• Problème: non connaissance de leurs temps d’arrivée
Gestion possible:
• Masquage des interruptions
• Pas d’indéterminisme
• Mais: scrutation des périphériques
• Donc: consommation inutile de temps CPU
• Masquage, sauf le timer
• Une tâche périodique pour scruter les
périphériques
• Scrutation active uniquement par cette tâche
• Autorisation des interruptions
• Placer du code minimal dans les routines
d’interruption
• Attente passive des tâches de traitement
• Temps de traitement de la routine d’interruption
négligeable
01/09/2024 Mr. NASRI ISSATGF 25
Prédictibilité -
matériel
DMA
• Le processeur délègue au contrôleur
DMA des transferts mémoire
• Ils partagent le bus mémoire
• Problème: arbitrage, et délai potentiel
01/09/2024 Mr. NASRI ISSATGF 26
Prédictibilité - matériel
Mémoire cache
•Accélère les accès mémoire
•Mais: problème de la borne du temps
d’accès maximal
• Génère de l’imprédictibilité
01/09/2024 Mr. NASRI ISSATGF 27
Hiérarchie mémoire
01/09/2024 Mr. NASRI ISSATGF 28
Entrées-sorties
01/09/2024 Mr. NASRI ISSATGF 29
Entrées-sorties
01/09/2024 Mr. NASRI ISSATGF 30
Prédictibilité -
que faire?
Programmation: concepts à appliquer
• Absence de structures de données dynamiques
• Absence de récursion
• Boucles bornées en temps
• Connaissance du matériel
• Connaissance du système
Prendre des mesures (benchmarking)!
http://www.ptxdist.org/development/kernel/ arm-
benchmarks-20100729_en.html
01/09/2024 Mr. NASRI ISSATGF 31
01/09/2024 Mr. NASRI ISSATGF 32
Prédictibilit
é - évaluer
Images from http://uuu.enseirb.fr/~kadionik/embedded/ linux_realtime/linux_realtime2.html
01/09/2024 Mr. NASRI ISSATGF 33
Décomposition
Un système temps réel est souvent décomposé en tâches
Séparation des traitements
Meilleure utilisation du processeur
Meilleure fiabilité en cas de surcharge
Système d’exploitation
Un système temps réel peut fonctionner avec ou sans système d’exploitation (OS)
Sans
Un exécutif temps réel fournit un micro-noyau pour
l’ordonnancement (si multi-tâche)
Avec
Possibilité d’avoir une interface graphique
Gestion de fichiers
L’OS doit être temps réel ?
01/09/2024 Mr. NASRI ISSATGF 34
Langages pour le temps réel
Principaux critères de choix: Langages de haut niveau: Ada 95
Déterminisme temporel et logique Langage conçu, entre autre, pour le support des applications temps-réel
Fiabilité Abstraction temps-réel: tâche, interruption, ordonnancement (priorité fixe et
Présence d’abstractions (temps-réel) dynamique), synchronisation par sémaphore, timer et gestion du temps, outils
Tâches, synchronisation, horloges, etc. de communication basés sur les rendez-vous
Accès aisé aux ressources de bas niveau Interface et syntaxe normalisé par ISO
Portabilité, normalisation Langage très portable
Compilation croisée (cross-compilation) Adapté à la production de logiciels volumineux
Performances Langage complexe
Deux approches: langages bas niveau ou haut niveau
Langages de bas niveau: C/C++, assembleur
Largement diffusés et utilisés à ce jour
Accès direct aux ressources de bas niveau Idéal pour les I/O
(entrées/sorties)
Pas vraiment normalisé, donc peu portable
Effort de standardisation par POSIX
Doit être couplé avec les services du système
(synchronisation,ordonnancement)
Recours aux librairies
Langage généralement restreint
Comportement temporel déterministe facile à évaluer
Peu adapté aux logiciels complexes et/ou volumineux
01/09/2024 Mr. NASRI ISSATGF 35
Lois de Murphy relatives aux
systèmes temps-réel (1)
01/09/2024 Mr. NASRI ISSATGF 36
•Programmation Temps Réel Ordonnancement de
tâches périodiques/Ordonnancement non temps
réel
01/09/2024 Mr. NASRI ISSATGF 37
•Programmation Temps Réel Ordonnancement de
tâches périodiques/Taxonomie des
ordonnancements
01/09/2024 Mr. NASRI ISSATGF 38
•Programmation Temps Réel Ordonnancement de
tâches périodiques Taxonomie des
ordonnancements
01/09/2024 Mr. NASRI ISSATGF 39
•Algorithmes non préemptifs
01/09/2024 Mr. NASRI ISSATGF 40
•Algorithmes non préemptifs
01/09/2024 Mr. NASRI ISSATGF 41
•Algorithmes
préemptifs
01/09/2024 Mr. NASRI ISSATGF 42
•Algorithmes
préemptifs
01/09/2024 Mr. NASRI ISSATGF 43
•Ordonnancement temps réel
01/09/2024 Mr. NASRI ISSATGF 44
•Ordonnancement temps réel
01/09/2024 Mr. NASRI ISSATGF 45
•Tâches périodiques
01/09/2024 Mr. NASRI ISSATGF 46
•Paramètres d’une tâche
01/09/2024 Mr. NASRI ISSATGF 47
•Paramètres d’une tâche périodique
01/09/2024 Mr. NASRI ISSATGF 48
•Paramètres d’une tâche périodique à
échéance sur requête
01/09/2024 Mr. NASRI ISSATGF 49
•Autres paramètres
01/09/2024 Mr. NASRI ISSATGF 50
•Tâches périodiques
01/09/2024 Mr. NASRI ISSATGF 51
•Définitions
01/09/2024 Mr. NASRI ISSATGF 52
•Hypothèses
01/09/2024 Mr. NASRI ISSATGF 53
•Taux d’utilisation du processeur
01/09/2024 Mr. NASRI ISSATGF 54
•U - Least Upper Bound
01/09/2024 Mr. NASRI ISSATGF 55
•U - Least Upper Bound
01/09/2024 Mr. NASRI ISSATGF 56
•Least Upper Bound
01/09/2024 Mr. NASRI ISSATGF 57
•Cyclic scheduling:
Introduction
01/09/2024 Mr. NASRI ISSATGF 58
•Cyclic scheduling
01/09/2024 Mr. NASRI ISSATGF 59
•Cyclic scheduling
01/09/2024 Mr. NASRI ISSATGF 60
•Exemple
01/09/2024 Mr. NASRI ISSATGF 61
•Cyclic scheduling
01/09/2024 Mr. NASRI ISSATGF 62
•Taux d’utilisation du
processeur
01/09/2024 Mr. NASRI ISSATGF 63
•Problèmes
01/09/2024 Mr. NASRI ISSATGF 64
•Implémentation (1)
01/09/2024 Mr. NASRI ISSATGF 65
•Implémentation (2)
01/09/2024 Mr. NASRI ISSATGF 66
•Implémentation (3)
01/09/2024 Mr. NASRI ISSATGF 67
Conclusion sur Cyclic
scheduling
01/09/2024 Mr. NASRI ISSATGF 68
Algorithmes
01/09/2024 Mr. NASRI ISSATGF 69
•Rate Monotonic
01/09/2024 Mr. NASRI ISSATGF 70
Rate
Monotonic:
Exemple
01/09/2024 Mr. NASRI ISSATGF 71
•Rate Monotonic:
ordonnançabilité
01/09/2024 Mr. NASRI ISSATGF 72
•Rate Monotonic:
ordonnançabilité
01/09/2024 Mr. NASRI ISSATGF 73
•Rate Monotonic:
ordonnançabilité
01/09/2024 Mr. NASRI ISSATGF 74