Vous êtes sur la page 1sur 32

Module : Systèmes temps réel

Titre du cours : Ordonnancement des tâches temps réel


(Partie_1)
1. Introduction
2. Les applications temps réel
3. Tâches temps réel
3.1. Propriétés temporelles des tâches temps réel
3.2. Etats d’une tâche
3.3. Types de Tâches
4. L’ordonnancement des tâches temps réel
5. Etude d’ordonnançabilité & Faisabilité
5.1 Approche analytique
5.2 Simulation
5.3 Modèle checking
6. Conclusion
Références bibliographiques
Exercices
1. Introduction
Après avoir définir le concept de temps réel dans les systèmes, donner
une classification des systèmes temps réel. Ce cours, est consacré aux
modèle de tâches temps réel, execution des applications de tâches temps
réel comme un ordonnancemnt de tâches dans un environnement
monoprocesseurs ainsi qu’aux différents algorithmes d’ordonnancement.

2. Définitions Application temps réel


 Une application temps-réel effectue des fonctions de contrôle et
de pilotage. Chaque fonctionnalité est assumée par une tâche
temps-réel.
 Application temps réel = Ensemble de tâches qui coopèrent
 Les tâches accèdent à des ressources communes
 Les tâches s’échangent des messages via un
réseau

Système temps réel vs Application temps réel : Les


deux notions sont souvent confondues

Exemples d’application temps réel

Exemple1 : Système de visualisation integrée dans un automobile


Soit un système de visualisation intégré dans un véhicule
automobile. Ce système est constitué d’un ensemble de tâches. Ces
tâches permettent :
- la lecture de la vitesse du véhicule pendant une durée de 2
millisecondes toutes les 10 millisecondes, de la température dans
l’habitacle du véhicule pendant une durée d’1 millisecondes toute
les 10 millisecondes et la position du GPS du véhicule pendant une
durée de 4 millisecondes toutes les 40 millisecondes et
- L’affichage pendant une durée de 2 millisecondes toutes les 12
millisecondes qui produit un résumé des informations produites des
tâches des différentes lectures ci-dessus. Un autre affichage de la
carte routière est réalisé pendant une durée d’1 milliseconde selon
la demande de l’utilisateur toutes les 6 millisecondes .
3. Tâche Temps réel
Tâche / activité / processus : Une unité d’exécution et de
structuration de l’application où bien un ensemble d'instructions
destinées être exécutées sur un processeur.

 Certaines fonctions sont critiques et ne peuvent pas être retardées,


c.-à-d. que les tâches correspondantes doivent impérativement avoir
terminé leur traitement sous un délai donné, à partir de leur date de
réveil.
 tâches temps réel modélise le fonctionnement de des applications temps réel.

3.1 Contraintes d'une tâche temps réel


La figure ci dessous présente les contraintes temporelles d’une tâche.

Les principaux paramètres temporels d’une tâche i

 Ri (Ready time ou Release time)


C’est la date à laquelle la tâche Ti peut commencer son exécution appelé
aussi la date au plus tôt.

 Ci (computing time)
C’est la durée d’exécution de la tâche Ti. Ce paramètre est considéré
dans

la majorité des travaux sur l’ordonnancement temps réel comme


pire
temps d’exécution de tâche (WCET pour Worst Case Execution
Time)

Le WECT constitue une borne supérieure sur le temps consommé (la


tâche peut se terminer plus tôt).La valeur de ce paramètre doit être
serrée (pas trop sur estimé), mais aussi sécurisée (jamais dépassée) pour
être efficace. Enfin quelque système temps réel considérant un temps
d’exécution moyen, minimal, ou connu de manière probabiliste.

sur le processeur auquel elle est affectée.

 Di (deadline)

C’est son échéance appelée aussi la date au plus tard ; elle


représente

l’instant auquel l’exécution de la tâche doit être terminée dont le

dépassement entraîne une faute temporelle.

 Li (laxity)

C’est laxité d’une tâche Ti, qui représente le temps restant avant
l’occurrence de sa date de démarrage ou de reprise au plus tard.

 Priorité (pi)
Aussi une tâche peut avoir ou non une priorité (qui définit son poids ou
son importance par rapport aux autres tâches du système), dont la valeur
dépend de l’algorithme d’ordonnancement sous-jacent.

 Le taux d’occupation du processeur ou bien utilisation du


processeur se déduit à partir des caractéristiques cités ci-dessus
telles que : Ci et Ti.

Ui = Ci / Ti

