Oleg Iegorov - Une approche de fouille de données pour le débogage temporel des applications embarquées de streaming

12:00
Friday
8
Apr
2016
Organized by: 
Oleg Iegorov
Speaker: 
Oleg Iegorov
Teams: 

 

Lieu de soutenance :  salle F320 de l'UFR IMAG (60 rue de la Chimie, 38400 Saint-Martin-d'Hères)

 

Membres du jury :

  • Jean-François Mehaut (UGA/LIG) - Directeur de thèse
  • Miguel Santana (STMicroelectronics) - Co-directeur de thèse
  • Alexandre Termier (IRISA) - Co-encadrant de thèse
  • Vincent Leroy (UGA/LIG) - Co-encadrant de thèse
  • Sebastian Fischmeister (University of Waterloo) - Rapporteur
  • Maguelonne Teisseire (IRSTEA) - Rapporteur
  • Marc Plantevit (Université de Lyon 1) - Examinateur
  • Raymond Namyst (Université de Bordeaux) - Examinateur et président du jury
 

Le débogage des applications de streaming qui s'exécutent sur les systèmes embarqués multimédia est l'un des domaines les plus exigeants dans le développement de logiciel embarqué. Les nouvelles générations de matériel embarqué introduisent de nouvelles systèmes sur une puce, qui fait que les développeurs du logiciel doivent adapter leurs logiciels aux nouvelles plateformes. Le logiciel embarqué doit non seulement fournir des résultats corrects mais aussi le faire en temps réel afin de respecter les propriétés de qualité de service (Quality-of-Service, QoS) du système. Lorsque les propriétés QoS ne sont pas respectées, des bugs temporels font leur apparition. Ces bugs se manifestent comme, par exemple, des glitches dans le flux vidéo ou des craquements dans le flux audio. Le débogage temporel est en général difficile à effectuer car les bugs temporels n'ont pas souvent de rapport avec l'exactitude fonctionnelle du code des applications, ce qui rend les outils de débogage traditionnels, comme GDB, peu utiles.  Le non-respect des propriétés QoS peut provenir des interactions entre les applications, ou entre les applications et les processus systèmes. Par  conséquent, le contexte d'exécution entier doit être pris en compte pour le débogage temporel. Les avancements récents en collecte des traces d'exécution permettent aux développeurs de recueillir des traces et de les analyser après la fin d'exécution pour comprendre quelle activité système est responsable des bugs temporels. Cependant, les traces d'exécution ont une taille conséquente, ce qui demande aux développeurs des connaissances en analyse de données qu'ils n’ont souvent pas.

 
Dans cette thèse, nous proposons SATM - une approche novatrice pour le débogage temporel des applications de streaming. SATM repose sur la prémisse que les applications sont conçues avec le modèle dataflow, i.e. peuvent être représentées comme un graphe orienté où les données sont transmises entre des unités de calcul (fonctions, modules, etc.) appelées "acteurs". Les acteurs doivent être exécutés de manière périodique afin de respecter les propriétés QoS représentées par les contraintes de temps-réel. Nous montrons qu'un acteur qui ne respecte pas de façon répétée sa période pendant l'exécution de l'application cause la violation des contraintes temps-réel de l'application. En pratique, SATM est un workflow d'analyse de données venant des traces d'exécution qui combine des mesures statistiques avec des algorithmes de fouille de données. SATM fournit une méthode automatique du débogage temporel des applications de streaming. Notre approche prend en entrée une trace d'exécution d'une application ayant une QoS basse ainsi qu'une liste de ses acteurs, et tout d'abord détecte des invocations des acteurs dans la trace. SATM découvre ensuite les périodes des acteurs ainsi que les sections de la trace où la période n'a pas été respectée. Enfin, ces sections sont analysées afin d'extraire des motifs de l'activité système qui différencient ces sections des autres sections de la trace. De tels motifs peuvent donner des indices sur l'origine du problème temporel dans le système et sont rendus au développeur. Plus précisément, nous représentons ces motifs comme des séquences contrastes minimales et nous étudions des différentes solutions pour fouiller ce type de motifs à partir des traces d'exécution.
 
Enfin, nous montrons la capacité de SATM de détecter une perturbation temporelle injectée artificiellement dans un framework multimédia GStreamer, ainsi que des bugs temporels dans deux cas d'utilisation des applications de streaming industrielles provenant de la société STMicroelectronics. Nous fournissons également une analyse détaillée des algorithmes de fouille de motifs séquentiels appliqués sur les données venant des traces d'exécution, et nous expliquons pour quelle est la raison les algorithmes de pointe n'arrivent pas à fouiller les motifs séquentiels à partir des traces d'exécution de façon efficace.