160 likes | 367 Views
Systèmes en temps réel. Critère d’ordonnancement en temps réel Partie II. Synopsis. Analyse du temps de réponse Temps de réponse Compter les relâchements Déterminer l’interférence Calculer le temps de réponse Exemple Ordonnancement avec les tâches apériodiques
E N D
Systèmes en temps réel Critère d’ordonnancement en temps réel Partie II
Synopsis • Analyse du temps de réponse • Temps de réponse • Compter les relâchements • Déterminer l’interférence • Calculer le temps de réponse • Exemple • Ordonnancement avec les tâches apériodiques • Ordonnancement priorité avec échéanciers monotones (Deadline Monotonic Priority Ordering) • Pire cas du temps d’exécution • Requis temporels durs versus mous Ordonnancement (partie 2) - 2
Analyse du temps de réponse • Un désavantage du test d’ordonnancement basé sur l’utilisation (C/T) pour RMA est qu’il n’est pas exact. Le test est suffisant mais pas nécessaire • Pour suppléer à ce test, nous introduisons la notion d’analyse du temps de réponse • Avec l’analyse du temps de réponse, on peut: • Prédire le pire cas pour le temps de réponse pour chaque tâche • Ensuite on compare le temps de réponse et échéancier pour chaque tâche • Si tous les pires cas de temps de réponse sont plus petits que les échéanciers respectifs, le système est "ordonnançable" Ordonnancement (partie 2) - 3
Réponse • Le temps de réponse pour une tâche est défini comme étant la somme de son pire temps d’exécution et de son interférence maximale -> Ri = Ci + Ii (1) où Ii est l’interférence maximale* que la tâche i peut subir dans tout intervalle de temps [t, t + Ri ) *La condition pour l’interférence maximale se produit évidemment quand toutes les tâches de plus haute priorité sont relâchées en même temps que i, l’instant critique. Ordonnancement (partie 2) - 4
j i 0 100 200 Comptage des relâchements • Considérez une tâche i et une tâche à plus haute priorité j • Maintenant, le nombre de relâchements de la tâche j dans l’intervalle de temps 0 à Ri peut être dérivé par: # de relâches j = Ri/Tj (2) Fonction plafond [ 0, Ri ) # de relâches = 2 40 40 40 5 Tj Ri Ti Ordonnancement (partie 2) - 5
Détermination de l’interférence • À partir de ceci l’interférence maximum de la tâche j sur i dans l’intervalle 0 à Ri est donnée par: interférence max = Ri/Tj Cj (3) • Mais il peut y avoir d’autres tâches à plus haute priorité donc: Ii = Ri/Tj Cj(4) [ 0, Ri ) jhp(i) Ordonnancement (partie 2) - 6
Calcul du temps de réponse • Substituant l’équation (4) dans (1) donne l’expression générale pour le temps de réponse: Ri = Ci + Ri/Tj Cj (5) • Notez le problème suivant: • Ri est sur les deux côtés de l’équation!!! • Avant de résoudre ceci, regardons si on peut le comprendre dans le domaine du problème jhp(i) Ordonnancement (partie 2) - 7
A B C 0 100 200 Comprendre le temps de réponse (Exemple 1 du dernier cours) RC = CC + RC/TA CA + RC/TB CB = 60 + 2(20) + 1(30) = 130 CA, TA CB, TB CC, TC Système= {(20, 100), (30, 150), (60, 200)} RC = 130 Ordonnancement (partie 2) - 8
Résolution de l’équation du temps de réponse • Essentiellement, on forme une relation récursive avec l’équation (5) et on résout itérativement: win+1 = Ci + win /Tj Cj (6) où la valeur de départ (seed) wi0 = Ci • L’algorithme se résume alors Résolu pour des valeurs successive de win+1 si win+1 = win , alors la solution est trouvée -> Ri = win si win+1 > Di , alors la tâche i ne rencontre pas son échéancier jhp(i) Ordonnancement (partie 2) - 9
Ordonnancement avec tâches apériodiques • Le modèle de tâche simple que nous avons traité jusqu’à maintenant est trop limité de plusieurs façons. Ne pas être capable de traiter les tâches apériodiques est une restriction majeure. • Une approche est de faire paraître les tâches apériodiques (ou sporadiques) comme des tâches périodiques • Considérez que l’on peut traiter l’intervalle minimum entre l’arrivée d’une tâche apériodique comme une période, T • Seulement avec cette supposition, on peut utiliser RMA avec les deux types de tâches, MAIS Ordonnancement (partie 2) - 10
Ordonnancement priorité avec échéancier monotone (Deadline Monotonic Priority Ordering) • La supposition que D=T dans modèle de tâche simple n’est pas réaliste pour les tâches apériodiques • typiquement, une tâche apériodique ne va pas se produire fréquemment (grand temps inter-arrivé) mais va être vitement traitée -> D < T • donc l’assignation de priorité basé sur T ne va pas habituellement satisfaire le requis pour rencontrer D • Deadline Monotonic Priority Ordering (DMPO) est une méthode qui fait ce qui suit: • Plus l’échéancier est proche, plus la priorité est haute Ordonnancement (partie 2) - 11
DMPO Exemple Tâches Ci Ti Di Pi Ri * 1 3 20 5 1 3 2 3 15 7 2 6 3 4 10 10 3 10 4 3 20 20 4 20 • * temps de réponse sont calculés en utilisant la méthode de l’équation (7) • notez que un ordre RMA ne pourrait pas ordonnancer ces tâches Ordonnancement (partie 2) - 12
Exécution pire cas vs moyenne • Comment fait-on pour connaître les pire cas de temps d’exécution? • Mesure intrusive • Analyse basée sur un modèle du processeur • Est-ce réaliste pour les conditions normales? • Les valeurs de pire cas pourraient être grandement plus larges que celles observées en opération normale • Pour les tâches apériodiques, le pire cas des temps inter-arrivée pourrait être plusieurs ordres de grandeur de trop • Qui a-t’il d’autre? • Il est de bonne mise d’avoir les nombres qui représentent les temps moyens Ordonnancement (partie 2) - 13
Requis temporels durs vs mous En ajoutant des chevaux-vapeurs pour être capable d’ordonnancer va sûrement nous apporter des taux d’utilisation du CPU qui sont très bas sous des conditions normales, et bien qu’il y a des fois où cela est nécessaire... distinguer entre les requis temporels durs et mous Règle 1: on devrait être capable d’ordonnancer toutes les tâches en utilisant la moyenne des temps d’exécution et inter-arrivée Règle 2: toutes les tâches avec des requis temporels durs devraient être ordonnancées avec les pires cas Ordonnancement (partie 2) - 14
Devoirs sur l’analyse du temps de réponse Tâche Ci Ti Pi 1 3 7 2 3 12 3 5 20 • Utilisez l’ordonnancement RMA • Appliquez le test d’ordonnancement d’utilisation • Utilisez l’analyse du temps de réponse pour déterminer si le système peut être ordonnancé Ordonnancement (partie 2) - 15
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 2) - 16