3.2 LES ETATS D'UNE TACHE


Chaque tâche va correspondre aux exécutions sur le processeur d’une
séquence d’opérations données elle fournit une partie des services de
l’application. La figure suivante montre les différentes transitions entre les
états d’une tâche.
Différents états d'une tâche.

 Exécutée : l’instance de tâche est en cours d’exécution sur une unité


de calcul qui lui est allouée.
 Bloquée: l’instance de tâche est en attente d’une ressource, un
message ou un signal de synchronisation.
 Prête : l’instance d’une tâche attend d’être élue pour exécution.
 En dormie : l’instance de tâche n’a pas de requêtes en cours, elle est
stoppée.

3.3 TYPES DES TACHES


Périodique
- l’activation de la tâche Ti survient à des intervalles des temps
réguliers Pi.
- chacune de ces exécutions est appelée instance
- Constitue la majorité des applications temps réel : par exemple de
mesure de la température toutes les secondes
Figure 2.Tâche temps réel périodique

- Tâche ‘bien formée’’ si 0  Ci  Di  Pi .

- Tâche à échéance sur requête si Di = Pi.

- les tâches s synchrones : des tâches périodiques avec des dates


d’activation des premières instances identiques, ou à départ simultané
Apériodique
Les tâches apériodiques sont des tâches en temps réel qui sont activées
de manière irrégulière à des taux éventuellement illimités . La contrainte
de la tâche temps réel est généralement l’échance (Di)
Sporadique
Les tâches sporadiques sont un cas particulier des tâches périodiques.
Deux caractéristiques démarquent les sporadiques des périodiques :
 On ne connaît d'une part pas a priori leur date de première
activation, simplement parce qu'il est rare de pouvoir prévoir des
dates de déclenchement des alarmes avant la mise en marche d'un
système.
 Pour les tâches périodiques, Pi représente une durée fixe séparant
deux activations successives ; pour les sporadiques, c'est une durée
minimale séparant deux occurrences successives de la tâche

.
En plus des contraintes temporelles, d’autres contraintes peuvent
s’ajouter à la description des tâches telle que les contraintes de
ressources et les contraintes de précédences.
 Priorité des tâches : Aussi une tâche peut avoir ou non une priorité
(qui définit son poids ou son importance par rapport aux autres
tâches du système), dont la valeur dépend de l’algorithme
d’ordonnancement sous-jacent. Nous distinguons deux types de
priorités :
- priorité fixe où une tâche est affectée d'une priorité. Toutes les instances
de cette tâche hériteront de cette priorité. C'est-à-dire que la priorité
de chaque tâche est fixée lors de la conception du système et demeure
invariable tout au long de sa vie.
- la priorité dynamique. On parle de ce type de priorité, quand la priorité
n'est plus affectée à une tâche mais à ses instances, c'est-à-dire que
la priorité d'une instance peut évoluer au cours du temps.
 Préemption des tâches : D’autre part, la tâche peut être préemptible
(interruptible) ou non. Une tâche préemptible peut être
temporairement suspendue et reprise ultérieurement. Si une tâche est
non préemptible est interrompue, son exécution doit être reprise de
nouveau depuis le début. Une tâche i interrompue par la tâche j, soit
lorsque cette dernière a besoin d’une ressource, telle que le processeur,
qui utilisait la tâche i et la tâche j plus prioritaire que la tâche i, soit la
tâche i ne pouvait pas continuer son exécution par manque de
ressources et que la tâche j le pouvait. Dans tous les cas, déterminer
qu’une tâche est préemptible, est principalement lié à la nature de
l’application.

Préemption de tâche

4. Ordonnancement des tâches


Pourquoi ordonnancer ?
Parce que ça a un impact sur le respect des contraintes de temps
Exemple

Tâche T1 : arrivée en 0, durée 4, échéance 7


Tâche T2 : arrivée en 2, durée 2, échéance 5

Ordonnancement _1 est réalisé selon la politique :


premier arrivé, premier servi

Ordonnancement_1 :
Non valide : T2 dépasse
son échéance

• Ordonnancement _2: est réalisé selon la politique :


DE priorité, T2 plus prioritaire que

Ordonnancement_2 : valide
(respect des contraintes
temporelles)

5. ETUDE D'ORDONNANÇABILITE

Pour avoir une certaine prédictibilité et pouvoir s'assurer du respect des


