Temps réel (suite)

Deux approches existent :
1. examiner en détail le code machine des tâches
2. évaluer les temps d'exécution par exécution du code. 
Cependant, il existe une grande variabilité des durées d’exécution estimées qui conduit à considérer des tests de faisabilité souvent pessimistes.

Le but de cette recherche est de concevoir un système temps réel basé sur une architecture ouverte, indépendante du matériel. L'utilisation par exemple d'une machine virtuelle JAVA permet cette indépendance. La notion de temps réel pour de tels systèmes peut paraître délicate. Dans ce contexte, les temps d'exécution pire cas varient d’une plateforme à une autre. Pour le temps réel la norme RTSJ précise les fonctionnalités importantes qui doivent exister sans décrire comment les réaliser.
La conception d'un système temps réel dans un tel contexte nécessite donc des techniques basées sur des mécanismes de faisabilité pouvant tolérer une certaine incertitude sur les estimations des temps d'exécution pire cas incluant des mécanismes de tolérance aux fautes.  Les solutions proposées doivent êtres validées par une implantation dans le cadre d'un système temps réel ouvert de type machine virtuelle compatible avec la norme RTSJ.
Les différentes solutions proposées ont fait l’objet d’une implantation ayant pour but l’estimation des performances du mécanisme d’Allowance. Nous avons ainsi développé un simulateur temps réel (RTFSim) qui permet de tester toutes les propositions de prise en compte de l’Allowance.

Notre simulateur, nommé RTFSim, pour «Real-Time Faults Simulator», a pour fonction : les opérations de base telles que le calcul des temps de réponse et test de faisabilité pour un ensemble de tâches pour un ordonnancement à priorité fixe ou dynamique (EDF).
De plus, le simulateur donne la possibilité de simuler des exécutions d’un ensemble de tâches en graphes ou indépendantes. Pour chaque exécution, on peut générer un ou plusieurs modèles de fautes, la solution adoptée en cas de fautes et les différents paramètres d’une simulation : durée, type d’ordonnancement, modèle de tâches.... 
Les caractéristiques de chaque simulation peuvent être sauvegardées dans des fichiers externes, pour reproduire et visualiser les résultats à tout moment.
Le modèle des tâches (nombre de tâches, modèle d’arrivée, priorité, …) est sauvegardé dans un fichier .tpe, le modèle des fautes (type de faute, pourcentage de dépassement, nombre de tâches fautives…) dans un fichier .sce et les différents paramètres du test (durée, solution adoptée,…) dans un fichier .psi. A la fin de la simulation, les statistiques des tests (nombre activations, nombre de fautes, nombre de défaillances, ..) sont sauvegardées dans un fichier statistiques.xls, le déroulement de la simulation dans un fichier .sim et les courbes dans un fichier .grf.
Chaque simulation nécessite la définition d’un modèle de tâches, la génération des scénarii d’exécutions pour chaque tâche et la détermination des caractéristiques des tests.
Les simulations se porteront sur les solutions adoptées pour la robustesse temporelle dans le cas d’un ordonnancement à priorité fixe (FP/HPF) ou à priorité dynamique (EDF). Toutes les solutions basées sur la notion d’Allowance sont intégrées dans le simulateur : Budget, LET statique, LET dynamique et l’Allowance par cost overrun.
Le simulateur propose aussi, l’adaptation de l’Allowance en fonction du modèle de fautes. Dans ce cas, lorsqu’une tâche provoque des fautes permanentes de terminaison au plus tôt par exemple, le simulateur peut automatiq uement lui reprendre les ressources supplémentaires réservées auparavant pour les redistribuer sur les autres tâches.
En cours d’exécution, le simulateur sauvegarde le déroulement des simulations sous forme d ’év ènements : activations, fins d’exécutions, fautes, défaillances… 
A partir de ces évènements on peut tracer le graphe d’exécution, ou encore tracer les figures résultats d’une manière dynamique.Exemple de graphe d’exécution dans RTFSim

La figure suivante donne quelques résultats sur une simulation testée sur RTFSim. Elle représente la comparaison entre le taux de la correction des fautes défini par le ratio entre le (nombre de fautes – nombre de défaillances) et (nombre de fautes), les courbes sont données de bas vers le haut comme suit :

  •  la solution Allowance (courbe en bleu),
  • la solution LET dynamique (courbe en vert),
  • la solution de LET statique (courbe en jaune).

L’interface du simulateur RTFSim permet dynamiquement de rajouter d’autres courbes à ce graphe. 

Exemple de résultat de simulation dans RTFSim