• Aucun résultat trouvé

CHAPITRE 3 ARCHITECTURE ET IMPLÉMENTATION DU NOYAU XTRATUM

3.3 Architecture de XtratuM

Le noyau XtratuM a été conçu pour la famille de processeurs LEON de la compagnie Aeroflex Gaisler. Cette famille est basée sur l’architecture RISC SPARCv8 [60] et conçue spécifique- ment pour les applications spatiales. Les processeurs LEON intègrent, en plus d’un coeur SPARCv8, tous les périphériques et interfaces nécessaires à la réalisation d’un système em- barqué de charge utile de satellite.

L’architecture de XtratuM est celle d’un moniteur de machine virtuelle, ou hyperviseur. Ainsi, le noyau XtratuM gère les ressources matérielles partagées de la machine afin de fournir l’illu- sion de plusieurs machines virtuelles indépendantes. Les partitions sont donc réalisées sous la forme de machines virtuelles, contrairement à l’approche de certains OS ARINC-653 qui réa- lisent le partitionnement en isolant des groupes de tâches à l’aide de restrictions additionnelles dans le système d’exploitation. Dans le contexte de XtratuM, les mots partition et machine vir- tuelle sont synonymes. En effet, dans le contexte IMA, la partition est l’unité descriptive d’un

37

Figure 3.1 Schéma-bloc typique d’un processeur LEON3, tirée de [7] avec la permission d’Aeroflex Gaisler. ©2008 Aeroflex Gaisler AB

ensemble de ressources matérielles appartenant à une application indépendante. De même, dans XtratuM, les machines virtuelles sont dotées d’un ensemble de ressources réservées à une application indépendante, telle que des régions de mémoire, des périphériques et des sources d’interruptions. Nous utiliserons donc l’appellation « partition » au lieu de « machine virtuelle » afin de demeurer en harmonie avec les publications du domaine de l’IMA, étant donné l’équivalence des concepts dans notre cas.

XtratuM est un hyperviseur de type 1 selon la nomenclature classique de Goldberg [31]. Les hyperviseurs de type 1 sont natifs, c’est-à-dire qu’ils prennent le contrôle total de la machine. Les hyperviseurs de type 2, quant à eux, sont supportés par un OS et emploient les services de l’OS hôte pour réaliser la virtualisation.

Chaque partition est gérée de manière à assurer une isolation spatiale et temporelle robuste par rapport à l’ensemble des autres partitions du système. Les partitions sont toutes exécutées en mode usager non privilégié. Elles ne peuvent donc en aucun cas prendre le contrôle des

ressources critiques du système sans causer d’exception de privilège. Seul le noyau est exécuté en mode superviseur privilégié.

Le noyau permet aux partitions d’avoir accès à des ressources matérielles et à des services qui sont autorisés dans le plan de configuration du système (PCS). Toutes les transactions de services doivent s’effectuer à travers des appels au noyau hyperviseur afin qu’il soit possible de valider les droits d’accès configurés dans le PCS. Les appels au noyau sont réalisés à l’aide du mécanisme d’appel système (« system call ») du processeur.

Après le démarrage du noyau, un ordonnanceur cyclique détermine quelles partitions sont ac- tivées à quels moments, en fonction d’un plan d’exécution prédéterminé dans le PCS. Les partitions peuvent se retrouver dans un de quatre modes de fonctionnement (ou états). Le diagramme des états possibles est présenté à la figure 3.2. Dans ce diagramme, les arcs repré- sentent des appels systèmes réalisés par le noyau ou par une partition « superviseur » en cas de détection d’erreur. Les modes de fonctionnement possibles sont les suivants :

• Boot : Démarrage et préparation de la machine virtuelle, incluant l’initialisation des registres de contrôle virtuels et démarrage d’un OS de partition. La partition est activée dans sa fenêtre d’activation du plan d’exécution.

• Normal : La partition est en fonctionnement normal. Elle est activée dans sa fenêtre d’activation du plan d’exécution.

• Suspend : La partition est suspendue. Elle n’est pas activée dans sa fenêtre d’activation et les interruptions qui lui appartiennent ne sont pas traitées. Cet état peut être atteint si une faute est détectée, afin d’empêcher l’exécution continue dans un état erroné. Il est possible de faire revenir la partition en mode normal.

• Halt : La partition n’est plus jamais activée et il n’est pas possible de la faire revenir en mode normal sans effectuer un redémarrage (mode « Boot »). La fenêtre d’activation as-

39

signée à la partition demeure inutilisée et toutes les ressources appartenant à la partition sont relâchées.

Boot

Halt Suspend

Normal

Figure 3.2 Diagramme des états possibles pour une partition dans XtratuM

Il existe deux types de partitions : le type « superviseur » et le type « normal ». Les parti- tions de type superviseur ont accès à certains appels du noyau qui permettent la récupération des partitions en cas d’erreur et la gestion du moniteur de santé du système. Par exemple, une partition superviseur se voit en droit de redémarrer n’importe quelle partition du système alors qu’une partition normale ne pourrait redémarrer qu’elle-même. Dans le cas habituel, des partitions sont assignées à une fonction de gestion des défaillances (« Integrated Vehicle Health Management » ou IVHM) afin de déporter ce type de logique en dehors du noyau à haut niveau de sûreté. Ces partitions IVHM sont de type superviseur afin d’avoir suffisam- ment de privilèges pour contenir les défaillances et essayer des stratégies de recouvrement. À l’opposé, les partitions normales n’ont pas de privilège de gestion afin de limiter les cas de défaillances qui pourraient se propager en réalisant, par exemple, des redémarrages inopinés d’autres partitions.