contraintes temporelles, en particulier quand il s'agit d'un système temps
réel strict, une analyse de l'ordonnancement doit être effectuée. Ainsi l'étude
de l'ordonnancement des systèmes temps réel se focalise principalement sur
deux problèmes :
 FAISABILITE
En considérant les tâches, leurs contraintes ainsi que les processeurs dont
dispose l'architecture, le but est de dire s'il existe un ordonnancement qui
satisfait toutes les échéances;

 ORDONNANÇABILITE

En considérant les tâches, leurs contraintes, les processeurs dont dispose


l'architecture ainsi qu'un algorithme d'ordonnancement, le but est de
déterminer s'il existe un ordonnancement, qu'on obtient avec cet algorithme,
respectant toutes les contraintes. L'analyse d'ordonnançabilité peut être
extrêmement difficile pour des systèmes complexes. C'est pourquoi, il se
peut qu'un modèle de système complexe soit transformé en un autre modèle
plus simple dont l'analyse est connue. Cependant cette pratique ne permet
d'obtenir que des résultats partiels (par exemple une condition nécessaire et
suffisante d'ordonnançabilité en monoprocesseur devient une condition
nécessaire en multiprocesseur [19]. Il est important de noter qu’un critère
analytique s’applique dans un contexte restreint et pour un algorithme
d’ordonnancement particulier. Trois principales techniques d’analyse sont
employées dans l’analyse de l’ordonnançabilité .

5.1 APPROCHE ANALYTIQUE


L'analyse par approche analytique repose sur les principales techniques
d’analyse suivantes :

Analyse de l’utilisation processeur (Processor Utilization Analysis)


Le facteur d’utilisation 𝑈 est la fraction de temps que le processeur
passe à exécuter n tâches. Il se définit par
i n
𝑈=  Ci / Pi
i 1

Avec Ci : la charge de la tâche i, Pi : période de la tâche i


Dans certains cas particuliers, le facteur d’utilisation du processeur
permet de conclure l’ordonnançabilité d’une configuration de tâches après
vérification de certaines conditions de faisabilité.
Analyse de la demande processeur (Processor Demand Analysis)
Cette technique repose sur le calcul de la demande cumulée des
exécutions des tâches réveillées et terminées dans un intervalle de
temps (Demand Bound Function). Cette approche générale permet de
construire des tests d’ordonnancabilité en limitant l’étude
d’ordonnançabilité à quelques intervalles d’une période d’activité du
processeur.
Analyse des temps de réponse (Reponse Time Analysis)
Cette technique consiste à calculer les pires temps de réponse des
tâches et à les comparer avec leurs délais critiques. Une tâche est
ordonnançable si, et seulement si, son pire temps de réponse est
inférieur ou égal à son délai critique. Dans le cadre de l’ordonnancement
à priorité fixe, cette méthode est souvent désignée sous le nom
d’analyse RTA (Response Time Analysis).
5.2 SIMULATION

La simulation est couramment utilisée pour l'analyse des performances, le


dimensionnement ou la mise au point des systèmes temps réel et l'analyse
d'ordonnancement. Elle consiste à modéliser le comportement du système
à l'aide d'un formalisme adéquat puis à l'exécuter avec un outil de simulation
sur des scénarios définis par l'utilisateur. Les informations résultantes
peuvent être de simples traces de l'exécution du système ou des évaluations
sur certains comportements du système. L'un des principaux inconvénients
de la simulation est qu'elle peut être optimiste.
En effet, comme il est difficile de réaliser une étude exhaustive de tous les
scénarios possibles, elle peut montrer qu'un système n'est pas
ordonnançable (en montrant un scénario non ordonnançable), mais elle ne
peut prouver qu'un système est ordonnançable (même si tous les scénarios
testés le sont). Des outils de simulations existent et sont utilisés dans
l'industrie, parmi les quels on peut citer Cheddar .
5.3 MODEL-CHECKING

Le model-checking est une méthode permettant l'exploration exhaustive de


l'espace d'états du système. Ces méthodes permettent de vérifier de
nombreuses propriétés sur les systèmes autres que l'ordonnancement. Le
formalisme utilisé est souvent celui des systèmes de transitions étendus
temporellement : automates, réseaux de Petri. Il existe des extensions
spécifiques aux systèmes temps réel comme les réseaux de Petri étendus à
l'ordonnancement. L'inconvénient majeur, comme on peut le prévoir, est que
l'espace d'états que les méthodes de model-cheking doivent prendre en
compte a une taille exponentielle, par conséquent, ceci limite la taille des
modèles analysables [19].

