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 demainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 ConclusionLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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 DemainLaboratoire 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
QoSVous pouvez aussi lire