Temps réel

La notion de temps réel est attachée à des systèmes réactifs, le plus souvent embarqués, devant satisfaire des contraintes temporelles. Il faut typiquement ajouter d’autres contraintes, telles que la cohabitation de tâches de différentes criticités, et l’embarquabilité du système en termes de puissance de calcul, d’utilisation mémoire, ou de consommation d’énergie. Nos travaux cherchent des solutions pour satisfaire ces contraintes de façon prédictible et robuste, en visant des implémentations sur des microprocesseurs modernes, multicoeurs et/ou hétérogènes.


Nous nous intéressons à la robustesse et à la prédictibilité des systèmes temps réel.

La robustesse fait appel à des méthodes de tolérance aux fautes temporelles, pour détecter les risques de défaillance et activer des mécanismes de reconfiguration [1].

La prédictibilité est affectée par l’accès à des ressources matérielles partagées comme les caches. Nous explorons des politiques d’allocation de cache dans différents contextes (un ou plusieurs cœurs, allocation statique ou dynamique, via des mécanismes matériels ou logiciels...) [2,3]. Pour des niveaux multiples de criticité, qui nécessitent une isolation entre tâches critiques et non critiques, l’utilisation de techniques de virtualisation à base de containers est une voie prometteuse [4].

Les architectures hétérogènes, dans lesquelles des unités de traitement sont dédiées à l’exécution de certaines tâches, nécessitent de nouvelles stratégies d’ordonnancement [5] : il faut prendre en compte l’hétérogénéité ainsi que les interférences à la frontière entre différentes unités.

Enfin, pour beaucoup d’applications, l’analyse ne doit pas se limiter à la granularité des tâches : il peut être pertinent de raisonner sur des chaînes de tâches, à la fois pour évaluer la latence pire cas [6] et pour définir la politique de tolérance aux fautes [1].

Références

[1] Daniel Loche, Alexis Génèrès, Michaël Lauer, Jean-Charles Fabre, "Run-time Monitoring and Control for Temporal Fault Prevention in Mixed-criticality Systems", Proc. 17th European Dependable Computing Conference (EDCC 2021), pp. 53-60, 2021.

[2] Binqi Sun, Tomasz Kloda, Sergio Arribas García, Giovani Gracioli, Marco Caccamo, "Minimizing Cache Usage for Real-time Systems”, 31st International Conference on Real-Time Networks and Systems (RTNS 2023), pp. 200-211, 2023.

[3] Alexis Génèrès, Michaël Lauer, Jean-Charles Fabre, “An experimental approach for evaluating cache allocation policies in multicore for real-time mixed-criticality systems", Proc. 19th European Dependable Computing Conference (EDCC 2024), pp. 115-122, 2024.

[4] Tomasz Kloda, Giovani Gracioli, Rohan Tabish, Reza Mirosanlou, Renato Mancuso, Rodolfo Pellizzoni, Marco Caccamo, "Lazy Load Scheduling for Mixed-criticality Applications in Heterogeneous MPSoCs", ACM Transactions on Embedded Computing Systems, vol. 22, no. 3, 2023.

[5] Binqi Sun, Tomasz Kloda, Jiyang Chen, Cen Lu, Marco Caccamo, "Schedulability Analysis of Non-preemptive Sporadic Gang Tasks on Hardware Accelerators", Proc. 29th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS 2023), pp. 147-160, 2023.

[6] Tomasz Kloda, Jiyang Chen, Antoine Bertout, Lui Sha, Marco Caccamo, "Latency analysis of self-suspending task chains", Proc. European Conference in Design, Automation & Test (DATE 2022), pp. 1299-1304, 2022.