6. CONCLUSION

Dans ce chapitre, Nous avons évoqué la notion de tâches et ces contraintes


temporelles imposées dans les applications temps réel. Nous sommes
intéressés aux différents problèmes rencontrés dans les systèmes temps réel
et plus particulièrement au problème d’ordonnancement temps réel ainsi que
les algorithmes de résolution existant dans la littérature.
Références bibliographiques
- Yahyaoui Khadidja. « L'apport des outils de l'Intelligence Artificielle
dans les systèmes temps réel : Ordonnancement des tâches », Thèse
de doctorat en sciences. Université D’oran 1. Ahmed Ben Bella.
Algérie. 2013.

- Samia Bouzefrane. « Introduction aux systèmes temps réel « . Notes


de cours.Maître de Conférences à CEDRIC –CNAM.France.

- K. Chen, P. Muhlethaler. A family of scheduling algorithms for real-


time systems using time value functions. RR Inria- Rocquencourt
n°1530, Septembre 1991.

- Frank Singhoff Real-Time Scheduling analysis, University of Brest,


France.
- C. Kaiser. Cours de Systèmes temps réel. Rapport - SAR, Paris 6,
2001-2002.

Exercices

1. Définir la notion de la validation logique

Définir la notion de la validation temporelle

2 . Soit un système de visualisation intégré dans un véhiculeautomobile.


Nous devons étudier le respect des contraintes temporelles des tâches et
les différentes synchronisations entre les tâches grâce à un outil spécifié
par exemple réseau de pétri. Ce système est constitué d’un ensemble de
tâches. Ces tâches permettent :

- la lecture de la vitesse du véhicule pendant une durée de 2 millisecondes


toutes les 10 millisecondes, de la température dans l’habitacle du véhicule
pendant une durée d’1 millisecondes toute les 10 millisecondes et la
position du GPS du véhicule pendant une durée de 4 millisecondes toutes
les 40 millisecondes et

- L’affichage pendant une durée de 2 millisecondes toutes les 12


millisecondes qui produit un résumé des informations produites des tâches
des différentes lectures ci-dessus. Un autre affichage de la carte routière
est réalisé pendant une durée d’1 milliseconde selon la demande de
l’utilisateur toutes les 6 millisecondes .

1. De quel type d’application s’agit-il ?


2. Citer les différentes tâches considérées avec leurs paramètres,
valeurs des paramètres.
3. Quel exécutif temps réel peut-on utiliser pour garantir le contrôle
cette application ? Justifier
4. Calculer le du pire temps de réponse du système considéré
(algorithme RM)
Module : Systèmes temps réel
Titre du cours : Ordonnancement des tâches temps réel
(Partie_2)
1. Introduction
2. Algorithmes d'ordonnancement des tâches dans les systèmes
temps réel Monoprocesseurs
3. Tâches indépendantes périodiques
3.1 Algorithme Rate monotonic
3.2 Algorithme Deadline monotonic
Calcul de temps de réponse ( WCET)
3.3 Algorithme Earliest Deadline First (EDF)
3.4 Algorithme Least Laxity First
4. Conclusion
Références bibliographiques
Exercices

1
1. Introduction
Cette partie du cours est consacrée aux stratégies d’ordonnancement
des tâches temps réel dans les systèmes monoprocesseur. Des
exemples sont élaborés avec des tests d’ordonnançabilté

2. Algorithmes d'ordonnancement des tâches dans les systèmes


temps réel Monoprocesseurs
- configuration : ensemble de N taches qui vont s'exécuter
concurremment pour réaliser l'application.
- accès concurrent à la CPU (monoprocesseur) régi par un système de
priorités
- ordonnancement préemptif : à chaque instant, c'est à la tâche de plus
haute priorité que l'on attribue la CPU
- algorithme d'ordonnancement : mécanisme qui va attribuer a chaque
tache une priorité de façon à ce que l'ensemble des tâches de la
configuration soit exécutée en respectant les contraintes temporelles
➢ utilise les caractéristiques temporelles des taches
➢ fournit généralement un critère d'ordonnancabilité

3. Tâches indépendantes périodiques

l'ordre dans lequel les tâches de la configuration sont


exécutées est sans importance.
Les tâches ne partagent aucune ressource
Algorithmes à priorités fixes
Algorithme Rate Monotonic : RM algorithm
Algorithme Deadline Monotonic : DM algorithm
Algorithmes à priorités variables
Algorithme Earliest Deadline First : EDF algorithm

