Vous êtes sur la page 1sur 71

Systèmes embarqués temps réel

Pr. AMAMI Benaissa


2023/2024

Pr. Amami Benaissa FST Tanger 1


Chapitre 2 :
Les algorithmes d’ordonnancement
Programmation multitâche et Ordonnancement
Noyau exécutif temps réel et Ordonnancement

Ordonnancement
Une application temps réel étant par définition un système multitâche,

Le rôle essentiel du système informatique


est donc de gérer l'enchaînement et la
concurrence des tâches en optimisant
l'occupation du processeur,

Plusieurs problèmes se posent lorsque plusieurs


tâches s'exécutent simultanément :
• Problème de synchronisation des taches
• Problème de communication entre taches
• Problème d’accès aux ressources
- accès au processeur
- accès concurrent à la mémoire
- accès aux périphériques etc..
• Il faut prévoir donc un ordonnancement qui va déterminer les caractéristiques
temporelles et être le garant du respect des contraintes de temps imposées à
l'exécution de l'application.

Pr. Amami Benaissa FST Tanger 3


Programmation multitâche et Ordonnancement
Noyau exécutif temps réel et Ordonnancement

Ordonnancement et Système d’exploitation classique

• Politique d'ordonnancement est basée sur le partage équitable du processeur :


affectation identique du temps processeur à tous les processus en cours ;
• Mais il a des inconvénients :
1. Beaucoup de programme qui tourne en tache de fond (sauvegarde d’écran,
utilitaires de disque, logiciels antivirus, etc..)
2. Beaucoup de périphéries génèrent des interruptions ( souris, clavier, TCP/IP,
mémoire virtuelle, etc..)
3. L’accès à des ressources partagées entraine des incertitudes temporelles
4. Dédiés pour des contraintes souples comme multimédia

Pr. Amami Benaissa FST Tanger 4


Programmation multitâche et Ordonnancement
Noyau exécutif temps réel et Ordonnancement

• Ordonnancement et Noyau temps réel


Dans un système temps réel les tâches sont soumises à des contraintes
temporelles et éventuellement à d'autres contraintes. Problématique de
l'ordonnancement temps réel revient à définir dans quel ordre exécuter des
tâches sur chaque processeur d'une architecture donnée.

• Rôle de Noyau temps réel

• Prévoir avec le plus d'exactitude possible


le comportement temporel d'un système.
• Ordonnancer des exécutions des tâches
• Protéger l’accès aux ressources partagées
• Déclencher le réveil des tâches en attente
d’un délai de démarrage
• Reçoit et transmet des signaux de synchronisation
ou des données entre les tâches asynchrones<

Pr. Amami Benaissa FST Tanger 5


Programmation multitâche et Ordonnancement
Noyau exécutif temps réel et Ordonnancement

L’ordonnancement dans le cas des systèmes temps réel à contraintes temporelles


strictes a pour objectif principal de répondre aux deux cas suivants:

- Fautes temporelles : cela correspond à un non respect d'une contrainte temporelle


associée à une tâche comme le dépassement de la date limite d'exécution ou
échéance. Cela induit la notion d'urgence d'une tâche.
- Surcharge : lors de l'occurrence d'une ou plusieurs fautes temporelles,
l'ordonnanceur peut réagir en supprimant une ou plusieurs tâches de l'application,
ce qui amène à la notion d'importance, c'est-à-dire le choix d'une tâche à exécuter
par rapport aux spécifications fonctionnelles de l'application.

Pr. Amami Benaissa FST Tanger 6


Programmation multitâche et Ordonnancement
Noyau exécutif temps réel et Ordonnancement
Exécution sur un PC (OS) classique

Le temps d’exécution de la tache


10 ms n’est pas respecté. A cause
des programme qui tourne en
arrière plan, ce temps atteint 100
ms donc Défaillance du système

Exécution sur un noyau temps réel

Le temps d’exécution de la tache 10


ms est bien respecté puisqu’il n'y a
pas d'intérference extérieure au
programme.

Pr. Amami Benaissa FST Tanger 7


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel

• Afin de pouvoir analyser de manière rigoureuse l’ordonnançabilité d’une


configuration de tâches, l’optimalité d’un algorithme d’ordonnancement
de séquence d’exécution d’une application multitâche, il est nécessaire
d’avoir un modèle mathématique des tâches. Ce modèle doit permettre
de prendre en compte toutes les caractéristiques opérationnelles et
temporelles d’une tâche d’une application quelconque.

