Projet Reflecs

previous up next contents
Précédent : Grands domaines d'application Remonter : Projet REFLECS, Génie système et Suivant : Résultats nouveaux



Logiciels

Nous avons réalisé un modèle de simulation pour un algorithme d'ordonnancement de tâches dans les systèmes distribués temps réel. Ces systèmes sont composés de clients et de serveurs interconnectés par un réseau de communication. Les clients reçoivent des stimulis générés par l'environnement et déclenchent en conséquence des demandes d'activation de tâches applicatives qui accèdent à des objets partagés modifiables gérés par les serveurs. Chaque tâche doit se terminer avant une échéance stricte. De plus, tout ordonnancement doit garantir la sérialisabilité des tâches.

Chaque tâche est modélisée sous forme d'un graphe orienté fini d'actions représentant les synchronisations entre ces actions. Une action s'exécute entièrement sur un même serveur.

La solution que nous avons simulée est basée sur un ordonnancement périodique prédéfini des demandes d'activation de tâches, ces demandes ayant été préalablement diffusées aux serveurs par un protocole de diffusion fiable avec temps de réponse garanti. Cette solution garantit la sérialisabilité des tâches puisque tous les serveurs exécutent les tâches dans le même ordre.

En raison de la complexité du problème, nous avons besoin d'un outil de simulation événementiel indispensable pour l'étude du fonctionnement réel du système. La réalisation de ce simulateur est présentée dans le §.5.1 et son utilisation est présentée dans le §.5.2. Ce simulateur nous permet d'identifier les facteurs ayant un impact sur les instants de fin d'exécution des tâches sur les serveurs et de comparer les instants de libération des serveurs dans différents scénarios. Un scénario est défini par les instants de demande d'activation des tâches qui le composent.

Réalisation et validation

Le modèle de simulation que nous avons réalisé s'exécute sur le simulateur événementiel XSim développé par la société Axlog. Nous avons codé le modèle en C++, en créant des objets réutilisables. La modularité ainsi obtenue est importante car ce modèle pourra évoluer dans le futur (évolution du problème ou de la solution).

Pour valider notre modèle de simulation, nous avons réalisé un programme qui calcule en algèbre (max, +) les instants de terminaison de l'exécution des tâches sur chaque serveur. Nous avons donc comparé pour un scénario d'un jeu de tâches représentatif les résultats obtenus par simulation avec les résultats donnés par le programme de calcul matriciel en algèbre (max, +).

Présentation

Avant de lancer la simulation, l'utilisateur doit saisir les paramètres du scénario et du jeu de tâches étudié. Une interface graphique lui permet de paramétrer le modèle simulé. Elle est organisée avec des modèles respectant une hiérarchie descendante. Un modèle est associé à chaque objet interne de la simulation (ex: réseau de communication, tâches, ordonnancement). Lors de la configuration, une fenêtre graphique, propre à chaque modèle, apparaît pour chaque nouvelle instance de l'objet associé et permet de le configurer. Cette interface permet donc de paramétrer le réseau de communication, l'algorithme d'ordonnancement, les tâches et leurs instants de demande d'activation.


   Figure: Vecteurs de libération des serveurs


Les résultats d'une simulation sont présentés sous forme de schémas et générés en utilisant deux moyens. Certains graphiques sont obtenus grâce aux outils proposés par l'outil XSim: courbes d'états des serveurs (occupé, attente de synchronisations, oisif), graphiques représentant le nombre de tâches en attente sur chaque serveur. D'autres résultats sont stockés dans des fichiers textes et sont traités ultérieurement pour obtenir des courbes sous l'outil de calcul formel MAPLE. Ces courbes permettent de visualiser l'exécution des actions sur les serveurs et les instants de terminaison d'exécution des tâches (cf. Fig.1 où chaque tâche est représentée par un niveau de gris).



previous up next contents Précédent : Grands domaines d'application Remonter : Projet REFLECS, Génie système et Suivant : Résultats nouveaux