3.1 Algorithme Rate monotonic

Algorithme à priorité constante ou fixe


La priorité des tâches est basée sur la période (taches à échéance
sur requête) : La tâche de plus petite période est la plus
prioritaire
Test d'ordonnancabilité (condition suffisante)

2
Exemple1 :

Soit le système de tâches suivant :


T1 (r0=0, C=3, P=20), T2 (r0=0, C=2, P=5), T3 (r0=0, C=2, P=10)
Vérifie l’ordonnancabilité de ce système par l’algorithme RM avec n=3.

Le système est ordonnançable par RM

1/perio2 > 1/perio3 > 1/perio1

Le chronogramme de ce système selon RM

3.2 Algorithme Deadline Monotonic : DM

basé sur le délai critique : la tâche de plus petit délai critique


est la plus prioritaire
Test d’ordonnançabilité (condition suffisante) :

3
Equivalent à RM dans le cas des tâches à échéance sur requête
(Pi=Di), meilleur dans les autres cas
Suffisant mais pas nécessaire: il existe des ensembles
ordonnançables avec !!

Exemple 2 :

Soit le système de tâches suivant :


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)

Exemple 3
Soit le système de tâches suivant : T1(P1=20,C1=3, Di=14) ;T2
(P1=5,C1=2, Di=5) ; T3 (P1=15,C1=2, Di=15)
Donner l’ordonnancement de ce système par l’algorithme DM

4
Calcul du temps de réponse Ri de tâche temps réel i
(WCET :Wort Case Execution Time)

Ce temps ce calcule ainsi :

Ri = Ci + Ii
- où Ii est le temps pendant lequel la tâche i est suspendue par des
tâches plus prioritaires.

- Durant Ri, une tâche j > i est activée

- l’interférence par la tâche j est :

- l’interférence totale Ii est :

- Le temps de réponse de la tâche i est :

5
L’algorithme est :

Exemple 4
Soit le système de tâche suivant :
Tâche Ci Pei
i
A 3 10
B 4 15
C 2 20

6
3.3 Earliest Deadline First (EDF)

Objectif : obtenir une meilleure occupation du processeur.

Politique EDF (définition) : à tout moment, la tâche qui a


l’échéance la plus proche occupe le CPU.

Remarques:
 toutes les instances d’une tâche n’ont pas la même priorité
==priorité dynamique
 la priorité d’une tâche reste fixe par rapport aux priorités des
tâches qui sont déjà admises à exécution quand elle arrive
 préemption : quand une tâche arrive, si elle a l’échéance plus
proche que la tâche en cours

L’ordonnançabilité par EDF

Un ensemble de n tâches est ordonnançable par EDF ou LLF si


l’utilisation du processeur est inférieure à 100%.

si di = pi , la Condition nécessaire et suffisante :

7
Si di<pi , la condition est suffisante mais pas nécessaire :

Exemple 5 :
Soit le système de tâches suivant.

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)
Vérifier son ordonnancabilité par EDF

Le système est ordonnançable par EDF.

3.4 Algorithme LLF (Least Laxity First )

Laxité d’une tâche Ti = Di – (t + ci’)


Où : Di : Echéance absolue (deadline absolut)
t : temps courant
ci’ : temps de calcul restant

8
Exemple 6
Etudier l’ordonnancabilité selon LLF.

Le système est ordonnançable selon LLF.

4. Conclusion
Dans ce cours, nous avons détaillé les algorithmes appliqués dans
les systèmes temps réel avec des exemples. Une série d’exercices a
été proposée.

9
Références bibligraphiques

- Samia Bouzefrane. « Introduction aux systèmes temps réel « .


Notes de cours.Maître de Conférences à CEDRIC –CNAM.France.
- K. Chen, P. Muhlethaler. A family of scheduling algorithms for real-
time systems using time value functions. RR Inria- Rocquencourt
n°1530, Septembre 1991.
- Frank Singhoff. Real-Time Scheduling analysis University of Brest,
France
- C. Kaiser. Cours de Systèmes temps réel. Rapport - SAR, Paris 6,
2001-2002.
- Yahyaoui Khadidja. « L'apport des outils de l'Intelligence Artificielle
dans les systèmes temps réel : Ordonnancement des tâches »,Thèse
de doctorat en sciences. Université D’oran 1. Ahmed Ben Bella.
Algérie. 2013.

Exercices
Exercice 1
Soit le système de tâche suivant et les chronogrammes suivants :
T1(2,5) ; T2(4,7)

