Ingénieur Civil des Mines 2ème année Conception Sûre des Systèmes Embarqués et Ambiants – Module SI342b Chapitre 3 Ordonnancement sous contraintes temps réel 2006-2007 Françoise Simonot-Lion ([email protected]) Plan Différentes.
Download
Report
Transcript Ingénieur Civil des Mines 2ème année Conception Sûre des Systèmes Embarqués et Ambiants – Module SI342b Chapitre 3 Ordonnancement sous contraintes temps réel 2006-2007 Françoise Simonot-Lion ([email protected]) Plan Différentes.
Ingénieur Civil des Mines
2ème année
Conception Sûre des Systèmes Embarqués et Ambiants – Module SI342b
Chapitre 3
Ordonnancement sous
contraintes temps réel
2006-2007
Françoise Simonot-Lion ([email protected])
Plan
Différentes approches de la programmation temps réel
Approche synchrone
Approche asynchrone
Ordonnancement
Problématique (temps réel critique / temps réel mou)
Types de tâches
Caractéristiques des tâches
Caractérisation d'un ordonnancement
Ordonnancement de tâches périodiques
Ordonnancement de tâches apériodiques
Ecole des Mines de Nancy
1
CSSEA - SI342b
Approche synchrone (1/8)
A chaque événement, on associe l’exécution de la
fonction de traitement de cet événement
A chaque occurrence d’événement, la fonction de
traitement de cet événement est exécutée
Liste d’états et d’événements prédéfinis
Hypothèses : pas d’autres événements « à traiter »
pendant l’exécution de la fonction (non préemption, non
interruptibilité du traitement de la fonction)
Ecole des Mines de Nancy
2
CSSEA - SI342b
Approche synchrone (2/8)
Les automates - version 1 - 1 action par événement
void SSP_IT()
Partie
{ int ev;
opérative
ev=lire_IT();
automate(ev);
acquittement;
}
non interruptible
non préemptible
Ecole des Mines de Nancy
void automate(int E)
int etat;
{ switch E
1 : . . .
. . .
i : switch (etat)
1 : . . .
j : traitement (i,j);
etat=nouvel_etat(i,j);
return;
. . .
endsw;
. . .
default : ;
endsw;
}
3
CSSEA - SI342b
Approche synchrone (3/8)
Que se passe-t-il pour les
événements E3 et E4 qui
Les automates - version 1
arrivent pendant le traitement
de E2 ?
Faites des propositions
Problème : un seul événement traité à la fois
argumentées.
E1
Traitement
de E1
Ecole des Mines de Nancy
E2
E3
E4
Traitement
de E2
4
?
CSSEA - SI342b
Approche synchrone (4/8)
Les automates - version 2
int flag;
IT2
IT1
Partie
opérative
Ecole des Mines de Nancy
void SSP_IT2()
{ int ev;
void SSP_IT1()
ev=lire_IT();
{ int ev;
flag=set(ev);
ev=lire_IT();
acquittement;
flag=set(ev);
}
acquittement;
}
void automate()
{int E_presents, etat;
while(1)
{E_presents=check_and_reset(flag);
if(not_vide(E_presents))
{traitement (etat,E_presents);
etat=nouvel_etat(etat,E_presents);
}
}
}
5
CSSEA - SI342b
Approche synchrone (5/8)
Les automates - version 2 - fenêtre d’observation des événements ([ ])
Proposez une représentation
de la variable « Flag » :
- dans le cas où les
Flag = {E1}
événements arrivant entre
Flag = {E2}
deux fenêtres d’observation
Flag = {E2,E3} sont considérés comme
simultanés,
E1
E2
E3
- dans le cas contraire.
[ ]
t0
Ecole des Mines de Nancy
Flag=
Traitement
de E1
[ ]
Flag=
Traitement
de E2 et E3
6
[ ]
t
CSSEA - SI342b
Approche synchrone (6/8)
Les automates - version 2 - fenêtre d’observation des événements ([ ])
?
Flag = {E1}
Flag = {E2}
Flag = {E4}
Flag = {E2,E3}
E1
E2
[ ]
t0
Ecole des Mines de Nancy
Flag=
Traitement
de E1
Flag = {E4}
E3
E4
[ ]
Flag=
Traitement
de E2 et E3
7
E4
[ ]
t
CSSEA - SI342b
Approche synchrone (7/8)
Les automates - version 2 - Cyclique vs périodique
fenêtre périodique d’observation
Flag = {E1}
des événements ([ ])
Flag = {E2}
Flag = {E2,E3}
E1
E2
[ ]
t0
Ecole des Mines de Nancy
Flag=
Traitement
de E1
Flag = {E4}
E3
?
E4
[ ]
Flag=
Traitement
de E2 et E3
8
[ ]
t
CSSEA - SI342b
Approche synchrone (8/8)
Conclusions
possibilité de génération automatique de l ’automate (version 2) langages synchrones
vérification : simulation - analyse exhaustive
complexité de l’application (nombre d’états et d’événements identification)
maîtrise des hypothèses (simultanéité - durée de traitement - …)
maîtrise des hypothèses (cas de la distribution)
Ecole des Mines de Nancy
9
CSSEA - SI342b
Approche asynchrone (1/6)
A chaque événement, on associe l’exécution de la
fonction de traitement de cet événement sous la forme
d’une tâche
Toute occurrence d’événement est observée et peut
éventuellement « interrompre » l’exécution d’une tâche
(préemption) pour que soit exécutée une tâche plus
« urgente »
Ecole des Mines de Nancy
10
CSSEA - SI342b
Approche asynchrone (2/6)
Séparation
traitements des interruptions
tâches immédiates
IT2
void SSP_IT2()
{ int ev;
void SSP_IT1()
ev=lire_IT();
{ traiter_urgent_IT1();
flag=set(ev);
activer_TD1();
acquittement;
acquittement;
}
}
IT1
Partie
opérative
niveau d’interruptions
masquage d’interruptions
imbrication / mise en file
Ecole des Mines de Nancy
11
traitements applicatifs
tâches différées
void function_td2()
{traiter_moins_urgent_IT2();
void function_td1()
exit();
{traiter_moins_urgent_IT1();
}
exit();
}
ordonnancement
synchronisation
coopération
CSSEA - SI342b
Approche asynchrone (3/6)
E1
a
t0
Préemption d ’une tâche
différée par une autre tâche différée
E3
E2
b
c
d
e
f
g
Traitement
de E2
h
Traitement
de E3
t
Interruption
Début - Suite - Fin
Traitement de E1
urgence de E2 > urgence de E1 > urgence de E3
Ecole des Mines de Nancy
12
CSSEA - SI342b
Approche asynchrone (4/6)
E1
E2
t0
Traitement
de E2
Début - Suite
Traitement de E1
Ecole des Mines de Nancy
t
urgence de E2 < urgence de E1
13
CSSEA - SI342b
Approche asynchrone (5/6)
Quels sont les points clés du
déroulement présenté ?
Problèmes
E1
Échéance
de E1
E2
Échéance
de E2
t0
!
t
Traitement
de E2
Début
Suite et Fin
Traitement de E1
Ecole des Mines de Nancy
urgence de E2 > urgence de E1
14
CSSEA - SI342b
Approche asynchrone (6/6)
Conclusions
Programmation plus aisée d’applications complexes
Cohabitation temps réel dur / temps réel mou
Cohabitation d’activités périodiques / apériodiques / sporadiques
Nécessité d’un exécutif multi-tâches (logiciel)
langage temps réel (Ada)
systèmes temps réel (VxWorks, OSEK, OS9, …)
Difficulté de spécification de l’urgence des tâches
Difficulté de prédire le bon fonctionnement (ordonnançabilité)
Ecole des Mines de Nancy
15
CSSEA - SI342b
Ordonnancement temps réel
Ecole des Mines de Nancy
16
CSSEA - SI342b
Problématique (1/4)
Engine ctrl
AGB
ABS/VDC
Suspension
WAS/DHC
CAN nw ctrl
CAN nw ctrl
CAN nw ctrl
CAN nw ctrl
CAN nw ctrl
CAN
X
Y
Z
VAN nw ctrl
VAN nw ctrl
VAN nw ctrl
CAN nw ctrl
Intelligent Switching Unit
VAN nw ctrl
VAN
Nom de
la tâche
AGB
Ecole des Mines de Nancy
T_AGB1
T_AGB2
T_AGB3
T_AGB4
Priorité
2
3
4
1
Période
Message Durée
d’activation
en entrée (ms)
(ms)
15
50
M8
M2
17
2
2
2
2
Message
en sortie
M4
M11
CSSEA - SI342b
Problématique (2/4)
T_Engine1
Engine ctrl
CAN nw ctrl
T_AGB2
AGB
CAN nw ctrl
M1
M11
ABS/VDC
Suspension
WAS/DHC
CAN nw ctrl
CAN nw ctrl
CAN nw ctrl
CAN
M13
T_Y2
X
VAN nw ctrl
T_Y3
Y
VAN nw ctrl
T_ISU2
M14
Z
VAN nw ctrl
CAN nw ctrl T_ISU3
Intelligent Switching Unit
VAN nw ctrl
VAN
Ecole des Mines de Nancy
18
CSSEA - SI342b
Problématique (3/4)
t
nœud sur
CAN
réseau CAN
passerelle
réseau VAN
nœud sur
VAN
Temps de réponse de bout en bout
Début de la
chaîne
Contrainte :
Terminaison de
la chaîne
Temps de réponse de bout en bout < Temps Maximum
Ecole des Mines de Nancy
19
CSSEA - SI342b
Problématique (4/4)
Période d'activation
Période d'activation
Période d'activation
t
Période de
terminaison i
Période de
terminaison i+1
Contrainte :
Gigue sur la période de terminaison < 50% de la période d'activation
Ecole des Mines de Nancy
20
CSSEA - SI342b
Typologie des tâches (1/3)
Une application A est modélisée par un nombre fini de tâches : A = {T1, T2, …,Tn}
•Tâche / Instance de tâche
•Modes d’activation
Tâches réactivées à intervalle de temps régulier
PERIODIQUE
Une instance doit s’exécuter dans chaque période
Une instance doit démarrer au début de chaque période
Tâches activées aléatoirement - sur événement
L’intervalle de temps entre deux occurrences de
l’événement est borné
L’intervalle de temps entre deux
occurrences de l’événement n’est pas
borné
Ecole des Mines de Nancy
21
SPORADIQUE
APERIODIQUE
CSSEA - SI342b
Typologie des tâches (2/3)
•Résultats d ’une tâche
La tâche doit terminer son exécution pour fournir le résultat
A RESULTAT UNIQUE
La tâche peut fournir un résultat à tout moment
INCREMENTALE
La tâche peut fournir un résultat
1) à partir d’un certain point de son exécution (mandatory),
2) puis à tout moment (parties optionnelles)
A RESULTATS IMPRECIS
Ecole des Mines de Nancy
22
CSSEA - SI342b
Typologie des tâches (3/3)
•Relation avec les autres tâches de l’application
- La tâche n’interagit pas avec les autres tâches de l’application
INDEPENDANTE
- La tâche Ti ne peut pas commencer avant la fin de Tj
A CONTRAINTE
DE PRECEDENCE
Graphe orienté (sans cycle) : nœud = tâche / arc = relation de précédence
Cas particulier : une seule contrainte de précédence par nœud (arbre)
- La tâche peut utiliser des ressources critiques (exclusion mutuelle)
A CONTRAINTE
DE RESSOURCES
Soit l’ensemble {R1, R2,…, Rl} des ressources du systèmes
La tâche spécifie les ressources qu’elle utilise (vecteur des ressources)
Ecole des Mines de Nancy
23
CSSEA - SI342b
Caractéristiques des tâches
Liu & Layland
Ii
di,n
Mi,n
mi,n
Li,n
a
b
c
Ai,n
Date d’arrivée
de l’instance
Ci,n = a + b + c
Fi,n
Date de fin de
l’instance
durée d’utilisation du processeur par l’instance n de la tâche Ti
exécution de l’instance n de la tâche Ti
Interarrivée entre deux instances : Ii,n (=Pi pour les tâches périodiques)
Tâche à échéance sur requête : di,n = Ii,n
Ecole des Mines de Nancy
24
CSSEA - SI342b
Caractérisation d’un ordonnancement
Problème :
Étant donné un ensemble de tâches A = {T1, T2, …,Tn},
trouver une
séquence de ces tâches qui respecte la spécification du problème
(contraintes de précédence, de ressources, d’échéances)
Problème d’optimisation :
- contraintes
* échéances sur les tâches
- critères
* maximiser l’utilisation des ressources
* minimiser le temps de réponse des tâches apériodiques
sans contraintes d’échéances
*…
Ecole des Mines de Nancy
25
CSSEA - SI342b
Caractérisation d’un ordonnancement
structure
•Mode de décision
caractérise l ’instant où les priorités sont évaluées et où le choix de
la (ou des) tâches en cours est faite
•Fonction de priorité
fonction de détermination des priorités des tâches ou instances
de tâches
•Règle d’arbitrage
utilisée en cas d’égalité de priorité de plusieurs tâches ou
instances de tâches
Ecole des Mines de Nancy
26
CSSEA - SI342b
Caractérisation d’un ordonnancement
classification
•Local / global
•préemptif
•Processeur
•non préemptif
tâche
•préemptible
•non préemptible
•Connaissances nécessaires pour la « décision » :
dynamique : prise de décision au vu de l’état courant
(pas de connaissance du futur)
statique (hors ligne) : connaissance initiale de tous les paramètres des
tâches et instances de tâches, la séquence est
construite hors ligne
semi dynamique (périodique / apériodique)
Ecole des Mines de Nancy
27
CSSEA - SI342b
Caractérisation d’un ordonnancement
classification
•Qualité du résultat
exact : l’algorithme fournit une séquence qui est la meilleure possible
et garantit le respect des contraintes
approché : l’algorithme fournit une séquence qui garantit le respect des
contraintes
•Algorithme optimal :un algorithme dont on peut prouver que,
s’il échoue, tous les autres algorithmes échoueront ;
s’il réussit, il ne donne pas forcément la séquence optimale
•Algorithme efficace :un algorithme qui permet de trouver une solution en un temps
borné par une fonction polynomiale
•Fonction de garantie :une fonction, peu coûteuse en temps de calcul, qui dépend
des paramètres des tâches (Ti) de l'ensemble et
calcule son ordonnançabilité
Ecole des Mines de Nancy
28
CSSEA - SI342b
Caractérisation d’un ordonnancement
classification
Les problèmes d'ordonnancement sont NP-Complets
exemple (MC Portmann)
- Monoprocesseur - N tâches
- Chaque tâche est caractérisée par sa durée d'exécution et son
échéance
Algorithme minimisant la somme des retards : toute solution est une
permutation dans l'ensemble des N tâches, soit N! cas possibles
n
10
11
12
13
14
15
16
17
18
19
20
21
durée des calculs
3 ms
40 ms
0,5 s
6s
1,5 m
20 m
6h
4 jours
2,5 mois
4 années
77 années
16 siècles
Ecole des Mines de Nancy
Le calcul et la comparaison d'une solution dure 10 -9s
29
CSSEA - SI342b
Ordonnançabilité d’un ensemble de tâches
Soit un ensemble de tâches A = {T1, T2, …, Tn} caractérisées (= une configuration)
•Un algorithme d'ordonnancement est un algorithme qui produit une séquence des
instances de tâches de A dans le temps
•Une séquence est valide si les contraintes de la configuration A donnée sont
respectées
•Un algorithme est fiable pour la configuration A s'il produit une séquence valide sur
une durée infinie
Une configuration A est ORDONNANÇABLE (faisable)
si il existe un algorithme d'ordonnancement fiable
pour A
Ecole des Mines de Nancy
30
CSSEA - SI342b
Ordonnançabilité d’un ensemble de tâches
En général, on ne connaît pas de conditions nécessaires et suffisantes pour
l'ordonnançabilité
Hypothèses sous lesquelles des résultats sont obtenus :
- ensemble constant et prédéfini de tâches (pas de création dynamique de
tâches)
- pas d'allocation dynamique de mémoire (problème de « garbage collector)
- pas de récursivité / boucles bornées
- chiens de garde sur les coopérations entre la tâche et son environnement
Ecole des Mines de Nancy
31
CSSEA - SI342b
Ordonnançabilité versus performances (1/2)
Soient deux processeurs Lièvre et Tortue, tels que
vitesse de Lièvre = 10 * vitesse de Tortue
Deux tâches
Date
d’activation
Date
d’échéance
Ci
(Lièvre)
Ci
(Tortue)
t1
0
220
20
200
t2
2
15
1
10
Ecole des Mines de Nancy
32
CSSEA - SI342b
Ordonnançabilité versus performances (2/2)
t1
•Ordonnancement FIFO sur Lièvre
Activation
de t1
t2
Activation
de t2
Échéance de t2
15
0 2
Échéance de t1
220
20 21
•Ordonnancement EDF sur Tortue
Activation
de t1
0 2
Ecole des Mines de Nancy
Activation
de t2
Échéance de t2
15
Échéance de t1
220
212
12
33
CSSEA - SI342b
Ordonnançabilité d’un ensemble de tâches (1/4)
Fonction d’ordonnancement de l’instance n de la tâche k (Tk,n)
1 si Tk ,n est exécutée en t
k ,n (t )
0 si Tk ,n n ' est pas exécutée en t
k ,n (t ) 0t k ,n ( x )dx
Commentez cette évolution
k,n(t)
Ck,n
Ak,n
Ecole des Mines de Nancy
u
v
34
Fk,n
t
CSSEA - SI342b
Ordonnançabilité d’un ensemble de tâches (2/4)
Fonction d’arrivée de travail de Tk,n
Commentez cette évolution
Sk,n(t)
Ck,n
Ak,n
Ecole des Mines de Nancy
t
35
CSSEA - SI342b
Ordonnançabilité d’un ensemble de tâches (3/4)
Soit une configuration C
Tâche
1
2
3
4
5
Ci
7
5
8
3
2
Pi
20
20
30
100
100
Tracez la fonction d’arrivée de
travail de C
Ecole des Mines de Nancy
36
CSSEA - SI342b
Ordonnançabilité d’un ensemble de tâches (4/4)
Fonction de charge de Tk,n
Wk,n(t)
Commentez cette évolution –
valeurs de k,n(t) ?
Ck,n
Ak,n
Ecole des Mines de Nancy
Fk,n
37
t
CSSEA - SI342b
Ordonnançement de tâches périodiques
•Facteur d'utilisation d'une tâche périodique :
ui = Ci / Pi
Montrez que le temps
d’oisiveté (temps creux) du
processeur
est (1-U)P
ui < 1
• Charge du processeur pour A :
n
U Ci
i 1 Pi
condition nécessaire d'acceptation : U < 1
P = ppcm(T1, T2, …, Tn )
Ecole des Mines de Nancy
38
(1-U)P temps creux
CSSEA - SI342b
Ordonnançement de tâches périodiques
Tâches indépendantes - Algorithmes à priorité statique
Priorité statique
•attribuées hors ligne avant le début
d’exécution
•non modifiées pendant l’exécution
Ecole des Mines de Nancy
39
CSSEA - SI342b
Ordonnançement de tâches périodiques
Tâches indépendantes - Algorithmes à priorité statique
Comment affecter les priorités (1/2) ?
Un seul processeur préemptif / Seules contraintes di (deadlines) - échéances sur
requête
Rate Monotonic (Liu & Layland - 1973) - Deadline Monotonic
Priorités inversement proportionnelles
aux périodes des tâches
aux échéances des tâches (di,n < Pi)
Choix arbitraire en cas de conflit (FIFO, par exemple)
Condition suffisante d’ordonnançabilité :
n
1
C
U i n( 2 n 1)
i 1 Pi
RM - DM : Algorithme optimal pour les configurations à tâches indépendantes,
à échéances sur requêtes, périodiques et à départ simultané
Ecole des Mines de Nancy
40
CSSEA - SI342b
Ordonnançement de tâches périodiques
Tâches indépendantes - Algorithmes à priorité statique
Comment affecter les priorités (2/2) ?
On considère
• Shortest
Ci,n identique pour toute instance
di,n identique pour toute instance
Maximum Processing Time First (SMPTF)
• Shortest Slack Time First (SSTF)
Intérêt de ces politiques ?
Ecole des Mines de Nancy
41
CSSEA - SI342b
Ordonnançement de tâches périodiques
Rate Monotonic - exemple
La priorité d'une tâche est 1/Pi
Tâches
Ti
Période
Pi
1
2
2
5
Occupation Facteur d'utilisation
Ci
ui
1
2
50%
40%
préemption
0
1
Ecole des Mines de Nancy
2
3
4
idle
5
42
6
7
8
9
10
CSSEA - SI342b
Rate Monotonic vs Deadline Monotonic - exemple
Tâches Période Occupation Facteur d'utilisation Délai critique
Ti
Pi
Ci
ui
di
1
2
Rate
Monotonic
2
3
1
1
50%
33%
2
1
0
1
2
3
4
5
6
0
1
2
3
4
5
6
Deadline
Monotonic
Ecole des Mines de Nancy
43
CSSEA - SI342b
Ordonnancement de tâches (périodiques)
Tâches indépendantes - Algorithmes à priorité dynamique
Les priorités se calculent dynamiquement au cours du temps
Algorithmes plus coûteux en temps de calcul
ordonnancent plus de configurations que les algorihmes à priorité statique
FIFO – First In First Served
la tâche la plus prioritaire est celle dont la date d’arrivée est la plus ancienne
EDF - Earliest Deadline First
la tâche la plus prioritaire est celle disposant de l’échéance la plus proche
EDF est optimal pour les systèmes de tâches périodiques, indépendantes
Une configuration de tâches indépendantes, périodiques, à échéance sur requête est
ordonnançable par ED ssi U <= 1
Ecole des Mines de Nancy
44
CSSEA - SI342b
Ordonnancement de tâches (périodiques)
Tâches indépendantes - Algorithmes à priorité dynamique
Tracer le diagramme d’évolution du processeur pour
le cas suivant et les politiques FIFO et EDF :
Ecole des Mines de Nancy
Ci
Pi
Di
T1
2
3
3
T2
2
7
6
45
CSSEA - SI342b
Ordonnancement de tâches périodiques
Tâches indépendantes - Algorithmes à priorité dynamique
Least Laxity First (LLF)
la tâche la plus prioritaire est, à tout instant celle disposant de
la plus petite marge de manœuvre
Exemple : Ci = 6 u. ; di = 15 u.
Temps restant
au temps t
Activation
de Ti
Charge restant
au temps t
t
di = 15 u.
marge de manœuvre
à l’instant t
Ecole des Mines de Nancy
46
laxité (t, Ti)
CSSEA - SI342b
Ordonnancement de tâches (périodiques)
Tâches indépendantes - Algorithmes à priorité dynamique
Tracer le diagramme d’évolution du processeur pour
le cas suivant et la politique LLF :
Ecole des Mines de Nancy
Ci
Pi
Di
T1
4
8
8
T2
3
6
6
47
CSSEA - SI342b
Ordonnancement de tâches périodiques
Tâches à contraintes de précédence
Exemple
Ti
Tj
Décomposition en
forme normale
Réception m1
S1
Graphe de précédence
nœud = Si
arc(Si, Sj) si fin de Si précède
début de Sj
S4
Émission m1
Émission m2
S2
S1
Réception m2
S3
S2
S4
S3
Ecole des Mines de Nancy
48
CSSEA - SI342b
Ordonnancement de tâches périodiques
Tâches à contraintes de précédence
Remarque :
mêmes lois d’activation périodiques
(mêmes périodes entre les tâches dépendantes)
Rate Monotonic + relations de précédence
A- Réajuster la date de première activation
Pour chaque tâche Ti,
Ai
date de première activation prévue
Ai*
date de première activation calculée
Ai* maxT pred (T ) ( Ai , max( A*j ))
j
i
B- Réajuster les délais critiques D i délai critique donné
Di* délai critique calculé
Di* Di ( Ai* Ai )
Di
Ai
Ecole des Mines de Nancy
Ai*
Di*
49
CSSEA - SI342b
Ordonnancement de tâches (périodiques)
Tâches indépendantes - Algorithmes à priorité dynamique
Tracer le diagramme d’évolution du processeur pour le cas
suivant et la politique RM :
S1
S3
S2
T1
Ecole des Mines de Nancy
S6
S5
T2
S4
T3
Ai
Ci
Pi
Di
S1
1
1
8
8
S2
0
1
8
8
S3
0
2
12
12
S4
0
1
12
12
S5
0
1
8
8
S6
0
1
4
5
50
Ai*
Di*
CSSEA - SI342b
Ordonnancement de tâches périodiques
Tâches à contraintes de ressources
Problème : inversion de priorité
Exemple :
ordonnancement par priorité classique
A = {T1, T2, T3}
T1 et T2 en exclusion mutuelle sur une ressource R
priorité(T1) > priorité (T2) > priorité (T3)
activation P(R)
T1
activation
T2
P(R)
V(R)
T3
Ecole des Mines de Nancy
51
CSSEA - SI342b
Ordonnancement de tâches périodiques
Tâches à contraintes de ressources
Solution : protocole à héritage de priorité
Toute tâche en section critique hérite de la priorité la plus haute des tâches
en attente de la ressource
A = {T1, T2, T3}
T1 et T2 en exclusion mutuelle sur une ressource R
priorité(T1) > priorité (T2) > priorité (T3)
activation P(R)
T1
activation
T2
P(R)
V(R)
T3
Minimise le retard de T1 - mais ne résout pas l’interblocage
Ecole des Mines de Nancy
52
CSSEA - SI342b
Ordonnancement de tâches périodiques
Tâches à contraintes de ressources
Solution à l’interblocage :
protocole à priorité plafond (Priority Ceiling Protocol)
Configuration C = {Ti}
Ressources = {Rj}
Règles: - priorité(Rj) = max (priorité(Ti) accèdant à Rj)
- priorité(Tk possédant Rj) = priorité(Rj)
- une tâche Ti ne peut prendre Rj que si
priorité(Ti) > max(priorité (Rk occupée))
Ecole des Mines de Nancy
53
CSSEA - SI342b
Ordonnancement de tâches périodiques
Gigues observables
Gigues sur le début d’exécution
Gigues sur la fin d’exécution
par exemple : algorithme d’échantillonnage
par exemple : multimédia
répéter tous les dt
donnée = lire();
res=calculer(donnée);
répéter tous les dt
résultat = calculer();
écrire (résultat);
Gigues sur le début d’exécution et la fin d’exécution
par exemple : un algorithme de régulation (PI, PID)
répéter tous les dt
donnée = lire();
résultat = calculer(donnée);
écrire (résultat);
Ecole des Mines de Nancy
54
CSSEA - SI342b
Ordonnancement de tâches apériodiques
Tâches indépendantes
Temps réel mou - contraintes relatives
minimiser le temps de réponse des tâches
apériodiques à contraintes relatives
politique du « best effort »
Temps réel dur - contraintes strictes
garantir le temps de réponse d’un maximum
de tâches apériodiques à contraintes strictes
Ecole des Mines de Nancy
55
CSSEA - SI342b
Ordonnancement de tâches apériodiques
indépendantes à contraintes relatives
Algorithme « Background Processing »
Traitement des tâches apériodiques dans les temps creux laissés par les tâches
périodiques (ordre de réveil)
Tâches Ti
1
2
0
Période Pi Occupation Ci
5
2
10
2
5
Tâches Tap1
r=4, C=2
Ecole des Mines de Nancy
10
Tâches Tap2
r=10, C=1
- Première activation de Ti : 0
- Ti à échéance sur requête
- Rate Monotonic
15
Tâches Tap3
r=11, C=2
56
20
Temps creux
CSSEA - SI342b
Ordonnancement de tâches apériodiques
indépendantes à contraintes relatives
Serveur de tâches par scrutation (1/2)
tâche serveur *caractérisée par - une période d ’activation
- une capacité (durée d’éxécution)
* ordonnancée avec les tâches périodiques applicatives
* ordonnance les tâches apériodiques suivant une politique
(FIFO, durée, échéance)
Tâches Ti
Période Pi Occupation Ci Echéance di
1
2
20
10
3
2
serveur
5
2
Ecole des Mines de Nancy
20
10
57
- Première activation de Ti et
du serveur : 0
- Rate Monotonic pour les 3 tâches
CSSEA - SI342b
Ordonnancement de tâches apériodiques
indépendantes à contraintes relatives
Serveur de tâches par scrutation (2/2)
capacité
0
5
10
15
20
2
1
0
Tâches Tap1
r=4, C=2
Ecole des Mines de Nancy
Tâches Tap2
r=10, C=1
Tâches Tap3
r=11, C=2
58
Capacité perdue (scrutation classique)
Capacité conservée (ajournable)
CSSEA - SI342b
Ordonnancement de tâches apériodiques
indépendantes à contraintes relatives
Serveur sporadique
tâche serveur
*même principe que serveur à scrutation
*amélioration des temps de réponse
Exemple p.57
capacité
0
5
10
15
5
2
5
20
5
1
0
Tâches Tap1
r=4, C=2
Ecole des Mines de Nancy
Tâches Tap2
r=10, C=1
Tâches Tap3
r=11, C=2
59
CSSEA - SI342b
Ordonnancement de tâches apériodiques
indépendantes à contraintes relatives
Algorithme « Slack Stealer »
amélioration des temps de réponse des tâches apériodiques
respect des contraintes des tâches périodiques
Lors de l ’arrivée d ’une tâche apériodique, reculer au maximum l’exécution des tâches
périodiques
Tâches Ti
1
2
0
Période Pi Occupation Ci
5
2
10
2
5
Tâches Tap1
r=4, C=2
Ecole des Mines de Nancy
10
Tâches Tap2
r=10, C=1
- Première activation de Ti : 0
- Ti à échéance sur requête
- Rate Monotonic
15
20
Tâches Tap3
r=11, C=2
60
CSSEA - SI342b
Ordonnancement de tâches apériodiques
indépendantes à contraintes strictes
Pseudo-période
Intervalle minimum entre deux activations successives d ’une tâche
apériodique
Rate Monotonic
Temps perdu - difficultés de spécifier la pseudo-période
Politique d’acceptation
Acceptation / rejet d ’une demande d’activation de tâche apériodique (routine
de garantie)
EDF
Favorise l’ordonnancement des tâches périodiques
Nécessite un mécanisme de partage de charge / un système réparti
Ecole des Mines de Nancy
61
CSSEA - SI342b
Ordonnancement de tâches apériodiques
indépendantes à contraintes strictes
Politique d’acceptation
Utilisation des temps creux dans une séquence fixe
de tâches périodiques (1/2)
ordonnancement EDF des tâches périodiques
cf. ordonnancement en « background » des tâches apériodiques
prise en compte des contraintes d’échéances des tâches apériodiques
T1
T2
T3
Tap1
Tap2
Tap3
Ecole des Mines de Nancy
début
0
0
0
Ci
3
2
1
Pi
20
5
10
di
7
4
8
4
10
11
2
1
2
-
10
16
18
62
Tâches périodiques
Tâches apériodiques
CSSEA - SI342b
Ordonnancement de tâches apériodiques
indépendantes à contraintes strictes
Politique d’acceptation
Utilisation des temps creux dans une séquence
fixe de tâches périodiques (2/2)
T1
T3
T2
0
5
10
15
10
Tâches Tap1
r=4, C=2, d=10
Ecole des Mines de Nancy
Tâches Tap2
r=10, C=1, d=16
20
16
Tâches Tap3
r=11, C=2, d=18
63
18
Temps creux
CSSEA - SI342b
Ordonnancement de tâches apériodiques
indépendantes à contraintes strictes
Politique d’acceptation
Ordonnancement conjoint
de tâches périodiques et apériodiques (2/2)
ordonnancement EDF des tâches périodiques
remise en cause de la séquence de tâches lors de l’arrivée d’une tâche
apériodique
prise en compte des contraintes d’échéances des tâches apériodiques
Ecole des Mines de Nancy
64
CSSEA - SI342b