Pr. Amami Benaissa FST Tanger 8


• Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel
• Un modèle canonique a été défini pour regrouper les principaux paramètres
temporels qui peuvent caractériser les tâches temps réel et guider
l’ordonnancement temps réel.
• Tâches périodiques

Diagramme temporel d’exécution

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.

Pr. Amami Benaissa FST Tanger 10


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel

Taches apériodiques sporadiques


• Pour un environnement d’exécution stricte, la tâche apériodique, appelée
apériodique stricte ou sporadique, doit posséder un délai critique D.
• Nous appelons ces tâches apériodiques strictes des tâches sporadiques.

• 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

Pr. Amami Benaissa FST Tanger 11


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel

• Afin de limiter au maximum les indéterminismes d’exécution et de pouvoir faire


une analyse de l’ordonnançabilité de configuration de tâches incluant des tâches
apériodiques, nous supposons que les tâches apériodiques strictes possèdent un
délai minimum entre deux occurrences ou instances successives ; soient r et r’
deux dates de réveil successives d’une tâche sporadiques, nous avons alors la
relation suivante : r − r  min
'

• 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

Pr. Amami Benaissa FST Tanger 12


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel
Autres paramètres temporels des tâches

• 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.

Pr. Amami Benaissa FST Tanger 13


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel

Laxité d’une tâche


• – la laxité statique L, c’est-à-dire le temps restant entre la fin d’exécution de la
tâche et son échéance

L  D−C et L max = D − C

Pr. Amami Benaissa FST Tanger 14


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel

Laxité dynamique d’une tâche


• – la laxité dynamique L(t), c’est-à-dire le temps avant le début d’exécution de
la tâche, soit

L(t) = D(t ) − C (t ) = d − t − C (t )
C (t ) = C − Cexécuté est le temps d’exécution restant

D(t ) = d − t est le délai critique dynamique c'est-à-dire le temps restant avant la


prochaine échéance

Pr. Amami Benaissa FST Tanger 15


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel

Exemple d'analyse de l'évolution des paramètres dynamiques au cours de


l'exécution d’une tâche :

Considérons une tache T, possédant les paramètres Ci, Di et L avec L= Di-Ci.


Dans l’intervalle d’exécution d’une instance de la tache [r, d] les paramètres
dynamiques D(t) et L(t) vont évoluer en fonction de l’allocation ou non de
processeur à cette tache entre les instants [t, t+1] selon les règles suivantes:

Le délai dynamique diminue toujours d’une unité alors que la laxité diminue
uniquement si la tache ne s’est pas exécuté.

Pr. Amami Benaissa FST Tanger 16


Evolution des paramètres dynamiques
L(t)

Pour Di = 7, C=2 et Li = 7-2 = 5

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

Priorité d’une tâche


• La priorité d’une tâche est une métrique qui caractérise son importance. Plus la
tâche est importante et critique du point de vue temporel, plus la priorité qu’on lui
assigne est élevée. Les priorités des tâches peuvent être:
• Statiques : les priorités sont fixes, ne changent pas de valeur pendant l’exécution
de l’application, ordonnancement hors ligne. Dans un système temps réel, les
priorités sont fixes et reflètent le caractère critique des tâches.
• dynamiques : les priorités peuvent changer pendant l’exécution de l’application
(mises à jour périodiquement par le système, ordonnancement en ligne. Dans les
systèmes orientés sur le partage du temps, les priorités sont dynamiques

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.

Pr. Amami Benaissa FST Tanger 18


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel

• 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

Pr. Amami Benaissa FST Tanger 19


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel

• Analyse d’une configuration de tâches périodiques : Charge du processeur


• Pour une configuration de n tâches périodiques : T {T1, T2, …, Tn}, on définit le
facteur d’utilisation U (respectivement le facteur de charge Ul) comme la somme
des facteurs d’utilisation ui des tâches (respectivement des facteurs de charge des
tâches ui,l) de la configuration de tâche T :

n n n n
Ci
U =  ui = 
Ci
U l =  ui ,l = 
i =1 i =1 Ti i =1 i =1 Di

Pr. Amami Benaissa FST Tanger 20


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel

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 :

H = PPCM Ti i1,n 

Pr. Amami Benaissa FST Tanger 22


Programmation multitâche et Ordonnancement
Modélisation canonique des tâches temps réel
Exemple

H = PPCM Ti i1,3 = PPCM 6,8,12 = 24

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 .

Pr. Amami Benaissa FST Tanger 23


Programmation multitâche et Ordonnancement
Temps libre d’un processeur

• Avec les notions de charges processeur et de période d’étude, nous pouvons


introduire une caractéristique supplémentaire d’une séquence d’exécution : le
temps libre T libre, ou temps creux ou temps oisif processeur.
• Pour une configuration de n tâches périodiques à départ simultané : T {T1, T2, …,
Tn} s’exécutant sur un système monoprocesseur, le facteur d’utilisation du
processeur U étant définie sur la période d’étude H, il est possible d’évaluer le
temps non utilisé ou temps libre du processeur par :

 n
C 
Tlibre = (1 − U )  H = 1 −  i   PPCM Ti i1,n
 i =1 Ti 

Pr. Amami Benaissa FST Tanger 24


Programmation multitâche et Ordonnancement
Processus

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

• On peut définir aussi:

• Programme = séquence d’instruction


• tâche = Programme + données
• Processus= Programme + données+ contexte d’exécution

Pr. Amami Benaissa FST Tanger 25


Programmation multitâche et Ordonnancement
Etat d’un processus

• 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, ...).