A B

Discuter les chronogrammes A et B du système de tâches donnés ci-


dessus.
Exercice 2 :
soit le système de tâches A(9,75) ; B (20,35) ;C(5,20)
1. Le système de tâches est-il oronnançable par RMS
2. Calculer le temps de réponse de A,B et C.

Exercice 3 :
Soit une configuration avec 2 tâches à échéance sur requête :
T1 : (r0 = 0, C1 = 2, P1 = 5)
T2 : (r0 = 0, C2 = 4, P2 = 7)
1. Donner l’intervalle d'étude.
2. la configuration est-elle ordonnançable avec RMA.

10
Justifiez votre réponse.
3. même question avec EDF
4. tracer les chronogrammes en indiquant les éventuelles fautes
temporelles

Exercice 4 :
Soit le système comportant 4 tâches avec les caractéristiques suivantes :
A(100,20,100) ;B(50,12,50),C(35,10,35),D(25,5,15)

1. Quelle politique utiliser ?


2. Quel ordre de priorité ? Est-ce ordonnançable
Exercices de simulation sous environnement Cheddar
Soient deux tâches T1 et T2, périodiques, synchrones et à échéances sur
requêtes, définies par les paramètres suivants:
Tâche T1 : Capacity = 4, Deadline = Period = 8, Start time = 0
Tâche T2 : Capacity = 5, Deadline = Period = 10, Start time = 0
Priorités des tâches : appliquer l'algorithme Rate Monotonic.
1. Elaborer un modèle dans Cheddar pour ce jeu de tâches, s'exécutant
sur un processeur (comportant un coeur) et utilisant un algorithme à
priorité fixe préemptif.
2. Avec Cheddar, générer un ordonnancement sur l'intervalle de faisabilité
3. A partir de la simulation, lire les pires temps de réponse obtenus pour
chaque tâche. Existe-t-il des échéances manquées ?
4. Modifier votre modèle afin d'utiliser un algorithme EDF préemptif cette
fois, puis refaire les questions 2 et 3.
5. Comparez les résultats obtenus. Que constatez-vous ?
6. Modifiez votre modèle en conservant un ordonnanceur EDF préemptif
mais avec l'ensemble de tâches ci-dessous. Notez que ce jeu de tâches
comporte une tâche apériodique.
Tâche périodique T1 : Period=Deadline=8, Capacity=4, Start time = 0
Tâche périodique T2 : Period=Deadline=16, Capacity=8, Start time = 0
Tâche apériodique T3 : Deadline=15, Capacity=4, Start time = 0
7. Ré-exécuter une simulation sur les 30 premières unités de temps
Que constatez-vous ?

11
8. Qu'en concluez-vous sur l'adéquation d'EDF pour les systèmes temps
réel critiques ? Est-ce le cas avec un ordonnancement à priorité fixe ?

12
1

Intitulé du Cours :

PROBLEMATIQUE DE L’ORDONNANCEMENT DANS LES SYSTEMES


MULTIPROCESSEURS

I. Introduction
L'ordonnancement multiprocesseur se distingue de l'ordonnancement
caractérisé par la présence de plusieurs processeurs sur les quels peuvent
s'exécuter les tâches. Les problèmes de l’ordonnancement temps réel dans un
environnement multiprocesseurs se diffèrent des problèmes posés par
l’ordonnancement dans un système centralisé (un seul hôte). Nous pouvons
résumer ces problèmes comme suit :
i) le problème de placement des tâches : sur quel(s) processeur(s) une tâche
va-t-elle s'exécuter ?
ii) le problème de la migration des tâches : une tâche peut-elle changer de
processeur pour s'exécuter ?
iii) le problème de l'ordonnancement des tâches : affectation des priorités.
Dans la section suivante, nous abordons les approches résolvant ces types de
problèmes.

Figure 1: Ordonnancement de 3 tâches sur 2 processeurs

Mme : Yahyaoui Khadidja


2

Pour un ensemble n de tâches périodiques (ou sporadiques), et un nombre m de


processeurs, est une condition nécessaire d’ordonnançabilité.

II. Algorithmes d’ordonnancement dans les systèmes multiprocesseurs.

Il existe en général deux types d'approches pour résoudre le problème


