CH 2
CH 2
Prédictibilité :
–Les performances de l’application doivent être définies dans tous les cas
possibles de façon à assurer le respect des contraintes de temps. On parle de
pire cas.
Déterminisme :
–Il n’y a aucune incertitude sur le comportement du système: pour un
contexte donné le comportement est toujours le même.
Fiabilité :
–Capacité d’un système à réaliser et maintenir ses fonctionnalités dans des
conditions normales d’utilisation. En temps réel, la fiabilité concerne le
respect des contraintes temps réel. On peut également vouloir que le système
reste fiable même si certaines pannes sont apparues, on parle alors de
tolérance aux fautes.
26
Types Systèmes embarqués temps réel :
Ce sont des systèmes liés au contrôle de procédés et l'exécution de programmes
dans ces systèmes doit terminer avant une date appelée échéance au-delà de
laquelle les résultats ne sont plus valides.
La gestion d’un airbag est temps réelle : quand un capteur détecte une
déformation de la carrosserie suffisamment importante, il envoie un signal au
contrôleur qui doit avoir gonflé les airbags dans les 10 ms sous peine d’arriver
trop tard ce qui aurait des conséquences désastreuses pour les occupants de
la voiture. 29
Système d'exploitation Temps réel (RTOS)
● ordonnanceur (scheduler)
● notifications asynchrones
➢ signaux, événements
● gestion des activités (threads)
● gestion de la mémoire
➢ création
➢ mémoire virtuelle
➢ suspension
➢ verrouillage de la mémoire
➢ destruction
➢ protection de la mémoire
● gestion du temps
● entrées-sorties directs ou asynchrones
➢ horloges
➢ open
➢ timers
➢ read
● communication et synchronisation
➢ write
➢ files de messages
● gestion du réseau
➢ mémoire partagée
➢ sémaphores, moniteurs,
variables conditionnelles
30
Système d'exploitation Temps réel (RTOS)
31
Système d'exploitation Temps réel (RTOS)
L’ordonnanceur
32
Système d'exploitation Temps réel (RTOS)
L’ordonnanceur
33
les RTOS du marché
34
les RTOS du marché
35
VxWorks
● RTOS propriétaire produit par Wind River (filiale de Intel)
➢ le plus utilisé dans le monde de l'embarqué
➢ rendu célèbre par la mission Pathfinder sur Mars
➢ équipe la plupart des missions NASA (Curiosity)
➢ dernière version : VxWorks 7 (2014) et VxWorks 7 pour IoT en 2016
● Peu d'informations sur l'architecture de l'OS
➢ Non UNIX, mais interface conforme à POSIX
➢ Construit autour d'un micronoyau (WIND)
➢ Les applications, les protocoles de communication sont complètement séparés
du noyau
➢ Depuis la version 6.0, l'environnement de développement officiel de
VxWorks est Workbench
➢ The ASIMO Robot uses VxWorks
36
VxWorks
37
Linux Temps réel
38
Linux Temps réel
39
Linux Temps réel
● approche « co-noyau »
Solution « classique » (a existé même pour Windows : RTX)
✔ délègue ceux-ci à un noyau spécialisé
✔ le noyau Linux continue à servir les tâches classiques
➢ le noyau temps réel intercepte toutes les interruptions matérielles et les
traite avant de les passer éventuellement au noyau Linux
➢ Linux fonctionne avec une priorité inférieure à celle du noyau temps réel
➢ mais nécessité de porter sur le noyau temps réel tous les pilotes dont on
attend une réponse temps réel
➢ Linux Xenomai et RTA
40
Algorithmes d'ordonnancement
● Configuration : ensemble de N tâches qui vont s'exécuter concurremment pour
réaliser les objectif de l'application .
41
Algorithmes d'ordonnancement
42
Algorithmes d'ordonnancement
Quelques définitions
43
Algorithmes d'ordonnancement
Comment évaluer le WCET ?
Mesures
sur matériel
sur simulateur
Analyse statique
44
Algorithmes d'ordonnancement
Quelques définitions
● paramètres statiques
➢ U = C/P : facteur d'utilisation du processeur
➢ CH = C/D : facteur de charge du processeur
● paramètres dynamiques
➢ s : date du début de l'exécution
➢ e : date de la fin de l'exécution
➢ D(t) = d-t : délai critique résiduel a la date t (0 ≤ D(t) ≤ D)
45
Algorithmes d'ordonnancement
Quelques définitions
● paramètres statiques
➢ U = C/P : facteur d'utilisation du processeur
➢ CH = C/D : facteur de charge du processeur
● paramètres dynamiques
➢ s : date du début de l'exécution
➢ e : date de la fin de l'exécution
➢ D(t) = d-t : délai critique résiduel a la date t (0 ≤ D(t) ≤ D)
46
Algorithmes d'ordonnancement
Quelques définitions
● paramètres statiques
➢ U = C/P : facteur d'utilisation du processeur
➢ CH = C/D : facteur de charge du processeur
● paramètres dynamiques
➢ s : date du début de l'exécution
➢ e : date de la fin de l'exécution
➢ D(t) = d-t : délai critique résiduel a la date t (0 ≤ D(t) ≤ D)
➢ C(t) : durée d'exécution résiduelle a la date t (0 ≤ C(t) ≤ C)
➢ L(t) = D(t)-C(t) : laxité nominale résiduelle
47
Algorithmes d'ordonnancement
Tâches indépendantes périodiques
● l'ordre dans lequel les tâches de la configuration sont exécutées est sans
importance
● les tâches ne partagent aucune ressource
● algorithmes a priorités fixes
➢ RMA
➢ DMA
● algorithmes a priorités variables
➢ EDF
48
Algorithmes d'ordonnancement
Rate Monotonic Analysis
49
Algorithmes d'ordonnancement
Rate Monotonic Analysis - Exemple
50
Algorithmes d'ordonnancement
Earliest Deadline First
● algorithme à priorité variable ou dynamique
● basé sur l'échéance
➢ à chaque instant (i.e à chaque réveil de tâche), la priorité maximale
est donnée à la tâche dont l'échéance est la plus proche
● test d'acceptabilité
➢ condition nécessaire
Si le résultat du test est positif, les tâches peuvent ne pas être ordonnançable. s’il
est négatif, les tâches sont non ordonnançables
➢ condition suffisante
Si le test est positif alors les tâches sont ordonnançables. Dans le cas
contraire elles peuvent être ordonnançables ou non
51
Algorithmes d'ordonnancement
Earliest Deadline First
-Avantages :
(utilisation à 100%)
-Désavantages :
Implémentation difficile, il faut réajuster les priorités au fil du temps en testant les
différentes échéances.
52
Algorithmes d'ordonnancement
Earliest Deadline First - exemple
54