Pr. Amami Benaissa FST Tanger 26


Programmation multitâche et Ordonnancement
Etat d’un processus

Le processus peut changer d’état

• Un processus actif ou élu se bloque quand il demande une opération d’E/S.


• Un processus actif peut par préemption se mettre dans l’état prêt pour laisser le
Processeur à un autre processus plus prioritaire.
• Un processus bloqué devient prêt (se réveille) quand l’opération d’E/S est
terminée
• un processus prêt peut être choisi pour devenir actif (élu).

Pr. Amami Benaissa FST Tanger 27


Programmation multitâche et Ordonnancement
Etat d’un processus

Le processus actif cesse de l’être quand :


• il se termine
• il se bloque en attente d’une opération d’E/S
• il rend volontairement la main (pour les systèmes coopératifs)
• il est interrompu au bout d’un quantum de temps (pour les systèmes
préemptifs)
• Dans les deux derniers cas, il passe à l’´etat prêt.

Pr. Amami Benaissa FST Tanger 28


Programmation multitâche et Ordonnancement
Les algorithmes d’ordonnancement temps réel

• 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.

• Il existe plusieurs stratégies d’ordonnancement (Algorithmes d’ordonnancement)


spécifiques pour le temps réel on trouve :

- Ordonnancement en ligne ou hors ligne


- Ordonnancement Préemptif ou non préemptif

Pr. Amami Benaissa FST Tanger 29


Programmation multitâche et Ordonnancement
Les algorithmes d’ordonnancement temps réel

Ordonnancement En ligne ou hors ligne


• Un algorithme d’ordonnancement hors ligne construit une séquence complète
de planification sur la base de tous les paramètres temporels de tâches. Cette
séquence est connue avant le début de l’exécution.
• Un algorithme d’ordonnancement en ligne est capable, à tout instant de
l’exécution de l’application, de choisir la prochaine tâche à ordonnancer et il
utilise comme informations les paramètres temporels des tâches déclenchés à
cette instant.

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

Ordonnancement Préemptif ou non préemptif

• Un algorithme d’ordonnancement préemptif: une tâche élue peut perdre


le processeur au profit d’une autre tâche jugée plus urgente ou plus
prioritaire; elle passe à l’état prêt pour attendre d’être élue ultérieurement
sur le même processeur ou sur un autre. Un algorithme préemptif n’est
utilisable seulement si toutes les tâches sont préemptibles.

• Les ordonnanceurs non préemptif n’arrêtent pas l’exécution des tâches


élues. Il peut en résulter des fautes temporelles qu’un ordonnanceur
aurait permis d’éviter.

31
Programmation multitâche et Ordonnancement
Les algorithmes d’ordonnancement temps réel

Nature et propriétés des algorithmes d’ordonnancement


