0% ont trouvé ce document utile (0 vote)
119 vues64 pages

Cours5 Partag Ress Prec KNT

systemes temp reel

Transféré par

hsina zina
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
119 vues64 pages

Cours5 Partag Ress Prec KNT

systemes temp reel

Transféré par

hsina zina
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Partage de ressource dans les

systèmes temps réel

Maria ZRIKEM

Ensa de Marrakech

Ensa de Marrakech, Ordonnancement temps réel 1


Analyse de l’interaction entre processus

Dans une application industrielle, certaines tâches peuvent être


conduites à coopérer pour réaliser une opération donnée. Cette
coopération se traduit par l’enchaînement imposé de certaines de
leurs actions, par échanges de leurs données ou par leur partage
des mêmes ressources. D’un point de vue opérationnel, les
relations de dépendance qui peuvent apparaître ainsi entre les
tâches sont de deux types :
• les contraintes de précédence qui expriment les relations de
synchronisation et de communication entre les tâches ;
• le partage de ressources dont l’utilisation n’est pas possible
qu’on exclusion mutuelle : les ressources critiques.

Ensa de Marrakech, Ordonnancement temps réel 2


Analyse de l’interaction entre processus
Notations :
• Arrivée Ai (ou Oi Offset)
• Temps de calcul maximum sans préemption Ci
• Echéance (deadline) : relative ou absolue Di
• Date de début (start time) Si
• Date de fin (finish time) Fi
• Retard (lateness) Li = (Di - Fi)
• Laxité (slack time) xi(t) = Di - (t + Ci - ci(t))
Xi = xi(Ai) = (Di - Ai - Ci)
Ci

Ensa de Marrakech, Ordonnancement temps réel 3


Partages de ressources critiques
Prise en compte des cas de blocage : inversions des priorités
Exemple : 3 taches T1, T2, T3 données dans l’ordre décroissant des
priorités. T1 et T3 partagent une structure de données protégée par le
sémaphore S. Pendant l’exécution de T3 qui a pris S, T1 démarre. T1
préempte T3 et demande S déjà utilisée par T3. Elle se retrouve donc
bloquée pour un temps indéterminé.
T3 demande est obtient S
Démarrage de T1
T1 demande S T1 obtient S
Démarrage de T2

T1 Plus prioritaire
?

T2

T3 Moins prioritaire

Ensa de Marrakech, Ordonnancement temps réel 4


Partage de ressources critiques
Problème d’inversion de priorité

T2 se termine avant T1, bien que T1 soit plus prioritaire

T1 est retardée par toutes les tâches de priorité intermédiaire

T3 demande est obtient S


Démarrage de T1
T1 demande S T1 obtient S
Démarrage de T2

T1 Plus prioritaire
?

T2

T3 Moins prioritaire

Ensa de Marrakech, Ordonnancement temps réel 5


Partage de ressources critiques

Problème d’inversion de priorité


▪ La tâche T3 de priorité intermédiaire qui n’utilise pas la ressource R1 retarde
la tâche T2 et donc la tâche T1

• Il peut y avoir une infinité de tâches T2


• L’attente de T1 ne peut pas âtre bornée

Pouvoir borner l’attente de T1 et inclure cette borne au


test d’acceptabilité́ de la configuration ordonnancer

Test classique + facteur de blocage B

Ensa de Marrakech, Ordonnancement temps réel 6



