Académique Documents
Professionnel Documents
Culture Documents
Ci (computing time)
C’est la durée d’exécution de la tâche Ti. Ce paramètre est considéré
dans
Di (deadline)
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.
Ui = Ci / Ti
.
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
Ordonnancement_1 :
Non valide : T2 dépasse
son échéance
Ordonnancement_2 : valide
(respect des contraintes
temporelles)
5. ETUDE D'ORDONNANÇABILITE
ORDONNANÇABILITE
6. CONCLUSION
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
Exemple1 :
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 :
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)
Ri = Ci + Ii
- où Ii est le temps pendant lequel la tâche i est suspendue par des
tâches plus prioritaires.
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)
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
7
Si di<pi , la condition est suffisante mais pas nécessaire :
Exemple 5 :
Soit le système de tâches suivant.
8
Exemple 6
Etudier l’ordonnancabilité 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
Exercices
Exercice 1
Soit le système de tâche suivant et les chronogrammes suivants :
T1(2,5) ; T2(4,7)
A B
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)
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 :
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.
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)
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
1(21/1-1)=1>=0.05
P1 T4 .....
∑U=0.05+0.5=0.55
2(21/2-1)=0.82>=0.55
P1 T4 T7 .....
∑U=0.55+0.12=0.67
3(21/3-1)=0.77>0.67
Donc
P1 T4 T7 T3
P2 T3 .....
∑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 .....
∑U=0.8+0.31=1.11
2(21/2-1)=0.82>=0.64
T1 T6 La deuxième partition
P2
P3 T8 .....
∑U=0.3+0.31=0.61
2(21/2-1)=0.82<0.61
Donc P3 T8 T2 .....
∑U=0.61+0.3=0.91
3(21/3-1)=0.77<0.91
P4 T0 .....
Et
∑U=0.3+0.07=0.37
2(21/2-1)=0.82<0.37
P4 T0 T5 .....
∑U=0.2+0.37=0.57
3(21/3-1)=0.77>=0.57
P1 : T4 T7 T3
P2 : T1 T6
T8 T2
P3 :
P4 : T0 T5 T9
Exercice :