Master 2014 2015
Stages de la spécialité SAR
Conception et développement de support d’exécution critique pour processeur multicoeur


Site :S3 - System Software Services
Lieu :Telecom ParisTech, 46 rue Barraut
Encadrant : Thomas Robert et Laurent Pautet
Dates :du 02/03/2015 au 31/08/2015
Rémunération :500 euros
Mots-clés : Master SAR, autre qu’ATIAM


Description

Contexte : Les systèmes avioniques (spatiaux ou aéronautiques) sont constitués de plus en plus de logiciels. C’est le logiciel qui effectue la majeure partie des fonctions de traitement de l’information, d’asservissement et d’aide à la décision. La place des systèmes d’exploitation dans ces systèmes est centrale. Ces derniers doivent permettre de concevoir des architectures logicielles adaptées à des traitements temps-réel et haute intégrité. Ces deux caractéristiques nécessitent la mise en place de services d’ordonnancement et de contrôle de ressources dans le système d’exploitation. Les plateformes d’exécution ARINC 653 sont un exemple de tels systèmes. Ces dernières années le nombre de systèmes d’exploitations embarqués développés a explosé. Cependant, très peu sont en accès libre vis à vis de leur code source. Une plateforme ouverte, et structurée en modules, permettrait de développer et intégrer rapidement de nouveaux services à de tels systèmes d’exploitation. A travers une série de développements ciblés, l’équipe S3 de Telecom ParisTech vise à offrir un tel outil dans le projet POK (Partitioned Open Kernel). Une série de développements complémentaires ont été réalisés sur un système d’exploitation adapté à l’automobile mais l’objectif reste similaire. Ces développements ont atteint une maturité satisfaisante pour des plateformes mono-cœur. Cependant, ces systèmes d’exploitation manquent de contributions en ce qui concerne les plateforme multi-cœurs. L’absence de contribution est due en partie à la difficulté à faire évoluer l’architecture d’un système d’exploitation d’une version mono-cœur, à une version multi-cœur.

Problématique de stage : Nous proposons un stage en deux parties dont l’objectif est l’étude du portage d’un système d’exploitation embarqué mono-cœur vers multi-cœur. Ce travail pose trois questions clés : • Quelle est la procédure de démarrage et d’initialisation d’un système embarqué multi-cœur ? • Comment favoriser le vrai parallélisme dans l’exécution des applications dans un contexte haute intégrité ? • Comment faciliter l’intégration et la configuration de nouveaux services d’ordonnancement dans de tels systèmes ? La première question correspond essentiellement au problème du placement en mémoire du code, des zones de mémoire modifiables du système d’exploitation, et de la configuration des MMU et interruptions. La seconde question pose le problème de la synchronisation entre applications. Cela nécessite des services adaptés à des situations de vrai parallélisme et pose indirectement la question des exclusions mutuelles entre appels systèmes. La dernière question concerne l’architecture même du système d’exploitation et sa logique de configuration. Dans le cas de systèmes d’exploitations ARINC ou OSEK ce processus repose sur des fichiers de configuration qui altèrent le processus de compilation et donnent parfois lieu à de la génération de code. Une modification de ces éléments peut nécessiter un traitement global.

Travail à réaliser : Tout d’abord, l’étudiant fera une étude bibliographique qui aura pour but de recenser les systèmes d’exploitation embarqués adaptés au monde avionique ou automobile qui peuvent supporter une exécution multi-cœur de leur charge (i.e. vrai parallélisme des applications). Cet état de l’art a pour but de recenser les différents modèles d’exécution offerts par ces systèmes, et de comprendre la manière dont ils sont conçus. A partir de cet état de l’art et en fonctions des compétences et goûts de l’étudiant, un système d’exploitation sera porté sur la carte IMX6, ou une machine virtuelle ARM équivalente (sous QEMU par exemple) . Le but de ce portage sera d’obtenir un système d’exploitation possédant les fonctionnalités clés suivantes (en fonction de la maturité du système de départ, seulement une partie des ces services pourra être développée) : • Un service de boot qui permette de maitriser le démarrage du système d’exploitation et l’exécution d’applications en vrai parallélisme. • Des structures et services de synchronisation interne au système d’exploitation qui permettent des appels systèmes exécutés en vrai concurrence (ce qui n’a a priori rarement lieu dans un système sur mono-cœur). • L’adaptation des services d’ordonnancement et de configuration du système d’exploitation qui permette de facilement concevoir, configurer et déployer de nouveaux algorithmes d’ordonnancement.

Bibliographie

Logiciels de référence : QEMU : www.qemu.org Système d’exploitation POK http://pok.tuxfamily.org/ Erika Entreprise (AUTOSAR OS open source) http://erika.tuxfamily.org/

Textes de référence/documentation utiles : Une rapport de master sur un portage d’un OS critique autosar vers un Rasoerry PI (contient pas mal de chose sur la configuration des MMU / Interrupt et le boot http://www.idt.mdh.se/examensarbete...