Détection de problèmes dans les systèmes temps réel par l'analyse de traces

Mathieu Côté

Mémoire de maîtrise (2015)

Accéder à ce document
Disponible
Libre accès au texte intégral dans PolyPublie
Texte Texte • 2MB •

Résumé

Les systèmes temps réel ont la particularité de devoir respecter des contraintes de temps. Ils sont donc difficiles à observer correctement puisqu'il faut éviter de venir perturber leur exécution. Dans cette situation, le traçage peut s'avérer essentiel. Cela consiste à collecter de l'information lors de l'exécution d'un système avec un impact minimal. Puisque les traces produites contiennent beaucoup de données, il est ensuite nécessaire d'extraire l'information pertinente à l'aide d'outils appropriés. Dans cette optique, l'objectif du présent travail consiste à améliorer la détection de problèmes dans les systèmes temps réel en développant un outil d'analyse de traces spécialisé pour ces systèmes. La nouvelle approche proposée consiste à permettre aux développeurs de définir le modèle de la tâche temps réel qu'ils souhaitent analyser. Puisque les tâches temps réel se produisent de manière répétitive, l'idée est de récupérer les segments de traces correspondants aux différentes exécutions de la tâche. Il est ensuite possible de comparer ces exécutions entre elles et d'analyser plus en profondeur celles qui semblent problématiques. Pour définir le modèle d'une tâche temps réel, nous avons conçu une interface graphique permettant de spécifier les événements de la trace définissant une exécution. Comme cela peut s'avérer complexe, nous fournissons également des suggestions pertinentes. Pour ce faire, nous avons d'abord comparé différents algorithmes de reconnaissance de patrons. Puis, nous avons adapté celui qui semblait le plus prometteur pour qu'il fonctionne efficacement avec des traces d'exécution. Nous pouvons ainsi présenter les groupes d'événements qui semblent faire partie de tâches récurrentes. L'utilisateur peut ensuite choisir un des groupes pour qu'il forme la base du modèle d'exécution et l'éditer si nécessaire. Une fois le modèle défini, nous cherchons dans la trace toutes les correspondances. Nous utilisons à cet effet des machines à état permettant de repérer les occurrences en effectuant une seule lecture des événements. Nous avons ensuite observé le fonctionnement des différents outils de visualisation de traces afin de sélectionner les meilleures représentations et de les améliorer en fonction de notre cas. Nous avons donc conçu un ensemble de vues permettant d'afficher les exécutions et de les comparer entre elles. Ensuite, nous avons répertorié les principaux problèmes dans les systèmes temps réel. Nous avons également cherché des métriques pertinentes à collecter afin de repérer la présence de ces problèmes dans une exécution. En présentant des analyses spécifiques à certains problèmes et de l'information utile, nous sommes en mesure d'aider les développeurs à trouver pourquoi certaines exécutions présentent des anomalies. Ainsi, notre contribution principale consiste à détecter les inversions de priorité en combinant l'analyse du chemin critique d'une tâche avec les informations d'ordonnancement. Nous avons finalement validé notre approche à partir de résultats expérimentaux. Nous avons ainsi pu détecter la source de latences inexpliquées dans des applications industrielles de manière très efficace.

Programme:
Génie informatique
Directeurs ou directrices:
Adresse URL de PolyPublie:
Université/École:
École Polytechnique de Montréal
OAI:
oai:publications.polymtl.ca:1917
ORCID
Date du dépôt:
15 déc. 2015 16:28
Dernière modification:
14 oct. 2026 10:38
Citer en APA 7:
Côté, M. (2015). Détection de problèmes dans les systèmes temps réel par l'analyse de traces [Mémoire de maîtrise, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/1917/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document
Afficher document