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 ReportTranscript 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