d'ordonnancement multiprocesseur :
A. Par partitionnement : trouver un partitionnement de l'ensemble des n tâches en
m sous ensembles (m étant le nombre de processeurs), puis d'ordonnancer chaque sous-
ensemble sur un processeur différent. Les tâches ne sont pas autorisées à migrer d'un
processeur à un autre. Trouver un partitionnement est équivalent à déterminer la
manière de diviser l'ensemble des tâches en un nombre de sous-ensembles égal au
nombre des processeurs. Les tâches qui appartiennent au même sous ensemble doivent
être ordonnançables sur le même processeur. Une fois le partitionnement terminé il ne
reste plus qu'à ordonnancer chaque sous-ensemble sur un processeur tout en respectant
les contraintes imposées dans le contexte des tâches en étude. Toutefois, il existe des
heuristiques permettant d'obtenir des résultats corrects en temps raisonnable. parmi ces
heuristiques : First-Fit et Best-Fit.
Des variantes citées ci-dessous sont obtenues en modifiant l'ordre de tri et / ou le
critère d'acceptation :
- FBB-FFD (Fisher, Baruah and Baker - First Fit Decreasing )
- RMBF (Rate Monotonic Best-Fit )
- RMFF (Rate Monotonic Next-Fit )
- RMST (Rate Monotonic Small Task )
- EDFBF( Earliest Deadline First Best Fit)
B. Globale : Il s'agit d'appliquer sur tous les processeurs une stratégie unique
d'ordonnancement et de faire en sorte qu'à chaque instant, les m tâches les plus
prioritaires soient attribuées aux m processeurs (m étant le nombre de processeurs).
Dans ce cas on autorise la migration, en d'autres termes une tâche peut commencer son
exécution sur un processeur, être préemptée, et la reprendre sur un autre processeur.
Parmi ces stratégie pouvons citer l’Algorithme de type Proportionate fair (Pfair) qui
est optimal dans le cadre d'un système de tâches indépendantes à échéance sur requête
et à départ simultané, lorsque la migration des instances est autorisée . Récemment,
Mme : Yahyaoui Khadidja
3

dans, Fisher et Baruah examinent les principaux résultats monoprocesseur préemptif


pour des éventuelles extensions au cas multiprocesseur. Ils proposent des conditions
d'ordonnançabilité pour l'algorithme EDF-global. Cet algorithme connu sous le nom
g-EDF (pour global EDF). L'affectation des priorités se fait comme dans le cas
monoprocesseur, mais au lieu d'exécuter la tâche la plus prioritaire, les m tâches les
plus prioritaires sont exécutées, où m correspond au nombre de processeurs
disponibles.

Figure 2 : Exemple d‘ordonnancement multiprocesseurs : Approche Globale

III. Ordonnancement par partitionnement


Adaptation de l’algorithme d’affectation des tâches temps réel aux processeurs en
utilisant par exemple une stratégie par partitionnement Rate Monotonic First Fit
(RMFF)
Principe d'un algorithme utilisant de l’heuristique par partitionnement (RMFF)
L’approche par partitionnement se divise en deux étapes :
1. Répartition de l’ensemble de K tâches en plusieurs sous-ensembles, chacun
associé à un processeur Pi et chaque Pi utilise un ordonnanceur.
2. Affectation standard sur chaque processeur. la figure 4 illustre le principe de
cette heuristique.

Mme : Yahyaoui Khadidja


4

T1 T2 Ordonnanceur 1 Processeur P1

T3 T4 Ordonnanceur 2 Processeur P2

T5 ….. Tk Ordonnabcement
Ordonnanceur Processeur Pi
Ordonnanceur
N1
2
22Ordonnance
Figure 3 : Approche
ur par partitionnement
L’allocation des tâches sur les processeurs (i.e. la définition des partitions) correspond
à un problème de bin packing: il faut trouver un rangement valide de N tâches de taille
Ui dans un nombre fini de processeur de capacité C. Ce problème est NP-complet.
Ui = Ci/Pi ……………… (1)
Ci : Temps d’exécution d’une tâche Ti.
Pi : Période d’une tâche Ti.
Ui : Charge d’une tâche Ti.

Pour un partitionnement, un objet correspond à une tâche, la taille d’une tâche est
donnée par l’équation (1), une boite est un processeur et la capacité dépend de la
politique de partitionnement sur le processeur.
Exemple d’Application :
Exemple d’ordonnancement par partitionnement .
Dans cet exemple, nous utilisons l’heuristique connue sous le nom Rate Monotonic
First Fit (RMFF).
L’heuristique First Fit (FF) se base sur l’allocation des tâches séquentiellement sur le
premier processeur qui convient, en utilisant une condition de partitionnement pour
tâches qui jeux prévus au titre de Rate Monotonic (RM) : ∑Ui ≤n (21/n − 1)

