_slides_Ordonnancement_temps_reel.pptx
Transcript of _slides_Ordonnancement_temps_reel.pptx
Chapitre : Les Ordonnancements Temps réel
3 ème Systèmes Embarqués- ISI
Ben Fradj Hanene
Module: Conception de Systèmes temps-réel
19/04/2023 Ben Fradj Hanene 2
Définition
Ordonnanceur ≈ Planificateurattribuer la ressource « processeur » aux tâches au cours du temps, selon une politique d’ordonnancement
19/04/2023 Ben Fradj Hanene 3
Ordonnancement temps réel
l’exécution des tâches est soumise à des contraintes temporelles– cadence– temps de réponse (échéance, bout en bout)– …
le respect de ces contraintes temporelles est important– contraintes strictes, temps réel dur (« hard »)– contraintes relatives, temps réel mou (« soft »)
l’ordonnancement doit permettre le respect de ces contraintes
– l’ordonnancement doit être certifiable : la preuve du respect de ces
contraintes doit pouvoir être apportée à priori
– ordonnançabilité, « schedulability »
19/04/2023 Ben Fradj Hanene 4
Les Types d’ordonnancement
Ordonnancement « hors ligne »• la séquence d’ordonnancement est pré-calculée avant l’exécution effective
• à l’exécution, l’ordonnanceur est un simple séquenceur (« cyclic scheduler »)
• mise en œuvre efficace mais rigidité
Ordonnancement « en ligne »
• les décisions d’ordonnancement sont prises au cours de l’exécution
• à l’exécution, l’ordonnanceur implémente un algorithme d’ordonnancement
• surcoûts de mise en oeuvre mais flexibilité
19/04/2023 Ben Fradj Hanene 5
• Ordonnancement « non préemptif » / « préemptif »
– l’exécution de la tâche en cours ne peut être interrompue– la tâche en cours peut perdre involontairement le processeur
au profit d’une autre tâche (jugée plus urgente)
• « hybride »– selon que les tâches (ou des sections de tâche) sont ou non
préemptibles
Les Types d’ordonnancement
19/04/2023 Ben Fradj Hanene 6
1. politique « premier arrivé, premier servi »,
2. politique « plus court d ’abord »,
3. politique du tourniquet, « round robin »,
4. politique conduite par la priorité attachée à chaque tâche
Priorités fixes (statiques) / dynamiques
• indépendantes du temps• fixées à priori
• évoluent avec le temps• surcoût à l’exécution
Les Types d’ordonnancement
Quasi tous les exécutifs du marché
19/04/2023 Ben Fradj Hanene 7
• Temps partagé avec politique du tourniquet (round robin):
- Tranche de temps de taille fixe (quantum)- Pas de prise en compte des contraintes de temps- souvent utilisé en complément du mécanisme de priorité pour les tâches de priorités égales (équité entre ces tâches)
Les Types d’ordonnancement
Les ordonnancements à priorités: Plan
• Caractéristiques des tâches temps réel• Ordonnancement préemptif à priorité fixe
– Rate Monotonic (RM)– Deadline Monotonic (DM)
• Ordonnancements préemptif à priorité dynamique– Earliest deadline first (EDF)
• Vérification d’ordonnançabilité
19/04/2023 Ben Fradj Hanene 9
Les tâches temps réel
• Tâches périodiques– elles sont activées à intervalles– de temps réguliers
• Tâches apériodiques – elles sont activées à des instants aléatoires
• Tâches sporadiques– une borne minimale de la durée séparant 2
activations successives est connues
19/04/2023 Ben Fradj Hanene 10
Caractéristiques des tâches temps réel
• Oi : date d’activation initiale, phase initiale, offset• Ci : durée d’exécution sans préemption• Ti : période d’activation• Di : délai critique, échéance relative
• Oi = Oj, (i,j) : tâches synchrones• Di = Ti : tâche à échéance sur requête• Di ? Ti : tâche à échéance arbitraire
19/04/2023 Ben Fradj Hanene 11
Ordo. préemptif à priorités fixes : RM
1. RM, « Rate Monotonic »
- Pour tâches périodiques- Définition [Liu & Layland, 1973]
la priorité d’une tâche est inversement proportionnelle à sa période (conflits résolus arbitrairement)
- Propriété :
- optimal dans la classe des algorithmes à priorités fixes,pour des configurations de tâches périodiques, synchrones,à échéance sur requête et indépendantes
- l'utilisation de la période limite l'utilisation aux seules tâches à échéance sur requête (Si Di ≠ Pi)
19/04/2023 Ben Fradj Hanene 12
Ordo. préemptif à priorités fixes: RM
19/04/2023 Ben Fradj Hanene 13
• Pour tâches périodiques• Définition [Leung & Whitehead, 1985]
La priorité d’une tâche est inversementproportionnelle à son échéance relative (conflitsrésolus arbitrairement)
• Propriété– Optimal dans la classe des algorithmes à priorités fixes pour des
tâches périodiques indépendantes à échéance ≤ période– équivalent à RMA dans le cas de tâches à échéance sur
requête, meilleur dans les autres cas
Ordo. préemptif à priorités fixes: DM
2. DM, « Deadline Monotonic »
19/04/2023 Ben Fradj Hanene 14
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)
Ordo. préemptif à priorités fixes: DM
Exemple
19/04/2023 Ben Fradj Hanene 15
Ordo. préemptif à priorités dynamiques : EDF
EDF, « Earliest Deadline First »• Définition : [Liu & Layland, 1973]
à un instant donné, la tâche la plus prioritaire (parmi les tâches prêtes) est: celle dont l’échéance est la plus proche
• Propriété : optimal dans la classe des algorithmes à priorités dynamiques, pour des configurations de tâches indépendantes périodiques, à échéance ≤ période et
19/04/2023 Ben Fradj Hanene 16
Ordo. préemptif à priorités dynamiques : EDF
19/04/2023 Ben Fradj Hanene 17
Exercice :
Ordo. préemptif à priorités dynamiques : EDF
19/04/2023 Ben Fradj Hanene 18
• Définition • Laxité : temps restant entre la fin d ’exécution de la tâche et son délai critique,
Lmax = D – C
• à un instant donné, la tâche la plus prioritaire (parmi les tâches prêtes) est celle dont la laxité est la plus petite
• Propriété
optimalité idem EDmais, nombre de préemptions engendrées supérieur
Ordo. préemptif à priorités dynamiques : Least Laxity (LL)
Least Laxity (LL)
19/04/2023 Ben Fradj Hanene 19
4 temps d ’exécution restant C(t) : C(t) = Cmax - Cexécuté
4 délai critique dynamique D(t) : temps restant avant la prochaine échéance, D(t) = d - t
4 laxité dynamique L(t) : temps avant le début d ’exécution de la tâche, L(t) = D(t) - C(t) = d - t - C(t)
t
r
Diagramme temporel d ’exécution
D
d
D(t)
t
L(t)
C(t)
Cmax
Pendant l'exécution de la tâche (à un instant donné t)
Modèle de tâches : paramètres dynamiques
19/04/2023 Ben Fradj Hanene 20
Ordo. préemptif à priorités dynamiques : Least Laxity (LL)
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5), T3 (r0 = 0, C=1, D=8, P=10)
Les ordonnancements à priorités: Plan
• Caractéristiques des tâches temps réel• Ordonnancement préemptif à priorité fixe
– Rate Monotonic (RM)– Deadline Monotonic (DM)
• Ordonnancements préemptif à priorité dynamique– Earliest deadline first (EDF)
Vérification d’ordonnançabilité
19/04/2023 Ben Fradj Hanene 22
OrdonnançabilitéRôle• Formules mathématiques ou algorithmes permettant de vérifier
(prouver) que les tâches respecteront leurs contraintes de tempsClassification
• Vérification hors-ligne (avant exécution): statique– Critères analytiques calculables (CN, CS, CNS)– Simulation sur une durée finie :
• [0,PPCM (Ti)] si tâches synchrones• [min(Ok),max(Oi)+ 2*PPCM (Ti)]
– Cibles = systèmes temps-réel strict
• Vérification en-ligne (pendant l’exécution): dynamique• Tests d’acceptation en-ligne pour savoir si on accepte de nouvelles
tâches• Cibles = systèmes temps-réel souple
19/04/2023 Ben Fradj Hanene 23
• Données d’entrée des méthodes de verification : modèle du système
• Connaissance des informations sur les tâches (modèle de tâches)– Arrivée des tâches: périodique, sporadique, apériodique (dates
d’arrivées)– Synchronisations : précédences, exclusions entre tâches– Temps d’exécution au pire-cas (WCET)
• Sorties
Verdict sur le respect des contraintes de temps pour un algorithme d’ordonnancement donné
Ordonnançabilité
19/04/2023 Ben Fradj Hanene 24
Vérification : par simulation
• Périodicité des tâches → ordonnancement cyclique (pas la peine de simuler à l’infini)
• Durée de la période d’étude (hyperpériode)– Tâches synchrones : [0,PPCM(Pi)]– Tâches échelonnées (au moins un offset Oi non nul)
[min(Oi), max(Oi,Oj+Dj) + 2 * PPCM(Pi)]• Evaluation
– Valide quel que soit l’algorithme d’ordonnancement– Période d’étude peut être très longue selon les
relations entre périodes– Adapté aux ordonnancements hors-ligne
19/04/2023 Ben Fradj Hanene 25
• Condition nécessaire C– Il faut que C soit vérifiée pour que les contraintes de temps
soient respectées (système faisable)– C non vérifiée système non faisable– C vérifiée système peut être faisable (ou pas)
• Condition suffisante– Il suffit que C soit vérifiée pour que le système soit faisable– C vérifiée système est faisable (à coup sûr)– C non vérifiée système peut être faisable (ou pas)
• Condition nécessaire et suffisante– C vérifiée équivalent à montrer la faisabilité du système
Vérification : Critères analytiques
19/04/2023 Ben Fradj Hanene 26
• Utilisation du Taux d’utilisation du processeur (charge du proceseur par N tâches
• Condition nécessaire d’ordonnançabilité : U ≤ 1Cette condition n’est pas une condition suffisante (pas pour tous les ordonnancements)
N
i i
i
T
cU
1
Vérification : Critères analytiques
19/04/2023 Ben Fradj Hanene 27
Vérification : Critères analytiques
1.Ordonnancement RM :• pour que N tâches soient ordonnançables • Condition suffisante (CS)
• Si condition vérifiée avec Ci = WCETi de la tâche alors la condition est vérifiée avec Ci < WCETi
• s’applique aussi quand les tâches ne sont pas synchrones
Pour 3 tâches: U ≤ 0,779Pour n tâches U (N : U 0,69
19/04/2023 Ben Fradj Hanene 28
• Exercice: ces trois tâches sont elles ordonnançables selon la technique RM ?
T1 (r0 = 0, C=3, P=20),
T2 (r0 = 0, C=2, P=5),
T3 (r0 = 0, C=2, P=10)
Vérification : Critères analytiques
19/04/2023 Ben Fradj Hanene 29
2. Ordonnancement DM :• pour que N tâches soient ordonnançables • Condition suffisante (CS)
121
1
NN
i i
i ND
cU
Vérification : Critères analytiques
19/04/2023 Ben Fradj Hanene 30
• Exercice: ces trois tâches sont elles ordonnançables selon la technique DM (meme exemple)?
• 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)
Vérification : Critères analytiques
19/04/2023 Ben Fradj Hanene 31
3. Ordonnanancement EDF et LL
Vérification : Critères analytiques
19/04/2023 Ben Fradj Hanene 32
Vérification : Critères analytiques
Exemple
19/04/2023 Ben Fradj Hanene 33
• Exercice: ces trois tâches sont elles ordonnançables selon la technique EDF ?
• T1 (r0 = 0, C=3, D=7, P=20), • T2 (r0 = 0, C=2, D=4, P=5), • T3 (r0 = 0, C=1, D=8, P=10)
Vérification : Critères analytiques
19/04/2023 Ben Fradj Hanene 34
• Response time analysis (RTA, analyse de temps de réponse)
• Applicable pour tous les ordonnancements à priorité statique, quel que soit l’assignation des priorités (RM, DM, autre)
• Condition nécessaire et suffisante
Vérification : Pire temps de réponse
19/04/2023 Ben Fradj Hanene 35
Vérification : Pire temps de réponse
19/04/2023 Ben Fradj Hanene 36
Vérification : Pire temps de réponse
19/04/2023 Ben Fradj Hanene 37
• Algorithme de calcul des Ri (itératif)
• Quand la série converge, on a calculé le temps de réponse Ri
• Le système est ordonnançable quand Ri ≤ Di
Vérification : Pire temps de réponse
19/04/2023 Ben Fradj Hanene 38
Vérification : Pire temps de réponse
• Exercice: ces trois tâches sont elles ordonnançables selon cette technique d’ordonnancement ?
19/04/2023 Ben Fradj Hanene 39
Vérification : Pire temps de réponse
19/04/2023 Ben Fradj Hanene 40
Vérification : Pire temps de réponse
• temps de réponse de la tâche
• temps de réponse de la tâche
• temps de réponse de la tâche
Les ordonnancements à priorités: Plan
• Caractéristiques des tâches temps réel• Ordonnancement préemptif à priorité fixe
– Rate Monotonic (RM)– Deadline Monotonic (DM)
• Ordonnancements préemptif à priorité dynamique– Earliest deadline first (EDF)
• Vérification d’ordonnançabilité• Ordonnancement de tâches apériodique• Ordonnancement de tâches en présence de ressources partagées
19/04/2023 Ben Fradj Hanene 42
Ordonnancement des tâches apériodique
• se distinguent des tâches périodiques par le fait que l'on ne connaît pas l'instant d'arrivée de la requête de réveil
• contraintes temporelles strictes ou relatives• buts à atteindre :
– si contraintes relatives : minimiser le temps de réponse
– si contraintes strictes : maximiser le nombre de tâches acceptées en respectant leurs contraintes
• 2 grandes catégories de traitement– traitement en arrière-plan– traitement par serveurs
19/04/2023 Ben Fradj Hanene 43
Tâches apériodiques à contraintes relatives
• traitement d'arrière-plan– le plus simple, mais le moins performant– tâches apériodiques ordonnancées quand le
processeur est oisif– si plusieurs tâches attendent, elles sont
traitées en mode FIFO
19/04/2023 Ben Fradj Hanene 44
Tp1 (r0=0, C=2, P=5), Tp2 (r0=0, C=2, P=10)Ta3 (r=4, C=2), Ta4 (r=10, C=1), Ta5 (r=11, C=2)
Tâches apériodiques à contraintes relatives
exemple de traitement d'arrière-plan
19/04/2023 Ben Fradj Hanene 45
• Traitement par serveur• un serveur est une tâche périodique créée spécialement
pour prendre en compte les tâches apériodiques• serveur caractérisé par :
– sa période– son temps d'exécution : capacité du serveur– serveur généralement ordonnancé suivant le même algorithme
que les autres tâches périodiques– une fois actif, le serveur sert les tâches apériodiques dans la
limite de sa capacité. L'ordre de traitement des tâches apériodiques ne dépend pas de l'algorithme général
Tâches apériodiques à contraintes relatives
19/04/2023 Ben Fradj Hanene 46
• Serveurs par scrutation (polling)– à chaque activation, traitement des tâches
jusqu'à épuisement de la capacité ou jusqu'à ce qu'il n'y ait plus de tâches en attente
– si aucune tâche n'est en attente (à l'activation ou parce que la dernière tâche a été traitée) , le serveur se suspend immédiatement et perd sa capacité qui peut être réutilisée par les tâches périodiques
Tâches apériodiques à contraintes relatives
19/04/2023 Ben Fradj Hanene 47
exemple de serveur par scrutation (ordonnancement RM)
• 2 tâches périodiques : Tp1 (r0=0, C=3, P=20) Tp2 (r0=0, C=2, P=10)• serveur : Tps(r0=0, C=2, P=5)• tâches apériodiques : Ta3 (r=4, C=2), Ta4 (r=10, C=1), Ta5 (r =11, C=2)
Tâches apériodiques à contraintes relatives
19/04/2023 Ben Fradj Hanene 48
• 2 approches : les traiter comme de tâches périodiques avec une
pseudo-période représentant l'intervalle minimal entre 2 occurrences utilisé dans le cas RM mais difficile d'évaluer la pseudo-période engendre une sous-utilisation du processeur
ordonnancer les tâches en EDF. A chaque nouvelle tâche apériodique, faire tourner une "routine de garantie" pour vérifier que toutes les contraintes temporelles seront respectées. Si non, refuser la tâche. 2 politiques d'acceptation dynamique favorise les tâches périodiques
Tâches apériodiques à contraintes strictes
19/04/2023 Ben Fradj Hanene 49
• acceptation dans les temps creux d'une séquence rigide de tâches ordonnancement EDF des tâches périodiques les tâches apériodiques acceptées sont ordonnancées dans les
temps creux des tâches périodiques (~ méthode d'arrière-plan) selon l'algorithme EDF
routine de garantie (au réveil d'une tâche apériodique):1) teste l'existence d'un temps creux suffisant entre le réveil et
l'échéance de la tâche apériodique)2) vérifie que l'acceptation de la nouvelle tâche ne remet pas en cause
le respect des contraintes temporelles des autres tâches apériodiques déjà acceptées et non encore terminées
si OK, la tâche est ajoutée à la liste des tâches apériodiques
Tâches apériodiques à contraintes strictes
19/04/2023 Ben Fradj Hanene 50
Tâches apériodiques à contraintes strictes
exemple de l'acceptation dans les temps creux
• Tp1 (r0=0, C=3, D=7, P=20), Tp2 (r0=0, C=2, D=4, P=5), Tp3 (r0=0, C=1, D=8, P=10)• Ta4 (r=4, C=2, d=10), Ta5 (r=10, C=1, d=18), Ta6 (r=11, C=2, d=16)
Les ordonnancements à priorités: Plan
• Caractéristiques des tâches temps réel• Ordonnancement préemptif à priorité fixe
– Rate Monotonic (RM)– Deadline Monotonic (DM)
• Ordonnancements préemptif à priorité dynamique– Earliest deadline first (EDF)
• Vérification d’ordonnançabilité• Ordonnancement de tâches apériodique• Ordonnancement de tâches en présence de ressources partagées
19/04/2023 Ben Fradj Hanene 52
• une ressource critique ne peut: – être utilisée simultanément par plusieurs tâches– être réquisitionnée par une autre tâche– accès en exclusion mutuelle
• notion de section critique– séquence d'instructions pendant lesquelles on utilise
une ressource critique– sans problème dans le cas d'un ordonnancement non
préemptif, mais c'est rarement le cas dans un environnement temps réel évaluation du temps de réponse très difficile, sinon impossible
Ordo. en présence de ressources partagées
19/04/2023 Ben Fradj Hanene 53
• ordonnancement préemptif : ajout d’un protocole de gestion des ressources
1. phénomène d’interblocage (deadlock)
Ordo. en présence de ressources partagées
19/04/2023 Ben Fradj Hanene 54
Ordo. en présence de ressources partagées2. phénomène d’inversion de priorité
phénomène dû à la présence simultanée de priorités fixes et de ressources à accès exclusif dans un environnement préemptif
Inversion de priorité non prévu entre T1 et T3 peut engendrer un non respect d’échéances (grave si temps réel stricte)
19/04/2023 Ben Fradj Hanene 55
• le problème de l’ordonnancement de tâches périodiques en présence de ressources critiques est NP-difficile.
• il n’existe pas d ’algorithme d’ordonnancement en ligne optimal
• Protocole à héritage de priorité,
• Protocole à priorité plafonnée
Ordo. en présence de ressources partagées
19/04/2023 Ben Fradj Hanene 56
Ordo. en présence de ressources partagées1. Protocole à héritage de priorité, « Priority Inheritance Protocol »
- la tâche τ’ qui possède la ressource critique prend (temporairement) la prioritéde la tâche τ en attente de cette même ressource, si prio(τ) > prio(τ’)
19/04/2023 Ben Fradj Hanene 57
• Propriétés :- ne prévient pas les interblocages- permet d’évaluer une borne supérieure (et
pessimiste…) du temps de blocage au pire Bi des tâches
1. Protocole à héritage de priorité, « Priority Inheritance Protocol »
Ordo. en présence de ressources partagées
19/04/2023 Ben Fradj Hanene 58
Ordo. en présence de ressources partagées
• Définitions– Priorité plafond (priority ceiling) d’une
ressource Π(R) = priorité maximale des tâches qui l’utilisent
– Priorité plafond courante (current priority ceiling, ou ceiling) à un instant t : Π(t) = maximum des priorités plafond des ressources utilisées en t
2. Protocole à priorité plafonnée, « Priority Ceiling Protocol »
19/04/2023 Ben Fradj Hanene 59
Ordo. en présence de ressources partagées
2. Protocole à priorité plafonnée, « Priority Ceiling Protocol »
• Principe
1. chaque ressource R possède une priorité plafond associée Π(R) = max des priorités des tâches susceptibles d’y accéder
2. une tâche T ne peut accéder à une ressource R que si sa priorité est supérieure aux priorités plafond des ressources actuellement prises Π (t)
3. si la tâche T’ bloque une tâche T (plus prioritaire), T’ hérite de la priorité de T
19/04/2023 Ben Fradj Hanene 60
Exemple : • prio T1 > prio T2 > prio T3• partage de R entre T1, T3,P(R)= prio T1• T2 utilise une ressource R’, P(R’)= prio T2
T3 commence son exécution, réveil de T2 puis réveil de T1
Ordo. en présence de ressources partagées
T3
T2
T1
Prio
Π(t)1
2
T3 retrouve sa priorité nominaleT1 s’exécute (avant T2, moins prio
Bloqué bien que R’ libre
T1 est bloquéT3 hérite de la priorité de T1
19/04/2023 Ben Fradj Hanene 61
• Propriétés :- prévient les interblocages
- permet d’évaluer une borne supérieure (moins pessimiste…) du temps de blocage au pire Bi des tâches
2. Protocole à priorité plafonnée, « Priority Ceiling Protocol »
Ordo. en présence de ressources partagées
Exploration de MarsMission Pathfinder
(NASA - juillet 1997)
19/04/2023 Ben Fradj Hanene 63
La mission Pathfinder
• sonde sur Mars, arrivée le 4 juillet 1997
• robot mobile Sojourner chargé de différentes tâches:
• Photos• relevés météo• prélèvements
• poids : 11.5kg• vitesse : 24m/h• puissance totale : 30W• liaison UHF avec la sonde Pathfinder• bug dans la gestion des ressources critiques perte de données importantes
19/04/2023 Ben Fradj Hanene 64
Architecture matérielle
Processeur Mémoires
Sonde Pathfinder
Interface 1 Interface 2
bus VMEInterface bus
bus 1553
interface 1coupleur interface 2 interface 3
interface 4
moteurs vannes capteursolaire
analyseurétoiles
bus 1553
interface 5coupleur interface 6 interface 7
accéléromètrealtimètre
enregistreur météo (ASI/MET)
Robot mobile Sojourner
caméra
radio
Monoprocesseur RS6000 (RISC de IBM)
19/04/2023 Ben Fradj Hanene 65
Spécification fonctionnelle
• le système de gestion de la sonde communique avec l'extérieur par:– la carte radio pour les liaisons avec la terre– la carte de liaison avec la caméra– l'interface avec le bus 1553 pour les autres– capteurs/actionneurs
19/04/2023 Ben Fradj Hanene 66
Architecture logicielle
• multitâche gérée par le noyau Vxworks (Wind River)
• 25 tâches– périodiques (ex. : gestion du bus 1553)– apériodiques (ex. : analyse des erreurs)– communication et synchronisation par des files de
messages
• suivant les phases de la mission (vol interplanétaire, aterrissage, exploration par le robot), toutes les tâches ne sont pas utiles
19/04/2023 Ben Fradj Hanene 67
Caractéristiques des tâches
• Liste des tâches et priorités relatives :
19/04/2023 Ben Fradj Hanene 68
Architecture logicielle• Architecture en tâches
19/04/2023 Ben Fradj Hanene 69
Utilisation du bus 1553• la gestion du bus est pilotée par une horloge à 8 Hz
(125ms)• 2 tâches pour réguler le transfert des données
1. ORDO_BUS• priorité maximale• vérifie que le transfert des données a été correctement
effectué et prépare le transfert suivant
2. DISTRIBUTION_DONNÉES
• 2 ème priorité• collecte les données sur le bus et les place dans la
mémoire tampon
19/04/2023 Ben Fradj Hanene 70
Caractéristiques des tâches
• pour CMÉTÉO = 2, U=0.72 et pour CMÉTÉO = 3, U=0.725• analyse Rate Monotonic pourrait s'appliquer (URM=0.729),• mais partage de la ressource MÉMOIRE_TAMPON analyse détaillée
19/04/2023 Ben Fradj Hanene 71
Recherche d’ordonnacement
• période d'étude théorique : 5000ms mais on peut se contenter d'étudier sur 250ms en considérant que les tâches MESURES et MÉTÉO viennent de se terminer et en se mettant sur la période suivante• étude des cas CMÉTÉO = 2 et CMÉTÉO = 3
19/04/2023 Ben Fradj Hanene 72
: Tâche sans ressource
: Tâche avec ressource
Légende des diagrammes de Gantt
R
R: Demande de ressource
: Libération de ressource
Simulations
3.5. Exemple : Mission Mars Pathfinder
19/04/2023 Ben Fradj Hanene 73
Diagramme d'exécution des tâches pour Cmétéo = 2
inversion de priorité
inversion de priorité
RR
RRDIS
TR
IBU
TIO
ND
ON
NE
ES
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
t
OR
DO
BU
STA
CH
ER
AD
IOTA
CH
EC
AM
ER
ATA
CH
EM
ESU
RE
STA
CH
EM
ET
EO
: Tâche sans ressource : Tâche avec ressource
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
t
R
R
R R
R R
RR R
R
RR RR
RR
TAC
HE
PIL
OTA
GE
19/04/2023 Ben Fradj Hanene 74
alarme
R
R
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
t
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
t
?
inversion de priorité
inversion de priorité
R R
R R
RRR
R
R
R
DIS
TR
IBU
TIO
ND
ON
NE
ES
OR
DO
BU
STA
CH
ER
AD
IOTA
CH
EC
AM
ER
ATA
CH
EM
ESU
RE
STA
CH
EM
ET
EO
TAC
HE
PIL
OTA
GE
Diagramme d'exécution pour Cmétéo = 3
19/04/2023 Ben Fradj Hanene 75
Les ordonnancements à priorités: Plan
• Caractéristiques des tâches temps réel• Ordonnancement préemptif à priorité fixe
– Rate Monotonic (RM)– Deadline Monotonic (DM)
• Ordonnancements préemptif à priorité dynamique– Earliest deadline first (EDF)
• Vérification d’ordonnançabilité• Ordonnancement de tâches apériodique• Ordonnancement de tâches en présence de ressources partagées• Ordonnancement de tâches dépendantes• Ordonnancement de tâches sur une architecture multiprocesseur
19/04/2023 Ben Fradj Hanene 77
Contraintes de précédences
• Contraintes de précédence– sur l'ordre d'exécution des tâches les unes par
rapport aux autres– généralement décrites par un graphe
• Ja < Jb indique que la tâche Ja est un prédécesseur de Jb• Ja Jb indique que la tâche Ja est un prédécesseur
immédiat de Jb
19/04/2023 Ben Fradj Hanene 78
Contraintes de précédences
• Contraintes de précédence– sur l'ordre d'exécution des tâches les unes par
rapport aux autres– généralement décrites par un graphe
• Ja < Jb indique que la tâche Ja est un prédécesseur de Jb• Ja Jb indique que la tâche Ja est un prédécesseur
immédiat de Jb
J1 < J2J1 J2J1 < J4J1 J4
19/04/2023 Ben Fradj Hanene 79
8 tâches :• 2 acquisitions• 2 traitements image• analyse de forme• analyse des différences• calcul de hauteur• reconnaissance finale
Contraintes de précédences
19/04/2023 Ben Fradj Hanene 80
Tâches avec des contraintes de précédences
• ici, seulement précédence simple– si Ti est périodique de période Pi, alors Tj l'est aussi et Pj = Pi
• principe de l'établissement de l'ordonnancement :– transformer l'ensemble des tâches dépendantes en un
ensemble de tâches « indépendantes » que l'on ordonnancera par un algorithme classique
– par des modifications des paramètres des tâches• si Ti Tj alors la règle de transformation doit respecter
– rj ≥ ri– Prioi > Prioj
– validation de l'ordonnançabilité selon des critères utilisés pour des tâches indépendantes
19/04/2023 Ben Fradj Hanene 81
Ordonnancement de tâches dépendantes
• Contraintes de précédence et Deadline Monotonic– la transformation s'opère hors ligne sur la
date de réveil et sur les échéances• r*i = Max{ri, r*j} pour tous les j tels que Tj Ti• D*i = Max{Di, D*j} pour tous les j tels que Tj Ti• si Ti Tj alors Prioi > Prioj dans le respect de la
règle d'affectation des priorités par DM
19/04/2023 Ben Fradj Hanene 82
Ordonnancement de tâches dépendantes
• contraintes de précédence et EDF– modification des échéances de façon à ce qu'une
tâche ait toujours un di inférieur à celui de ses successeurs (algorithme de Chetto et al.)
– une tâche ne doit être activable que si tous ses prédécesseurs ont terminé leur exécution
– modification de la date de réveil et de l'échéance• r*i = Max{ri, Max{r*j + Cj}} pour tous les j tels que Tj Ti• d*i = Min{di, Min{d*j - Cj}} pour tous les j tels que Ti Tj• on itère sur les prédécesseurs et successeurs immédiats• on commence les calculs par les tâches qui n'ont pas de
prédécesseurs pour le calcul des r et par les tâches qui n'ont pas de successeur pour le calcul des d
19/04/2023 Ben Fradj Hanene 83
Ordonnancement de tâches dépendantes
Paramètres des tâches Earliest Deadline
tâche ri Ci di ri* Di*
T1 0 1 5
T2 5 2 7
T3 0 2 5
T4 0 1 10
T5 0 3 12
T1
T5
T4
T3
T2
T1 n’a pas de prédécesseur
r1*=0
0
T2 n’a pas de prédécesseur
r2*=5
5
T3 a T1 pour prédécesseurr*3 = Max(r3, r*1+C1) = Max(0,1) = 1
1
T4 a T1 et T2 pour prédécesseursr*4 = Max(r4, r*1+C1, r*2+C2) = Max(0,1, 7) = 7
7
T5 a T3 et T4 pour prédécesseursr*5 = Max(r5, r*3+C3, r*4+C4) = Max(0, 3, 8) = 8
8
19/04/2023 Ben Fradj Hanene 84
T1
T5
T4
T3
T2
T5 n'a pas de successeurd*5 = 12
Paramètres des tâches Earliest Deadline
tâche ri Ci di ri* Di*
T1 0 1 5
T2 5 2 7
T3 0 2 5
T4 0 1 10
T5 0 3 12
0
5
1
7
8 12
T4 a T5 pour successeurd*4 = Min(d4, d*5-C5) = Min(10, 9) = 9
9
T3 a T5 pour successeurd*3 = Min(d3, d*5-C5) = Min(5, 9) = 5
5
T2 a T4 pour successeurd*2 = Min(d2, d*4-C4) = Min(7, 8) = 7
7
T1 a T3 et T4 pour successeursd*1 = Min(d1, d*3-C3, d*4-C4) = Min(5, 3, 8) = 3
3
Ordonnancement de tâches dépendantes
19/04/2023 Ben Fradj Hanene 85
Paramètres des tâches Earliest Deadline
tâche ri Ci di ri* Di*
T1 0 1 5
T2 5 2 7
T3 0 2 5
T4 0 1 10
T5 0 3 12
0
5
1
7
8 12
9
57
3
Ordonnancement de tâches dépendantes
Les ordonnancements à priorités: Plan
• Caractéristiques des tâches temps réel• Ordonnancement préemptif à priorité fixe
– Rate Monotonic (RM)– Deadline Monotonic (DM)
• Ordonnancements préemptif à priorité dynamique– Earliest deadline first (EDF)
• Vérification d’ordonnançabilité• Ordonnancement de tâches apériodique• Ordonnancement de tâches en présence de ressources partagées• Ordonnancement de tâches dépendantes• Ordonnancement de tâches sur une architecture multiprocesseur
19/04/2023 Ben Fradj Hanene 87
Anomalie des ordonnancements multiprocesseurs
• Théorème de Graham : si un ensemble de tâches est ordonnancé de façon optimale sur un système multiprocesseur avec des priorités assignées, des temps d'exécution fixées et des contraintes de précédence, alors le fait d'augmenter le nombre de processeurs, de réduire les temps d'exécution ou de relaxer les contraintes de précédence peut conduire à détériorer la durée d'exécution de l'algorithme
19/04/2023 Ben Fradj Hanene 88
Anomalie des ordonnancements multiprocesseurs
exemple• 9 tâches de priorités décroissantes• contraintes de précédence et temps d'exécution :
1
2
3
4
9
8
7
6
5
(3)
(2)
(2)
(2)
(9)
(4)
(4)
(4)
(4)
Priorité tâche i > Priorité tâche j (pour i<j)
19/04/2023 Ben Fradj Hanene 89
Anomalie : augmenter le nombre de processeurs
• ordonnancement optimal sur un système à 3 processeurs
• sur un système à 4 processeurs :
1
2
3
4 5
6
7
8
912
P1
P2
P3
1
2
3
4
9
8
7
6
5
(3)
(2)
(2)
(2)
(9)
(4)
(4)
(4)
(4)
1
2
3
4
5
6
7
8
9
P1
P2
P3
P4
15
19/04/2023 Ben Fradj Hanene 90
1
2
3
4
9
8
7
6
5
(3)
(2)
(2)
(2)
(9)
(4)
(4)
(4)
(4)
1
2
3
4 5
6
7
8
912
Solution à 3 processeurs
1
2
3
4
5
6 8
7
916
• Si temps tâche 4 passe de 2 à 1
P1
P2
P3
P1
P2
P3
Anomalie : diminuer le temps d’exécution des tâches
19/04/2023 Ben Fradj Hanene 91
• en supprimant quelques relations de précédence
Anomalie : supprimer des précédences
1
2
3
4
9
8
7
6
5
(3)
(2)
(2)
(2)
(9)
(4)
(4)
(4)
(4)
1
2
3
4 5
6
7
8
912
1
2
3
4 5
6
8
7
916
P1
P2
P3
P1
P2
P3
1
2
3
4
9
8
7
6
5
(3)
(2)
(2)
(2)
(9)
(4)
(4)
(4)
(4)
19/04/2023 Ben Fradj Hanene 92
• Exemple d'anomalie sur des contraintes de ressources• 5 tâches allouées statiquement à 2 processeurs• T2 et T4 partagent une ressource exclusive
• si on réduit le temps d'exécution de T1
3
1 2
4 517
P1
P2
3
1 2
4 5P1
P2
22
Anomalie : partage de ressources
19/04/2023 Ben Fradj Hanene 93
deux approches d’ordonnancement multiprocesseur
On distingue en général deux types d’approche pour l’ordonnancement multiprocesseur :
1. Partitionnement et ordonnancement distribué:
- Il s’agit de partitionner l’ensemble des n tâches en m sous-ensembles disjoints : 1, 2, . . . , m et d’ordonnancer ensuite l’ensemble i sur le processeur Pi avec une stratégie d’ordonnancement locale monoprocesseur. Les tâches ne sont donc pas autorisées à migrer d’un processeur à l’autre.
Systèmes distribués
19/04/2023 Ben Fradj Hanene 94
2. Ordonnancement globale ou centralisé :
- Appliquer globalement, sur la plate-forme multiprocesseur entière, une stratégie d’ordonnancement unique et d’attribuer à chaque instant les m processeurs aux n tâches les plus prioritaires. Par exemple en utilisant RM ou EDF. - Dans ce cas, outre la préemption des tâches, on autorise aussi la migration de ces dernières ; c-à-d qu’une tâche peut commencer son exécution sur un processeur Pj , être préemptée et reprendre son exécution ultérieurement sur un autre processeur Pi
deux approches d’ordonnancement multiprocesseur
19/04/2023 Ben Fradj Hanene 95
Dans ces systèmes, il n'y a pas un unique mécanisme d'ordonnancement qui centralise les informations et les décisions d'ordonnancement, mais plusieurs: - La difficulté de maintenir une vision cohérente de l'état du système : En pratique,
chaque Ordonnanceur s'occupe de gérer un sous-ensemble identifié des tâches du système, et en isolement des autres ordonnanceurs.
- Les coûts de migration sont en général élevés, ce qui entraine que la décision d'affectation est plus déterminante qu'en multiprocesseur, et qu'elle peut difficilement être remise en cause.
- Il est nécessaire de prendre en compte l'ordonnancement de la ressource de communication (réseau) entre les processeurs.
1. Partitionnement et ordonnancement distribué
19/04/2023 Ben Fradj Hanene 96
- Temps d’exécution d’une tâche diffère d’un processeur à un autre (processeurs identiques ou hétérogènes).
- Temps de communication entre les processeurs.
Une étape d’affectation de tâches aux processeurs s’ajoute:
allocation ou partitionnement
1. Partitionnement et ordonnancement distribué
19/04/2023 Ben Fradj Hanene 97
1. Partitionnement et ordonnancement distribué
4 grandes classes d’algorithmes de partitionnement:
– algorithmes de regroupement: Ce type d’algorithme est souvent utilisé pour minimiser l’utilisation des liens de communications. L’algorithme procède en deux temps. Tout d’abord, une phase dite de clustering regroupe les tâches que l’on souhaite partitionner en modules ; pour cela, l’algorithme identifie les tâches qui communiquent le plus entre elles et les regroupent en clusters. Ensuite, chaquecluster est associé à un processeur.
- l’algorithme de sac à dos ou le Bin packing: il faut placer dans m boîtes de tailles identiques, k objets de tailles différentes. Dans notre cas, les objets sont les tâches, leurs tailles sont leurs taux d’utilisations processeur U(i ), la taille de chaque boîte est l’utilisation maximale que l’on peut atteindre : ln 2 pour RM, 1 pour EDF.
19/04/2023 Ben Fradj Hanene 98
– algorithmes de recuit simulé: Le recuit simulé est une méthode d’optimisation qui part d’une solution du problème et qui tente de l’améliorer en explorant l’espace de recherche par voisinages. L’algorithme considère les solutions du problème comme des états d’´energie du système et le but est de minimisercette énergie. A chaque itération, on fait diminuer la ”température” qui représente le paramètre clé de l’algorithme. L’´evaluation de la nouvelle solution obtenue est sujette à une probabilité d’acceptation, de manière à éviter de rester piégé dans un minimum local.
– algorithmes génétiques : Les algorithmes génétiques reposent sur les principes fondamentaux de la génétique. un algorithme génétique est un algorithme itératif de recherche globale dont le but est d’optimiser une certaine fonction. Dans le problème du partitionnement des tâches sur plusieurs processeurs, cet algorithme ^génère des solutions en minimisant une fonction coût ( par exemple les échéances et les communications du système).
1. Partitionnement et ordonnancement distribué
19/04/2023 Ben Fradj Hanene 99
algorithmes génétiques :
L’algorithme génétique se déroule de la manière suivante :1. génération de la première population2. évaluation (critère d’arrêt)3. sélection pour la reproduction4. croisement et mutation, retour en 2.
1. Partitionnement et ordonnancement distribué
19/04/2023 Ben Fradj Hanene 100
• RM en partitionné
1. Partitionnement et ordonnancement distribué
- Pour RM partitionné, il semble naturel d’utiliser la condition U < n(21/n − 1) afin de vérifier l’ordonnançabilité des tâches assignées au processeur p (ou n est le nombre de tâches assignées au processeur P).
- Cependant la borne n’est pas assez « serrée » pour définir une bonne stratégie multiprocesseur. On peut perdre jusqu’ `a 50 % des ressources.
19/04/2023 Ben Fradj Hanene 101
• EDF partitionné: FFDU
1. Partitionnement et ordonnancement distribué
- LIU et LAYLAND ont montré que des tâches à échéance surrequête sont ordonnançables par EDF sur un processeur si et seulement si U ≤ 1.- LOPEZ et al. ont montré que l’utilisation de cette borne monoprocesseur peut être utilisée pour définir une stratégie de partitionnement multiprocesseur : First-Fit-Decreasing-Utilization (FFDU). I.e., que dans le problème de bin packing on choisit à chaque étape la première boite qui convient en considérant les tâches par valeurs décroissantes du facteur d’utilisation.- Les mêmes chercheurs ont défini la condition d’ordonnançabilitésuivante :
19/04/2023 Ben Fradj Hanene 102
• Théorème (FFDU EDF Utilisation):
un ensemble de tâches périodiques avec échéance sur requête, est ordonnançable par l’une des partitions FFDU (et EDF localement sur chaque processeur) si
U < (m + 1)/2
1. Partitionnement et ordonnancement distribué
19/04/2023 Ben Fradj Hanene 103
2. Ordonnancement globale ou centralisé
Ci Pi
T1 1 4
T2 3 5
T3 7 20
Exemple d’ordonnancement « global RM » :
2
1
16P2
P1 3 1
3 24 5 8 10
1
2
1
2
1
20
3
P et M
19/04/2023 Ben Fradj Hanene 104
Algorithme de liste (List scheduling) :
- c’est la technique la plus utilisée quand il s’agit d’un ensemble de tâches dépendantes.- Une tâche devient prête pour exécution quand tous ces prédécesseurs ont fini leur exécution. La tâche racine qui n’a aucune précédence est actif à l’instant 0. L’algorithme de list scheduling met les tâches dans une file au fur et à mesure que les tâches deviennent prêtes pour exécution et envoie les tâches au processeur. Quand plus qu’une tâche est active au même instant, trouvé l’ordre optimal qui minimise le temps d’exécution est un problème NP-difficile. Plusieurs heuristiques sont développées parmi les quelles on trouve la tâche la plus longue avant (ALAP), la tâche la plus courte avant (ASAP),…
2. Ordonnancement globale ou centralisé
19/04/2023 Ben Fradj Hanene 105
Exercice 1 : ordonnancer cette application sur une architecture biprocesseur en utilisant l’algorithme de liste ASAP puis ALAP.
1
4
3
2
(2)
(4)
(3)
(1)
5
6
7
(3)(2)
(3)
2. Ordonnancement globale ou centralisé
19/04/2023 Ben Fradj Hanene 106
1
2
3
4
9
8
7
6
5
(3)
(4)
(1)
(2)
(9)
(2)
(1)
(3)
(5)
2. Ordonnancement globale ou centralisé
19/04/2023 Ben Fradj Hanene 107
Conclusion
• La théorie de l’ordonnancement pour les systèmes temps réel monoprocesseurs est un domaine de recherche bien établi à ce jour, il y a de nombreux travaux solides qui couvrent largement ce domaine de recherche.
• En revanche, l’ordonnancement pour les systèmes temps réel multiprocesseurs est une domaine de recherche relativement neuf, peu de résultats existent à ce jour.
19/04/2023 Ben Fradj Hanene 108