Critères d’ordonnancement en temps réel Partie I Systèmes en temps réel Critères d’ordonnancement en temps réel Partie I
Synopsis Requis temporels Concurrence et ordonnancement Mécanismes d’ordonnancement Notation Algorithme Taux Monotone (Rate Monotonic Algorithm) Théorème des bornes d’utilisation Exemples Ordonnancement (partie 1) - 2
Requis temporels D’où viennent les requis temporels? Requis de haut niveau (explicite) Assemble deux gugusses chaque seconde Brouille un émetteur en-dedans de 250 millisecondes de son identification Requis dérivés (implicite) précision: tracer une position d’émetteur à une précision de 50 nous mène à la périodicité dépendance: se remettre d’un message perdu en dedans de 500 msec interface utilisateur: répond à une clé de clavier en dedans de 200 msec Ordonnancement (partie 1) - 3
Concurrence et ordonnancement Les systèmes concurrents démontrent un non-déterminisme extrême considérez un simple système concurrent à 5 tâches il y a 120 permutations possibles pour l’exécution dans un système non-préemptif et une infinité pour un système préemptif Les systèmes en temps réel doivent restreindre ce non-déterminisme en utilisant l’ordonnancement Ont définit le critère d’ordonnancement comme l’évaluation de la capacité qu’un système a de rencontrer ses échéanciers (deadlines) Ordonnancement (partie 1) - 4
Mécanismes d’ordonnancement Un mécanisme d’ordonnancement fournit: Un algorithme pour l’utilisation des ressources du système Une façon de prédire le comportement dans le pire cas Il y a deux classifications de mécanismes Statique (compile-time) et dynamique (run-time) Nous allons seulement étudier les mécanismes statiques et en particulier, les méthodes préemptive basées sur les priorités Mécanismes utilisent: Un algorithme d’assignation des priorités; et Un test d’ordonnancement Ordonnancement (partie 1) - 5
Notation C: temps d’exécution de pire cas pour une tâche T: temps minimum entre le re-lancement de la tâche (période) P: priorité assignée à la tâche N: nombre de tâches dans le système R: temps de réponse pire cas pour la tâche B: temps de blocage pire cas pour la tâche I: temps d’interférence de la tâche Définit Utilisation: U = C/T Ordonnancement (partie 1) - 6
Définit un simple modèle de tâche Supposition: Un ensemble de tâches fixes Toutes les tâches sont périodiques Les tâches sont complètement indépendantes * Tous les surdébits (changement de contexte) sont ignorés (ou inclus dans les temps d’exécution des tâches) Les échéanciers des tâches sont égales à leurs période Implique que les tâches doivent compléter avant le re-lancement Toutes les tâches ont un temps d’exécution pire cas Instant Critique – définit comme étant la condition de charge maximum quand toutes les tâches sont relâchées en même temps Ordonnancement (partie 1) - 7
Algorithme taux monotone Rate Monotonic Algorithm (RMA) Une méthode d’assignation de priorité pour le modèle de tâches décrit plus tôt de tel façon à ce que: Chaque tâche se voit assigner une priorité basée sur sa période, là où Plus courte est la période, plus haute est la priorité Exemple: Tâche Période (T) Priorité (P) A 100 3 B 25 1* plus haute C 205 4 D 60 2 Ordonnancement (partie 1) - 8
Théorème des bornes d’utilisation Un ensemble de N tâches périodiques indépendantes ordonnancées avec l’algorithme de taux monotone va toujours rencontrer ses échéanciers, si C1/T1 + … CN/TN N(2 1/N - 1) = URM(N) URM(N) converge à 69% pour un N large Un test suffisant mais non nécessaire c.-à-d. nous ne pouvons pas dire qu’un système avec une valeur d’utilisation plus haute ne peut pas être ordonné Ordonnancement (partie 1) - 9
RMA Exemple 1 Tâche Ci Ti Ui A 20 100 0.2 B 30 150 0.2 C 60 200 0.3 U1 + U2 + U3 = 0.7, et est URM(3) où URM(3) = 3*(21/3 - 1) = 0.779 Donc ces tâches vont toujours rencontrer leurs échéanciers avec l’ordonnancement: P(A) = 1, P(B)=2, P(C)=3 Ordonnancement (partie 1) - 10
RMA Exemple 1 A B C t 20 20 30 30 50 10 idle idle 20 40 60 80 100 120 Task Ci Ti Ui A 20 100 0.2 B 30 150 0.2 C 60 200 0.3 - Tâche lancée - Tâche complète A 20 20 B 30 30 C 50 10 idle idle t 20 40 60 80 100 120 140 160 180 200 Ordonnancement (partie 1) - 11
RMA Exemple 2 Tâche Ci Ti Ui A 12 50 0.24 B 10 40 0.25 C 10 30 0.33 U1 + U2 + U3 = 0.82, et n’est pas URM(3) où URM(3) = 3*(21/3 - 1) = 0.779 Donc ces tâches échouent le test d’utilisation, et en regardant le diagramme Gantt, on peut voir que les échéanciers ne seront pas rencontrés Ordonnancement (partie 1) - 12
RMA Exemple 2 Task Ci Ti Ui A 12 50 0.24 B 10 40 0.25 C 10 30 0.33 - Tâche lancée - Tâche complète x x - Échéancier manqué A 10 B 10 10 ... 10 C 10 t 10 20 30 40 50 60 70 Ordonnancement (partie 1) - 13
RMA Exemple 3 Tâche Ci Ti Ui A 40 80 0.5 B 10 40 0.25 C 5 20 0.25 U1 + U2 + U3 = 1.00, et n’est pas URM(3) encore où URM(3) = 3*(21/3 - 1) = 0.779 Ces tâches échouent clairement le test d’utilisation, mais après avoir regardé le diagramme Gantt, on peut voir que les échéanciers sont respectés???? Ordonnancement (partie 1) - 14
RMA Exemple 3 Task Ci Ti Ui A 40 80 0.5 B 10 40 0.25 C 5 20 0.25 - Tâche lancée - Tâche complète A 5 15 5 15 B 10 10 5 5 5 5 C t 10 20 30 40 50 60 70 80 Ordonnancement (partie 1) - 15
Points additionnels sur RMA RMA a l’avantage d’être stable dans les conditions de surcharge transitoires Un sous ensemble des tâches (celle avec les priorités les plus hautes) vont encore rencontrer leurs échéanciers même en condition de surcharge temporaire. Théorème de temps de complétion Pour un ensemble de tâches périodiques, si chaque tâche rencontre son premier échéancier, quand toutes les tâches sont lancées en même temps, alors tous les échéanciers seront rencontrés chaque fois. Ordonnancement (partie 1) - 16
Le point faible de RMA et test d’U Le test d’utilisation n’est pas exacte Suffisant, mais pas nécessaire Donc nous devons utiliser d’autres tests (autre que de vérifier les cédules à la main) Le modèle de tâches simple est trop restrictif Permet seulement les tâches périodiques Toutes les tâches doivent être indépendantes implique que aucune ressources ne peuvent être partagées (pas de mutexes et de précédences) Introduit Analyse du temps de réponse - un test de critère d’ordonnancement plus fort Supporte les tâches apériodiques (sporadiques) ainsi que la dépendance inter-tâches Ordonnancement (partie 1) - 17
Références [1] Burns, A. and Wellings, A., “Real-Time Systems and Programming Languages”, Chapter 13, Addison Wesley, 1997 [2] TimeSys Corp, “The Concise Handbook of Real-Time Systems”, Version 1.0, 1999 [3] www.timesys.com [4] Gomaa, H., “Software Design Methods for Concurrent and Real-Time Systems”, Addison-Wesley, 1993. Ordonnancement (partie 1) - 18