Héritage de priorité
Héritage de priorité simple ((PIP = Priority Inheritance
Protocol)
⇒ On utilise des sémaphores à priorités, i.e. sachant gérer des files
d’attentes en tenant compte des priorités des tâches qui désirent
prendre le sémaphore
⇒ Lorsque une tâche détient le sémaphore et qu’une autre le réclame, la
priorité de la tâche possédant le sémaphore est augmentée au niveau
de la priorité de la tâche qui réclame le sémaphore. La tâche qui
possède le sémaphore « hérite » ainsi de la priorité de la tâche qui
réclame le sémaphore. Ceci permet de limiter à une seule fois le nombre
de situations d'inversion de priorités.
⇒ Le prix à payer est le blocage des tâches de priorités intermédiaires qui
ne partagent pas la même ressource. Lorsqu'une tâche T bloque
l'exécution de tâches de priorités supérieures, la tâche T s'exécute avec
la priorité maximale des tâches en attente.

Ensa de Marrakech, Ordonnancement temps réel 7


Analyse de l’interaction entre processus
Héritage de priorité simple (PIP)
Régle d’héritage de priorité : qd blocage d’une tâche T lors de l’accès R, la
tâche bloquante Tl hérite de la priorité courante de T; utilisation par Tl de la
priorité héritée jusqu’ libération de R, o elle retrouve la priorité de la tâche la
plus prioritaire encore bloquée sur R

Ensa de Marrakech, Ordonnancement temps réel 8





Analyse de l’interaction entre processus
Héritage de priorité simple (PIP)
Exemple : 3 taches P1, P2, P3 données dans l’ordre décroissant des priorités.
P1 et P3 partagent une structure de données protégée par le sémaphore S.
Pendant l’exécution de P3 qui a pris S, P1 démarre. P1 préempte P3 et
demande S déjà utilisée par P3.
⇒ On garantit que P3 ne sera pas préemptée par P2 quand elle utilisera son
P3 demande est obtient S
sémaphore
Préemption par P1
P1 demande S P1 obtient S Fin P1

P1

P2

P3

P3 hérite de la priorité de P1 P3 relâche S Début P2 Fin P2 Fin P3


Ensa de Marrakech, Ordonnancement temps réel 9
Analyse de l’interaction entre processus
Héritage de priorité simple (PIP)
Propriétés
• Temps de blocage born (sauf situation d'interblocage)
➢ Possibilité́ de vérification à priori des échéances
• Interblocages possibles
• Pour implanter PIP, il n’est pas nécessaire de connaitre quelle tâche utilise
quelle ressource (par contre, nécessaires pour calculer les temps de
blocage)

Remarque
• N’élimine pas l’inversion de priorité, la rend juste de durée bornée

Ensa de Marrakech, Ordonnancement temps réel 10



Analyse de l’interaction entre processus
Héritage de priorité simple (PIP)
• T1 retardée au plus de la durée de la section critique
• MAIS

- Difficile dans le cas d’une section critique longue

- Blocage des processus de haute priorité n’utilisant pas la section


critique

Ensa de Marrakech, Ordonnancement temps réel 11


Analyse de l’interaction entre processus
Héritage de priorité simple (PIP)
Remarque: héritage transitif en cas de sections critiques emboitées
• si T partage une ressource R avec T' moins prio qu'elle
• si la section critique sur R inclut l'utilisation d'une ressource R’
• si R' est utilisée par une tâche T'' moins prioritaire que T’
• T' dépend de T'' et par transitivité, T dépend de T''

Temps de blocage
• Définition : durée pendant laquelle une tâche T ne peut plus progresser
cause d'une tâche moins prioritaire qu'elle
• Remarque : une tâche prête peut subir un « blocage » tel qu’il est défini ici

Ensa de Marrakech, Ordonnancement temps réel 12


Analyse de l’interaction entre processus
Comparaison Fin P1

P1
?

P2

P3

Fin P1

P1

P2

P3

Ensa de Marrakech, Ordonnancement temps réel 13


Héritage de priorité
Héritage de priorité simple : exemple

taches ri ci Prio-i Sections critiques


j1 7 3 1 [V;1]
j2 5 3 2 [S;1]
j3 4 2 3
j4 2 6 4 [V;2,5[S;1,5]]
j5 0 6 5 [S;4]

Ensa de Marrakech, Ordonnancement temps réel 14


Héritage de priorité
Héritage de priorité simple : exemple
taches ri ci pi Sections critiques
j1 7 3 1 [V;1]
j2 5 3 2 [S;1]
j3 4 2 3
j4 2 6 4 [V ; 2,5 [S;1,5] ]
j5 0 6 5 [S;4]

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

1
2
3
4
5
Ensa de Marrakech, Ordonnancement temps réel 15
Héritage de priorité
Partage de plusieurs ressources : les iterblocages possibles
Exemple : situation où une tâche P1 exécute la séquence P(S1), P(S2),
tandis que la tâche P2 exécute la séquence P(S2), P(S1). Si l'exécution est
entrelacée comme l'indique le diagramme, les deux tâches se trouvent à
jamais bloquées.

P2 démarre P1 Démarre P1 veut prendre S2


P(S1) P(S2)
P(S2)
P2 veut prendre S1
P(S1)

P
1
P1 est bloquée
Préemption

P2 est bloquée
P2

S2 pris S1 pris

Ensa de Marrakech, Ordonnancement temps réel 16


Héritage de priorité
Partage de plusieurs ressources : les iterblocages possibles
⇒ Pour assurer l'absence d'interblocage, on doit garantir qu'une tâche ne
pourra commencer l'exécution d'une section critique qu'à condition de
s'exécuter à un niveau de priorité supérieur aux niveaux de priorités
des sections critiques préemptées. Ceci revient à ordonner totalement
les priorités des sections critiques.

⇒ Pour arriver à cet ordre, on définit le plafond de priorité (priority ceiling)


d'un sémaphore (ou priorité d’un sémaphore). Il est égal à la priorité
maximale des tâches pouvant prendre le sémaphore. Cette priorité est
déterminée lors de la conception de l'application.

Priorité(sémaphore) = priorité_max(tâches qui prennent le sémaphore).

Ensa de Marrakech, Ordonnancement temps réel 17


Héritage de priorité
Héritage par la méthode du verrou le plus haut
Dans la technique d'héritage de priorité par verrou le plus haut (highest
lock), la tâche qui utilise le sémaphore hérite d'une priorité qui est
supérieure au plafond de priorité du sémaphore. Ce protocole a pour effet
d'allonger les périodes d'inversion de priorité : une tâche de plus forte
priorité ne pourra pas démarrer si la tâche de moindre priorité utilise un
sémaphore que la première tâche est susceptible de prendre

π(S1)=π(S1)=Prio T1 P1 prête P1 Démarre P(S1)

P1
P2 démarre P(S2) P(S1) V(S1) V(S2)

P2

S2 pris S1 pris

Ensa de Marrakech, Ordonnancement temps réel 18


Héritage de priorité
Héritage par la méthode du plafond de priorité (Priority
Ceiling Protocol : PCP)
Dans la méthode dite plafond de priorité, le système d'exploitation maintient
une variable qui représente la valeur maximale des priorités des
sémaphores pris ou plafond courant : lorsqu'une tâche essaye d'exécuter
l'une de ses sections critiques (en essayant de prendre un sémaphore), elle
est suspendue sauf si sa priorité est supérieure aux plafonds de priorités
de tous les sémaphores pris par les autres tâches. Si la tâche T est ainsi
bloquée par la tâche Tp qui possède le sémaphore ayant le plus haut
plafond de priorité, alors Tp bloque T et hérite, en quelque sorte, de la
priorité de T.
⇒ Cette méthode garantit qu'une tâche de haute priorité sera bloquée par au
plus une section critique d'une tâche de priorité inférieure et minimise le
temps de blocage.

Plafond = Max(priorités des sémaphores pris).

Ensa de Marrakech, Ordonnancement temps réel 19


Héritage de priorité
Héritage par la méthode du plafond de priorité (Priority
Ceiling Protocol : PCP)

Définitions :

Priorité plafond (priority ceiling) d’une ressource R :


π(R) = priorité maximale des tâches qui utilisent la ressource R

Priorité plafond courante (current priority ceiling, ou ceiling) un instant T :


π(t) = maximum des priorités plafond des resources utilisées en t

Ensa de Marrakech, Ordonnancement temps réel 20


Héritage de priorité
Héritage par la méthode du plafond de priorité (Priority
Ceiling Protocol : PCP)
Protocol
• Règle d’allocation de la ressource R demandée par une tâche T
➢ Ressource occupée : blocage (idem PIP)
➢ Ressource libre
✓ T strictement plus prioritaire que π(t), allocation de R T
✓ Sinon, R allouée T si c’est T qui possède la ressource de plafond
π(t), sinon, T est bloquée (diffèrent PIP)
• Règle d’h ritage de priorité
Quand il y’a blocage d’une tâche T lors de l’accès R, la tâche bloquante Ti
hérite de la priorité de T prio(T), et ce jusqu’ ce qu’il libère toute ressource
de plafond supérieur ou égal prio(T). A ce moment, Ti reprend la priorité
qu’elle avait quand elle a acquis la ressource.

Ensa de Marrakech, Ordonnancement temps réel 21








Héritage de priorité
Héritage par la méthode du plafond de priorité
Exemple : Soient deux tâches T1 et T2 et deux structures de données
partagées protégées par les sémaphores S1 et S2. On suppose que T1
prend les sémaphores dans l'ordre S1 et S2 et T2 les prend dans l'ordre
inverse ; de plus, T1 est de priorité plus grande que T2. Comme T1 et T2
utilisent les deux sémaphores, le plafond de priorité de S1 est égal à la
priorité de T1. Il en va de même pour S2.
π(S1)=π(S2)=Prio T1
T1 Démarre P(S1) refusée car
Prio(T1) ≤ plafond courant

T1

π(t) =Plafond courant=


Max(prio T1, Prio T2)=
Prio T1

T2

S1 pris
T2 démarre P(S2) P(S1) V(S1) V(S2)
S2
pris
Ensa de Marrakech, Ordonnancement temps réel 22
Héritage de priorité
Héritage par la méthode du plafond de priorité (PCP)
Exemple : partage de ressource R entre T1, T3, T2 utilise une ressource R’
π(R)= prio(T1); π(R') = prio(T2);

Ensa de Marrakech, Ordonnancement temps réel 23


Héritage de priorité
Exercice

taches ri ci pi Sections critiques


j1 7 3 1 [V;1]
j2 5 3 2 [S;1]
j3 4 2 3
j4 2 6 4 [V;2,5[S;1,5]]
j5 0 6 5 [S;4]

Ensa de Marrakech, Ordonnancement temps réel 24


taches
j1
ri
7
ci
3
pi
1
Sections
[V;1] Exemple
j2 5 3 2 [S;1]
j3 4 2 3
j4 2 6 4 [V;2,5[S;1,5]] π(V)=Prio(J1)=1
j5 0 6 5 [S;4]
π(S)=Prio(J2)=2

0 1 2 4 6 8 10 12 14 16 18 20

1
2
3
4
5

1
2=П(t)
P4< P1>
3
4
5

Ensa de Marrakech, Ordonnancement temps réel 25


Comparaison

PCP 0 2 4 6 8 10 12 14 16 18 20

1
2
3
4
5

PIP
1
2
3
4
5

Ensa de Marrakech, Ordonnancement temps réel 26


Héritage de priorité
Héritage par la méthode du plafond de priorité (PCP)
✓ Propri t s
• Dur e de blocage born e : borne = dur e maximale d’une section critique
d'une t che de priorit inf rieure (plus faible qu’avec PIP)
• Dur e de blocage pour une t che Ti = Dur e de la plus longue section
critique d'une t che de priorité inf rieure et gard e par un s maphore s tel
que π(s) ≥ prio(Ti)
- Identifier les sections critiques des t ches de priorité inf rieure qui
peuvent bloquer Ti (direct + push-through)
- Filtrer toutes les sections critiques vérifiant π(s) ≥ prio(Ti) et prendre le
maximum
• Dur e de blocage maximal Bi plus faible qu’avec PIP
• Pas d’interblocages possibles
✓ Mais nécessite de connaitre toutes les ressources partagées par toutes les
t ches (non transparent pour l’utilisateur)
✓ n’élimine pas l’inversion de priorité, en rend durée bornée

Ensa de Marrakech, Ordonnancement temps réel 27





















Héritage de priorité
Protocole de priorité plafond immédiat (Immediate Ceiling
Priority Protocol ICPP)

• Le principe de ICPP est identique à celui de PCP, sauf qu'ici une tâche a
une priorité dynamique qui est le maximum de sa priorité fixe et des
priorités plafond de toutes les ressources qu'elle occupe.
• La priorité d’une tâche augmente dès qu'elle prend une ressource.
• Pas d’interblocages possibles

Ensa de Marrakech, Ordonnancement temps réel 28


Héritage de priorité
Protocole de priorité plafond immédiat (Immediate Ceiling
Priority Protocol ICPP)

Exemple : Considérons 3 tâches J0, J1 et J2 , avec P0 > P1 > P2,


ainsi que trois ressources partagées R0, R1 et R2 telles que :
• J0 utilise R0 puis R1
• J1 utilise R2
• J2 utilise R2 puis R1
On a donc:
• П(R0)= P0,
• П(R1)= P0,
• П(R2)= P1

Ensa de Marrakech, Ordonnancement temps réel 29


Héritage de priorité
Protocole de priorité plafond immédiat (Immediate Ceiling
Priority Protocol ICPP)
• J0 utilise R0 puis R1 • П(R0)= P0 P0 > P1 > P2

• J1 utilise R2 • П(R1)= P0

• J2 utilise R2 puis R1 • П(R2)= P1

R0 R1
Exécution J0
normale

R2
Section critique J1

R2 R1 R2
J2
P2
P0
P1

P2

t0 t1 t2 t3 t4 t5 t6 t7 t8 t9

Ensa de Marrakech, Ordonnancement temps réel 30


Héritage de priorité
Protocole de priorité plafond immédiat (Immediate Ceiling
Priority Protocol ICPP)
R0 R1
Exécution J0
normale
R2
Section critique J1

R2 R1 R2
J2
P2
П(R0)= P0 P0
P1
П(R1)= P0
P2
П(R2)= P1
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9
A t1 : J2 peut prendre R2. J2 entre en section critique avec P2 = П2 = P1.
A l'instant t7 : J1 ne peut prendre R2
A t2 : J1 est activé, J2 peut continuer à s'exécuter car P2 = P1. car cette ressource est prise (par J2 ),
J2 reprend donc son exécution.
A t3 : J2 peut prendre R1 car P2 ≥ Пc et J2 a pris la ressource R2 (Пc = П2).
P2 continue son exécution avec A l'instant t8 : J2 libère R2 et reprend
sa priorité initiale P2: J1 préempte J2
P2 = max{П1 , П2 }= П1 = P0 et prend R2 car on a P1 > Пc.
A t4 : J0 est activé, J2 peut continuer à s'exécuter car P2 = P0. A l'instant t9 : J1 termine son
exécution, J2 peut reprendre et
A t5 : J2 libère R1 et retrouve sa priorité P2 = P1. J2 est alors préemptée par terminer la sienne.
J0 qui commence son exécution.
A t6 : J0 termine son exécution, J1 ou J2 peuvent reprendre la leur
puisqu'elles ont la même priorité, ici par exemple J1 reprend son exécution.
Ensa de Marrakech, Ordonnancement temps réel 31
Héritage de priorité
Protocole à priorité de pile (Stack Resource Policy SRP)

Idée de base de SRP :


• Les tâches sont bloquées au démarrage de leur exécution si on sait que les
ressources qu'elles utilisent ne seront pas disponibles.
• Elle anticipe encore plus le blocage.
Propriétés :
• Implémentation très simple.
• Une tâche se bloque au plus une fois avant le démarrage de son exécution.
• L'ordre d'exécution est comme une "pile".

Ensa de Marrakech, Ordonnancement temps réel 32


Héritage de priorité
Protocole à priorité de pile (Stack Resource Policy SRP)
• SRP introduit les notions de niveau de préemption (preemption level) et de
plafond de préemption (preemption ceiling).
• Chaque tâche Ti possède un niveau de préemption fixe П'i, et une tâche Ti
ne peut préempter une tâche Tj que si П'i > П'j.
• SRP peut être utilisé aussi bien avec RM qu'avec EDF.
• En priorité fixe, le niveau de préemption d'une tâcheTi est défini comme sa
priorité : П'i = Pi.
• En EDF, le niveau de préemption sera défini comme étant l'inverse de
l'échéance relative d'une tâche : π’i= 1/Di .
• Chaque ressource Rk possède un plafond de préemption П’(Rk) qui est le
maximum des niveaux de préemption des tâches pouvant bloquer sur R k.
• Le système possède un plafond de préemption П’s(t) qui est le maximum
des П’(Rk) utilisées à l’instant t.

Ensa de Marrakech, Ordonnancement temps réel 33


Héritage de priorité
Protocole à priorité de pile (Stack Resource Policy SRP)

Règles de SRP :
• Une tâche Ti qui arrive à l’instant t peut s’exécuter seulement si :
➢ Si la tâches la plus prioritaires.
➢ Son niveau de préemption est supérieur au plafond de préemption du
système (plafond de préemption courent) : П'i > Π’s(t)

Ensa de Marrakech, Ordonnancement temps réel 34


Héritage de priorité
Protocole à priorité de pile (Stack Resource Policy SRP)
Exemple (avec priorité statique) :

• La tâche T3 augmente le niveau de préemption à p1


• La tâche T2 ne peut commencer car p2 < Π’s(t) = p1

• La tâche T1 ne peut commencer car p1 = Π’s(t) = p1

• Quand la tâche T3 libère la ressource, le niveau de préemption du système


baisse et toutes les autres tâches peuvent démarrer a s’exécuter.

Ensa de Marrakech, Ordonnancement temps réel 35


Héritage de priorité
protocole à priorité de pile (Stack Resource Policy SRP)
Propriétés : les même propriétés du PCP tiennent en SRP et en particulier :
• Th1 : Une tâche peut être bloquée au maximum une fois par toute ressource
ou tâche.
• Th2 : Le SRP empêche l’interblocage.
• Corollaire : La durée maximale de blocage d'une tâche est au maximum la
longueur d'une section critique.

➔ Le temps de blocage est le même qu’en PCP (c’est le temps de blocage minimal)

Ensa de Marrakech, Ordonnancement temps réel 36


Héritage de priorité
Protocole à priorité de pile (Stack Resource Policy SRP)
SRP Vs. PCP

• SRP réduit le nombre de préemption


• SRP est simple implémenter :
➢ pas besoin de faire de l’héritage.
➢ pas besoin de bloquer les tâches dans des files de sémaphores.
➢ il est possible aux tâches de partager la même pile d’exécution.

Ensa de Marrakech, Ordonnancement temps réel 37


Héritage de priorité
Protocole à priorité de pile (Stack Resource Policy SRP)
Préemption de l’ordonnancement

• Utiliser SRP équivaut à désactiver sélectivement la préemption pour une


durée limitée.
• Nous pouvons désactiver la préemption uniquement pour certains groupes de
tâches.
• Le SRP est une généralisation du mécanisme de masquage de préemption.

Ensa de Marrakech, Ordonnancement temps réel 38


Analyse de l’interaction entre processus
Les protocoles de synchronisation avec EDF
Le protocole d'héritage de priorité et le protocole de priorité à pile peuvent être
utilisés sous EDF sans aucune modification.
• Sous PIP :
• Lorsqu'une tâche de priorité supérieure est bloquée par une tâche de
priorité inférieure sur un sémaphore partagé, la tâche de priorité inférieure
hérite de la priorité de la tache bloquée.
• Dans EDF, la priorité d’une tâche est inversement proportionnelle à son
échéance absolue.
• Ici, on doit substituer une tâche de priorité supérieure à une tâche avec
une échéance précoce et hériter de la priorité avec une échéance
absolue.

Ensa de Marrakech, Ordonnancement temps réel 39


Analyse de l’interaction entre processus
Les protocoles de synchronisation avec EDF
Niveau de préemption
• Pour calculer le temps de blocage, nous devons d’abord ordonner les
tâches en fonction de leurs niveaux de préemption.
• En priorité fixe, le niveau de préemption est le même que la priorité.
• Dans EDF, le niveau de préemption est défini comme étant πi =1/Di

Ensa de Marrakech, Ordonnancement temps réel 40


Analyse de l’interaction entre processus
Les protocoles de synchronisation avec EDF
Niveau de préemption
• Si Ti peut préempter Tj, alors les deux conditions suivantes doivent être
remplies :
• Ti arrive après que Tj ait commencé à s'exécuter et donc ai > aj
• Le délai absolu de Ti est plus court que le délai absolu de Tj (di ≤ dj)
Il s'ensuit que :
di =ai +Di ≤ dj =aj +Dj
Di −Dj ≤ aj −ai <0

Di <Dj

πi > πj

Ensa de Marrakech, Ordonnancement temps réel 41


Tâches avec contraintes de précédence

On dit qu’il existe une contrainte de précédence entre la tâche


Ti et la tâche Tj ou Ti précède Tj si Tj doit attendre la fin
d’exécution de Ti pour commencer sa propre exécution.

On note : Ti < Tj

Exemple du graphe de précédence liant les neufs tâches


d’une application temps réel :

T5
T8
T2

T1 T4 T6 T7

T3 T9

Ensa de Marrakech, Ordonnancement temps réel 42


Tâches avec contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 43


Tâches avec contraintes de précédence

Objectifs:

1. Dans le cadre d’un ordonnancement préemptif basé sur la


priorité, quelle est la modification des paramètres de tâches
qui permettra une exécution dans le respect des échéances

2. Décider de la faisabilité hors ligne, i.e. Valider à priori


l’ordonnançabilité d’une configuration de tâches
indépendantes

Ensa de Marrakech, Ordonnancement temps réel 44


Tâches avec contraintes de précédence

▪ Transformer la configuration de taches en une configuration


de taches indépendante

▪ Travaux de [Chetto 1990] en se basant sur l’algorithme ED

▪ Généralisation aux algorithmes RM et DM par [Babau 1996]

Ensa de Marrakech, Ordonnancement temps réel 45


s

Tâches avec contraintes de précédence


Une réponse à la question 1 a été faite par Blazewicz [BLA 76] et
Chetto et al [CHE 90].

▪ Principe de la solution : rendre les tâches indépendantes en


modifiant leurs paramètres. Si Ti < Tj, la transformation des
paramétres doit respecter :

✓ rj ≥ r i

✓ prioi > prioj dans le respect de la politique d’ord. utilisée

▪ Hypothèses : Tâches soit apériodiques, soit périodiques de


même période (Si une tache est périodique, l’autre l’est
obligatoirement et PA=PB)
▪ Technique : selon RM, Selon EDF

Ensa de Marrakech, Ordonnancement temps réel 46


Contraintes de précédence et « Rate Monotonic »
On transformes hors ligne l’ensemble des tâches avec contraintes de
précédence en un ensembles de tâches indépendantes pour lequel te test de
faisabilité RM est respecté. Cette transformation s’opère sur le paramètre de
réveil r et sur l’affectation des priorités :

• r*i = Max(ri, r*j) , Tj < Ti

• si Ti < Tj , prioi > prioj dans le respect de RM

Exemple de tâches à départ simultané liées


par des contraintes de précédence
T3
T1 T2 T3 T4 T5 T6
T1 T2 T5 6 5 4 3 2 1

Tableau des priorités respectant les contraintes


T4
Précédence et celle de la RM.
T6

Ensa de Marrakech, Ordonnancement temps réel 47


Contraintes de précédence et « Deadline Monotonic »
Le principe est de modifier les dates de réveil et les délais
critiques (les échéance) de manière à avoir l’échéance d’une
tâche inférieur à celles de ses successeurs :

• r*i = Max(ri, r*j) , Tj < Ti

• D*i = Max(Di, D*j) , Tj < Ti

• si Ti < Tj , prioi > prioj dans le respect de DM

Ensa de Marrakech, Ordonnancement temps réel 48


Contraintes de précédence et « EDF »
• Une tâche ne sera activable que si tous ses prédécesseurs ont
terminé leur exécution :

r*i = Max(ri , Max(r*j + Cj)) , Tj < Ti

• l’échéance d’une tâche doit être inférieur à toutes les


échéances de ses successeurs immédiat diminuées de leurs
temps d’exécution :

D*i = Min(Di , Min(D*j - Cj) , Ti < Tj)

T1 T2 T3

Calculs des r*i Calculs des D*i

Ensa de Marrakech, Ordonnancement temps réel 49


Contraintes de précédence
Exemple :
On considère les 5 tâches T1, T2, T3, T4 et T5 liées par le graphe de
précédences suivant :

Paramètres des tâches RM EDF


Tâche ri Ci Di r*i Prioi r*i D*i
T3
T1 0 1 5 0 2 0 3
T1 T5
T2 5 2 7 5 1 5 7
T4
T3 0 2 5 0 3 1 5

T2 T4 0 1 10 5 3 7 9

T5 0 3 12 5 4 8 12

Prise en compte des contrainte de précédence par modification


des paramètres temporels et affectation des priorités
Ensa de Marrakech, Ordonnancement temps réel 50
Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 51


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 52


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 53


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 54


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 55


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 56


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 57


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 58


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 59


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 60


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 61


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 62


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 63


Contraintes de précédence

Ensa de Marrakech, Ordonnancement temps réel 64

Vous aimerez peut-être aussi