Fonctionnement en mode double et multi-mode dans un système d'exploitation

18 Jul 2022 18 Jul 2022 2310 vues ESSADDOUKI Mostafa 6 min de lecture

Modes d'exécution : mode utilisateur et mode noyau

Pourquoi deux modes ?

É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 1

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 2

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

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

Démarrage du système

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

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

InstructionDescription
Passage en mode noyauL'instruction permettant de changer le bit de mode
Contrôle des E/SAccès direct aux périphériques matériels
Gestion des temporisateursConfiguration des timers matériels
Gestion des interruptionsMasquage ou activation des interruptions
Gestion de la mémoireConfiguration des tables de pages, registres de base

Appels système et modes

Lien avec les appels système

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

  1. Un programme utilisateur s'exécute en mode utilisateur.
  2. Il a besoin de lire un fichier (opération nécessitant des privilèges).
  3. Il effectue un appel système (read).
  4. Le matériel passe en mode noyau.
  5. Le système d'exploitation exécute la lecture (instructions privilégiées).
  6. Le résultat est retourné au programme.
  7. Le système repasse en mode utilisateur avant de rendre la main.
Points clés à retenir
  • 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.