• Séquence valide : toutes les tâches de la configuration respectent leurs
contraintes.
• Configuration Ordonnançable : dès qu’il existe un algorithme au moins capable
de fournir une séquence valide pour cette configuration.
• Algorithme Optimale : capable de produire une séquence valide pour toute
configuration de tâche Ordonnançable.
• Test d’acceptabilité (test de garantie) : Une tâche est acceptée s’il existe au moins
une séquence pour laquelle toutes les tâches précédemment acceptées et cette
tâche nouvelle peuvent terminer leur exécution avant leur échéance.

Pr. Amami Benaissa FST Tanger 32


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(non 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

Pr. Amami Benaissa FST Tanger 33


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(non temps réel)
• Algorithme du tourniquet (round robin)
• Il s'agit d'un algorithme ancien, simple et fiable. Les processus prêts ont droit chacun
leur tour à un quantum.
• Lorsqu’un cycle d’attribution du processeur aux processus est terminé, un autre cycle
du tourniquet commence.


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)

• Il existe quatre politiques d’ordonnancement de base, que sont les algorithmes :

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)

• Algorithme d’ordonnancement Rate Monotonic (RM)

• Dans un contexte de tâches indépendantes, périodiques, à échéance sur requête


et à départ simultané, nous allons effectuer une affectation des priorités aux
tâches selon la période : plus la période de la tâche est petite, plus la priorité de la
tâche est grande. La tâche conserve cette priorité pendant toute son exécution.
Cette règle d’affectation des priorités est appelée l’algorithme d’ordonnancement
« Rate Monotonic ou RM ».
• Concernant cet algorithme d’ordonnancement pour une configuration de n tâches
ayant les paramètres (ri, Ci, Di, Ti) avec ri =0 pour tout i et Di = Ti, nous avons les
résultats suivants :

Pr. Amami Benaissa FST Tanger 36


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité fixe, temps réel)

• Algorithme d’ordonnancement Rate Monotonic (RM)

• L’algorithme d’ordonnancement RM est optimal dans la classe des algorithmes à


priorités fixes, c’est-à-dire que, si une configuration de tâches est ordonnançable,
elle le sera en affectant les priorités selon RM ;
• Une condition suffisante d’ordonnançabilité (Liu and Layland) d’une
configuration est obtenue pour un facteur d’utilisation U du processeur suivant
l’inégalité suivante :

n
Ci  1n 
U =   n 2 − 1
i =1 Ti  

Quand N -> ∞ le terme de droite tend vers 69.3%

Pr. Amami Benaissa FST Tanger 37


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité fixe, temps réel)
Exemple

Algorithme d’ordonnancement Rate Monotonic (RM)

La tâche la moins prioritaire

La tâche la plus prioritaire

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

Pr. Amami Benaissa FST Tanger 38


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité fixe, temps réel)

L’exploitation de la période comme critère


Rate Monotonic (exemple)
d’ordonnancement limite l’utilisation de « Rate
Monotonic » aux seules tâches à échéance sur
requête.

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)

L’exploitation de la période comme critère


Rate Monotonic (exemple)
d’ordonnancement limite l’utilisation de « Rate
Monotonic » aux seules tâches à échéance sur
requête.

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)

• Algorithme d’ordonnancement Deadline Monotonic (DM) ou (Inverse Deadline)


• S’il existe au moins une tâche qui n’est pas à échéance sur requête dans la
configuration des tâches,
• Alors il faut utiliser un algorithme d’affectation des priorités basé sur les délais
critiques des tâches au lieu des périodes.
• Cet algorithme d’ordonnancement, appelé « Deadline Monotonic » ou DM (ou
Inverse Deadline ou ID), affecte la priorité la plus grande à la tâche dont le délai
critique est le plus petit.

Pr. Amami Benaissa FST Tanger 41


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité fixe, temps réel)

• Algorithme d’ordonnancement Deadline Monotonic (DM) ou (Inverse Deadline)


• Pour une configuration de n tâches ayant les paramètres (ri, Ci, Di, Ti) avec ri = 0
pour tout i et au moins un délai critique Di différent de la période Ti, nous avons
les résultats suivants :
• – l’algorithme d’ordonnancement DM est optimal dans la classe des algorithmes à
priorités fixes, c’est-à-dire que, si une configuration de tâches est ordonnançable,
elle le sera en affectant les priorités selon DM ;
• – une condition suffisante d’ordonnançabilité d’une configuration est obtenue
pour un facteur de charge Ul du processeur suivant l’inégalité suivante :
• .
n
Ci  1n 
Ul =   n 2 − 1
i =1 Di  

