<  Back to the Polytechnique Montréal portal

Outils d’analyse de performance de systèmes d’exploitation avec partitionnement spatial et temporel

Guillaume Champagne

Masters thesis (2019)

[img] Restricted to: Repository staff only until 18 November 2020.
Cite this document: Champagne, G. (2019). Outils d’analyse de performance de systèmes d’exploitation avec partitionnement spatial et temporel (Masters thesis, Polytechnique Montréal). Retrieved from https://publications.polymtl.ca/4014/
Show abstract Hide abstract

Abstract

Résumé Dans le domaine de l’avionique commerciale, les systèmes informatisés sont de plus en plus nombreux et complexes. Le partage des ressources devient alors une nécessité afin de limiter leur croissance en masse et en coût. Puisque ces systèmes embarqués évoluent dans un environnement imposant des contraintes temporelles et de sécurité très strictes, les systèmes d’exploitation temps réel utilisés doivent être conçus spécialement pour ces conditions. Dans ce contexte, le standard ARINC 653 définissant le comportement et les interfaces de systèmes avec partitionnement spatial et temporel a été publié. Ces systèmes d’exploitation fournissent les garanties nécessaires au partage des ressources dans un domaine temps réel critique. Lors du développement d’applications sur ce genre de systèmes, les techniques de débogage classiques ne sont pas adaptées pour tous les types de problèmes pouvant survenir. En effet, l’arrêt complet de l’exécution d’un programme temps réel influence trop son comportement pour que la chaîne d’évènements menant au problème recherché soit observable. Par conséquent, l’enregistrement d’informations durant l’exécution pour une analyse a posteriori est une méthode avantageuse pour ce type de situation. Le traçage est une technique qui permet aussi de récupérer l’information sur le temps d’exécution de certaines composantes, ce qui peut être utile pour la caractérisation de performances du système. Pourtant, la disponibilité de tels outils pour les systèmes d’exploitation temps réel avec partitionnement spatial et temporel est très limitée en ce moment. Dans ce mémoire, nous présentons un environnement d’analyse de traces pour les systèmes temps réel avec partitionnement spatial et temporel. Nous considérons l’exécution de processus à l’intérieur de partitions et l’ordonnancement de ces deux éléments par le système d’exploitation. Grâce à l’information contenue dans une trace, un historique des états des processus à travers le temps est reconstruit. La solution est testée sur Linux et Xen, deux systèmes pour lesquels nous créons des configurations s’approchant du comportement d’un système d’exploitation avec partitionnement spatial et temporel. Pour montrer l’utilité de cet outil de visualisation pour le diagnostic de problèmes de performances, nous développons un banc d’essai adapté aux systèmes avec partitionnement spatial et temporel. Le banc d’essai est conçu pour être utilisé de façon indépendante ou de pair avec l’environnement d’analyse de traces. Cette deuxième option permet d’identifier automatiquement les valeurs extrêmes dans les résultats afin d’observer l’état du système lors de leurs occurrences. Avec cette fonctionnalité, nous montrons comment notre solution permet aussi le diagnostic de problèmes causés par l’exécution concurrente d’applications mal isolées. ----------ABSTRACT:Computer systems in commercial avionics keep increasing in number and complexity. To reduce their cost and mass, it becomes highly interesting to share the resources between the different subsystems. Since the applications composing these subsystems must meet particularly stringent time and safety constraints, the operating systems managing them must be conceived with these specificities in mind. The ARINC 653 standard was published to regulate the development of such operating systems that provide very strong guarantees about the space and time isolation of the running applications, to enable the sharing of resources between them. Traditional debugging techniques are not efficient for every type of problems that developers may encounter while designing real-time applications. Entirely stopping the execution of the studied application is not always an option, since it may impact the chain of events leading to the problematic situation. An alternative to this is to record information about the execution, while the applications are running, and to analyze it offline. This information is also useful to compute performance metrics about the system. Unfortunately, the availability of such tools is very limited for operating systems with space and time partitioning. We present a trace analysis framework for operating systems with space and time partitioning. The visualization tool developed covers the scheduling of processes, and partitions containing these processes. With the information available in the operating system trace, a state history of the processes is built and displayed to the user. The solution is tested on Linux and Xen, two systems for which we created configurations to approximate as accurately as possible the behaviour of operating systems with space and time partitioning. To demonstrate the usefulness of this tool, a new portable and open source benchmark was developed especially for this type of operating systems. The benchmark is self-standing, but can optionally be integrated with the proposed trace analysis framework. By using this option, the developed view can be automatically synchronized to the occurrences of outlier values to observe the state of the system at these points. We will show how this functionality can be used to detect isolation problems while running applications concurrently.

Open Access document in PolyPublie
Department: Département de génie informatique et génie logiciel
Dissertation/thesis director: Michel Dagenais
Date Deposited: 18 Nov 2019 13:27
Last Modified: 18 Nov 2019 13:27
PolyPublie URL: https://publications.polymtl.ca/4014/

Statistics

Total downloads

Downloads per month in the last year

Origin of downloads

Repository Staff Only