Mme : Yahyaoui Khadidja


5

L’algorithme RMFF est le suivant :

Début
Entrée: Ensemble des tâches Ti = {T1, T2, T3,………, Tk } La succession des tâches est
aléatoires.
Ensemble des processeurs Pi = {P1, P2, P3,………, Pk} ; /*K : Max de processeurs*/
Sortie: M : les partitions, j : nombre de processeurs dans chaque partition.
i := 1; j := 1; M=1 ; /* i : tâches ; j : processeur ; M : nombre des
partitions*/
while (i≤ k) do début
q := 1; Ui= Ci/ Pi ; Kq=0; Uq=0;
while (Ui ≥i (21/i − 1) ) do début
q := q + 1; /* q désigne processeur suivant */
M := M+1 ; /* M désigne partition suivante */
Fin
Uq := Uq + Ui;
Kq := Kq + 1
if (q > j) et (q > M) then début
j := q;
M := q;
fin
i := i + 1;
return (j); return (M);
End

Figure 4 : Principe générale de l’algorithme RMFF

Exemple d’application : Soit la système composé de 10 processeurs et 10 tâches {T0,


T1, T2, T3, T4, T5, T6, T7, T8 , T9} avec les contraintes temporelles suivantes :

Ci (Temps Di (Deadline) Pi (Période)


d’exécution)
T0 3 73 10
T1 8 98 17
T2 9 109 30
T3 3 64 25
T4 1 61 20
T5 2 92 28
T6 5 80 15
T7 7 72 14
T8 6 56 19
T9 4 44 20

Tableau 1 : Tâches avec ses contraintes.


Soit le système de tâches suivant : T 4, T7, T3, T1, T6, T8, T2, T0, T5, T9
U4= C4 / P4 =1/20= 0.05

Mme : Yahyaoui Khadidja


6

1(21/1-1)=1>=0.05
P1 T4 .....

U7= C7/P7 = 7/14=0.5

∑U=0.05+0.5=0.55

2(21/2-1)=0.82>=0.55

P1 T4 T7 .....

U3= C3/P3 = 3/25=0.12

∑U=0.55+0.12=0.67

3(21/3-1)=0.77>0.67

Donc
P1 T4 T7 T3

P2 T3 .....

U1= C1/P1 = 8/17=0.47

∑U=0.67+0.47=1.14
4(21/4-1)=0.75<1.14
: La première partition
P1 T4 T7 T3

P2 T1 .....

U6= C6/P6 = 5/15=0.33


∑U=0.47+0.33=0.8
2(21/2-1)=0.82<0.8
Donc
P2 T1 T6 .....

Et : U8= C8/P8 = 6/19=0.31

∑U=0.8+0.31=1.11

2(21/2-1)=0.82>=0.64

Mme : Yahyaoui Khadidja


7

T1 T6 La deuxième partition
P2

P3 T8 .....

U2= C2/P2 = 9/30=0.3

∑U=0.3+0.31=0.61

2(21/2-1)=0.82<0.61

Donc P3 T8 T2 .....

U0= C0/P0 = 3/10=0.3

∑U=0.61+0.3=0.91

3(21/3-1)=0.77<0.91

Donc P3 T8 T2 : La troisième partition

P4 T0 .....
Et

U5= C5/P5 = 2/28=0.07

∑U=0.3+0.07=0.37

2(21/2-1)=0.82<0.37
P4 T0 T5 .....

U9= C9/P9 = 4/20=0.2

∑U=0.2+0.37=0.57

3(21/3-1)=0.77>=0.57

Donc P4 T0 T5 T9 : La quatrième partition

Mme : Yahyaoui Khadidja


8

Les partitions sont :

P1 : T4 T7 T3

P2 : T1 T6

T8 T2
P3 :

P4 : T0 T5 T9

Exercice :

Ordonnancer le système de tâches précèdent en adoptant la stratégie EDF Best Fit


( EDFBF) : Dans ce cas :
- Calculer le taux d’occupation des tâches : Pour Ti=Ci/Pi
- Classer les tâches selon l’ordre croissant des taux d’occupation des tâches.
- Ensuite affecter (créer des partitions) les tâches aux processeurs selon la
condition d’ordonnançabilité de EDF : ∑ci/pi ≤ 1.

Mme : Yahyaoui Khadidja

Vous aimerez peut-être aussi