F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 1 Ordonnancement Temps Réel
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 2 Introduction ● Tâches temps réel soumises à des contraintes de temps, plus ou moins strictes instant de démarrage instant de fin absolus ou relatifs à d'autres tâches ● le but de l'ordonnancement est de permettre le respect de ces contraintes, lorsque l'exécution se produit dans un mode courant ● il doit permettre de borner les effets d'incidents ou de surcharges
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 3 Caractéristiques des tâches r : date de réveil moment du déclenchement de la 1ère requête d'exécution C : durée d'exécution maximale (capacité) D : délai critique ✔ délai maximum acceptable pour son exécution P : période (si tâche périodique) d = r+D : échéance (si tâche à contraintes strictes) r0r0 d0d0 r1r1 d1d1 r2r2 C D P P t
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 4 Caractéristiques des tâches tâche périodique : r k = r 0 + k*P si D = P, tâche à échéance sur requête tâche bien formée si 0 ≤ C ≤ D ≤ P important de ✔ bien connaître ces paramètres ✔ savoir si l'on peut négliger les temps de commutation, la durée de l'exécution de l'ordonnanceur, etc... ✔ d'avoir un noyau temps réel prédictible autres paramètres dérivés : ✔ u = C/P : facteur d'utilisation du processeur ✔ ch = C/D : facteur de charge du processeur
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 5 Paramètres dynamiques s : date du début de l'exécution e : date de la fin de l'exécution D(t) = d-t : délai critique résiduel à la date t (0 ≤ D(t) ≤ D) C(t) : durée d'exécution résiduelle à la date t (0 ≤ C(t) ≤ C) L = D-C : laxité nominale de la tâche ✔ retard maximum pour son début d'exécution s (si elle est seule) L(t) = D(t) - C(t) : laxité nominale résiduelle ✔ retard maximum pour reprendre l'exécution TR = e - r : temps de réponse de la tâche CH(t) = C(t)/D(t) : charge résiduelle (0 ≤ CH(t) ≤ C/P)
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 6 Quelques définitions ● tâche élue : un processeur est alloué à la tâche elle peut s'exécuter C(t) et D(t) diminuent, L(t) est constant ● tâche bloquée : la tâche est en attente d'une ressource ou d'une synchronisation L(t) et D(t) diminuent ● tâche prête : la tâche est en attente du processeur L(t) et D(t) diminuent ● tâche passive : la tâche n'a pas de requête en cours ● tâche inexistante : la tâche n'est pas créée
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 7 ● transitions entre les états Élue Bloquée Inexistante Prête Passive f f f : abandon de la requête pour cause de faute temporelle
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 8 Autres caractéristiques des tâches ● préemptibles ou non ● dépendance ou indépendance ordre partiel prédéterminé ou induit ● priorité externe ordonnancement hors ligne déterminé à la conception ● gigue (jitter) maximale variation entre la requête et le début de l'exécution ● urgence ↔ échéance ● importance
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 9 Définitions pour l'ordonnancement ● configuration : ensemble de n tâches mises en jeu par l'application départs échelonnés ou simultanés facteur d'utilisation du processeur facteur de charge ● intervalle d'étude : intervalle de temps minimum pour prouver l'ordonnançabilité d'une configuration le PPCM des périodes dans le cas d'une configuration de tâches périodiques [Min {r i0 }, Max {r i0, r j0 +D j } + 2 ∗PPCM{P i }] dans les autres cas (i: tâches périodiques, j: tâches apériodiques)
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 10 ▶ les facteurs de charge et d'utilisation sont insuffisants pour connaître l'incidence d'une surcharge sur le respect des échéances ▶ laxité du processeur LP(t) = intervalle de temps pendant lequel le processeur peut rester inactif tout en respectant les échéances ✔ LP(t) doit rester >0 pour tout t ✔ laxité conditionnelle (somme sur les tâches déclenchées à la date t et qui sont devant i du point de vue de l'ordonnancement) ✔ LP(t) = min(LC i (t)) ✔ suite des temps creux : suite des intervalles pendant lesquels LP(t) > 0 Définitions pour l'ordonnancement
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 11 Définition du problème ● piloter l'application avec 2 objectifs majeurs : en fonctionnement nominal : respect des contraintes temporelles en fonctionnement anormal (par exemple pannes matérielles) : atténuer les effets des surcharges et maintenir un état cohérent et sécuritaire ● ordonnancer = planifier l'exécution des requêtes de façon à respecter les contraintes de temps de toutes les requêtes en fonctionnement nominal d'au moins les requêtes les plus importantes (c'est-à- dire celles nécessaires à la sécurité du procédé) en fonctionnement anormal
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 12 Typologie des algorithmes ● en ligne ou hors ligne choix dynamique ou prédéfini à la conception ● préemptif ou non préemptif une tâche peut perdre le processeur (au profit d'une tâche plus prioritaire) ou non algorithme préemptif ⇔ toutes les tâches préemptibles ● stratégie du meilleur effort ou inclémence en TR mou, meilleur effort = faire au mieux avec les processeurs disponibles en TR dur, obligation des respecter les contraintes temporelles : inclémence aux fautes temporelles ● centralisé ou réparti
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 13 Propriétés des algorithmes séquence valide ✔ toutes les tâches respectent leurs contraintes configuration ordonnançable ✔ il existe au moins un algorithme produisant une séquence valide algorithme optimal ✔ capable de produire une séquence valide pour toute configuration de tâches ordonnançable test d'ordonnançabilité ✔ pour vérifier qu'une configuration de tâches périodiques soumise à un algorithme d'ordonnancement peut être ordonancée selon une séquence valide test d'acceptabilité ✔ pour vérifier qu'une nouvelle requête peut être ajoutée à la séquence déjà formée
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 14 Ordonnancement des tâches indépendantes
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 15 Introduction ● tâches indépendantes pas de partage de ressources pas de contraintes de précédence ● cas des algorithmes en ligne dynamique sur la base d'une priorité définie ✔ soit de manière empirique ✔ soit à partir d'un paramètre temporel de la tâche priorité constante ou variable avec le temps test d'acceptabilité hors ligne si tous les paramètres sont connus sinon test de garantie au réveil des tâches
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 16 Algorithmes en ligne à priorité constante ● Monotone par taux (Rate Monotonic Analysis) la tâche de plus petite période est la plus prioritaire test d'acceptabilité sur le facteur d'utilisation (condition suffisante) lim n(2 1/n -1) = ln 2 = 0.69 dans la pratique, on peut rencontrer des ordonnancements valides qui vont jusqu'à 88% l'utilisation de la période limite l'utilisation aux seules tâches à échéance sur requête
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 17 Algorithmes en ligne à priorité constante ● exemple d'ordonnancement RMA ▶ T 1 (r 0 = 0, C=3, P=20), T 2 (r 0 = 0, C=2, P=5), T 3 (r 0 = 0, C=2, P=10) T1T1 T2T2 T3T
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 18 Algorithmes en ligne à priorité constante ● Deadline Monotonic Analysis la tâche de plus petit délai critique est la plus prioritaire test d'acceptabilité sur le facteur de charge (condition suffisante) équivalent à RMA dans le cas de tâches à échéance sur requête, meilleur dans les autres cas
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 19 Algorithmes en ligne à priorité constante exemple d'ordonnancement DMA 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) mais le chronogramme ci-dessous montre que l'on peut construire un ordonnancement valide T1T1 T2T2 T3T3
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 20 Algorithmes en ligne à priorité variable ● Earliest Deadline First (EDF) à chaque instant, la priorité maximale est donnée à la tâche dont l'échéance est la plus proche pour des tâches à échéance sur requête, une condition nécessaire et suffisante est dans les autres cas, la condition précédente est nécessaire et une condition suffisante est
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 21 Algorithmes en ligne à priorité variable exemple d'ordonnancement EDF ▶ T 1 (r 0 = 0, C=3,, D=7, P=20), T 2 (r 0 = 0, C=2, D=4, P=5), T 3 (r 0 = 0, C=1, D=8, P=10) mais le chronogramme montre que les échéances sont respectées T1T1 T2T2 T3T3
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 22 Algorithmes en ligne à priorité variable ● Least Laxity la priorité maximale est donnée à la tâche qui a la plus petite laxité dynamique algorithme optimal même conditions d'ordonnançabilité que EDF équivalent à EDF si on calcule les laxités aux instants de réveil des tâches si on calcule la laxité à chaque instant, comme la laxité des tâches s'exécutant reste constante tandis que celle des tâches prêtes diminue, on provoque davantage de changements de contexte
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 23 Algorithmes en ligne à priorité variable exemple d'ordonnancement LLF ✔ t=0 ✘ L 1 = 7-3 =4 ✘ L 2 = 4-2 =2 ✘ L 1 = 8-1 =7 ✔ t=5 ✘ L 2 = 4-2 =2 ✘ L 3 = =2 ➾ 2 possibilités T1T1 T2T2 T3T3 T1T1 T2T2 T3T3
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 24 Prise en compte des tâches apériodiques ● 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
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 25 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
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 26 Tâches apériodiques à contraintes relatives exemple de traitement d'arrière-plan ✔ Tp 1 (r 0 =0, C=2, P=5), Tp 2 (r 0 =0, C=2, P=10) Ta 3 (r=4, C=2), Ta 4 (r=10, C=1), Ta 5 (r=11, C=2) Tp Tp 2 Temps creux Tâches apériodiques Ta 3 Ta 4 Ta 5
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 27 Tâches apériodiques à contraintes relatives ● 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 ne dépend pas de l'algorithme général
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 28 Tâches apériodiques à contraintes relatives ● Serveurs par scrutation (polling) à chaque activation, traitement des tâches en suspens 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
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 29 Tâches apériodiques à contraintes relatives exemple de serveur par scrutation (ordonnancement RMA) ✔ 2 tâches périodiques : Tp 1 (r 0 =0, C=3, P=20) Tp 2 (r 0 =0, C=2, P=10) ✔ serveur : Tp s (r 0 =0, C=2, P=5) ✔ tâches apériodiques : Ta 3 (r=4, C=2), Ta 4 (r=10, C=1), Ta 5 (r=11, C=2) Tp Tp Tp s Capacité Ta 4 Ta 3 Ta 5 Tâches apériodiques
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 30 Tâches apériodiques à contraintes relatives limitations du serveur par scrutation ✔ perte de la capacité si aucune tâche apériodique en attente ✔ si occurrence d'une tâche apériodique alors que le serveur est suspendu, il faut attendre la requête suivante serveur ajournable ✔ la capacité n'est pas rendue aux tâches périodiques ✔ permet de traiter une tâche apériodique qui survient juste après la requête de réveil du serveur ✔ mais viole la règle essentielle selon laquelle la tâche de plus haute priorité doit s'exécuter en premier ✔ peut entraîner des fautes temporelles ✔ critère d'acceptabilité:
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 31 Tâches apériodiques à contraintes relatives ● Serveur sporadique améliore le temps de réponse des tâches apériodiques sans diminuer le taux d'utilisation du processeur pour les tâches périodiques comme le serveur ajournable mais ✔ ne retrouve pas sa capacité à période fixe, mais à un instant de réinitialisation égal à la date courante additionnée de la période de réinitialisation ✔ la capacité retrouvée est égale à la capacité consommée
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 32 Tâches apériodiques à contraintes relatives exemple de serveur sporadique ✔ 2 tâches périodiques : Tp 1 (r 0 =0, C=3, P=20), Tp 2 (r 0 =0, C=2, P=10) ✔ serveur : Tp s (r 0 =0, C=2, P=5) ✔ tâches apériodiques : Ta 3 (r=4, C=2), Ta 4 (r=10, C=1), Ta 5 (r=11, C=2) Tp Tp Tp s Capacité Tâches apériodiques Ta 3 Ta 4 Ta 5
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 33 Tâches apériodiques à contraintes relatives ● algorithme "Slack Stealer" et méthode d'ordonnancement conjoint même principe, Slack Stealer s'appuie sur RMA et ordonnancement conjoint sur EDF pas de serveur pour les tâches apériodiques lorsque une tâche apériodique est activée, le système recule au maximum le démarrage des tâches périodiques pour autant qu'elles continuent à respecter leurs contraintes temporelles. On utilise la laxité des tâches périodiques pour ordonnancer les tâches apériodiques au plus tôt
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 34 Tâches apériodiques à contraintes relatives exemple d'algorithme Slack Stealer ✔ Tp 1 (r 0 =0, C=2, P=5), Tp 2 (r 0 =0, C=2, P=10) Ta 3 (r=4, C=2), Ta 4 (r=10, C=1), Ta 5 (r=11, C=2) ✔ à t=4 : Ta 3 est activée ✔ à t=5 Tp 1 est réveillée et L(Tp 1 ) = 3 ⇒ on peut reculer l'exécution deTp 1 jusqu'à t=6 pour laisser Ta 3 se terminer ✔ de même à t=10 et t=11, recul de Tp 1 jusqu'à t=13 et Tp 2 jusqu'à t=17 pour laisser Ta 4 et Ta 5 s'exécuter Tp Tp Tâches apériodiques Ta 3 Ta 4 Ta 5
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 35 Tâches apériodiques à contraintes relatives ● ordonnancement conjoint le principe de fonctionnement revient à calculer pour chaque tâche apériodique une échéance fictive df qui est celle qu'il faut lui associer pour avoir un temps de réponse minimal. df est la première date pour laquelle le temps d'exécution de la tâche est est égal au temps total d'inactivité du processeur quand l'ordonnancement respecte les échéances de toutes les tâches périodiques et des tâches apériodiques précédemment déclenchées et non encore terminées
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 36 Tâches apériodiques à contraintes relatives ▶ Tp 1 (r 0 =0, C=2, D=4, P=5), Tp 2 (r 0 =0, C=1, D=8, P=10) Ta 3 (r=4, C=2), Ta 4 (r=10, C=1), Ta 5 (r=11, C=2) ✔ à t=4 : L(Tp 1 ) =2 ⇒ on peut reculer le début de l'exécution jusqu'à t=6 (df 3 =6) ✔ à t=10 L(Tp 1 ) =2 ⇒ on peut reculer le début de l'exécution jusqu'à t=11 pour laisser Tp 4 (df 4 =11). Puis à t=11 on peut encore reculer TP 1 jusqu'à t=12. Mais Ta 5 ne pourra pas s'exécuter entièrement ⇒ reprise après la 3 ème requête de Tp 2 : df 5 =15 Tp Tp Tâches apériodiques df 3 df 4 df 5
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 37 Tâches apériodiques à contraintes strictes ● 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 RMA ✔ 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
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 38 Tâches apériodiques à contraintes strictes ● 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): 1teste l'existence d'un temps creux suffisant entre le réveil et l'échéance de la tâche apériodique) 2vé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
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 39 Tâches apériodiques à contraintes strictes exemple de l'acceptation dans les temps creux ✔ Tp 1 (r 0 =0, C=3, D=7, P=20), Tp 2 (r 0 =0, C=2, D=4, P=5), Tp 3 (r 0 =0, C=1, D=8, P=10) ✔ Ta 4 (r=4, C=2, d=10), Ta 5 (r=10, C=1, d=18), Ta 6 (r=11, C=2, d=16) Tp 1 Tp 2 Tp 3 Temps creux Tâches apériodiques Ta 4 Ta 5 Ta 6
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 40 Tâches apériodiques à contraintes strictes ● acceptation des tâches apériodiques et ordonnancement conjoint analogue au mécanisme proposé pour les tâches à contraintes relatives la séquence des tâches périodiques n'est plus immuable à l'arrivée de chaque nouvelle tâche apériodique, construction d'une nouvelle séquence EDF. Si la construction est possible : acceptation de la tâche, sinon rejet
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 41 Tâches apériodiques à contraintes strictes ▶ exemple de l'acceptation avec l'ordonnancement conjoint ✔ Tp 1 (r 0 =0, C=3, D=7, P=20), Tp 2 (r 0 =0, C=2, D=4, P=5), Tp 3 (r 0 =0, C=1, D=8, P=10) ✔ Ta 4 (r=4, C=2, d=10), Ta 5 (r=10, C=1, d=18), Ta 6 (r=11, C=2, d=16) Tp 1 Tp 2 Tp 3 Tâches apériodiques Ta 3 Ta 4
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 42 Tâches apériodiques à contraintes strictes Tp 1 Tp 2 Tp 3 Tâches apériodiques Ta 3 Ta 4 ▶ exemple de l'acceptation avec l'ordonnancement conjoint ✔ Tp 1 (r 0 =0, C=3, D=7, P=20), Tp 2 (r 0 =0, C=2, D=4, P=5), Tp 3 (r 0 =0, C=1, D=8, P=10) ✔ Ta 4 (r=4, C=2, d=10), Ta 5 (r=10, C=1, d=18), Ta 6 (r=11, C=2, d=16)
F. Touchard Cours Temps Réel ESIL Département d'Informatique 2ème année Ordonnancement 43 Tâches apériodiques à contraintes strictes Tp 1 Tp 2 Tp 3 Tâches apériodiques Ta 3 Ta ▶ exemple de l'acceptation avec l'ordonnancement conjoint ✔ Tp 1 (r 0 =0, C=3, D=7, P=20), Tp 2 (r 0 =0, C=2, D=4, P=5), Tp 3 (r 0 =0, C=1, D=8, P=10) ✔ Ta 4 (r=4, C=2, d=10), Ta 5 (r=10, C=1, d=18), Ta 6 (r=11, C=2, d=16)