3. STR
Prof.M.K.MANSOURI
3
Ordonnancement Temps Téel
Systèmes temps réel–Deuxième partie–plan du cours :
1. Concept de taches
2. Prédictibilité temporelle des STR
3. Introduction à l’ordonnancement
4. Objectif de l’ordonnancement
5. Modèle d’étude d’ordonnancement : Hypothèses
6. Caractéristiques de taches
7. Types d’algorithmes d’ordonnancement
8. Ordonnancements classiques
9. Ordonnancement des tâches périodiques
10. Algorithme Rate Monotonic Analysis (RMA)
11. Algorithme Deadline Monotonic Analysis (DMA)
12. Algorithme Earliest Deadline First (EDF)
13. Algorithme Least Laxity First (LLF)
4. STR
Prof.M.K.MANSOURI
4
2.1. Concept de taches (1) :
STR- 2. Ordonnancement Temps Réel
Le système est une collection de tâches
autonomes, s’exécutant en parallèle
(parallélisme logique)
(statiquement) est décrite par un programme
séquentiel,
Une tâche :
(à l’exécution) a son propre fil de contrôle,
peut communiquer et partager des ressources
avec d’autres tâches.
5. STR
Prof.M.K.MANSOURI
5
2.1. Concept de taches (2) :
STR- 2. Ordonnancement Temps Réel
l’interprétation varie au cours du cycle de
développement :
analyse / conception : tâche = une série
d’actions
déclanchée par un stimulus venant d’un capteur
ou par l’arrivée d’une échéance temporelle
implémentation : tâche = processus ou thread
(Suite de messages diffusés dans un forum par exemple) ou objet
actif ou …
Tâches temps réel soumises à des contraintes
de temps, plus ou moins strictes :
instant de démarrage,
instant de fin,
absolus ou relatifs à d'autres tâches.
6. STR
Prof.M.K.MANSOURI
6
2.1. Concept de taches (3) :
STR- 2. Ordonnancement Temps Réel
Il y a trois types de taches :
Tâches périodiques :
Déclanchées par le temps. Caractéristiques
connues à l’avance.
La tache Ti est caractérisée par :
o Pi – période d’arrivée
o Ci – temps de calcul au pire cas (WCET :
Worst Case Execution Time : Pire Temps d'Exécution)
o Di – échéance relative à l’arrivée
Exemple : Guidage-Navigation-Contrôle dans
un AOCS Attitude and Orbit Control System : Attitude et
système de commande d'orbite (Exemple : Ariane-5)
7. STR
Prof.M.K.MANSOURI
7
2.1. Concept de taches (4) :
STR- 2. Ordonnancement Temps Réel
Tâches apériodiques :
Déclanchées par un événement extérieur.
Caractéristiques partiellement non-connues.
La tache Ti est caractérisée par :
o Ci – temps de calcul au pire cas (WCET)
o Di – échéance relative à l’arrivée
o (éventuellement) Ai–temps d’arrivée/contraintes
Tâches sporadiques :
tâches apériodiques avec temps minimum
entre arrivées connu.
Exemple : Séparation des étages dans un
lanceur (Ariane-5)
8. STR
Prof.M.K.MANSOURI
8
2.1. Concept de taches (5) :
STR- 2. Ordonnancement Temps Réel
Au niveau de l’interaction entre tâches, on peut
distinguer:
Les tâches indépendantes, dont l’ordre
d’exécution peut être quelconque.
Au niveau des politiques d’ordonnancement, il est clair
que les dépendances entre tâches auront un rôle crucial
et devront être prises en compte de manière judicieuse.
Les tâches dépendantes, pour lesquelles il existe
des contraintes de précédence. Il s’agit du cas où
une tâche doit attendre qu’une autre ait terminé
son traitement pour pouvoir commencer le sien.
9. STR
Prof.M.K.MANSOURI
9
2.1. Concept de taches (6) :
STR- 2. Ordonnancement Temps Réel
Tâches dans un contexte temps réel :
Lors de son exécution, un processus est caractérisé par
un état :
lorsque le processus obtient le processeur et s'exécute,
il est dans l'état élu.
… L'état élu est l'état d'exécution du processus.
lors l’exécution, le processus peut demander à accéder
à une ressource importante non disponible, le processus
quitte alors le processeur et passe dans l'état bloqué.
….L'état bloqué est l'état d'attente d'une ressource
autre que le processeur.
10. STR
Prof.M.K.MANSOURI
10
2.1. Concept de taches (7) :
STR- 2. Ordonnancement Temps Réel
lorsque le processus obtient la ressource qu'il
attendait, celui-ci peut reprendre son exécution. Mais le
processeur peut être alloué à un autre processus
(système multiprogrammes). Le processus passe alors
dans l'état prêt.
… L'état Prêt est l'état d'attente du processeur.
Le passage de l'état prêt vers l'état élu constitue
l'opération d'élection,
Le passage de l'état élu vers l'état bloqué est
l'opération de blocage,
Le passage de l'état bloqué vers l'état prêt est
l'opération de déblocage.
11. STR
Prof.M.K.MANSOURI
11
2.1. Concept de taches (7) :
STR- 2. Ordonnancement Temps Réel
Cycle de vie Tâche
Prêt
Bloqué
Elu
Election
Fin
BlocageDéblocage
Préemption
12. STR
Prof.M.K.MANSOURI
12
2.1. Concept de taches (8) :
STR- 2. Ordonnancement Temps Réel
Un processus est toujours crée dans l'état prêt,
Un processus se termine toujours à partir de l'état élu.
Le graphe des états du processus est le suivant :
13. STR
Prof.M.K.MANSOURI
13
2.1. Concept de taches (9) :
STR- 2. Ordonnancement Temps Réel
Une transition peut s’ajouter entre l'état élu et l'état
prêt, la préemption : Réquisition du processeur qui est
retiré au processus élu alors qu’il dispose de toutes les
ressources nécessaires à la poursuite de son exécution.
15. STR
Prof.M.K.MANSOURI
15
2.1. Concept de taches (11) :
STR- 2. Ordonnancement Temps Réel
Contraintes sur les tâches:
échéance (deadline)
contraintes de ressources partagées :
o ressource en lecture : accès partagé
o ressource en écriture : accès exclusif
contraintes de précédence :
o T1 T2 : T2 ne peut commencer que si
T1 a déjà terminé.
contraintes de criticité :
o Exemple : 5 niveaux (A-E)
o redondance pour la tolérance aux fautes
o … etc.
16. STR
Prof.M.K.MANSOURI
16
2.2. Prédictibilité temporelle des STR :
STR- 2. Ordonnancement Temps Réel
Prédictibilité = assurer a priori que toutes les
taches respectent leurs échéances
problèmes:
o liés au programme (structure dynamique –
boucles, branches, appels externes – OS, …)
méthodes: analyse statique de programmes,
interprétation abstraite, analyse dynamique, …
On se base en général sur :
l'analyse de pire temps d'exécution (WCET–Worst
Case Execution Time):
o liés au matériel (cache, exécution prédictive…)
l'ordonnancement des taches
17. STR
Prof.M.K.MANSOURI
17
2.3. Introduction à l’ordonnancement (1) :
STR- 2. Ordonnancement Temps Réel
Les tâches temps réel soumises à des contraintes de
temps, plus ou moins strictes
il doit permettre de borner les effets d'incidents ou de
surcharges
Politique d’ordonnancement : politique d’allocation
des tranches de temps processeur (les moments où une
tache est livrée au processeur / suspendue )
L’ordonnancement a pour but de répartir l’utilisation
du processeur entre les différentes tâches demandeuses.
Plusieurs solutions classées selon différents paramètres.
le but de l'ordonnancement est de permettre le respect
de ces contraintes, lorsque l'exécution se produit dans un
mode courant
19. STR
Prof.M.K.MANSOURI
19
2.4. Objectif de l’ordonnancement :
STR- 2. Ordonnancement Temps Réel
assurer le respect des échéances de manière
prouvable
Une méthode d’ordonnancement est caractérisée
par :
la méthode effective de construction de l’emploi
du temps (schedule) du processeur (online ou
offline)
le critère de test d’ordonnancabilite (offline) –
prédiction du comportement « au pire cas »
20. STR
Prof.M.K.MANSOURI
20
2.5. Modèle d’étude d’ordonnancement : Hypothèses :
STR- 2. Ordonnancement Temps Réel
Les systèmes que nous allons étudiés :
Consiste d’un ensemble fixe de taches,
Toutes les taches sont périodiques,
les taches sont indépendantes,
(pas de communication/synchronisation)
on suppose un temps de changement de contexte
zero.
21. STR
Prof.M.K.MANSOURI
21
2.6. Caractéristiques de taches (1) :
STR- 2. Ordonnancement Temps Réel
La figure suivante illustre le diagramme temporels
utilisé pour représenter les taches :
Conventions sur la représentation des taches :
On note l’occurrence d’un réveil de tâche à l’aide
d’une flèche pointant vers le haut,
l’échéance de la tâche étant représentée par une flèche
pointant vers le bas.
22. STR
Prof.M.K.MANSOURI
22
2.6. Caractéristiques de taches (2) :
STR- 2. Ordonnancement Temps Réel
r : date de réveil : moment du déclenchement de la 1ère
requête d'exécution
C : durée d'exécution maximale (capacité)
D : délai critique
délai maximum acceptable pour son exécution
P : période (si tâche périodique)
d = r+D : échéance (si tâche à contraintes strictes)
Tâche périodique : rk = r0 + k*P
si D = P, tâche à échéance sur requête
23. STR
Prof.M.K.MANSOURI
23
2.6. Caractéristiques de taches (3) :
STR- 2. Ordonnancement Temps Réel
La figure suivante illustre les caractéristiques d’une
tâche périodique à échéance sur requête (D = P), où la
période est égale au délai critique.
La figure suivante montre les paramètres d’une tâche
périodique :
24. STR
Prof.M.K.MANSOURI
24
2.6. Caractéristiques de taches (4) :
STR- 2. Ordonnancement Temps Réel
U = C/P : facteur d'utilisation du processeur
paramètres statiques :
CH = C/D : facteur de charge du processeur
s : date du début de l'exécution de la tache
paramètres dynamiques :
f : date de la fin de l'exécution de la tache
D(t) = d-t : délai critique résiduel à la date t (0 ≤ D(t) ≤ D)
C(t) : durée d'exécution résiduelle à la date t (0 ≤ C(t) ≤ C)
L = D-C : laxité nominale de la tâche : retard maximum pour
son début d'exécution s (si elle est seule)
L(t) = D(t) - C(t) : laxité nominale résiduelle : retard
maximum pour reprendre l'exécution
TR = f - r : temps de réponse de la tâche
CH(t) = C(t)/D(t) : charge résiduelle (0 ≤ CH(t) ≤ C/P)
25. STR
Prof.M.K.MANSOURI
25
2.6. Caractéristiques de taches (5) :
STR- 2. Ordonnancement Temps Réel
préemptibles ou non
dépendance ou indépendance
ordre partiel prédéterminé ou induit
partage de ressources
priorité externe
ordonnancement hors ligne déterminé à la
conception
gigue maximale
variation entre la requête et le début de l'exécution
urgence ↔ échéance
importance
Une tâche apériodique est représentée par le t-uple T(r, C, D),
Une tâche périodique est représentée par le t-uple T (r0,C,D),
r0 étant la date de réveil de la première occurrence
26. STR
Prof.M.K.MANSOURI
26
Quelques définitions (1) :
STR- 2. Ordonnancement Temps Réel
facteur d'utilisation du processeur
Configuration : ensemble de n tâches mises en jeu par
l'application :
CH = C/D : facteur de charge du processeur
le PPCM des périodes dans le cas d'une configuration de
tâches périodiques
U
i 1
n
Ci
Pi
CH
i 1
n
Ci
Di
intervalle d'étude : intervalle de temps minimum pour
prouver l'ordonnançabilité d'une configuration
27. STR
Prof.M.K.MANSOURI
27
Quelques définitions (2) :
STR- 2. Ordonnancement temps réel
laxité conditionnelle :
laxité du processeur LP(t) = intervalle de temps pendant
lequel le processeur peut rester inactif tout en respectant
les échéances
LP(t) = min(LCi(t))
LCi t Di Ci t
(somme sur les tâches déclenchées à la date t et qui
sont devant i du point de vue de l'ordonnancement)
faisabilité = Un ensemble de tâches est dit faisable s’il
est possible d’en proposer un ordonnancement respectant
l’ensemble des contraintes de temps imposées.
28. STR
Prof.M.K.MANSOURI
28
Buts recherchés dans le cas général :
STR- 2. Ordonnancement temps réel
en fonctionnement nominal : respect des contraintes
temporelles
piloter l'application avec 2 objectifs majeurs :
en fonctionnement anormal (par exemple pannes
matérielles) : atténuer les effets des surcharges et maintenir un
état cohérent et sécuritaire
de toutes les requêtes en fonctionnement nominal
ordonnancer = planifier l'exécution des requêtes de
façon à respecter les contraintes de temps
d'au moins les requêtes les plus importantes (c'est-à-dire
celles nécessaires à la sécurité du procédé) en fonctionnement
anormal
29. STR
Prof.M.K.MANSOURI
29
2.7. Types d’algorithmes (1) :
STR- 2. Ordonnancement temps réel
Les algorithmes d’ordonnancement peuvent être
catégorisés selon les critères suivants :
L’architecture physique du système a une influence
sur la manière d’agencer les tâches.
Monoprocesseur/multiprocesseur :
Certains algorithmes ne peuvent être appliqués qu’à
des systèmes monoprocesseur (ordonnancement
monoprocesseur),
D’autres se destinent à des systèmes multiprocesseur
(ordonnancement multiprocesseur)
Dans le cadre de ce cours, nous ne traiterons que les
algorithmes monoprocesseur
30. STR
Prof.M.K.MANSOURI
30
2.7. Types d’algorithmes (2) :
STR- 2. Ordonnancement temps réel
Les algorithmes préemptifs traitent les systèmes dans
lesquels les tâches peuvent être préemptées :
Algorithme préemptif ou non préemptif :
Une tâche peut être interrompue à son insu pour
céder le processeur à une autre tâche plus prioritaire.
Les algorithmes non-préemptifs traitent les systèmes
dans lesquels une tâche ayant commencé son
traitement doit obligatoirement le terminer avant
qu’une autre ne s’exécute :
32. STR
Prof.M.K.MANSOURI
32
2.7. Types d’algorithmes (4) :
STR- 2. Ordonnancement temps réel
La possibilité de préemption permet d’éviter que le
processeur ne soit occupé trop longtemps par une
tâche, ce qui pourrait empêcher une autre tâche de se
terminer à temps.
Cette flexibilité a un coût lié au temps nécessaire pour
le changement de contexte d’une tâche à l’autre.
Ce coût peut être intolérable suivant l’application.
… donc un choix doit être fait, pour un système
particulier, de partir sur une solution avec ou sans
préemption.
33. STR
Prof.M.K.MANSOURI
33
2.7. Types d’algorithmes (5) :
STR- 2. Ordonnancement temps réel
Un ordonnancement hors-ligne est effectué avant le
lancement du système. Tous les paramètres de tâches
sont connus a priori, et notamment les dates d’activation.
Algorithme en ligne ou hors ligne (online / offline) :
Le choix est dynamique ou prédéfini à la conception
L’implémentation du système est alors très simple : il
suffit de stocker l’identifiant de la tâche à effectuer à
chaque moment d’ordonnancement dans une table,
l’Ordonnanceur exploitant ensuite cette information
pour sélectionner la tâche à exécuter.
Le désavantage de cette approche est la grande
dépendance au système cible.
34. STR
Prof.M.K.MANSOURI
34
2.7. Types d’algorithmes (6) :
STR- 2. Ordonnancement temps réel
Un ordonnancement en-ligne est effectué durant le
fonctionnement du système.
l’analyse hors-ligne permet une meilleure prédiction
de la satisfaction ou non des contraintes temporelles
L’Ordonnanceur recalcule un nouvel ordonnancement
à chaque fois qu’une nouvelle tâche est activée.
L’avantage de l’approche est la flexibilité,l’adaptabilité
à l’environnement que procure le calcul en-ligne.
Par contre, ce calcul devant être exécuté par le système,
qui est temps réel, doit être le plus simple et plus rapide
possible, rendant impossible une solution dite optimale.
Plusieurs algorithmes permettent de résoudre ce
problème.
35. STR
Prof.M.K.MANSOURI
35
2.7. Types d’algorithmes (7) :
STR- 2. Ordonnancement temps réel
Un ordonnancement est dit statique s’il est uniquement
basé sur les propriétés des tâches avant le lancement du
système.
Statique / dynamique:
Un ordonnancement est dynamique s’il est capable de
réagir à la modification des propriétés des tâches durant
le fonctionnement du système (typiquement un
changement de priorité).
36. STR
Prof.M.K.MANSOURI
36
2.7. Types d’algorithmes (8) :
STR- 2. Ordonnancement temps réel
Un ordonnancement est dit optimal s’il est capable de
fournir un ordonnancement qui respecte toutes les
contraintes de temps si un tel ordonnancement existe.
Optimal / non optimal :
Un algorithme non optimal (ou best effort) n’a pas la
prétention d’être optimal, mais doit faire de son mieux
pour fournir un ordonnancement le plus proche possible
de l’optimal.
Si un algorithme optimal n’est pas capable de trouver
un ordonnancement correct, aucun autre algorithme ne le
pourra.
37. STR
Prof.M.K.MANSOURI
37
2.7. Types d’algorithmes (9) :
STR- 2. Ordonnancement temps réel
en TR mou, meilleur effort = faire au mieux avec les
processeurs disponibles
stratégie du meilleur effort ou inclémence :
en TR dur, obligation des respecter les contraintes temporelles :
inclémence aux fautes temporelles
Algorithme centralisé ou réparti
Ordonnancement des tâches indépendantes
partage de ressources
Ordonnancement des tâches dépendantes :
contraintes de précédence
Ordonnancement en cas de surcharge
38. STR
Prof.M.K.MANSOURI
38
2.8. Ordonnancements classiques (1) :
STR- 2. Ordonnancement temps réel
Dans un système classique, l’Ordonnanceur réparti le
temps CPU entre les différentes tâches présentes dans le
système.
Dans une première partie, nous présentons quelques
algorithmes d’ordonnancement classiques,
Dans une seconde partie, nous présentons des
algorithmes spécifiques au temps réel.
39. STR
Prof.M.K.MANSOURI
39
2.8. Ordonnancements classiques (2) :
STR- 2. Ordonnancement temps réel
… appliqués lorsque les tâches ne peuvent être
préemptées, c’est-à-dire où une tâche ayant commencé
son exécution doit forcément la terminer avant qu’une
autre tâche ne puisse débuter.
Algorithmes non préemptifs :
1. Premier arrivé premier servi :
Cet algorithme fonctionne de la manière plus simple
Les tâches sont stockées dans une structure de type
FIFO (First In First Out)
la première tâche est exécutée et lorsqu’elle
termine, la suivante est lancée.
40. STR
Prof.M.K.MANSOURI
40
2.8. Ordonnancements classiques (3) :
STR- 2. Ordonnancement temps réel
Les tâches nouvellement activées sont stockées à la fin de la file
d’attente.
Dans l’exemple suivant, nous pouvons noter que les tâches T1 et
T2 doivent attendre un temps important jusqu’à ce que la tâche T0
se termine.
Tâche Coût Arrivée
T0 8 1
T1 2 2
T2 4 4
41. STR
Prof.M.K.MANSOURI
41
2.8. Ordonnancements classiques (4) :
STR- 2. Ordonnancement temps réel
Éviter que des tâches courtes ne doivent attendre trop longtemps
sur des tâches longues,
2. Plus court d’abord :
il est possible d’appliquer un algorithme où la tâche la plus
courte est servie en premier.
les tâches courtes sont favorisées
le temps d’attente moyen est minimisé
Un des problèmes de cette approche est le risque de trop de
retard pour les tâches longues
Si de nouvelles tâches courtes sont régulièrement réveillées, il se
peut qu’elles passent toujours devant une tâche longue, empêchant
ainsi celle-ci de s’exécuter
43. STR
Prof.M.K.MANSOURI
43
2.8. Ordonnancements classiques (5) :
STR- 2. Ordonnancement temps réel
Algorithmes préemptifs :
3. Algorithme du tourniquet :
L’algorithme du tourniquet (round robin en anglais) vise à traiter
les tâches avec le plus d’équité possible, en allouant un quantum de
temps identique à toutes les tâches et à les traiter dans un ordre
FIFO.
Les tâches sont placées dans une file d’attente et la première de
la file est exécutée pendant un quantum de temps
A la fin de ce quantum, si la tâche n’est pas terminée, elle est
replacée à la fin de la file et une nouvelle tâche est sélectionnée de
puis le début de la file.
Si la file est vide, la tâche peut continuer son exécution. La
figure suivante illustre cet algorithme avec un quantum de 2 unités
de temps.
45. STR
Prof.M.K.MANSOURI
45
2.8. Ordonnancements classiques (7) :
STR- 2. Ordonnancement temps réel
D’après la figure on remarque que la tâche T0 garde l’accès au
processeur lorsqu’elle se retrouve être la seule en cours
d’exécution.
Il n’y a donc pas de changement de contexte si ceci n’est pas
nécessaire
Cette technique de tourniquet correspond à la politique standard
observée dans les systèmes d’exploitation, car elle permet à toutes
les tâches de s’exécuter sans risque de retard
Nous pouvons toute fois noter qu’il s’agira d’une variante avec
priorité.
Remarques :
46. STR
Prof.M.K.MANSOURI
46
2.8. Ordonnancements classiques (8) :
STR- 2. Ordonnancement temps réel
4. Algorithme à priorité fixe :
L’algorithme du tourniquet traite toutes les tâches sur le même
pied d’égalité
L’algorithme à priorité fixe fonctionne comme celui du tourniquet
à l’intérieur d’une priorité et les priorités sont traitées dans l’ordre.
Les tâches d’une priorité particulière y sont traitées selon un
tourniquet, pour autant qu’aucune tâche de plus haute priorité ne
soit prête à être exécutée.
La figure suivante illustre cet algorithme, avec un quantum égal
à 2 unités de temps
Il est souvent nécessaire de définir des priorités entre tâches,
afin, par exemple, de garantir que la lecture d’un fichier audio se
fasse de manière fluide, même lorsqu’une compilation est en cours.
48. STR
Prof.M.K.MANSOURI
48
2.8. Ordonnancements classiques (10) :
STR- 2. Ordonnancement temps réel
D’après la figure on peut noter que la tâche T1, la plus
prioritaire, est exécutée au départ, puis un tourniquet est effectué
pour les deux autres tâches
Cette technique de tourniquet à priorité correspond à la politique
standard observée dans les systèmes d’exploitation, car elle permet
à toutes les tâches de s’exécuter sans risque de retard.
Remarques :
49. STR
Prof.M.K.MANSOURI
49
2.8. Ordonnancements classiques (11) :
STR- 2. Ordonnancement temps réel
5. Algorithme Earliest deadline first (EDF) :
(premier délai)
L’algorithme Earliest Deadline First (EDF) donne la priorité à la
tâche ayant l’échéance la plus proche.
La figure suivante illustre le principe de cet algorithme.
A chaque fois qu’une tâche est réveillée, l’Ordonnanceur
réévalue les tâches prêtes et sélectionne celle ayant l’échéance la
plus courte..
50. STR
Prof.M.K.MANSOURI
50
2.8. Ordonnancements classiques (12) :
STR- 2. Ordonnancement temps réel
Exemple d’algorithme : (EDF) :
Tâche Coût Priorité Arrivée
T0 6 12 0
T1 4 8 2
T2 2 5 3
Nous reviendrons sur l’algorithme EDF, étant donné qu’il
s’agit d’une des politiques d’ordonnancement les plus utilisées.
51. STR
Prof.M.K.MANSOURI
51
2.9. Ordonnancement des tâches périodiques (1) :
STR- 2. Ordonnancement temps réel
Le problème fondamental est de garantir le respect des échéances des
différentes tâches constituant un système.
Il existe un grand nombre de manière d’ordonnancer un ensemble de
tâches et ce notamment en fonction des caractéristiques de celles-ci.
Elles peuvent être indépendantes, dépendantes, périodiques,
apériodiques, elles peuvent partager ou non des ressources, changer ou
non des informations.
Dans nombre de systèmes temps réel, certaines tâches doivent
s’exécuter de manière répétée, à intervalles réguliers.
Il pourra par exemple s’agir d’une tâche chargée d’aller vérifier la
valeur d’un capteur tous les dixièmes de seconde.
Ces tâches sont appelées tâches périodiques, puisqu’elles doivent
s’exécuter régulièrement, en suivant une période fixe.
52. STR
Prof.M.K.MANSOURI
52
2.9. Ordonnancement des tâches périodiques (2) :
STR- 2. Ordonnancement temps réel
Algorithme Rate Monotonic Analysis (RMA) :
(Taux monotone)
L’algorithme Rate Monotonic est un algorithme statique
Il s’agit d’un algorithme préemptif, l’activation d’une tâche de
petite période devant permettre la préemption d’une tâche de
période plus grande.
applicable à un ensemble de tâches à échéance sur requête, où les
priorités des tâches sont fixées et décidée avant le lancement du
système.
La priorité des tâches est fixée en fonction de leur période
d’activation.
Plus une tâche a une petite période d’activation, plus sa priorité
sera haute
Cet algorithme est optimal dans le cas des priorités fixes.
53. STR
Prof.M.K.MANSOURI
53
STR- 2. Ordonnancement temps réel
Test d'acceptabilité ou Critère statique d’ordonnançabilité RMA
(condition suffisante)
i 1
n
Ci
Pi
n 21 n
1
Algorithme Rate Monotonic Analysis (RMA) :
algorithme à priorité constante
Théorème : Un ensemble de n tâches périodiques
indépendantes est ordonnançable par RMA
indifféremment de l’ordre d’arrivée si :
Utilisation du processeur U(n)
la condition est restrictive:
U(1) = 1 U(2) ~ 0.828 U(3) ~ 0.779
U(4) ~ 0.756 U(5) ~ 0.743 U(6) ~ 0.734
pour n très grand, U tend vers ln 2 ~ 0.69 = 69%
54. STR
Prof.M.K.MANSOURI
54
STR- 2. Ordonnancement temps réel
dans la pratique, on peut rencontrer des ordonnancements
valides qui vont jusqu'à 88%
Algorithme Rate Monotonic Analysis (RMA) :
L’ensemble est ordonnançable
Application 1 du critère :
Tache P C
A 10 5
B 20 6
UA = CA / PA = 0.5
UB = CB / PB = 0.3
U = UA + UB = 0.8 < U(2)
55. STR
Prof.M.K.MANSOURI
55
STR- 2. Ordonnancement temps réel
Algorithme Rate Monotonic Analysis (RMA) :
Application 2 du critère :
UA = CA / PA = 0.5
UB = CB / PB = 0.3
U = UA + UB + UC = 0.94 > U(3) ~ 0.779
Tache P C
A 10 5
B 20 6
C 50 7 UC = CC / PC = 0.14
56. STR
Prof.M.K.MANSOURI
56
STR- 2. Ordonnancement temps réel
Algorithme Rate Monotonic Analysis (RMA) :
Améliorer le critère :
La condition :
i 1
n
Ci
Pi
n 21 n
1 est suffisante mais pas nécessaire
Il existe un test précis:
Théorème : Si un ensemble de n tâches indépendantes
avec priorités fixes affectées par RMA respecte la 1ère
échéance de chaque tâche quand toutes les tâches sont
démarrées en même temps (à T0), alors l’ensemble est
toujours ordonnançable.
57. STR
Prof.M.K.MANSOURI
57
STR- 2. Ordonnancement temps réel
Algorithme Rate Monotonic Analysis (RMA) :
pourtant :
Cas particulier (1) :
Tache P C
A 10 5
B 20 10
UA = CA / PA = 0.5
UB = CB / PB = 0.5
U = UA + UB = 1 > U(2)
58. STR
Prof.M.K.MANSOURI
58
STR- 2. Ordonnancement temps réel
Algorithme Rate Monotonic Analysis (RMA) :
De manière générale : un ensemble de tâches
périodiques harmoniques est ordonnançable si
l’utilisation du processeur est <= 100%
Cas particulier (2) :
Tache P C
A 10 5
B 20 10
UA = CA / PA = 0.5
UB = CB / PB = 0.5
U = UA + UB = 1 > U(2)
Tâches harmoniques : {T1, T2,…, Tn } avec
P1 <= P2 <= … <= Pn et Quelque soit i,j, i<j on a Pi <= Pj
60. STR
Prof.M.K.MANSOURI
60
STR- 2. Ordonnancement temps réel
Algorithme Rate Monotonic Analysis (RMA) :
Exemple 1 : T1 (r0=0, C=3, P=20), T2 (r0=0, C=2, P=5),
T3 (r0=0, C=2, P=10)
0 5 7 10 12 15 17 202
T2
0 2 4 12 14 2010
T3
T1
0 4 205 7 9
0 2 4 12 14 20105 7 9 15 17
≤
Ci
Pi
3 20 2 5 2 10 0,75 n 21 n
1 0,77
61. STR
Prof.M.K.MANSOURI
61
STR- 2. Ordonnancement temps réel
Algorithme Rate Monotonic Analysis (RMA) :
Exemple 2 :
Tâche Coût Période
T0 2 6
T1 3 8
T2 8 24
On remarque que la tache T0 est la plus prioritaire car il correspondant à
la période la plus petite, alors que la tache T2 est la dernière à exécuter
car il correspond à la période la plus grande.
62. STR
Prof.M.K.MANSOURI
62
2.9. Ordonnancement des tâches périodiques (3) :
STR- 2. Ordonnancement temps réel
Algorithme Deadline Monotonic Analysis (DMA) :
(Date limite monotone)
L’algorithme Rate Monotonic est basé sur l’hypothèse que les
tâches sont à échéance sur requête, c’est-à-dire que l’échéance
d’une tâche est égale à sa période.
Comme RMA, il est préemptif.
Dans certains systèmes cette hypothèse ne pourra s’avérer exacte
et les échéances pourront être plus petites que les périodes.
Dans ce cas, l’algorithme Deadline Monotonic Analysis est un
algorithme optimal dans le cas des algorithmes à priorité statique
avec échéances plus petites que les périodes.
La priorité d’une tâche est fixée par son échéance. Plus son
échéance est petite, plus sa priorité est grande..
63. STR
Prof.M.K.MANSOURI
63
STR- 2. Ordonnancement temps réel
quand n est très grand : n(21/n – 1) ~ ln 2 = 0,69
équivalent à RMA dans le cas des tâches à échéance sur requête,
meilleur dans les autres cas
Test d'acceptabilité (condition suffisante)
i 1
n
Ci
Pi
n 21 n
1
Algorithme Deadline Monotonic Analysis (DMA) :
algorithme à priorité constante
64. STR
Prof.M.K.MANSOURI
64
STR- 2. Ordonnancement temps réel
Algorithme Deadline Monotonic Analysis (DMA) :
Exemple 1 : T1(r0= 0, C=3,D=7, P=20), T2 (r0=0, C=2,
D=4, P=5), T3 (r0 = 0, C=2, D=9, P=10)
≥
0 5 7 10 12 15 17 204 9 19142
T2
0 2 5 7 20
T1
0 12 14 207 9 10 19
T3
Ci
Pi
3 7 2 4 2 9 1,14 n 21 n
1 0,77
65. STR
Prof.M.K.MANSOURI
65
STR- 2. Ordonnancement temps réel
Algorithme Deadline Monotonic Analysis (DMA) :
Exemple 2 :
On remarque que la tache T1 est la plus prioritaire car elle a une
échéance plus petite que les autres taches, alors que la tache T2 est la
dernière à s’exécuter car il correspond à échéance la plus grande.
Tâche Coût Priorité Échéance
T0 2 6 5
T1 3 8 4
T2 4 24 20
66. STR
Prof.M.K.MANSOURI
66
2.9. Ordonnancement des tâches périodiques (4) :
STR- 2. Ordonnancement temps réel
Algorithme Earliest Deadline First (EDF) :
(Première date limite)
L’algorithme Earliest Deadline First (EDF) donne la priorité à
la tâche ayant l’échéance la plus proche.
A chaque fois qu’une tâche est réveillée, l’ordonnanceur réévalue
les tâches prêtes et sélectionne celle ayant l’échéance la plus courte.
algorithme à priorité variable
test d'acceptabilité :
condition nécessaire :
i 1
n
Ci
Pi
1
condition suffisante :
i 1
n
Ci
Di
1
67. STR
Prof.M.K.MANSOURI
67
STR- 2. Ordonnancement temps réel
Algorithme Earliest Deadline First (EDF) :
Exemple 1: T1 (r0=0, C=3, , D=7, P=20), T2 (r0=0, C=2,
D=4, P=5), T3 (r0 = 0, C=2, D=8, P=10)
< 1
> 1
0
0
0
2 5
5
8
7
10 12
12 14
15 17 20
20
20
4
7
9
8 10
19
18
142 5 7
T1
T2
T3
Ci
Pi
3 20 2 5 2 10 0,75
Ci
Di
3 7 2 4 2 8 1,18
68. STR
Prof.M.K.MANSOURI
68
STR- 2. Ordonnancement temps réel
Algorithme Earliest Deadline First (EDF) :
Exemple 2 :
L’algorithme est appliqué, ici, à des tâches périodiques à
échéance sur requête où la préemption est autorisée.
Tâche Coût Échéance
T0 2 5
T1 3 7
T2 1 10
69. STR
Prof.M.K.MANSOURI
69
STR- 2. Ordonnancement temps réel
Algorithme Earliest Deadline First (EDF) :
Exemple 2 (suite) :
L’algorithme EDF est optimal dans le cas préemptif. A titre
indicatif, observons son comportement si la préemption est
impossible. Considérons l’exemple suivant à deux tâches :
Tâche Coût Arrivé Échéance
T0 4 0 7
T1 2 1 5
Dans le cas préemptif, l’ordonnancement trouvé est :
70. STR
Prof.M.K.MANSOURI
70
STR- 2. Ordonnancement temps réel
Algorithme Earliest Deadline First (EDF) :
Exemple 2 (suite) :
On peut observer que la tâche T0 est préemptée au temps 1 par la
tâche T1, et lorsque cette dernière est terminée, T0 peut reprendre
son exécution.
Dans le cas non-préemptif, l’arrivée de la tâche T1 au temps 1
voit la tâche T0 continuer son exécution, étant donné qu’elle ne peut
être préemptée:
71. STR
Prof.M.K.MANSOURI
71
STR- 2. Ordonnancement temps réel
Algorithme Earliest Deadline First (EDF) :
Exemple 2 (suite) :
Nous pouvons donc observer que l’échéance de T1 n’est pas
respectée. L’ordonnancement suivant est une solution possible dans
le cadre non-préemptif (mais avec processeur inactif) :
72. STR
Prof.M.K.MANSOURI
72
STR- 2. Ordonnancement temps réel
Algorithme Earliest Deadline First (EDF) :
Exemple 2 (suite) :
Cet ordonnancement montre qu’une solution existe dans ce cadre.
Toutefois, EDF traite les tâches dès leur moment d’arrivée.
Sans la connaissance a priori des temps d’arrivée des tâches, il
n’est pas possible, au temps 0, de prendre la décision de retarder
l’exécution de T0.
En effet, ici le processeur reste inactif durant un quantum de
temps, ce qui aurait pu être préjudiciable suivant le temps d’arrivée
de T1.
Si la préemption n’est pas autorisée, le problème de trouver un
ordonnancement faisable devient dure.
73. STR
Prof.M.K.MANSOURI
73
2.9. Ordonnancement des tâches périodiques (5) :
STR- 2. Ordonnancement temps réel
Algorithme Least Laxity First (LLF) :
(Au laxisme des Premières)
algorithme à priorité variable
la priorité maximale est donnée à la tâche qui a la plus petite
laxité résiduelle L(t) = D(t) – C(t)
aussi appelé Least Slack Time (LST)
basé sur la laxité résiduelle :
équivalent à EDF si on ne calcule la laxité qu'au réveil des tâches
optimum à trouver entre la granularité du calcul et le nombre de
changements de contexte provoqués
74. STR
Prof.M.K.MANSOURI
74
STR- 2. Ordonnancement temps réel
Algorithme Least Laxity First (LLF) :
Exemple : Même configuration que pour EDF
T1 (r0=0, C=3, D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),
T3 (r0 = 0, C=2, D=8, P=10)
Laxité calculée à t = 0, 1, 2, 3, etc...
0 8 10 12 15 17 204 9 19142 5 7
T1
T2
T3
1 3 6 11 13 16 18
0 8 10 12 15 17 204 9 19142 5 71 3 6 11 13 16 18
0 8 10 12 15 17 204 9 19142 5 71 3 6 11 13 16 18
t = 0
L1 = 7-3 = 4, L2 = 4-2 = 2, L3 = 8-2 = 6
t = 1
L1 = 3, L2= 2, L3 = 5
t = 2
L1 = 2, L3 = 4
t = 3
L1 = 2, L3 = 3
t = 4
L1 = 2, L3 = 2
t = 5
L2 = 2, L3 = 1
t = 6
L2 = 1, L3 = 1
t = 7
L2 = 0