La validation des systèmes est un des aspects critiques dans les phases de développement. Cette validation est d'autant plus importante pour les systèmes embarqués, dont le fonctionnement doit être autonome, mais aussi contraint par des limitations physiques et techniques. Avec la complexification des systèmes embarqués ces dernières années, l'applications de méthodes de validation durant le développement devient trop couteux, et la mise en place de mécanismes de vérification post-conception est nécessaire. L'utilisation de traces d'exécution, permettant de capturer le comportement du système lors de son exécution, se révèle efficace pour la compréhension et la validation des systèmes observés. Cependant, les outils d'exploitation de traces actuels se confrontent à deux défis majeurs, à savoir, la gestion de traces pouvant atteindre des tailles considérables, et l'extraction de mesures pertinentes à partir des informations bas-niveau contenues dans ces traces. Dans cette thèse, faite dans le cadre du projet FUI SoC-TRACE, nous présentons trois contributions. La première concerne la définition d'un format générique pour la représentation des traces d'exécution, enrichi en sémantique. La seconde concerne une infrastructure d'analyse utilisant des mécanismes de workflow permettant l'analyse générique et automatique de traces d'exécution. Cette infrastructure répond au problème de gestion des traces de tailles considérables textit{via} des mécanismes de streaming, permet la création d'analyses modulaires et configurables, ainsi qu'un enchainement automatique des traitements. Notre troisième contribution propose une méthode générique pour l'analyse de performances de systèmes Linux. Cette contribution propose à la fois la méthode et les outils de collecte de traces, mais aussi le workflow permettant d'obtenir des profils unifiés pour les traces capturées. La validation de nos propositions ont été faites d'une part sur des traces issues de cas d'usages proposés par STMicroelectronics, partenaire du projet, et d'autre part sur des traces issues de programmes de benchmarks. L'utilisation d'un format enrichi en sémantique a permis de mettre en évidence des anomalies d'exécutions, et ce de manière semi-automatique. L'utilisation de mécanismes de streaming au sein de notre infrastructure nous a permis de traiter des traces de plusieurs centaines de gigaoctets. Enfin, notre méthode d'analyse générique nous a permis de mettre en évidence, de manière automatique et sans connaissances a priori des programmes, le fonctionnement interne de ces différents benchmarks. La généricité de nos solutions a permis d'observer le comportement de programmes similaires sur des plates-formes et des architectures différentes, et d'en montrer leur impact sur les exécutions. / Validation process is a critical aspect of systems development. This process is a major concern for embedded systems, to assess their autonomous behavior, led by technical and physical constraints. The growth of embedded systems complexity during last years prevents the use of complex and costly development processes such as formal methods. Thus, post-conception validations must be applied. Execution traces are effective for validation and understanding as they allow the capture of systems behavior during their executions. However, trace analysis tools face two major challenges. First, the management of huge execution traces. Second, the ability to retrieve relevant metrics, from the low-level information the trace contains. This thesis was done as part of the SoC-TRACE projet, and presents three contributions. Our first contribution is a definition of a generic execution trace format that expresses semantics. Our second contribution is a workflow-based infrastructure for generic and automatic trace analysis. This infrastructure addresses the problem of huge traces management using streaming mechanisms. It allows modular and configurable analyses, as well as automatic analyses execution. Our third contribution is about the definition of a generic performance analyses for Linux systems. This contribution provides methods and tools for trace recording, and also analysis workflow to obtain unified performance profiles. We validate our contributions on traces from use cases given by STMicroelectronics, partner of the project, and also on traces recorded from benchmarks executions. Our trace format with semantics allowed us to automatically bring out execution problems. Using streaming mechanisms, we have been able to analyze traces that can reach several hundreds of gigabytes. Our generic analysis method for systems let us to automatically highlight, without any prior knowledge, internal behavior of benchmark programs. Our generic solutions point out a similar execution behavior of benchmarks on different machines and architectures, and showed their impact on the execution.
Identifer | oai:union.ndltd.org:theses.fr/2017GREAM001 |
Date | 13 January 2017 |
Creators | Martin, Alexis |
Contributors | Grenoble Alpes, Marangozova, Vania |
Source Sets | Dépôt national des thèses électroniques françaises |
Language | French |
Detected Language | French |
Type | Electronic Thesis or Dissertation, Text |
Page generated in 0.0024 seconds