Reducing trace size in multimedia applications endurance tests.
Réduction a la volée du volume des traces d' exécution pour l'analyse d'applications multimédia de systemes embarqués
Résumé
The consumer electronics market is dominated by embedded systems due to their ever-increasing processing
power and the large number of functionnalities they offer. To provide such features, architectures of embedded
systems have increased in complexity : they rely on several heterogeneous processing units, and allow
concurrent tasks execution. This complexity degrades the programmability of embedded system architectures
and makes application execution difficult to understand on such systems. The most used approach
for analyzing application execution on embedded systems consists in capturing execution traces (event sequences,
such as system call invocations or context switch, generated during application execution). This approach is used in
application testing, debugging or profiling. However in some use cases, execution traces generated can be very
large, up to several hundreds of gigabytes. For example endurance tests, which are tests consisting in tracing
execution of an application on an embedded system during long periods, from several hours to several days.
Current tools and methods for analyzing execution traces are not designed to handle such amounts of data.
We propose an approach for monitoring an application execution by analyzing traces on the fly in order to
reduce the volume of recorded trace. Our approach is based on features of multimedia applications which
contribute the most to the success of popular devices such as set-top boxes or smartphones. This approach
consists in identifying automatically the suspicious periods of an application execution in order to record
only the parts of traces which correspond to these periods. The proposed approach consists of two steps :
a learning step which discovers regular behaviors of an application from its execution trace, and an anomaly
detection step which identifies behaviors deviating from the regular ones.
The many experiments, performed on synthetic and real-life datasets, show that our approach reduces the
trace size by an order of magnitude while maintaining a good performance in detecting suspicious behaviors.
Le marché de l’électronique grand public est dominé par les systèmes embarqués du fait de leur puissance
de calcul toujours croissante et des nombreuses fonctionnalités qu’ils proposent. Pour procurer de telles
caractéristiques, les architectures des systèmes embarqués sont devenues de plus en plus complexes (pluralité
et hétérogénéité des unités de traitements, exécution concurrente des tâches, ...). Cette complexité a
fortement influencé leur programmabilité au point où rendre difficile la compréhension de l’exécution d’une
application sur ces architectures. L’approche la plus utilisée actuellement pour l’analyse de l’exécution des
applications sur les systèmes embarqués est la capture des traces d’exécution (séquences d’événements,
tels que les appels systèmes ou les changements de contexte, générés pendant l’exécution des applications).
Cette approche est utilisée lors des activités de test, débogage ou de profilage des applications. Toutefois,
suivant certains cas d’utilisation, les traces d’exécution générées peuvent devenir très volumineuses, de
l’ordre de plusieurs centaines de gigaoctets. C’est le cas des tests d’endurance ou encore des tests de
validation, qui consistent à tracer l’exécution d’une application sur un système embarqué pendant de longues
périodes, allant de plusieurs heures à plusieurs jours. Les outils et méthodes d’analyse de traces d’exécution
actuels ne sont pas conçus pour traiter de telles quantités de données.
Nous proposons une approche de réduction du volume de trace enregistrée à travers une analyse à la volée
de la trace durant sa capture. Notre approche repose sur les spécificités des applications multimédia, qui
sont parmi les plus importantes pour le succès des dispositifs populaires comme les Set-top boxes ou les
smartphones. Notre approche a pour but de détecter automatiquement les fragments (périodes) suspectes de
l’exécution d’une application afin de n’enregistrer que les parties de la trace correspondant à ces périodes
d’activités. L’approche que nous proposons comporte deux étapes : une étape d’apprentissage qui consiste
à découvrir les comportements réguliers de l’application à partir de la trace d’exécution, et une étape de
détection d’anomalies qui consiste à identifier les comportements déviant des comportements réguliers.
Les nombreuses expériences, réalisées sur des données synthétiques et des données réelles, montrent que
notre approche permet d’obtenir une réduction du volume de trace enregistrée d’un ordre de grandeur avec
d’excellentes performances de détection des comportements suspects.
Loading...