Introduction au Temps Réel - Emmanuel Grolleau Septembre 2011
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Introduction au Temps Réel Emmanuel Grolleau Septembre 2011 Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 2 Plan de la présentation Introduction Contexte applicatif Contraintes temporelles Problématique de la validation temporelle La validation temporelle dans l’industrie Analyse de temps de réponse Prise en compte de facteurs pratiques Limiter le surdimensionnement Transactions Modèles Multiframe Positionnement dans le cycle de développement logiciel UML et le temps réel MARTE Enjeux de demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 3 Introduction Enjeux industriels Surdimensionnement Introduction Cycle de développement Enjeux industriels de demain Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 4 Contexte applicatif Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 5 Parallélisme des traitements Période=150ms Envoyer donées Commandes Période=20ms Réguler attitude Centrale inertielle Période=100ms Période=250ms Lire Lire consignes GPS MODEM Récepteur GPS Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 6 Contraintes structurelles et temporelles Envoyer donées Lire consignes Réguler Envoyer attitude donées Réguler attitude Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 7 Deux types d’implémentation Réguler attitude Implémentation dirigée par le temps Pire durée d’exécution temps période Dates connues Implémentation dirigée par les événements Dates inconnues temps Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 8 Types d’approche Approche synchrone temps Approche asynchrone Séquence pré-calculée Algorithme d’attribution de priorités + ordonnanceur Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 9 Spécificités du temps réel S’assurer du respect des contraintes de temps Ordre d’exécution = ordonnancement Déterminisme de déclenchement des traitements La dynamique du système doit pouvoir être caractérisée Un pire cas doit pouvoir être extrait Déterminisme des durées de traitement Un Worst Case Execution Time (WCET) caractérise les tâches Déterminisme du service et de l’interférence du support d’exécution Hardware déterministe Faible latence noyau Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Traitement généraliste (OS) vs. Traitement temps réel (RTOS) Buts non compatibles avec le temps réel Privilégier la flexibilité par rapport au déterminisme Mémoire virtuelle Garantir l’indépendance des processus Systèmes de protection mémoire Augmenter la vitesse moyenne de traitement Pipeline, mémoire cache, prédiction des sauts et prefetch, cache disque Favoriser l’équité du partage du processeur entre les processus Algorithmes d’ordonnancement à base de tourniquet, comme Multi-Level Feedback Faciliter la maintenance et le diagnostic du système avec de nombreux processus de maintenance, mise à jour, surveillance, etc. Accélérer la vitesse de traitement en utilisant une structure monolithique « Mesures » de la compatibilité au temps réel Déterminisme Robustesse Latence du noyau ( Temps réel = déterministe ) ≠ ( mon PC = rapide « la plupart du temps ») Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Noyau, exécutif, système d’exploitation Le noyau : gère les interruptions matérielles, crée les tâches et ou processus, gère la mémoire, se sert d’une interruption horloge pour faire l’ordonnancement des tâches et des processus L’exécutif = noyau + pilotes de périphériques (gestion des entrées/sorties – USB, RS-232C, E/S numériques et analogiques, …), protocoles réseaux (pile IP, CAN, bluetooth, etc.) Système d’exploitation (SE, Operating System, OS)= exécutif + shell + moyens de maintenance, mise à jour, … Systèmes d’exploitations généralistes Unix, Linux, Microsoft Windows 7, Windows Vista, Windows XP, Windows 2000, etc. Très consommateurs de ressources (processeur, mémoire,…) Exécutifs temps réel VxWorks, norme OSEK/VDX (automobile), norme ARINC 653 (avionique civile), norme Ada (aérospatiale, avionique militaire), norme POSIX (généraliste), etc. Peu consommateurs de ressources et déterministes (embarquables) La plupart ne proposent (à part ARINC653) que la notion de tâches et pas la notion de processus Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Qu’est-ce qu’une tâche/un processus ? Le programme principal est une tâche Un sous-programme s’exécutant parallèlement au programme principal est une tâche Un processus est un ensemble de tâche partageant des variables globales Deux processus s’exécutent en parallèle comme des tâches mais ont leur mémoire propre L’entité chargée de partager le ou les processeurs entre les tâches et processus est l’ordonnanceur L’ordonnanceur est au cœur du noyau Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 13 Qu’est-ce qu’une tâche temps réel ? Une tâche est temps réel si elle doit s’exécuter dans une fenêtre temporelle Respect d’échéance Validation temporelle S’assurer que toutes les tâches temps réel soient exécutées « dans les temps » Pour toute la vie du système = ∞ Quels que soient les événements Modèle Modèle d’application d’environnement Modèle de support d’exécution Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers D’où viennent les contraintes ? Aéronef Miniature Autonome de Détection et d’Observation Mini drone Envergure 55 cm Autonomie 20 à 30 minutes en vol de croisière Masse ~930 grammes Récepteur GPS 12 canaux 4Hz 30g Centrale inertielle IMU 38g • 3 gyromètres MODEM 860 MHz • 3 accéléromètres 38+25g • 9600 bps • Echantillonnage interne > 1kHz • portée max 8km • 100 mW MPC-555 58g • 40 MHz Servocommandes Récepteur RC • RTOS OSEK/VDX • Coprocesseur FP Modes de vol Utilisation • Manuel : pilotage par RC • 2 UART (←GPS, ↔Modem) • Assisté : roulis/vitesse ascensionnelle • 5 entrées PWM ←RC • Autonome : assisté + navigation mission • 4 sorties PWM,→Servos • Retour à la base •CAN (← IMU) • Montée sur panne GPS/RC/Modem • Crash sur place sur panne grave (IMU+RC) Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers D’où viennent les contraintes de temps ?/2 Gestion parallèle de Réception GPS 1 trame toutes les 250 ms, événement initié par un dispositif externe chaque trame arrive octet par octet (120 octets/trame), chaque octet doit être stocké avant l’arrivée du prochain octet (1/5600o/s ~ 175 µs après) Pénalité : perte de la trame, donc prise en compte de la position retardée de 250 ms Réception de données venant du sol 1 trame au plus toutes les 100 ms, événement initié par un dispositif externe Chaque trame est composée de 10 octets, chaque octet doit être lu et stocké en moins de 1/960o/s ~ 1 ms Pénalité : perte d’une commande provenant du sol Réception de donnés de la centrale inertielle 1 message toutes les 20 ms, événement initié par un dispositif externe Chaque message CAN est composé de 3 trames de 8 octets de données, séparés de 80 µs, comme dans le cas des liaisons RS-232, chaque trame doit être lue et stockée avant l’arrivée de la suivante Pénalité : perte totale ou partielle de contrôle pouvant mener au crash Récepteur de consignes manuelles via le récepteur RC Assure le pilotage en mode répéteur lorsque le système est en mode manuel, initié par un dispositif externe 5 entrées doivent être surveillées (différence temporelle entre front montant et descendant) et mises à jour toutes les 20 ms Pénalité : fonctionnement saccadé pouvant entraîner un crash Génération des commandes vers les servo-moteurs Initié par l’horloge interne 5 sorties doivent être programmées avec une valeur de commande toutes les 20 ms Pénalité : fonctionnement saccadé pouvant entraîner un crash Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers D’où viennent les contraintes de temps ?/3 Envoi des données vers le sol de navigation/horizon artificiel Initié par l’horloge interne (choix de 50 ms) Pénalité : retard d’affichage d’informations au pilote Navigation Calqué sur l’arrivée d’informations GPS (~250 ms) Pénalité : mauvaise trajectoire Détection/gestion de pannes Initié par l’horloge interne (choix de 200 ms) Pénalité : retard de détection de panne, danger de crash moteur allumé Algorithme de régulation d’attitude Initié 1 fois sur 3 par les informations provenant de la centrale Pénalité : perte de contrôle Récapitulatif : 4 « tâches périodiques » sont initiées par un dispositif externe, leur période est imposée par ceux-ci, il nous faut répondre en temps réel à ceux-ci 3 « tâches périodiques » initiées par l’horloge interne 2 tâches initiées par une autre tâche Contraintes de temps inhérentes à la dynamique du système et des dispositifs capteurs/actionneurs Les pénalités de retard peuvent aller d’un certain inconfort à la destruction du système, voire à exposer les opérateurs à un risque physique La plupart des événements se produisent de façon périodique (il arrive cependant que des événements soient apériodiques) Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Types de contraintes de temps Contrainte stricte (hard real-time) Une violation des contraintes temporelles peut être dangereuse pour le système Exemple : tâche d’acquisition centrale inertielle du drone Contraintes fermes (firm real-time) Violer une échéance n’est pas catastrophique mais la qualité du résultat diminue Exemple : tâche d’acquisition GPS, cependant, il faut au moins 1 trame sur 2 pour une navigation presque correcte (1,2)-firm Contraintes molles (soft real-time) Respecter les échéances augmente la qualité du résultat Exemple : aucun sur le drone, applications multimedia Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 18 Introduction Enjeux industriels ValidationAnalyse en-ligne temporelle industrielle Cycle de développement Perspectives Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 19 Validation temporelle : place dans le cycle de vie Ordonnancement de tâches temps réel Domaine de recherche né dans les années 1970 S’appuie sur des travaux d’ordonnancement de production des années 1950 S’applique en fin de cycle de développement logiciel Exemple : dans un cycle en W (ou Y) Validation Spécification Simulation temporelle Intégration Intégration Spécification avec noyau Conception &Conception adaptée Tests Tests Codage Codage croisé Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Structures typiques des tâches • Tâches réveillées par l’horloge interne Date_réveil ← date_courante Faire toujours … Date_réveil ← Date_réveil + Période_tâche ≤C ≤C Dormir jusqu’à Date_réveil r r+T r+2T Fait • Tâches réveillées par événement extérieur – Utilisent une ISR (Interrupt Service Routine) exécutée dès que l’interruption a lieu qui déclenche la tâche Faire toujours ≤C ≤C Attendre événement déclencheur r=? ?≥r+T … Fait • Tâches logicielles (héritent de la périodicité de la tâche qui les réveille) Faire toujours Attendre événement ou message ou événement ou … … Fait Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 21 Validation temporelle RTOS RTOS RTOS Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Ordonnancement • Buts de l’ordonnancement généraliste ≠ buts ordonnancement temps réel – Ordonnancement généraliste » Prendre en compte des notions de priorité tout en évitant qu’un processus souffre de famine » Améliorer les performances moyennes » Algorithme le plus fréquent : Multi-Level Feedback (MLF) = tourniquets à priorités avec changement de niveau de priorité en cas de famine prolongée – Ordonnancement temps réel » Garantir que même dans le pire cas, une tâche respecte ses échéances » Note : cela signifie qu’il faut pouvoir caractériser le pire cas » Algorithme le plus fréquent aujourd’hui : algorithme à priorités (simple en apparence…) τ4 Principe du tourniquet (round robin) τ3 τ5 τ1 Tâche active pendant un quantum de temps τ2 τ7 τ9 τ6 Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Algorithme d’ordonnancement MLF τ4 τ15 τ3 τ1 Priorité τ 2 élevée τ τ22 25 τ6 τ68 τ5 τ45 L’ordonnanceur utilise le tourniquet non vide de plus haute priorité Priorité τ 2 τ14 moyenne τ17 τ9 τ68 Changement de priorité lorsqu’une tâche attend « très longtemps » jusqu’à ce qu’elle obtienne un quantum de temps du processeur. Elle retourne alors τ42 à son niveau de priorité initial. τ43 τ31 τ19 Priorité τ 47 basse τ9 τ1 τ11 • Exemple de systèmes d’exploitation utilisant MLF – Unix – MS Windows • Avantages – Prise en compte des priorités, Absence de famine, S’adapte parfaitement aux systèmes dans lesquels on n’a pas d’informations sur la charge • Inconvénients – Coûteux, difficile à caractériser (quel est le pire cas pour une tâche ?) Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Algorithme d’ordonnancement à priorités • Avantages Processeur Echelle des priorités – Plus simple à caractériser, implémentation aisée et peu coûteuse • Inconvénients Tτ11 Niveau de priorité N – Risques de famine Tâche terminée ou bloquée Tτ33 Niveau de priorité N-1 Tâche active τ44 T Niveau de priorité N-2 Tτ22 Niveau de priorité N-3 Tτ77 Niveau de priorité N-4 Tâches activables Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Algorithme Rate Monotonic • Article de référence : – C.L. Liu and J.W. Layland,"Scheduling algorithms for multiprogramming in real-time environment", Journal of the ACM, vol. 20(1), pp. 46-61, 1973 • Contexte – Tâches indépendantes, périodiques, à échéance sur requête, simultanées (donc concrètes) : une tâche est définie par un WCET et une période • Algorithme – Affecter une priorité en fonction de la période : plus la période est petite, plus la priorité est élevée • Résultats – Rate Monotonic est optimal dans la classe des algorithmes à priorités fixes » Cela signifie que si un algorithme à priorités fixes ordonnance fiablement un système de tâches S, alors RM ordonnance fiablement S » De façon équivalente, tout système ordonnançable par un algorithme à priorités fixes est ordonnançable par RM – Théorème de l’instant critique: pour des tâches indépendantes, le pire temps de réponse pour une tâche de priorité i advient lorsque toutes les tâches de priorité supérieure à i sont activées simultanément avec la tâche étudiée. » Conséquence : pour des tâches non concrètes, le cas concret simultané est un pire cas. Si un algorithme ordonnance fiablement un système de tâches simultanées, alors il ordonnance fiablement le même système de tâches non simultanées – On peut déterminer si un système est ordonnançable dans ce contexte par RM uniquement en testant la charge du système • Tests d’ordonnançabilité possibles – Simulation => nous aurons à déterminer sur quelle durée (durée d’étude) (CNS) – Calcul du pire temps de réponse (CNS) – Calcul du facteur d’utilisation processeur (charge processeur) (CS) Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Instant critique : illustration • Soit un système de 2 tâches non concrètes. Une affectation de priorités RM donnerait Prio(ττ1)>Prio(ττ2) τ1 temps τ2 Temps de réponse τ2,1 = 12 Temps de réponse τ2,2 = 13 • Remarque : le temps de réponse d’une tâche ne dépend que des tâches de priorité supérieure (ou égale) : τ1 n’est pas influencée par τ2 • Ou doit-on arrêter la simulation pour conclure que le système est fiablement ordonnancé ? Supposons les tâches simultanées τ1 temps τ2 Temps de réponse τ2,1 = 14 Temps de réponse τ2,2=13 Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Tests de complexité polynomiale • Un système dont la charge U = ΣWCET/période>1 ne peut être fiablement ordonnancé sur un processeur – U≤1 est donc une condition nécessaire d’ordonnançabilité triviale • Liu & Layland ont proposé une condition suffisante d’ordonnançabilité – CS signifie que » si la réponse au test est OUI, le système est fiablement ordonnancé par RM » Si la réponse au test est NON, on ne peut conclure • Condition suffisante de Liu & Layland 73 – Soit S une configuration de n tâches indépendantes à échéance sur requête. Le système S est ordonnancé fiablement par RM si U≤ n (21/n – 1) ( limn→∞ n × (21/ n −1) = ln(2) ≈ 0.69 ) – Il en résulte que tout système de tâches indépendantes à échéance sur requête de charge inférieure à 69% est ordonnancé fiablement par RM – La complexité du test est linéaire 1 0.82 incertitude 0.78 0.69 0% 69% 100% charge n Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Tests polynomiaux plus récents • Borne de Sjödin et Hansson 98 : le pire temps de réponse pour les tâches d’un système est majoré par Ui=Ci/Ti TRi ≤ ∑ j∈hp(i )∪i Cj 1− ∑ j∈hp(i ) Uj • Borne hyperbolique (Bini et al. 03) : un système est ordonnançable (par RM) si ∏ i∈1..n (Ui +1) ≤ 2 – Les auteurs ont amélioré la borne de L&L73, ainsi la borne hyperbolique est toujours meilleure (i.e. moins pessimiste, mais bien entendu jamais optimiste) que le test de L&L73 • Tests polynomiaux réglables basés sur la RTA – δ-HET (δ δ Hyperbolic Exact Test) de Bini et Buttazzo 04 – Schémas d’approximation de Richard, Baruah, Fisher incertitude CS dit OUI CS NON, CN OUI CN dit non Tâches indépendantes, ER Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 29 Surdimensionnement Système réel la plupart du temps Système réel pire cas Ressources nécessaires Modèle du système réel Condition suffisante Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 30 Méthodes exactes : complexité et passage à l’échelle • La problématique principale de l’ordonnancement est qu’un bon nombre de problèmes (par exemple, lorsque les tâches partagent des ressources critiques) est NP-difficile ou Co-NP-difficile – Par conjecture, il n’existe donc pas d’algorithme donnant en tant raisonnable une réponse exacte – Donner une réponse exacte résulte en une explosion combinatoire • Problématiques principales de l’ordonnancement – Evaluer des algorithmes d’ordonnancement (les contraintes temporelles sont-elles respectées ? Tel critère est-il minimisé ?) en utilisant des tests approchés (heuristiques) polynomiaux ou pseudo-polynomiaux permettant d’approximer de façon la moins pessimiste possible le comportement d’un algorithme » Par exemple, calculer une borne supérieure du temps de réponse des tâches qui soit la moins pessimiste possible, mais qui ne puisse en aucun cas être optimiste – Evaluer et comparer des algorithmes » Par exemple trouver un ratio qui caractérise l’écart maximal donné par une heuristique par rapport à la réponse que donnerait un algorithme optimal exponentiel – Limiter au maximum l’explosion combinatoire en réduisant au maximum l’espace des états, en trouvant des classes d’équivalence entre états lors d’une construction/exploration de l’espace des solutions. Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Rate Monotonic Analysis (RMA) τ1 temps τ2 • Remarque 1 : le système se retrouve dans le même état à l’instant 28 qu’à l’instant 0 – Par même état nous entendons même motif d’arrivées des tâches, et comme à l’instant initial, le processeur n’a plus rien à traiter • Observons cela sur un diagramme de charge (ou de demande processeur) de niveau de priorité 1 Charge à traiter temps Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Demande processeur Demande processeur Traitement Point creux Période d’activité temps τ1 τ1 τ1 τ1 τ2 τ1 τ1 τ1 τ1 τ1 τ2 τ2 Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 33 Formule pseudo-polynomiale de calcul de temps de réponse Une tâche τ2 de charge C2 met, au pire, C2 unités de temps à s’exécuter Demande processeur (RBF) Traitement R (1) 13 R ( 2) = C2 + ∑ 2 Cj = C2 + C1 = 14 R2( 2 ) 14 R2(3) = C2 + ∑ Cj = C2 + 4 C1 = 14 2 j∈hp ( i ) T j 4 j∈hp ( i ) Tj R2( 0 ) 10 R2(1) = C2 + ∑ Cj = C2 + C1 = 13 j∈hp ( i ) Tj 4 R2( 0) = C2 = 10 temps τ1 τ1 τ1 τ1 τ2 τ1 τ1 τ1 τ1 τ1 τ2 τ2 Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Calcul de pire temps de réponse • Articles de référence : – M. Joseph and P. Pandya,"Finding response times in real-time system", The Computer Journal, vol. 29(5), pp. 390-395, 1986 • Contexte – Tâches indépendantes à échéance inférieure ou égale à la période pour [JP 86] • Résultats – Soit hp(i) l’ensemble des indices de tâches de priorité supérieure (ou égale) à la priorité de τi, en excluant τi » Par exemple, soient {ττ1, τ2, τ3, τ4} de priorité croissante, hp(2)={3,4} – Le temps de réponse de τi est donné par la charge à traiter plus l’interférence des tâches de priorité supérieure, en démarrant à l’instant critique, car le pire temps de réponse de τi intervient dans la plus longue période d’activité de niveau de priorité prio(ττi), et celle-ci démarre (y compris pour les tâches à échéances arbitraires) à l’instant critique • Application au cas Di≤Ti – Si τi respecte ses échéances, son pire temps de réponse est le plus petit point fixe de la suite RTA Response Time Analysis Ri(0) = Ci Converge si et seulement si U≤1 R ( n) Ri(n+1) = Ci + ∑ i Cj j∈hp(i ) Tj Complexité pseudo-polynomiale Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 35 Types d’approche lors de la validation Modèle du système réel Au choix – surdimensionnement vs passage à l’échelle CNS ou CS Condition (suivant les Méthode Heuristiques suffisante hybrides cas) exacte polynomiale Pseudo- exponentielle polynomiale Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 36 Simulation : un test exponentiel Montée en charge ≤ r+H Taille H = PPCM(périodes) Plus Petit Commun Multiple 1..m borné par 3m Méthode fortement exponentielle Pros : les périodes sont souvent harmoniques/à PGCD important car les concepteurs sont humains Cons : avec l’avènement de l’aide à la conception, pros de moins en moins vrai, anomalies d’ordonnancement Introduction Prios Fixes Prios Dyn. Offsets Conclusion
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 37 Facteurs pratiques Exclusion mutuelle Communications / contraintes de précédence entre les tâches Suspension Réveils de tâches liés Incertitude sur les dates d’activation des tâches Durées non modélisables par WCET Système réel Modèles probabilistes Modèles la plupart du temps Etc. Système réel pire cas Modèle du système réel Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 38 Exemple : exclusion mutuelle Tâche A x 0 Tâche B x++ x++ Election de A Transférer X dans registre R R 0 Préemption par B (sauvegarde du contexte de A dans son BCP) BCPA … Transférer X dans registre R R 0 R=0 CO Incrémenter le registre R R 1 Transférer le registre R dans X x 1 Election de A (restauration du contexte de A à partir de son BCP) R 0 Incrémenter le registre R R 1 Transférer le registre R dans X x 1 Mécanisme d’exclusion mutuelle (sémaphore, moniteur) Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Anomalie d’ordonnancement • Lorsque des ressources critiques sont en jeu, il faut prendre en compte le problème de l’exclusion mutuelle – Problèmes possibles » Interblocage (dîner des philosophes) Utilisation de la ressource R » Inversion de priorité (voir plus loin) » Anomalies d’ordonnancement τ1 temps τ2 τ3 C3=6 => cela fonctionne sur la simulation La tâche est bloquée lors de l’accès à la ressource, τ1 c’est normal, cela s’appelle un blocage (direct) temps τ2 τ3 C3=5 => violation d’échéance, c’est une anomalie d’ordonnancement Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Inversion de priorité • Une inversion de priorité a lieu lorsqu’une tâche se voit retarder par une tâche de priorité inférieure, alors qu’elle ne partage pas de ressource directement avec cette tâche Utilisation de la ressource R τ1 temps τ2 τ3 Inversions de priorité : τ2 s’exécute alors que τ1 est bloquée, pourtant ce n’est pas τ2 qui détient la ressource bloquant τ1 blocage héritage τ1 temps τ2 Libération R => retour au niveau de priorité initiale τ3 Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 41 Exemple d’inversion de priorité Mission Mars Pathfinder (1997) Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Protocole à Priorité Héritée • Article de référence : – L. Sha, R. Rajkumar and J.P. Lehoczky,"Priority inheritance protocols : an approach to real-time synchronization", IEEE Transactions on Computers, vol. 39n. 9, 1990, pp. 1175-1185 • Contexte – Algorithmes à priorités fixes • Nom – Protocole à priorité héritée (PPH) ou Priority Inheritance Protocol (PIP) • Principe – Lorsqu’une tâche τi est bloquée pour accéder à une ressource R, la tâche τj détenant R hérite de la priorité de τi pendant la durée de sa section critique sur R • Résultats – Supprime toute inversion de priorité • Effets de bord – Même une tâche n’utilisant pas de ressource peut subir un blocage indirect de la part d’une tâche de priorité inférieure τ1 temps τ2 τ3 Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Etude du Protocole à Priorité Héritée • Inconvénients – Ne supprime pas l’interblocage – Si une tâche utilise plusieurs ressources, elle peut être bloquée à chaque entrée en section critique – Complexe à implémenter • Implémentation – Lorsqu’une tâche est en section critique, son niveau de priorité peut être augmenté lorsqu’elle est en attente du processeur ou bloquée par une instruction de type prendre(ressource) sur une ressource qu’elle détient. Pendant son exécution, plusieurs tâches peuvent augmenter sa priorité τi La priorité retombe à prio(τj) Héritage de prio(τj) à cause de R1 Héritage de prio(τk) à cause de R2 Héritage de prio(τm) à cause de R2 Utilisation de R1 Utilisation de R2 Utilisation de R1 et R2 Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Etude du Protocole à Priorité Héritée τ1 temps τ2 τ3 Héritage de priorité Utilisation de R1 • Une tâche peut être bloquée par une section critique pour Utilisation de R2 chaque ressource – Blocage direct ou indirect Utilisation de R1 et R2 • La durée de blocage Bi d’une tâche due aux sections critiques du système est la durée pendant laquelle une Note: on suppose que τ1 tâche peut être bloquée (de façon directe ou indirecte) par fait P(S2);P(S1) une tâche de priorité inférieure • Pour PIP Bi = ∑ max∀j∈lp(i ) (durée SCj( R)) ∀ressourceR – lp(i) ensemble des indices de plus petite priorité que τi – Durée SCi(R) : durée maximale de section critique de τi sur R • Dans l’exemple, B1 = 5, B2=3, B3 = 0 Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Etude du Protocole à Priorité Héritée • S’il y avait une tâche de priorité intermédiaire située entre τ1 et τ2, même si elle n’utilisait pas de ressource, son Bi serait de 5 (durée SC3(R1)+durée SC2(R2)) car elle peut subir un blocage indirect dû à τ1 • Si il y avait une tâche de priorité supérieure à celle de τ1, en appliquant la formule proposée, son Bi serait de max{durée SC3(R1),durée SC1(R1)}+max{durée SC2(R2),durée SC1(R2)}=5 – Cependant, il est évident que la formule donnée est pessimiste dans ce cas, car cette tâche ne pourrait en aucun cas subir un blocage indirect, pourquoi ? • La formule devrait prendre en compte le fait qu’on ne prend en compte que les ressources utilisées par au moins une tâche de priorité supérieure à la tâche dont on calcule le Bi Bi = ∑max ∀j∈lp(i ) (durée SCj (R)) ∀ressourceR utilisée par une tâche de hp(i ) • En fait, les formules de calcul du pire temps de réponse sont Ri(0) = Bi + Ci Ri(0) (k ) = Bi + kCi Ri(n) ( n+1) Ri(n) (k ) R ( n+1) = Bi + Ci + ∑ R (k ) = Bi + kCi + ∑ Cj i Cj i j∈hp(i ) Tj j∈hp(i ) Tj Pour Di≤Ti TRi, k = Ri(*) (k ) − Ti(k −1) Pour des échéances arbitraires Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Etude du Protocole à Priorité Héritée • Pourquoi ne considère-t-on qu’une seule fois Bi ? • PIP est implémenté dans peu d’exécutifs (cela est dû au fait que le protocole à priorité plafond est plus avantageux et facile à implémenter) – Ce protocole est cependant implémenté dans VxWorks – L’absence de protocole de gestion de ressources a failli entraîner l’échec de la mission Mars Pathfinder Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Protocole à Priorité Plafond • Article de référence : – L. Sha, R. Rajkumar and J.P. Lehoczky,"Priority inheritance protocols : an approach to real-time synchronization", IEEE Transactions on Computers, vol. 39n. 9, 1990, pp. 1175-1185 • Contexte – Algorithmes à priorités fixes • Nom – Protocole à priorité plafond (PPP) ou Priority Ceiling Protocol (PCP) • Principe – Chaque ressource est munie d’une priorité plafond égale à la plus grande priorité des tâches susceptibles de l’utiliser – Une variable, nommée plafond système, est la priorité plafond maximale des ressources en cours d’utilisation – Une tâche ne peut entrer en section critique (opération Prendre(R)) que si sa priorité est strictement supérieure au plafond système ou si elle détient elle-même le plafond système – Lorsqu’une tâche τi est bloquée pour accéder à une ressource R, la tâche τj détenant R hérite de la priorité de τi pendant la durée de sa section critique sur R • Résultats – Supprime toute inversion de priorité – Une tâche ne peut être bloquée au maximum que par une seule section critique de priorité inférieure par période d’activité – Absence d’interblocage (pourquoi ?) • Effets de bord – Même une tâche n’utilisant pas de ressource peut subir un blocage indirect de la part d’une tâche de priorité inférieure – Une tâche, même si elle est la plus prioritaire des tâches active, peut être bloquée en accédant à un sémaphore même libre : c’est un blocage d’évitement Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Comparaison PPP - PPH PPH τ1 temps τ2 τ3 Héritage de priorité Utilisation de R1 Blocage d’évitement Utilisation de R2 PPP = > 1 blocage max Utilisation de R1 et R2 τ1 temps τ2 τ3 Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Etude du Protocole à Priorité Plafond Bi = max (durée SCj( R)) ∀ressourceR utilisée par une tâchede hp(i ),∀j∈lp ( i ) • Sur l’exemple précédent : B1=max(2,3) ; B2 = max(3) ; B3 = 0 • Les formules de calcul du pire temps de réponse sont les mêmes, sauf que Bi est plus faible qu’avec le PPH Ri(0) = Bi + Ci Ri(0) (k ) = Bi + kCi Ri(n) Ri(n) Ri(n+1) = Bi + Ci + ∑ Cj Ri(n+1) (k ) = Bi + kCi + ∑ Cj j∈hp(i ) Tj j∈hp(i ) Tj Pour Di≤Ti Pour des échéances arbitraires • Problème : implémentation aussi complexe que PPH Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Protocole à Super Priorité ou Priorité Plafond Immédiat • Article de référence : – C. Kaiser,"Exclusion mutuelle et ordonnancement par priorité", Technique et Science Informatiques, vol. 1(1), pp. 59-68, 1982 • Contexte – Algorithmes à priorités fixes • Nom – Protocole à priorité plafond immédiat (PPPI) ou Protocole à Super Priorité ou Stak Based Priority Ceiling Protocol • Principe – Chaque ressource est munie d’une priorité plafond égale à la plus grande priorité des tâches susceptibles de l’utiliser (comme pour PPP) – Une variable, nommée plafond système, est la priorité plafond maximale des ressources en cours d’utilisation (comme pour PPP) – Une tâche ne peut entrer en section critique (opération Prendre(R)) que si sa priorité est strictement supérieure au plafond système ou si elle détient elle-même le plafond système (comme pour PPP) – Lorsqu’une tâche τi entre en section critique, elle hérite pendant toute la section critique de la priorité plafond de la ressource • Résultats – Mêmes propriétés que le protocole à priorité plafond, en effet même si le comportement peut être différent, le calcul du facteur de blocage est identique – Implémentation très simple » Il en résulte que ce protocole est implémenté sur la plupart des exécutifs (norme POSIX, norme OSEK/VDX) et en Ada » Etrangement, il n’est pas proposé par VxWorks Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Protocole à Super Priorité ou Priorité Plafond Immédiat Héritage de priorité Utilisation de R1 Utilisation de R2 PPP = > 1 blocage max Utilisation de R1 et R2 τ1 temps τ2 τ3 Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 52 Ordonnancement et exclusion mutuelle Problème NP-difficile Aucun algorithme non clairvoyant n’est optimal τ1 τ2 Mais on peut appliquer une condition suffisante de la RTA Ri(0) = Ci ( n+1) Ri(n) R i = Ci + ∑ Cj j∈hp(i ) Tj Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 53 Validation temporelle dans l’industrie Les RTOS off-the-shelf proposent Ordonnancement à priorités fixes Protocole à priorités plafond immédiat Les méthodes de validation se trouvent en fin de cycle de vie Basées sur la RMA S’appuie sur des méthodes des années 90 Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 54 Enjeux actuels Diminuer les surdimensionnements Mieux utiliser les ressources Aider les concepteurs tout au long du cycle de développement à concevoir un système qui SERA valide temporellement Savoir combiner vue fonctionnelle et opérationnelle S’adapter aux nouveaux supports physiques d’exécution Etc. Avec des méthodes qui passent à l’échelle pour des applications de taille importante Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 55 Introduction Enjeux industriels DiminuerSurdimensionnement le surdimensionnement Cycle de développement Enjeux industriels de demain Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers Fonctionnement non périodique Tâches sporadiques Tâches périodiques Processeur Tâches apériodiques Traitement meilleur effort Rejet Tâches sporadiques Test D’acceptation Tâches périodiques Processeur Tâches apériodiques Traitement meilleur effort Introduction Enjeux Dimension Cycle de dévt Demain
Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 57 Fonctionnement non périodique « Serveurs » d’apériodiques, étudiés dans les années 90 Certains RTOS (norme Ada 1995 et 2005 par exemple, ou POSIX 1003.1) proposent de tels serveurs Introduction Enjeux Dimension Cycle de dévt Demain Laboratoire d'Informatique Scientifique et Industrielle - École Nationale Supérieure de Mécanique et d'Aérotechnique – Université de Poitiers 58 Types de contraintes Contraintes strictes Contraintes fermes Modèles stochastiques QoS
Vous pouvez aussi lire