Architectures multi-cœur et systèmes critiques

L'exécution sûre de logiciels critiques sur des architectures matérielles multi-cœurs pose de nombreux défis, en raison de la variabilité des temps d'accès aux ressources partagées (mémoire), ou des contraintes de placement des différentes tâches à exécuter.

Dans les systèmes temps réel, le calcul des pire temps d’exécution est un prérequis à l’analyse d’ordonnançabilité et au déploiement d’un ordonnancement garantissant les contraintes temporelles. Cependant, par définition, un pire temps d’exécution est pessimiste et, dans le cas des architectures multi-cœurs, le partage des ressources mémoire résulte en des pire temps d’exécution très élevés. Pour éviter le surdimensionnement résultant du pessimisme des calculs, nous développons une approche combinant une analyse hors ligne avec un système de surveillance à l'exécution. Notre approche permet l'exécution conjointe, plus optimiste, de tâches temps réel et de tâches non critiques : notre système exécute de nombreuses tâches en parallèle, surveille l'exécution et, en cas d'interférences trop importantes, arrête avant qu’il ne soit trop tard les tâches de niveau de criticité bas, afin de garantir que les tâches critiques respectent leur échéance[1]. Ces travaux fournissent une solution prouvée[2] et efficace à un problème essentiel pour le déploiement des futurs systèmes, et se poursuit dans le cadre d'une collaboration CIFRE avec Renault pour l'intégration dans les systèmes embarqués automobiles.

 

[1] Kritikakou A., Marty T., Roy M.., DYNASCORE: DYNAmic Software COntroller to increase REsource utilization in mixed-critical systems, ACM Transactions on Design Automation of Electronic Systems,  23(2), 2018

[2] Kritikakou A., Baldellon O., Pagetti C., Rochange C., Roy M., Run-time Control to Increase Task Parallelism in Mixed-Critical Systems, 26th Euromicro Conference on Real-Time Systems (ECRTS14), 2014