iv
RÉSUMÉ
Le traçage d’événement a prouvé son efficacité dans l’identification de problèmes de fonc-
tionnalité et de performance. Il peut s’appliquer dans le développement d’applications, de
systèmes d’exploitation et de pilotes matériels. Pour l’appliquer également à des systèmes
distribués, il est possible d’enregistrer des traces individuellement sur chaque noeud puis de
regrouper ces traces lors de l’analyse a posteriori. Il faut alors que les estampilles de temps
associées aux événements soient synchronisées avec fidélité et justesse.
Ce mémoire traite de la synchronisation hors ligne de groupes de traces enregistrées sur
un système distribué. L’objectif est d’identifier un algorithme de synchronisation de trace
précis, qui s’exécute en temps linéaire par rapport au nombre d’événements dans le groupe
de traces, qui garantit l’absence d’inversion de message et qui peut déterminer des bornes
sur la justesse.
Dans l’approche préconisée, le traçage noyau enregistre avec une faible intrusivité des
événements correspondant à l’envoi et la réception de messages réseau. Les relations d’ordre
entre ces événements sont utilisées pour construire une base de temps globale. L’approche se
concentre sur la synchronisation de paires de traces à l’aide de fonctions linéaires de correction
d’horloge. Les paramètres de ces fonctions sont identifiés à l’aide de l’algorithme basé sur la
méthode des enveloppes convexes. Cet algorithme garantit l’absence d’inversion de message
et il a été étendu afin de déterminer des bornes sur la justesse à tout moment lors du traçage.
L’algorithme a été intégré à un outil de visualisation de trace. Son application à des traces
réelles, variées et de grandes tailles révèle que la précision de la synchronisation est favorisée
par l’utilisation d’un réseau à plus faible latence ou d’un débit de message plus élevé. En
contrepartie, une durée de traçage plus longue réduit la précision et fausse la détermination
des bornes de justesse. Cette situation est mise en évidence grâce à l’utilisation de métriques
sur les temps de transfert des messages après synchronisation. L’étude de la performance
de l’algorithme confirme qu’il peut réaliser la synchronisation avec un ordre d’exécution
linéaire. La détermination des bornes de justesse a un comportement quadratique dans le
pire des cas, mais, avec des traces réelles, elle s’exécute en temps presque linéaire. Lors de
nos expériences, nous avons atteint une justesse de ±15 us et une précision estimée à 9 us sur
un réseau comportant une latence minimale estimée à 39 us.
La détermination de bornes sur la justesse de la synchronisation représente une avan-
cée scientifique alors que l’implantation efficace de l’algorithme de synchronisation dans un
système de traçage pratique représente une avancée technique.