Modes d'exécution : mode utilisateur et mode noyau
Étant donné que le système d'exploitation et ses utilisateurs partagent les ressources matérielles et logicielles du système informatique, un système d'exploitation correctement conçu doit garantir qu'un programme incorrect (ou malveillant) ne peut pas entraîner une exécution incorrecte d'autres programmes - ou du système d'exploitation lui-même.
Afin d'assurer la bonne exécution du système, nous devons être capables de faire la distinction entre l'exécution du code du système d'exploitation et le code défini par l'utilisateur.
L'approche adoptée par la plupart des systèmes informatiques consiste à fournir un support matériel qui permet de différencier les différents modes d'exécution.
Les deux modes de fonctionnement
Au minimum, nous avons besoin de deux modes de fonctionnement distincts :
Mode utilisateur
Le système s'exécute au nom d'une application utilisateur.
Les instructions non privilégiées seulement sont autorisées.
Mode noyau (superviseur)
Le système exécute du code pour le compte du système d'exploitation.
Également appelé mode superviseur, mode système ou mode privilégié.
Toutes les instructions (y compris les instructions privilégiées) sont autorisées.
Le bit de mode
Un bit, appelé bit de mode, est ajouté au matériel de l'ordinateur pour indiquer le mode actuel :
- Mode noyau (0) - Le système exécute du code privilégié
- Mode utilisateur (1) - Le système exécute une application utilisateur
Grâce au bit de mode, nous pouvons faire la distinction entre une tâche exécutée au nom du système d'exploitation et une tâche exécutée au nom de l'utilisateur.
Transitions entre les modes

Figure : Transition entre mode utilisateur et mode noyau
Au moment du démarrage du système, le matériel démarre en mode noyau. Le système d'exploitation est ensuite chargé et lance les applications utilisateur en mode utilisateur.
Passage en mode noyau
Lorsqu'une application utilisateur demande un service au système d'exploitation (via un appel système), le système doit passer du mode utilisateur au mode noyau pour répondre à la demande.
Chaque fois qu'une interruption se produit, le matériel passe du mode utilisateur au mode noyau (le bit de mode passe à 0). Ainsi, lorsque le système d'exploitation prend le contrôle de l'ordinateur, il est en mode noyau.
Passage en mode utilisateur
Le système passe toujours en mode utilisateur (en mettant le bit de mode à 1) avant de passer le contrôle à un programme utilisateur.
Instructions privilégiées
Le double mode de fonctionnement nous fournit les moyens de protéger le système d'exploitation contre les utilisateurs errants - et les utilisateurs errants entre eux. Nous réalisons cette protection en désignant certaines instructions machine susceptibles de causer des dommages comme des instructions privilégiées.
Le matériel permet aux instructions privilégiées d'être exécutées uniquement en mode noyau. Si l'on tente d'exécuter une instruction privilégiée en mode utilisateur :
- Le matériel n'exécute pas l'instruction
- Elle est considérée comme illégale
- Elle est transmise au système d'exploitation (généralement par une interruption)
Exemples d'instructions privilégiées
| Instruction | Description |
|---|---|
| Passage en mode noyau | L'instruction permettant de changer le bit de mode |
| Contrôle des E/S | Accès direct aux périphériques matériels |
| Gestion des temporisateurs | Configuration des timers matériels |
| Gestion des interruptions | Masquage ou activation des interruptions |
| Gestion de la mémoire | Configuration des tables de pages, registres de base |
Appels système et modes
Les appels système permettent à un programme utilisateur de demander au système d'exploitation d'exécuter des tâches réservées au système d'exploitation pour le compte du programme utilisateur.
L'appel système est le mécanisme qui permet de passer du mode utilisateur au mode noyau de façon contrôlée.
Exemple de déroulement
- Un programme utilisateur s'exécute en mode utilisateur.
- Il a besoin de lire un fichier (opération nécessitant des privilèges).
- Il effectue un appel système (read).
- Le matériel passe en mode noyau.
- Le système d'exploitation exécute la lecture (instructions privilégiées).
- Le résultat est retourné au programme.
- Le système repasse en mode utilisateur avant de rendre la main.
- Les systèmes modernes utilisent deux modes : utilisateur et noyau.
- Un bit de mode (0 = noyau, 1 = utilisateur) indique le mode courant.
- Les instructions privilégiées ne peuvent être exécutées qu'en mode noyau.
- Les appels système sont le mécanisme pour passer du mode utilisateur au mode noyau.
- Le mode noyau est utilisé pour le système d'exploitation, les pilotes, la gestion matérielle.
- Le mode utilisateur est utilisé pour les applications normales.
- Cette séparation assure la protection et la stabilité du système.
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.