Pr. Amami Benaissa FST Tanger 42


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité fixe, temps réel)

• Algorithme d’ordonnancement Deadline Monotonic (DM) ou (Inverse Deadline)


Exemple

La tâche la plus prioritaire

La tâche la moins prioritaire

La condition de suffisante n’est pas vérifiée : on effet, on a :


n
Ci  1n 
U l =   n  2 − 1 = 0, 77
i =1 Di  

43
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité fixe, temps réel)

• Algorithme d’ordonnancement Deadline Monotonic (DM) ou (Inverse Deadline)

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)

• Les algorithmes en ligne à priorité variable.


• La priorité variable et évolue dans le temps en fonction de l’exécution de la
configuration des tâches.

Pr. Amami Benaissa FST Tanger 45


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité variable, temps réel)

• Algorithme Earlest Deadline


• La priorité maximale à l’instant t est accordée à la tâche dont l’échéance est la
plus proche.
• Il s’agit d’une politique mise à jour du deadline après chaque tick d’horloge.
• La plus grande (petite) priorité est assignée à la tâche qui a le plus petit (grand)
deadline non nul.
• La tâche la plus prioritaire est ensuite choisie pour être exécutée.
• Pour les taches à échéance sur requête, une condition nécessaire et suffisante
d’ordonnancement est :

n
Ci
T
i =1
1
i

Pr. Amami Benaissa FST Tanger 46


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité variable, temps réel)

• Algorithme Earlest Deadline


• Pour les tâches quelconques ; une condition suffisante d’ordonnancement est :
n
Ci
D
i =1
1
i

• Une condition nécessaire est donnée par :

n
Ci
T
i =1
1
i

Pr. Amami Benaissa FST Tanger 47


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité variable, temps réel)

• Algorithme Earlest Deadline


Exemple

Pr. Amami Benaissa FST Tanger 48


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité variable, temps réel)

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

À l'instant t=2, la tâche Tp2 a terminé son exécution et c'est maintenant la


tâche Tp1 qui est la plus prioritaire..

À l'instant t = 5, la tâche Tp1 se termine et la tâche Tp2 se réveille de


nouveau. Mais, c'est maintenant la tâche Tp3 pour laquelle la date d'échéance
est à t=8 qui est devenue la plus prioritaire. C'est donc elle qui 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)

• Algorithme Least Laxity


• La priorité d'une tâche Ti est inversement proportionnelle à sa laxité dynamique
L (t),
• C'est-à-dire que la tâche de plus haute priorité à l'instant t est la tâche de plus
petite laxité dynamique :
• Cet algorithme est optimal et les conditions d'ordonnançabilité d'une
configuration de tâches sont les mêmes que pour "Earliest Deadline".
• Les séquences produites par "Least Laxity" sont équivalentes à celles produites par
"Earliest Deadline" lorsque les valeurs de laxité utilisées sont celles qui sont
calculées aux dates de réveil des tâches.
• Par contre, si on calcule la laxité à chaque instant, alors, comme la laxité
dynamique de la tâche qui s'exécute demeure constante alors que celles des
tâches prêtes diminuent, la séquence produite par "Least Laxity" dans cette
dernière méthode de calcul entraîne beaucoup plus de changements de contexte
que la séquence "Earliest Deadline".

Pr. Amami Benaissa FST Tanger 50


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes périodiques monoprocesseur
(Algorithme en ligne à priorité variable, temps réel)

Least Laxity (exemple)


Le calcul des laxités effectué aux seules dates de réveil.

La tâche la plus prioritaire

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)

Least Laxity (exemple)


Cas où c’est Tp2 qui est élue

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

Algorithmes pour la prise en compte de tâches apériodiques

Cas des tâches apériodiques à contraintes relatives

Il existe plusieurs approches :

• Méthode1 : Traitement d’arrière plan, est le plus simple mais le moins performant.

• Méthode2: Serveurs de tâches.

• Méthode3: le principe de base est de voler du temps consacré aux tâches


périodiques pour le consacrer aux tâches apériodiques.

54
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur

Algorithmes pour la prise en compte de tâches apériodiques

Cas des tâches apériodiques à contraintes relatives

Traitement d’arrière plan (background processing):

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

Pr. Amami Benaissa FST Tanger 56


Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur

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

Algorithmes pour la prise en compte de tâches apériodiques

