Une infrastructure modulaire de simulation pour l’évaluation de performances de systèmes temps-réel David Decotigny Projet ACES Plan de l’exposé Contexte et problématique Critères et méthodes d’évaluation Infrastructure extensible pour l’évaluation de systèmes temps-réel Une extension : famille d’ordonnanceurs personnalisable Expérimentations : mesure de l’influence de la perception du temps Conclusions et perspectives Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 2/35 Introduction (1/3) Systèmes temps-réel Correction fonctionnelle Respect des contraintes temporelles Temps = donnée physique mesurable Contraintes de temps • Échéances temporelles, retard au démarrage maximal, … Types de systèmes temps-réel • Temps-réel strict : garanties strictes • Temps-réel souple : garanties relatives (probabilistes) Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 3/35 Introduction (2/3) Modèle de système Niveau logiciel Application Plusieurs tâches Support d’exécution Gestion de ressources Interaction avec l’environnement Niveau matériel Processeur Environnement Réseau Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 4/35 Introduction (3/3) Notions d’ordonnancement temps-réel Déroulement de l’exécution de l’application Décisions d’arbitrage du processeur Ordonnancement Défini hors-ligne Défini en-ligne À plan dynamique À priorité statique (RM/DM), dynamique (EDF, LLF) Repose sur un modèle de tâche Caractéristiques : loi d’activation, temps d’exécution pire-cas Contraintes de temps Nécessité d’évaluer le comportement et les garanties offertes Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 5/35 Plan de l’exposé Contexte et problématique Critères et méthodes d’évaluation Infrastructure extensible pour l’évaluation de systèmes temps-réel Une extension : famille d’ordonnanceurs personnalisable Expérimentations : mesure de l’influence de la perception du temps Conclusions et perspectives Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 6/35 Critères d’évaluation Verdict d’ordonnançabilité : existence et détermination d’un ordonnancement faisable Temps-réel strict Mesures quantitatives sur le comportement effectif Temps-réel souple ou strict Taux de respect des contraintes temporelles Distribution des retards au démarrage Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 7/35 Méthodes d’évaluation (1/3) Méthodes analytiques Principe En entrée : modèle abstrait + formalisme associé Identifier les configuration(s) possible(s) Objectif Verdict d’ordonnançabilité Caractéristiques stochastiques Intérêts Tôt dans le processus de développement Sûreté Limitations Données en entrée • toutes connues • sûres Modèles simples : risque de non représentativité Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 8/35 Méthodes d’évaluation (2/3) Exécution réelle instrumentée Principe En entrée : implantation complète Mesures quantitatives à l’aide de sondes Objectifs Confronter les mesures aux spécifications Intérêt Représentativité des mesures Limitations Tard dans le processus de développement Résultats non sûrs Sonde : « Effet sonde » Sonde matérielle : surcoût inutile à la fabrication Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 9/35 Méthodes d’évaluation (3/3) Simulation Principe En entrée : modèle abstrait ou concret du système Mesures quantitatives Objectifs Confronter les mesures aux spécifications Intérêts Tôt ou tard dans le preocessus de développement Pas d’effet sonde Limitation Résultats non sûrs Précautions à prendre Pertinence de la simulation sur les modèles concrets Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 10/35 Objectifs Évaluer le comportement temporel de systèmes complexes Permettre les évaluations tout au long du processus de développement Modèles abstraits Modèles concrets / réutilisation de code Choix de la méthode d’évaluation par simulation Précaution : assurer un haut degré de pertinence Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 11/35 Plan de l’exposé Contexte et problématique Critères et méthodes d’évaluation Infrastructure extensible pour l’évaluation de systèmes temps-réel Une extension : famille d’ordonnanceurs personnalisable Expérimentations : mesure de l’influence de la perception du temps Conclusions et perspectives Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 12/35 Ce qu’on attend d’un simulateur Capacités de personnalisation les tâches de l’application les services du support d’exécution l’ordonnanceur et le modèle de tâches associé Pertinence du comportement temporel simulé Prise en compte des durées d’exécution des éléments du système Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 13/35 Limitations des simulateurs existants Simulateurs à événements discrets généraux Difficulté d’assurer la pertinence du comportement temporel simulé Simulation adaptée à un domaine différent Simulateurs d’ordonnancement Capacités de personnalisation limitées Pertinence du comportement temporel simulé limitée Simulateurs de systèmes complets Capacités de personnalisation limitées Priorité aux problèmes de synchronisation Problèmes d’efficacité Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 14/35 Vue d’ensemble du simulateur réalisé (1/3) Artisst is a Real-Time System Simulation Tool Infrastructure modulaire Module central : simulation de système temps-réel Capacités de personnalisation à tous niveaux Fidélité des comportements temporels simulés Précision temporelle de simulation indépendante de la perception du temps par le système Efficacité de simulation Simulation de systèmes distribués Simulation des pertes et altérations de messages sur le réseau Reproduction des dérives d’horloges Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 15/35 Générateur d'événements Analyse statistique Lecteur de traces Chronogramme 168.250000000 168.260000000 168.270000000 168.280000000 168.290000000 168.300000000 168.300000012 168.300000012 168.300000012 INTERRUPT_RAISED INTERRUPT_RAISED INTERRUPT_RAISED INTERRUPT_RAISED INTERRUPT_RAISED INTERRUPT_RAISED INTERRUPT_RAISED INTERRUPT_RAISED INTERRUPT_RAISED Environnement 0 0 0 0 0 0 1 2 3 Système à évaluer Observations Environnement Vue d’ensemble du simulateur (2/3) Enregistreur de traces 168.290000000 INTERRUPT_RAISED 0 168.290000000 SUSPEND_TASK_EXECUTION 0 168.290000000 INTERRUPT_ENTER 0 168.291000001 INTERRUPT_LEAVE 0 168.291000001 RESUME_TASK_EXECUTION 0 168.300000000 INTERRUPT_RAISED 0 168.300000000 SUSPEND_TASK_EXECUTION 0 168.300000000 INTERRUPT_ENTER 0 Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 16/35 Vue d’ensemble du simulateur (3/3) Traitants d’interruptions Tâches Tâche Ordonnanceur Clock ISR Support d’exécution Interruption s Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 17/35 Propriétés du simulateur (1/4) Modularité Circuit personnalisable Enregistreur de traces Modules par défaut personnalisables Autres modules possibles Générateur d'événements Messages 168.290000000 INTERRUPT_RAISED 0 168.290000000 SUSPEND_TASK_EXECUTION 0 168.290000000 INTERRUPT_ENTER 0 168.291000001 INTERRUPT_LEAVE 0 168.291000001 RESUME_TASK_EXECUTION 0 168.300000000 INTERRUPT_RAISED 0 168.300000000 SUSPEND_TASK_EXECUTION 0 168.300000000 INTERRUPT_ENTER 0 Chronogramme Système à évaluer Environnement Analyse statistique Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 18/35 Propriétés du simulateur (2/4) Modularité Possibilité de connecter les systèmes simulés en réseau Diffusion totale sans perte ni délai par un module central Simulation du routage et des pertes/délais à chaque nœud Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 19/35 Propriétés du simulateur (3/4) Personnalisation du système simulé Traitants d’interruptions Tâches Modèle de tâche Tâche 0 ... cur_task = next_task; ... compute_fft(data1, result1); t = spawn_task(task_entry); change_date(); activate_task(); compute_fft(data2, result2); ... ... res->ref++; Take_resource Ordonnanceur Clock ISR API OS Perso spawn_task cancel_task get_date change_date OS basique Interruption s Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 20/35 Propriétés du simulateur (4/4) Fidélité des comportements temporels simulés Traitants d’interruptions Tâches Tâche 0 ... cur_task = next_task; hold_cpu(ms(2)); ... res->ref++; hold_cpu(ms(30)); Take_resource Ordonnanceur API OS Perso Clock ISR compute_fft(data1, result1); hold_cpu(sec(3)); t = spawn_task(task_entry); hold_cpu(sec(2)); compute_fft(data2, result2); hold_cpu(sec(4)); ... spawn_task cancel_task change_date(); activate_task(); hold_cpu(ms(2)); ... get_date change_date OS basique Interruption s Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 21/35 Plan de l’exposé Contexte et problématique Critères et méthodes d’évaluation Infrastructure extensible pour l’évaluation de systèmes temps-réel Une extension : famille d’ordonnanceurs personnalisable Expérimentations : mesure de l’influence de la perception du temps Conclusions et perspectives Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 22/35 Famille d’ordonnanceurs dynamiques (1/3) Introduction Principe général des ordonnanceurs dynamiques Test d’acceptation Sélectionner les tâches à intégrer au système, refuser les autres Ordonnancement Garantir le respect des échéances des tâches acceptées Contexte Aucune tâche garantie hors-ligne Tâches activées Indépendantes Aucune hypothèse sur les lois d’activation Chaque tâche possède une contrainte d’échéance On connaît le temps d’exécution au pire (WCET) de chaque tâche Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 23/35 Famille d’ordonnanceurs dynamiques (2/3) Principe Principe du test d’acceptation Priorités Suppose un ordonnancement à priorité Repose sur le calcul du temps processeur disponible pour chaque tâche Acceptée Refusée Observation : 2 propriétés sur les priorités suffisent Priorités relatives indépendantes du temps Priorités relatives indépendantes de l’insertion et de la suppression de tâches Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 24/35 Famille d’ordonnanceurs dynamiques (3/3) Propriétés de l’approche Unifie une grande partie des algorithmes de garantie à priorité classiques (DM, RM, EDF, … et même Fifo) Généralise une approche systématique pour : Test d’ordonnancement Ordonnancement avec repêchage Ordonnancement avec politiques de rejet Famille d’ordonnanceurs génériques spécialisable par 1, 2 ou 3 fonctions de comparaison des priorités Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 25/35 Plan de l’exposé Contexte et problématique Critères et méthodes d’évaluation Infrastructure extensible pour l’évaluation de systèmes temps-réel Une extension : famille d’ordonnanceurs personnalisable Expérimentations : mesure de l’influence de la perception du temps Conclusions et perspectives Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 26/35 Prise en compte de la granularité d’horloge (1/4) Problématique : perception du temps Mesures exactes des dates et durées Dans les systèmes réels, deux échelles de temps : Dates temps-réel Difficilement accessibles par le système Temps mesuré Hypothèses classiques en ordonnancement Dates « temps-système » internes au système Approximation locale discontinue du temps-réel Temps-réel Prendre cette approximation en compte dans les décisions liées au temps Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 27/35 Prise en compte de la granularité d’horloge (2/4) Règles de prise en compte définies Objectif Conserver la sûreté des tests d’acceptation Se placer dans les cas pessimistes Grandeurs affectées Dates Date de fin de tâche pessimiste Date d’échéance dans l’échelle de temps système Durées Temps d’exécution pire cas restant à exécuter par une tâche Temps non utilisé par une tâche Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 28/35 Prise en compte de la granularité d’horloge (3/4) Évaluation de l’impact : dispositif expérimental Simulation avec Artisst Utilisation des ordonnanceurs dynamiques de la famille présentée Charge synthétique avec durée d’exécution des tâches variable Mesure du taux d’acceptation en fonction de la granularité d’horloge système des paramètres de la charge • Charge individuelle moyenne : ratio • Facteur de recouvrement : ratio WCET / échéance relative échéance relative / délai d’inter-arrivée moyen Sans ou avec coûts système : traitant d’interruption, ordonnanceur, activation de tâche (distribution uniforme sur [0, 0.5ms]) Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 29/35 Prise en compte de la granularité d’horloge (4/4) Évaluation de l’impact : résultats EDF Taux de garantie (%) Taux de garantie (%) 100 EDF Taux de garantie (%) 50 EDF 50 40 50 30 10 40 0.1 0.1 0.4 charge 0.7 100 0.9 0 10 50 granularité (ms) Recouvrement = 1 Sans coûts OS 20 0.1 0.4 charge 0.7 100 50 0.9 0 10 granularité (ms) 0.4 charge 0.7 Recouvrement = 3 Sans coûts OS 0.9 0 10 100 50 granularité (ms) Recouvrement = 3 Avec coûts OS Impact d’autant plus fort que la charge individuelle moyenne est élevée Influence de la charge individuelle moyenne prépondérante Impact d’autant plus faible que la charge globale augmente Coûts OS négligeables à grosse granularité prépondérants quand ils sont comparables à la granularité d’horloge Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 30/35 Plan de l’exposé Contexte et problématique Critères et méthodes d’évaluation Infrastructure extensible pour l’évaluation de systèmes temps-réel Une extension : famille d’ordonnanceurs personnalisable Expérimentations : mesure de l’influence de la perception du temps Conclusions et perspectives Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 31/35 Conclusions et perspectives (1/3) Bilan Infrastructure de simulation Modulaire, personnalisable et extensible Fidélité de prise en compte des coûts d’exécution Décorrélation des échelles de temps-réel et système Famille d’ordonnanceurs à acceptation dynamique Unification des affectations de priorités classiques Algorithmes généraux indépendants des affectations de priorité Règles de prise en compte de la granularité d’horloge système Intégrées dans les ordonnanceurs fournis Impact évalué sur 3 séries de 18 configurations avec Artisst Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 32/35 Conclusions et perspectives (2/3) Disponibilité d’Artisst : licence LGPL 3 types de modules en entrée, 4 types de modules en sortie Module de simulation de systèmes temps-réel bien éprouvé 9 types d’ordonnanceurs temps-réel fournis Validation sur des systèmes centralisés et distribués avec ou sans partage de ressources (aucun protocole d’accès) http://david.decotigny.free.fr/rt/artisst/ (temporaire) Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 33/35 Conclusions et perspectives (3/3) Perspectives Inclure le support des tâches dépendantes en centralisé et distribué Proposer un mécanisme de composition d’ordonnanceurs Approche déjà entamée dans Artisst Évaluer l’influence de l’interface de programmation de différents OS Services de réveil de tâches, … Couvrir tout le processus de développement Récupération automatique du paramètre de hold_cpu() Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 34/35 Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 35/35 Introduction (4/4) Problématique Quand tous les comportements temporels Du système (exécution des tâches, support d’exécution, …) et De ses interactions avec l’environnement (lois d’activations, …) sont totalement caractérisés Il peut exister des conditions de faisabilité associées à un ordonnancement Exemples : Ci 1 (EDF, LLF), Ci n(n 2 1) (RM) i Pi i Pi Sinon : Moins de contraintes moins de garanties Nécessité d’ évaluer le comportement et les garanties offertes Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 36/35 Motivations et objectifs (2/2) Objectifs Proposition d’une infrastructure de simulation Extensible et personnalisable Accent mis sur la pertinence des comportements de l’environnement et du système reproduits Validation de sa faculté de personnalisation Intégration de plusieurs ordonnanceurs / modèles de tâches Proposition d’une famille générique d’ordonnanceurs Utilisation du simulateur pour l’étude de l’influence de la précision de perception du temps sur les décisions d’ordonnancement Établissement de règles analytiques pour sa prise en compte dans les ordonnanceurs réalisés Mesures sur les comportements résultants Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 37/35 Ce qu’on attend d’un simulateur (1/2) Pertinence de la simulation de l’environnement Pouvoir faire interagir le système avec une grande variété de composantes de l’environnement simulé Pertinence de l’évaluation du système Pertinence du modèle simulé Abstrait & concret : facilité de personnalisation des éléments du système • Modèles de tâches, Services du support d’exécution (dont l’ordonnanceur) Concret : rester le plus proche possible de l’implantation concrète • Réutilisation du code de l’implantation Pertinence du comportement temporel simulé Prise en compte des durées d’exécution des éléments du système Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 38/35 Ce qu’on attend d’un simulateur (2/2) Pertinence de simulation par réutilisation de code Tâche T Simulation d’un temps d’occupation du CPU Simulation d’un temps d’occupation du CPU compute_fft(data1, result1); t = spawn_task(task_entry); Simulation d’un temps d’occupation du CPU compute_fft(data2, result2); ... Le processeur est une ressource préemptible : La simulation d’occupation du temps CPU doit tenir compte des préemptions Tâche U Tâche T Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 39/35 Simulateurs existants (1/2) Grandes classes de simulateurs À temps continu Résolution d’équations différentielles À événements discrets Wait(3) 1 2 4 5 Temps simulé Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 40/35 Simulateurs existants (2/2) Limitations Limitation des simulateurs à événements discrets généraux [Csim,ADEVS,OMNET++,Hyperformix workbench,OPNet,QNap] Difficulté à assurer la pertinence du comportement temporel simulé Simulation adaptée à un domaine différent (files d’attentes, …) Limitations des simulateurs d’ordonnancement [PERTS,Simulateur ULB, Retis RTSim/Ghost,Timewiz] Difficulté à assurer la pertinence du modèle simulé Difficulté à assurer la pertinence du comportement temporel simulé Simulation par quanta de temps Limitations des simulateurs de systèmes complets [Rialto,TAPS,OSE Softkernel,VxSim,Carbonkernel,CMU Sew] Difficulté à assurer la pertinence du modèle simulé S’attachent davantage aux problèmes de synchronisation qu’au comportement temporel Problèmes d’efficacité Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 41/35 Caractéristiques du simulateur proposé (4/7) Comportement du matériel et de l’OS basique Gestion des interruptions Notion de priorité Masquage possible : Temporaire, local à la tâche Définitif, global au système simulé Par défaut, le système d’exploitation simulé & l’ordonnanceur sont totalement préemptibles Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 42/35 Caractéristiques du simulateur proposé (3/5) Capacités de personnalisation Temps simulé occupé Ressources utilisées Personnalisabl e Extensible Tâche Statut d’exécution Caractéristiques courantes : Loi d’activation de la tâche, paramètres temporels (WCET) * Contexte d’exécution Modèle de tâche Personnalisabl e Extensible 1 Personnalisabl e Extensible RTOS Ordonnanceur Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel Personnalisabl e Extensible 43/35 Caractéristiques du simulateur proposé (4/5) Ordonnanceurs fournis par défaut 9 familles d’ordonnanceurs par défaut Ordonnanceurs à priorité Garantis hors-ligne : ordonnanceurs classiques du domaine Garantis en-ligne : famille d’ordonnanceurs avec acceptation dynamique, ordonnanceurs par serveurs ou à réquisition de temps libre Autres ordonnanceurs à garantie Au dessus d’une politique à partage de temps Avec fonctionnement en mode dégradé Autres ordonnanceurs sans garantie Ordonnanceurs « au mieux » par prévision des caractéristiques temporelles (boucle de rétroaction) Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 44/35 Famille d’ordonnanceurs dynamiques (3/4) Hypothèse forte : priorités conservatives Priorités Priorités relatives indépendantes du temps Priorités relatives indépendantes de l’insertion et de la suppression de tâches Définition d’un algorithme de garantie paramétrable Fondé sur le calcul du temps processeur disponible pour chaque tâche : • temps résiduel Paramétrable par une fonction de comparaison de priorité conservative • Regroupe les affectations de priorités classiques (EDF, RM/DM, …) Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 45/35 Prise en compte de la granularité d’horloge Règles de prise en compte définies Objectif Conserver la sûreté des tests d’acceptation Se placer dans les cas les plus pessimistes Exemple Échéance relative D = 4 WCET C = 2.5 Date d’échéance pessimiste Date de début au plus tôt D=4 Temps résiduel pessimiste Date de fin pessimiste Date de début au plus tard C = 2.5 Ressources récupérées pessimistes Majorant du temps utilisé ceil(1.2) = 2 Évaluation pessimiste du temps résiduel Minorant du temps utilisé à chaque instant Une infrastructure de simulation pour l’évaluation de performances de systèmes temps-réel 46/35