Académique Documents
Professionnel Documents
Culture Documents
Ordonnancement
Une application temps réel étant par définition un système multitâche,
T T
t
r0 d0 r1 d1 r0
C
r, sa date de réveil, c’est à dire le moment de déclenchement de la première requête d’exécution,
C, sa duré d’exécution maximale quand elle dispose du processeur pour elle seule,
D délai critique de la tâche ou échéance
T, sa période lorsqu’il s’agit d’une tâche périodique,
Si D = T, la tâche périodique est à échéance sur requête.
0≤ Ci ≤ Di ≤Ti
9
Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel
Taches apériodiques
• Pour les tâches dites apériodiques, le seul paramètre connu est la durée
d’exécution C de la tâche.
• La date de réveil ou demande processeur est aléatoire car elle dépend du
contexte d’évolution du procédé et ne peut donc pas être connue a priori.
• Ce délai critique conduit à des dates d’échéance stricte pour chaque instance
d’exécution, soit : d = r + D ou d ' = r ' + D
• Il est impératif d’avoir une tâche terminée avant une nouvelle demande
d’exécution ; cela conduit aux inégalités suivantes : 0 C D min
•
• Nous allons nous intéresser à des paramètres qui sont utiles pour caractériser une
ou plusieurs tâches dans une séquence d’exécution.
• Nous distinguons les paramètres statiques qui ne varient pas en fonction du
temps d’avancement dans l’exécution de la tâche et des paramètres dynamiques
qui dépendent de l’instant où ils sont calculés.
• Certains de ces paramètres peuvent servir de base pour un algorithme
d’ordonnancement.
L D−C et L max = D − C
L(t) = D(t ) − C (t ) = d − t − C (t )
C (t ) = C − Cexécuté est le temps d’exécution restant
Le délai dynamique diminue toujours d’une unité alors que la laxité diminue
uniquement si la tache ne s’est pas exécuté.
Fin tâche
D(t)
Di
Dépassement d’échéance
Exécution de la tâche : { L(t+1) = L(t) , D(t+1) = D(t) – 1 }
Attente de la tâche : { L(t+1) = L(t)-1 , D(t+1) = D(t) – 1 }
Le délai dynamique D(t) diminue toujours d’une unité alors que la laxité L(t)
diminue uniquement si la tache ne s’est pas exécuté
17
Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel
Préemption / réquisition:
• Elle correspond au fait d'interrompre autoritairement une tâche active pour
allouer le processeur à une autre. Grâce à la préemption et à l’ordonnancement,
tout se passe comme si les processus pouvaient s’exécuter en parallèle.
• Pour une tâche périodique donnée Ti, on définie avec les quatre paramètres de
base (ri, Ci, Di, Ti), nous pouvons définir les occupations du processeur :
• Le facteur d’utilisation u comme le pourcentage du processeur nécessaire à son
exécution sur sa période Ti, soit :
Ci
Ui =
Ti
• Pour une tâche périodique donnée Ti, qui n’est pas à échéance sur requête, on
définit le facteur de charge U i ,l comme le pourcentage du processeur nécessaire à
son exécution sur son délai critique Di :
•
Ci
U i ,l =
Di
n n n n
Ci
U = ui =
Ci
U l = ui ,l =
i =1 i =1 Ti i =1 i =1 Di
Exemple
• Nous pouvons noter que les deux facteurs U et Ul sont identiques si toutes les
tâches sont à échéance sur requête.
• De façon évidente, nous avons une condition nécessaire d’ordonnançabilité de la
configuration définie à partir du facteur d’utilisation et du facteur de charge d’une
configuration de tâches périodiques s’exécutant sur une plate-forme
monoprocesseur.
• Cette condition exprime que l’utilisation du processeur ne peut pas dépasser les
100 %, soit l’inégalité à vérifier :
n n
Ci
U = ui = 1
i =1 i =1 Di
Pr. Amami Benaissa FST Tanger 21
Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel
Période d’étude
• Pour une configuration de n tâches périodiques T {T1,T2, …, Tn} à départ simultané
(∀i, ri= 0), la séquence d’exécution se retrouve régulièrement dans une situation
identique au niveau des demandes processeur lorsque toutes les tâches sont à
nouveau en phase.
• Ainsi, l’étude de la séquence d’exécution, produite par un algorithme
d’ordonnancement donné, peut se limiter à un temps H appelé période d’étude ou
méta-période ou cycle majeur qui est défini par :
La séquence d’exécution se répète avec une période H selon un motif défini lors de la
première période d’étude .
n
C
Tlibre = (1 − U ) H = 1 − i PPCM Ti i1,n
i =1 Ti
Dans un système multitâche, un processus est une entité abstraite qui représente un
Programme en cours d’exécution défini par :
• un ensemble d’instructions à exécuter (un programme) ;
• un espace mémoire pour les données de travail ;
• éventuellement, d’autres ressources, comme des descripteurs de fichiers, des
ports réseau, etc.
• des droits d’accès
• Les processus ont au cours de leur existence différents états possibles. Citons les
trois principaux :
• actif ou élu (running): il s'exécute effectivement sur un processeur (qui lui a donc
été alloué);
• prêt (ready): il est prêt à s'exécuter mais il n'a pas encore été élu par
l'ordonnanceur et attend donc de l'être; (ni bloqué, ni actif.)
• endormi ou bloqué (waiting): il est en attente d'un événement (différent de
l'allocation d'un processeur). Il peut s'agir de la terminaison d'une entrée-sortie ou
d'une opération logique (pose d'un verrou, opération P sur un sémaphore, ...).
• Dans tous systèmes multitâches, l'un des problèmes centraux est celui de
l'ordonnancement. L’ordonnancement est donc la stratégie utilisée pour choisir
parmi les processus qui sont dans l’état prêts le prochain processus à exécuter par
le processeur. Il consiste simplement à ordonner les processus par priorité. Le
dispatcher se charge de placer le contexte du processus le plus prioritaire sur le
processeur.
Inconvénients:
• Toute fois cette approche statique est très rigide, elle suppose que tous les
paramètres, y compris les dates de réveil, sont figés et ne peut s’adapter aux
changements de l’environnement.
30
Programmation multitâche et Ordonnancement
Les algorithmes d’ordonnancement temps réel
31
Programmation multitâche et Ordonnancement
Les algorithmes d’ordonnancement temps réel
▪ Les tâches sont dites indépendantes lorsqu’elles n’ont pas entre elle ni relation de
précédente ni partage de ressource critique
• L’algorithme FIFO (First In First Out)
• FIFO (First In First Out) : premier arrivé premier servi, l’un des algorithmes les plus
simples, puisqu’il exécute les processus dans leur ordre d’arrivée .
• Dans le cas où les processus ne se suspendent pas et n’attendent pas, cet
algorithme ne nécessite aucune préemption, car lorsqu’un processus commence
son exécution, il n’est pas interrompu jusqu’à sa terminaison
•
T1 T2 T3 Quantum = 4
C1 = 20 C2 = 7 C3 = 3
T3
T2
T1
temps
2 4 8 11 15 18 30
34
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne temps réel)
Rate Monotonic
inverse Deadline
Earliest Deadline
least laxity
35
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité fixe, temps réel)
n
Ci 1n
U = n 2 − 1
i =1 Ti
Pour une configuration à départ simultané, la période d’étude égale à l’intervalle [0, PPCM(Pi)]
La séquence est décrite sur la période d’étude, soit l’intervalle [0,20].
Les trois tâches respectent les contraintes temporelles. La condition suffisante est vérifiée. On a :
n
Ci 1n
U = n 2 − 1 = 0.77
i =1 Ti
38
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
39
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité fixe, temps réel)
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
40
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité fixe, temps réel)
43
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité fixe, temps réel)
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
44
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité variable, temps réel)
n
Ci
T
i =1
1
i
n
Ci
T
i =1
1
i
Earliest Deadline À l'instant t = 0, les trois tâches sont réveillées et la tâche pour laquelle
l'échéance est la plus proche est la tâche Tp2 qui donc s'exécute
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
On voit donc que contrairement à ce qui se passe avec les algorithmes à priorité fixe où les priorités des tâches sont calculées une fois pour toutes
à l'initialisation du système, ici les priorités des tâches évoluent les unes par rapport aux autres en fonction de leur urgence.
Ainsi, à l'instant t = 0, la tâche Tp2 est plus prioritaire que la tâche Tp3 mais le rapport d'urgence est inversé à l'instant t = 5. 49
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité variable, temps réel)
7-3 = 4
4-2 = 2
8-1 = 7
51
À l'instant t=0, les trois tâches sont réveillées.
La laxité dynamique de Tp1, est égale à 7-3=4.
La laxité dynamique de Tp2, est égale à 4-2 = 2.
La laxité dynamique de Tp3 est égale à 8-1 = 7.
C'est donc la tâche Tp2, la plus prioritaire et c'est donc elle qui s'exécute à
l'instant t = 0.
Least Laxity (exemple) A l'instant t = 5, la tâche Tp2 se réveille de nouveau, Sa laxité dynamique est
égale à 2 ;(car la tâche s’est exécutée donc la laxité ne diminue pas)
La laxité dynamique de la tâche Tp3 a diminué par 1 pour chaque top donc
L= 2).
L'une ou l'autre des tâches peuvent être ordonnancées.
L=4 Cas où Tp3 qui est élue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
L=2 L=2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
L=7 6 5 4 3 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
52
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité variable, temps réel)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
53
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
• Méthode1 : Traitement d’arrière plan, est le plus simple mais le moins performant.
54
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
Les tâches apériodiques sont ordonnancées lorsque le processeur est oisif, c'est-à-dire
lorsqu’il n 'y a aucune tâche périodique prête à s’exécuter. Si plusieurs tâches sont en
attente, elles sont traitées selon leur ordre de réveil (FIFO).
55
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
• Exemple
• Algorithme pour les tâches périodiques: RM
• Période d’étude: deux fois la période d’étude, s’il y avait que des tâches
périodiques
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Temps creux
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
Cette méthode est applicable, quel que soit l’algorithme d’ordonnancement des tâches
périodiques.
58
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
❑ Cette tâche est caractérisée par une période est un temps d’exécution appelé
capacité du serveur.
❑ Elle est généralement ordonnancée selon le même algorithme que les autres
tâches périodiques
❑ Une fois active, elle sert les tâches apériodiques en attente dans la limite de
sa capacité.
59
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
❑ L’ordre dans lequel les tâches apériodiques sont servies par le serveur
ne dépend pas de l’algorithme d’ordonnancement des tâches périodiques
et peut être, par exemple,
➢ fonction de l’ordre d’arrivée (FIFO),
➢ des temps d’exécution,
➢ des échéances, …
60
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
❑ Si, lorsque le serveur commence son exécution, il n’y a aucune tâche apériodique en
attente, le serveur se suspend jusqu’à sa prochaine occurrence en perdant sa capacité
qui peut être récupérée au profit des tâches périodiques.
61
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
Tâche serveur
3 2 2
+ + = 0, 75 0, 77
20 10 5
L’algorithmme utilisé: RM. La Tâche la plus prioritaire; Tps
62
Lors du premier réveil du serveur (t = 0), aucune tâche apériodique n'est en attente de service,
aussi la tâche serveur se suspend immédiatement et perd sa capacité. C'est la tâche
Tp2 de priorité immédiatement supérieure qui s'exécute puis la tâche Tp1
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
À l'instant t = 10, le serveur se réveille de nouveau ; il sert immédiatement la
tâche Tap4 qui vient d'être activée, puis la tâche Tap5, La tâche Tap5 épuise
la capacité restante du serveur et doit attendre l'occurrence suivante de celui-
ci à t = 15, pour achever son exécution.
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
À l'instant t = 4, la tâche Tap3, survient ; elle doit attendre l'occurrence
Capacité du serveur suivante du serveur à t=5 pour s'exécuter. Elle épuise alors totalement la
capacité du serveur
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Il reste alors au serveur une unité de capacité, mais comme aucune autre
tâche apériodique n'est en attente de service, cette unité est perdue
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
❑ D’une part, lorsque le serveur est prêt, il se peut qu’il n’y ait pas de tâches
apériodiques à traiter et la capacité est alors perdue ;
❑ D’autre part lorsque des tâches apériodiques surviennent sur le site, il se peut
que le serveur se soit déjà suspendu, contraignant ainsi les tâches apériodiques
à attendre sa prochaine occurrence pour être servies.
64
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
Ainsi une tâche apériodique survenant juste après l’occurrence du serveur peut être
immédiatement servie et n’a plus à attendre l’occurrence suivante.
65
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
Aussi, en présence d'un serveur ajournable, le taux d'utilisation du processeur par les
tâches périodiques doit être diminué et le test d'acceptabilité de la configuration
périodique ordonnancée selon "Rate Monotonie" devient :
U +2 CS CI
U P ln S
+
, US = , UP =
S
2U 1 PS iTP PI
66
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
Le serveur sporadique est un autre type de serveur, permettant d'améliorer les temps
de réponse des tâches apériodiques, sans cependant diminuer le taux d'utilisation du
processeur des tâches périodiques.
le serveur sporadique est une tâche périodique de haute priorité qui conserve sa
capacité de traitement, mais il diffère du serveur ajournable dans la manière dont il
réinitialise.
La date de prochaine réinitialise prend alors pour valeur la date courante additionnée
de la période du serveur.
67
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
Exemple
Tâche serveur
68
De nouveau, une date de réinitialisation de la capacité du serveur est calculée : c'est l'instant t=15.
La tâche Tap5 poursuit son exécution lorsque le serveur récupère sa capacité, soit entre les instants t = 15 et t = 16.
Le serveur sporadique récupéra cette unité de capacité perdue à l'instant t=20.
À l'instant t = 10, la tâche Tap4, survient et elle s'exécute tout de suite. La
tâche apériodique Tap5 qui se réveille à l'instant t=11 s'exécute elle aussi
immédiatement durant une unité de temps, puis elle se suspend car la
capacité du serveur est épuisée
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
À l'instant t = 4, la tâche Tap3, survient et elle est immédiatement servie par le serveur qui s'exécute donc entre
A
lesl'instant
instantst =t=4
0, et
le tserveur se réveille sans
= 6 et consomme toute qu'il y ait de tâches
sa capacité. Comme apériodiques
le serveur s'est exécuté, une date de
Capacité du serveur en attente de service. Il se suspend donc,:mais il conserve
réinitialisation de la capacité est calculée ce sera l'instant tsa
= capacité
4 + 5 = 9 et la valeur de réinitialisation est 2
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
. à l'instant t = 9, le serveur retrouve sa capacité, mais comme de nouveau, il
n'y a pas de tâches apériodiques en attente, le serveur se suspend
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur
Lorsque le serveur sporadique diffère son exécution d’une façon similaire à celle du
serveur ajournable, il diffère également la date de réinitialisation de sa capacité d’une
durée égale à sa période lorsque celle-ci est épuisée, laissant ainsi du temps disponible
pour l’exécution des tâches périodiques de priorité moindre.
70
Bibliographies
• Des parties du cours entière ont été extraites du livre Système temps réel de contrôle commande de F.
Cottet et E. Grolleau, Dunod 2005
• Livre : Ordonnancement et ses applications, Chengbin chu/ Jean Marie Proth, Masson , 1996
• Commande en temps réel, Daniel Tschirhart, Dunod 1990
• Sites officiels de National Instrument
• Les systèmes électroniques embarqués dans l’automobile, l’IUT de Belfort-Montbéliard
• Systèmes embarqués et automobile , Gérard Duchene
• Systèmes embarqués Enjeux –Perspectives, Françoise Simonot-Lion
• Les Systèmes Électroniques Embarqués un enjeu majeur pour l’automobile, Joseph Beretta
• Tout CAN , Benoît Sanson
• Exécutif temps réel Pierre-Yves Duval , Ecole d’informatique temps réel, La Londes les Maures 7-11
Octobre 2002
• Cours Systèmes temps rée, Azmani Monir FST Tanger 2011
• Introduction aux systèmes temps réel, Samia Bouzefrane, CEDRIC –CNA
• La méthode DARTS et la programmation multitâche en LabVIEW KhanhHieuNGO, Emmanuel
GROLLEAU LISI/ENSMA
• Systèmes temps-réel, Matthieu Herrb CNRS-LAAS, Avril 2008