Cas des tâches apériodiques à contraintes relatives

Traitement d’arrière plan (background processing):

La méthode de l’ordonnancement en arrière plan est extrêmement simple et fort peu


coûteuse. Cependant, les temps de réponse des tâches apériodique peuvent être
relativement mauvais, surtout, si la charge des tâches périodiques est importante.

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

Algorithmes pour la prise en compte de tâches apériodiques


Cas des tâches apériodiques à contraintes relatives

Les serveurs de tâches

❑ Le serveur est une tâche périodique, créée spécialement pour veiller à


l’ordonnancement des tâches apériodiques.

❑ 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

Algorithmes pour la prise en compte de tâches apériodiques


Cas des tâches apériodiques à contraintes relatives

Les serveurs de tâches

❑ 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, …

Plusieurs types de serveurs existent :


❑« serveur de scrutation » offre un service strictement périodique aux
tâches apériodiques.
❑« serveur ajournable »,
❑« serveur à échanges de priorité », Des améliorations de ce
❑« serveur sporadique » premier type de serveur

60
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur

Algorithmes pour la prise en compte de tâches apériodiques


Cas des tâches apériodiques à contraintes relatives

Les serveurs de tâches: Traitement par scrutation (« Polling »)

❑ A chacune de ses activations, le serveur de scrutation traite les tâches apériodiques


en suspens depuis son activation précédente et ce, jusqu’à épuisement de sa
capacité, soit jusqu’à ce qu’il n’y ait plus de tâches apériodiques à servir.

❑ 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

Algorithmes pour la prise en compte de tâches apériodiques


Cas des tâches apériodiques à contraintes relatives

Les serveurs de tâches: Traitement par scrutation (« Polling »)


Exemple

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

Algorithmes pour la prise en compte de tâches apériodiques


Cas des tâches apériodiques à contraintes relatives

Les serveurs de tâches: Traitement par scrutation (« Polling »)

La méthode du serveur de scrutation souffre de plusieurs faiblesses dues à la manière


dont est gérée sa capacité.

❑ 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

Algorithmes pour la prise en compte de tâches apériodiques


Cas des tâches apériodiques à contraintes relatives

Les serveurs de tâches: Serveur ajournable

Une première amélioration du serveur de scrutation est le « serveur ajournable ». Ce


serveur fonctionne sur le même principe que le serveur de scrutation simplement si
aucune tâche apériodique n’est en suspens lors de son occurrence, il conserve entière sa
capacité de traitement au lieu de la perdre au profit des tâches périodiques.

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.

Cependant, le serveur ajournable viole une des règles principales de l’ordonnancement


des tâches périodiques selon « Rate Monotonic » ; La tâche prête de plus haute priorité
doit immédiatement s’exécuter car le recul de son exécution peut entrainer des fautes
temporelles.

65
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur

Algorithmes pour la prise en compte de tâches apériodiques


Cas des tâches apériodiques à contraintes relatives

Les serveurs de tâches: Serveur ajournable

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 iTP PI

Us est le facteur d'utilisation du serveur Tps(Cs, T;).


Up est le facteur d'utilisation de la configuration périodique.
TP désigne l'ensemble des numéros des tâches périodiques.

66
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur

Algorithmes pour la prise en compte de tâches apériodiques


Cas des tâches apériodiques à contraintes relatives

Les serveurs de tâches: Le serveur sporadique (« Sporadic Server »)

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.

La valeur de réinitialise est égale à la totalité de la capacité du serveur consommée.

67
Programmation multitâche et Ordonnancement
Ordonnancement des tâches indépendantes apériodiques monoprocesseur

Algorithmes pour la prise en compte de tâches apériodiques


Cas des tâches apériodiques à contraintes relatives

Les serveurs de tâches: Le serveur sporadique (« Sporadic Server »)

Exemple

Tâche serveur

L’algorithme utilisé: RM. La Tâche la plus prioritaire; Tps

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

Algorithmes pour la prise en compte de tâches apériodiques


Cas des tâches apériodiques à contraintes relatives

Les serveurs de tâches: Le serveur sporadique (« Sporadic Server »)

La méthode du serveur sporadique permet de toujours garantir le respect des


échéances des tâches périodiques selon « Rate Monotonic ».

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

Pr. Amami Benaissa FST Tanger 71

Vous aimerez peut-être aussi