CHAPITRE 3
Architecture des systèmes d’exploitation distribués
3.1 Introduction
Un système d’exploitation distribué est un système d’exploitation qui s’exécute sur
plusieurs machines indépendantes. Il permet l’accès transparent aux ressources locales
et distantes des machines [Wu, 2017].
Un système d’exploitation distribué doit gérer non seulement les ressources au ni-
veau local de chaque nœud du système, mais il doit les gérer de manière globale et
distribuée. Un système d’exploitation distribué doit s’adapter aux contraintes qui ré-
sultent de la distribution. Plus concrètement, le système d’exploitation distribué doit
accomplir sa fonction malgré la présence ou l’occurrence de défauts, aussi des méca-
nismes adaptés de sécurité doivent être déployés.
Un système d’exploitation distribué contrôle tous les processus en exécution sur
les différents nœuds. Pour mettre en œuvre l’équilibrage des charges, les systèmes
d’exploitation distribués appliquent la migration des processus vers d’autres nœuds
pendant l’exécution sans intervention explicite de l’utilisateur.
Dans ce chapitre nous présentons les deux approches de base de mise en œuvre
d’un système d’exploitation distribué : à base de noyau monolithique et à base de
micronoyau.
Chapitre 3 : Architecture des systèmes d’exploitation distribués
3.2 Architecture d’un système d’exploitation distribué
Un système d’exploitation distribué est constitué de l’ensemble de systèmes d’exploi-
tation similaires qui tournent sur les nœuds du système distribué [Sinha, 1998].
En effet, les systèmes d’exploitation individuels consistent en un ensemble de com-
posants (ou modules) spécialisés, permettant l’exploitation des ressources matérielles
par les utilisateurs et leurs applications. À ces composants s’ajoute le noyau des sys-
tèmes individuels. Le noyau est l’élément de commande qui fournit les services de base
et programmes du système, il est gardé dans un espace d’adressage séparé, inaccessible aux processus
lication utilisateurs [Sinha, 1998], voir figure 3.1.
Noyau Programmes d’application
Système d’exploitation
Noyau
Ressources matérielles
(processeur, mémoire, …)
Figure 3.1: Structure d’un système d’exploitation distribué
Le modèle de conception du noyau d’un système d’exploitation distribué est l’élé-
ment central qui détermine sa flexibilité. Les deux modèles de noyaux communément
utilisés pour la mise en œuvre des systèmes d’exploitation distribués sont les noyaux
monolithiques (monolithique signifie formé d’un seul bloc) et les micronoyaux. Dans
les sections 3.3 et 3.4 nous décrivons ces deux types de noyaux.
3.3 Systèmes d’exploitation distribués à base de noyau Mo-
nolithique
Dans ce modèle de noyaux, la plupart des services du système d’exploitation tel que :
la gestion des processus, la gestion de la mémoire, la gestion des fichiers, la gestion des
périphériques et la communication interprocessus sont fournis par le noyau. Ils sont
regroupés dans un seul bloc de code et partagent le même espace d’adressage. Par
conséquent, le noyau aura une structure monolithique de grande taille (voir figure 3.2).
24
Chapitre 3 : Architecture des systèmes d’exploitation distribués
De nombreux systèmes d’exploitation distribués utilisent le noyau monolithique, ils
sont généralement une extension du système d’exploitation UNIX [Sinha, 1998].
Machine 1 Machine 2 Machine 3
Applications Applications Espace
utilisateur
Noyau Noyau Noyau Espace
monolithique monolithique monolithique noyau
Matériel et réseau
Services systèmes
Figure 3.2: Systèmes distribués à base de noyaux monolithiques
3.4 Systèmes d’exploitation distribués à base de Micronoyau
L’objectif du modèle micronoyau (microkernel) est de garder le noyau aussi petit que
possible, un nombre minimal de fonctionnalités (les abstractions les plus importantes)
et de services est fourni par le noyau ; les autres services du système sont fournis par
des processus serveurs.
Les seuls services fournis par un micronoyau sont la communication inter proces-
sus, ordonnancement des processus, une gestion de bas niveau des périphériques et
une gestion limitée de la mémoire. Tous les autres services du système d’exploitation
distribué sont fournis par des processus serveurs chargés dynamiquement sur le noyau
[Coulouris et al., 2013]. Les applications accèdent à ces services du système en utilisant
la communication basée messages (voir figure 3.3).
En plus de l’extensibilité, les concepteurs des systèmes d’exploitation à base de
micronoyau visent à atteindre la portabilité ; dans ce cas le micronoyau est situé entre
la couche matérielle et la couche formée de sous composants assurant la compatibilité
binaires implémentés à l’aide de librairies de procédures et des serveurs tournant sur le
micronoyau. Sinon si l’objectif est d’accroitre la performance, les applications peuvent
se servir des services du micronoyau directement.
Il peut y avoir plusieurs types de systèmes d’exploitation émulés sur la même pla-
teforme distribuée sous-jacente, on peut citer par exemple l’implémentation d’UNIX
25
Chapitre 3 : Architecture des systèmes d’exploitation distribués
et OS/2 au-dessus du noyau du système d’exploitation distribué Mach.
Machine 1 Machine 2 Machine 3
Applications Applications
Espace
utilisateur
Processus serveurs
Espace
Micro-noyau Micro-noyau Micro-noyau noyau
Matériel et réseau
Services systèmes
Figure 3.3: Systèmes distribués à base de micronoyau
3.5 Comparaison
L’approche micronoyau de développement des systèmes d’exploitation distribués a plu-
sieurs avantages par rapport à l’approche noyau monolithique [Sinha, 1998] :
• La taille grande du noyau monolithique réduit la flexibilité et la configurabilité
globales du système d’exploitation,
• Étant donné que le micronoyau implémente uniquement quelques fonctionnalités
de base, il est facile de le réécrire pour d’autres architectures,
• Un système distribué basé sur le modèle micronoyau est plus modulaire et com-
pact,
• Les systèmes d’exploitation distribués de l’approche micronoyau sont pratique à
concevoir, implémenter et installer,
• Étant donné que les services de l’approche micronoyau sont implémentés par des
processus serveurs, il est facile d’intégrer de nouveaux services,
• Dans l’approche micronoyau, la sécurité du système est renforcée, les applications
utilisateurs ne peuvent jamais accéder directement au matériel.
26
Chapitre 3 : Architecture des systèmes d’exploitation distribués
Si on met l’accent sur l’aspect performance, l’approche noyau monolithique est
meilleure par rapport à l’approche micronoyau. Un système basé sur le modèle micro-
noyau est modulaire, chaque processus serveur est séparé des autres. Par conséquent,
les serveurs ont besoin d’utiliser une communication basée messages entre processus.
Par contre, puisque tous les services fournis par le noyau monolithique partagent le
même espace d’adressage, aucun échange de messages n’est requis. Donc, les requêtes
sont traitées plus rapidement dans le modèle noyau monolithique que dans le modèle
micronoyau.
3.6 Conclusion
Dans ce chapitre, nous avons présenté la structure de base d’un système d’exploitation
distribué. Nous avons décrit les deux modèles selon lesquels le noyau d’un système d’ex-
ploitation distribué est conçu, le modèle micronoyau et le modèle noyau monolithique.
Les systèmes basés sur le modèle noyau monolithique sont plus performants car les
services partagent le même espace d’adressage avec le noyau. En outre, il est important
de mentionner l’existence d’un modèle hybride de noyaux, où le micronoyau autorise de
charger et de décharger dynamiquement des processus serveurs dans l’espace d’adres-
sage du noyau.
3.7 Questions
1. Quelles sont les différences entre un système d’exploitation distribué et un sys-
tème d’exploitation de réseau ?
2. Quelles sont les fonctions de base d’un micro-noyau ?
3. Pourquoi les systèmes distribués à base de noyau monolithique sont plus sécurisés
que ceux basés sur le noyau monolithique ?
4. Quels sont les avantages des micronoyaux sur les noyaux monolithiques ?
5. Pourquoi l’extensibilité est un élément important de la conception d’un système
distribué.
27