1 / 65

Chapitre 3 Ordonnancement sous contraintes temps réel

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 (simonot@loria.fr). Plan. Différentes approches de la programmation temps réel Approche synchrone

miracle
Télécharger la présentation

Chapitre 3 Ordonnancement sous contraintes temps réel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ingénieur Civil des Mines 2ème année Conception Sûre des Systèmes Embarqués et Ambiants – Module SI342b Chapitre 3Ordonnancement sous contraintes temps réel 2006-2007 Françoise Simonot-Lion (simonot@loria.fr)

  2. 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 CSSEA - SI342b

  3. 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) CSSEA - SI342b

  4. void automate(int E) { switch E 1 : . . . . . . i : switch (etat) 1 : . . . j : traitement (i,j); etat=nouvel_etat(i,j); return; . . . endsw; . . . default : ; endsw; } int etat; non interruptible non préemptible Approche synchrone (2/8) Les automates - version 1 - 1 action par événement Partie opérative void SSP_IT() { int ev; ev=lire_IT(); automate(ev); acquittement; } CSSEA - SI342b

  5. Que se passe-t-il pour les événements E3 et E4 qui arrivent pendant le traitement de E2 ? Faites des propositions argumentées. E1 E2 E3 E4 ? Traitement de E1 Traitement de E2 Approche synchrone (3/8) Les automates - version 1 Problème : un seul événement traité à la fois CSSEA - SI342b

  6. 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); } } } IT2 void SSP_IT2() { int ev; ev=lire_IT(); flag=set(ev); acquittement; } IT1 void SSP_IT1() { int ev; ev=lire_IT(); flag=set(ev); acquittement; } Approche synchrone (4/8) Les automates - version 2 int flag; Partie opérative CSSEA - SI342b

  7. Proposez une représentation de la variable « Flag » : - dans le cas où les événements arrivant entre deux fenêtres d’observation sont considérés comme simultanés, - dans le cas contraire. Flag = {E1} Flag = {E2} Flag = {E2,E3} E1 E2 E3 Flag= Traitement de E1 Flag= Traitement de E2 et E3 Approche synchrone (5/8) Les automates - version 2 - fenêtre d’observation des événements ([ ]) [ ] [ ] [ ] t t0 CSSEA - SI342b

  8. ? Flag = {E1} Flag = {E2} Flag = {E4} Flag = {E2,E3} Flag = {E4} E1 E2 E3 E4 E4 [ ] [ ] Flag= Traitement de E1 Flag= Traitement de E2 et E3 Approche synchrone (6/8) Les automates - version 2 - fenêtre d’observation des événements ([ ]) [ ] t t0 CSSEA - SI342b

  9. fenêtre périodique d’observation des événements ([ ]) Flag = {E1} Flag = {E2} Flag = {E4} Flag = {E2,E3} ? E1 E2 E3 E4 [ ] [ ] [ ] Flag= Traitement de E1 Flag= Traitement de E2 et E3 Approche synchrone (7/8) Les automates - version 2 - Cyclique vs périodique t t0 CSSEA - SI342b

  10. 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) CSSEA - SI342b

  11. 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 » CSSEA - SI342b

  12. Séparationtraitements des interruptionstraitements applicatifs tâches immédiatestâches différées IT2 void SSP_IT2() { int ev; ev=lire_IT(); flag=set(ev); acquittement; } IT1 void SSP_IT1() { traiter_urgent_IT1(); activer_TD1(); acquittement; } void function_td2() {traiter_moins_urgent_IT2(); exit(); } void function_td1() {traiter_moins_urgent_IT1(); exit(); } niveau d’interruptions masquage d’interruptions imbrication / mise en file ordonnancement synchronisation coopération Approche asynchrone (2/6) Partie opérative CSSEA - SI342b

  13. Préemption d ’une tâche différée par une autre tâche différée E1 E2 E3 a b c d e f g h Traitement de E2 Traitement de E3 Interruption Début - Suite - Fin Traitement de E1 Approche asynchrone (3/6) t t0 urgence de E2>urgence de E1 >urgence de E3 CSSEA - SI342b

  14. Traitement de E2 Approche asynchrone (4/6) E1 E2 t t0 Début - Suite Traitement de E1 urgence de E2<urgence de E1 CSSEA - SI342b

  15. Quels sont les points clés du déroulement présenté ? Approche asynchrone (5/6) Problèmes Échéance de E1 E1 E2 ! Échéance de E2 t t0 Traitement de E2 Début - Suite et Fin Traitement de E1 urgence de E2>urgence de E1 CSSEA - SI342b

  16. 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é) CSSEA - SI342b

  17. Ordonnancement temps réel CSSEA - SI342b

  18. X Z Engine ctrl Y AGB ABS/VDC Suspension WAS/DHC CAN nw ctrl CAN nw ctrl CAN nw ctrl CAN nw ctrl CAN nw ctrl CAN CAN nw ctrl Intelligent Switching Unit VAN nw ctrl VAN nw ctrl VAN nw ctrl VAN nw ctrl VAN Problématique (1/4) CSSEA - SI342b

  19. Z Engine ctrl Y X M1 M11 M13 M14 Problématique (2/4) T_Engine1 T_AGB2 AGB ABS/VDC Suspension WAS/DHC CAN nw ctrl CAN nw ctrl CAN nw ctrl CAN nw ctrl CAN nw ctrl CAN T_ISU2 T_Y2 T_ISU3 T_Y3 CAN nw ctrl Intelligent Switching Unit VAN nw ctrl VAN nw ctrl VAN nw ctrl VAN nw ctrl VAN CSSEA - SI342b

  20. 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 Terminaison de la chaîne Contrainte : Temps de réponse de bout en bout < Temps Maximum CSSEA - SI342b

  21. 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 CSSEA - SI342b

  22. Une instance doit s’exécuter dans chaque période Une instance doit démarrer au début de chaque période 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 Tâches activées aléatoirement - sur événement L’intervalle de temps entre deux occurrences de l’événement est borné SPORADIQUE L’intervalle de temps entre deux occurrences de l’événement n’est pas borné APERIODIQUE CSSEA - SI342b

  23. 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 CSSEA - SI342b

  24. 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) CSSEA - SI342b

  25. Caractéristiques des tâches Liu & Layland Ii di,n Mi,n mi,n Li,n a b c Ai,n Fi,n Date d’arrivée de l’instance Date de fin de l’instance Ci,n = a + b + c 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 CSSEA - SI342b

  26. 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 * … CSSEA - SI342b

  27. 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 CSSEA - SI342b

  28. préemptible • non préemptible • préemptif tâche • non préemptif Caractérisation d’un ordonnancement classification • Local / global • Processeur • 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) CSSEA - SI342b

  29. 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é CSSEA - SI342b

  30. 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 durée des calculs • 10 3 ms • 11 40 ms • 12 0,5 s • 13 6 s • 14 1,5 m • 15 20 m • 16 6 h • 17 4 jours • 18 2,5 mois • 19 4 années • 20 77 années • 21 16 siècles Le calcul et la comparaison d'une solution dure 10 -9s CSSEA - SI342b

  31. 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 estvalide 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 CSSEA - SI342b

  32. 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 CSSEA - SI342b

  33. 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 CSSEA - SI342b

  34. Ordonnançabilité versus performances (2/2) t1 • Ordonnancement FIFO sur Lièvre • Ordonnancement EDF sur Tortue t2 Activation de t1 Activation de t2 Échéance de t1 Échéance de t2 15 220 0 2 20 21 Activation de t1 Activation de t2 Échéance de t1 220 Échéance de t2 15 212 0 2 12 CSSEA - SI342b

  35. Commentez cette évolution Ordonnançabilité d’un ensemble de tâches (1/4) Fonction d’ordonnancement de l’instance n de la tâche k (Tk,n) pk,n(t) Ck,n Ak,n u v Fk,n t CSSEA - SI342b

  36. Commentez cette évolution Ordonnançabilité d’un ensemble de tâches (2/4) Fonction d’arrivée de travail de Tk,n Sk,n(t) Ck,n Ak,n t CSSEA - SI342b

  37. Tracez la fonction d’arrivée de travail de C Ordonnançabilité d’un ensemble de tâches (3/4) Soit une configuration C Tâche CiPi 1 7 20 2 5 20 3 8 30 4 3 100 5 2 100 CSSEA - SI342b

  38. Commentez cette évolution – valeurs de pk,n(t) ? Ordonnançabilité d’un ensemble de tâches (4/4) Fonction de charge de Tk,n Wk,n(t) Ck,n Ak,n Fk,n t CSSEA - SI342b

  39. Montrez que le temps d’oisiveté (temps creux) du processeur est (1-U)P Ordonnançement de tâches périodiques • Facteur d'utilisation d'une tâche périodique : • ui = Ci / Piui < 1 •  Charge du processeur pour A : • condition nécessaire d'acceptation : U < 1 • P = ppcm(T1, T2, …, Tn ) (1-U)P temps creux CSSEA - SI342b

  40. 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 CSSEA - SI342b

  41. 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é : RM - DM : Algorithme optimal pour les configurations à tâches indépendantes, à échéances sur requêtes, périodiques et à départ simultané CSSEA - SI342b

  42. Ordonnançement de tâches périodiques Tâches indépendantes - Algorithmes à priorité statique Comment affecter les priorités (2/2) ? Intérêt de ces politiques ? • On considère Ci,n identique pour toute instance • di,n identique pour toute instance • Shortest Maximum Processing Time First (SMPTF) • Shortest Slack Time First (SSTF) CSSEA - SI342b

  43. préemption idle 0 1 6 2 3 4 5 7 9 10 8 Ordonnançement de tâches périodiques Rate Monotonic - exemple La priorité d'une tâche est 1/Pi Tâches Période Occupation Facteur d'utilisation Ti Pi Ci ui 1 2 1 50% 2 5 2 40% CSSEA - SI342b

  44. Tâches Période Occupation Facteur d'utilisation Délai critique Ti Pi Ci ui di 1 2 1 50% 2 2 3 1 33% 1 Rate Monotonic 0 0 1 1 2 2 3 3 4 4 5 5 6 6 Deadline Monotonic Rate Monotonic vs Deadline Monotonic - exemple CSSEA - SI342b

  45. 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 CSSEA - SI342b

  46. 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 : CSSEA - SI342b

  47. 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 laxité (t, Ti) CSSEA - SI342b

  48. 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 : CSSEA - SI342b

  49. 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 Ordonnancement de tâches périodiques Tâches à contraintes de précédence Exemple CSSEA - SI342b

  50. 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, date de première activation prévue date de première activation calculée B- Réajuster les délais critiques délai critique donné délai critique calculé CSSEA - SI342b

More Related