Le processeur bascule entre les processus à l'aide d'un planificateur de processus, qui fait partie du système d'exploitation. Le changement consiste à sauvegarder l'état du processus en cours et à charger l'état du processus suivant. C'est ce qu'on appelle souvent un changement de contexte. .
Voici une illustration simplifiée :
```
+-----------------+ +-----------------+ +-----------------+
| Processus A | <--> | Planificateur de processus| <--> | Processus B |
+-----------------+ +-----------------+ +-----------------+
^ |
| V
+----------------------------------------------+
Changement de contexte
```
Explication :
1. Le processus A est en cours d'exécution : Le CPU exécute des instructions pour le processus A. Les registres du CPU, le compteur de programme (PC – indiquant l'instruction suivante) et les informations de gestion de la mémoire (comme les tables de pages) reflètent tous l'état du processus A.
2. Changement de contexte lancé : Une interruption (par exemple, interruption de minuterie, achèvement d'E/S) ou une décision de planification provoque l'intervention du planificateur du système d'exploitation.
3. État du processus A enregistré : Le planificateur enregistre l'état complet du processus A (registres CPU, PC, informations de gestion de la mémoire) dans un bloc de contrôle de processus (PCB), une structure de données en mémoire. Considérez le PCB comme un instantané du processus.
4. Processus B sélectionné : Le planificateur sélectionne le prochain processus à exécuter, par exemple le processus B, sur la base de divers algorithmes de planification (par exemple, à tour de rôle, basés sur les priorités).
5. État du processus B chargé : Le planificateur charge l'état enregistré du processus B (à partir de son PCB) dans les registres du processeur, le PC et les unités de gestion de mémoire.
6. Exécutions du processus B : Le CPU exécute désormais les instructions pour le processus B.
Ce processus se répète continuellement, permettant à plusieurs processus de partager le temps du processeur, créant ainsi l'illusion d'une exécution parallèle (concurrence). Plus le changement de contexte est rapide, plus l'expérience multitâche est fluide. Cependant, le changement de contexte entraîne une certaine surcharge.
|