Modélisation d’un ordonnanceur et visualisation d’une exécution concurrente

Encadrants : 

Occurrences : 

2017

Nombre d'étudiants minimum: 

3

Nombre d'étudiants maximum: 

5

Nombre d'instances : 

1

Le développement d’applications concurrentes sur processeur multi-cœurs est rendu difficile en raison du manque de visibilité sur l’activité réelle du système et dans le cas d’un développement en C, par le manque de bibliothèques avancées. On se propose de développer un environnement de visualisation de l’activité du système. Pour cela, on modélisera la consommation de temps d’exécution sur un cœur afin de capturer les principaux événements d’exécution et de les représenter graphiquement. Par la suite, on exploitera cet environnement pour développer et mettre au point des bibliothèques avancées de concurrence.

Pour modéliser la consommation de temps d’exécution, on émulera les cœurs du processeur et leurs ordonnanceurs à l’aide de la bibliothèque de concurrence C/POSIX. Les décisions d’ordonnancement seront enregistrées soit dans un fichier soit auprès d’une autre application. On implantera les politiques FIFO et par priorité.

Pour visualiser le comportement du processeur multi-coeurs, on développera une application graphique Java. Elle prendra en entrée des événements stockées sous forme de données dans un fichier et elle rejouera le scénario a posteriori. Elle pourra également récupérer les événements en direct à l’aide de communication par réseau (sockets).

Pour évaluer le résultat, on implantera un cas d’étude. On pourra choisir une application quelconque sachant que l’encadrant peut fournir des applications temps réel de navigation dont le comportement est connu à l’avance. On pourra également développer des bibliothèques de Java que l’on développera en C et avec cet environnement valider leur bon fonctionnement.