Programming and analysis of critical real-time systems

Autor: Forget, Julien
Přispěvatelé: Centre de Recherche en Informatique, Signal et Automatique de Lille - UMR 9189 (CRIStAL), Centrale Lille-Université de Lille-Centre National de la Recherche Scientifique (CNRS), Université de Lille, Marc Pouzet
Jazyk: angličtina
Rok vydání: 2023
Předmět:
Zdroj: Embedded Systems. Université de Lille, 2023
Popis: Real-time systems are computer systems that are required not only to produce the correct output values, as a reaction to the system inputs, but also to produce these values at the correct time. In my work, I focus on hard real-time systems, where failing to respect some constraints may have catastrophic consequences. The flight-control system of an airplane, or the autonomous driving system of a car, are good examples of hard real-time systems.A real-time system can be represented as a set of concurrent tasks, where each task either senses, computes, or actuates. Each task is subject to real-time constraints, such as periodicity and deadline constraints. Reacting faster than these constraints usually does not improve the quality of the system. Instead, the main focus of hard real-time systems development is to ensure that the constraints will always be met, so as to ensure the system safety.The development of hard real-time systems involves several research domains, which are traditionally studied by separate research communities. An important part of my work focuses on the connection between these domains. My contributions concern three main topics. First, I studied the programming of real-time systems with a domain-specific synchronous data-flow language called Prelude. Second, I studied high-level timing analyses, that is to say analyses that ensure that the system will respect all its real-time constraints at execution. Third, I studied low-level timing analyses, which analyse the code of a task to determine its Worst-Case Execution Time.; Un système temps réel est un système informatique pour lequel il est nécessaire non seulement de produire les bonnes valeurs de sortie, en réaction aux entrées du système, mais aussi de produire ces sorties aux bonnes dates. Mon travail se concentre sur les systèmes temps réel dur, pour lesquels le non respect des contraintes fonctionnelles ou temporelles peut avoir des conséquencescatastrophiques. Le système de contrôle de vol d'un avion, ou encore de conduite automatique d'une voiture, sont des exemples typiques de systèmes temps réel dur.Un système temps réel peut être représenté par un ensemble de tâches concurrentes, effectuant captation, calcul, ou actionnement. Chaque tâche est soumise à des contraintes temps réel, telles que descontraintes de périodicité ou d'échéance. Réagir plus vite que ces contraintes n'améliore pas la qualité du système. La particularité du développement de système temps réel est plutôt de devoir assurer que les contraintes contraintes de temps seront toujours satisfaites à l'exécution, afin d'assurer la sûreté du système.Le développement de systèmes temps réel dur implique plusieurs domaines de recherches, traditionnellement étudiés par des communautés de recherche distinctes. Une part importante de mon travail seconcentre sur les liens entre ces domaines. Les contributions présentées dans ce document portent sur trois sujets principaux. Tout d'abord, je présente mes contributions sur la programmation desystèmes temps réel à l'aide du langage flot-de-données Prelude. Ensuite, je présente mes contributions sur l'analyse temporelle haut-niveau, dont l'objectif est d'assurer que les contraintes temps réel seront respectées à l'exécution. Enfin, je présente mes contributions sur l'analyse temporelle bas-niveau, qui détermine le pire temps d'exécution d'une tâche à partir de son code.
Databáze: OpenAIRE