Ce projet a été réalisé dans le cadre d'un travail de Maîtrise Informatique au Laboratoire Informatique de Besançon avec un autre étudiant (Stéphane Humblot).

Il devait répondre à 2 objectifs :

  • Le premier objectif était de définir un langage permettant de modéliser un processus sous forme d'un graphe et d'écrire un outil représentant ce graphe en mode graphique.
  • Le deuxième objectif était de générer automatiquement un graphe unique à partir d'un ensemble de graphes communiquant entre eux via des canaux.

Pour le premier objectif, divers expérimentations de représentation de graphes en 2D ont donné des résultats visuels inexploitables (dus essentiellement à la quantité de nœuds par niveau). Pour tenter de palier ce manque, nous avons opté pour l'affichage en 3D avec la possibilité de 'naviguer' à l'intérieur du graphe. L'état des nœuds (boucle infinie, bloquant, ...) permettait de les colorier pour les identifier facilement.

Le deuxième objectif était de générer un graphe utilisant le langage défini dans la première partie à partir de plusieurs graphes modélisant des processus ayant la possibilité de communiquer entre eux via des canaux. Ce nouveau graphe devait contenir l'ensemble des états du processus communiquant (état de chacun des processus et état des canaux) en prenant en compte plusieurs politiques de fonctionnement des canaux (taille limitée ou non, FIFO, FILO ou RANDOM, ...)

  • Responsable de projet : M. Hassan Mountassir
  • Participants :
    M. Humblot Stéphane : Affichage graphique sous Unix
    M. Lesert Aymeric : Algorithmique et programmation
  • Applicatifs :
    Dans l'industrie, recherche d'états bloquants dans un processus de fabrication,
    Dans la recherche, recherche des faiblesses d'une carte mère multiprocesseur ou optimisation des algorithmes de programmation parallèle.
  • Remarque : Lorsque nous avons utilisé l'outil décrit ci-dessus, nous avons constaté quelques formes caractéristiques. En combinant la mécanique des fluides (flux d'informations contenus dans les canaux à un état donné) et des solides (répartition des états dans l'espace), nous pouvions déduire les points critiques du graphe (points de rupture et bouchons).
    Cette remarque n'a pas été plus approfondie.

Exemple de construction d'un processus communicant