Le commutateur de contexte (commutateur de contexte), également connu sous le nom de commutateur d'environnement, terminologie informatique, est un moyen de stocker et de reconstruire l'état (contexte) du CPU, cela permet donc à plusieurs processus de partager le processus informatique d'une seule ressource CPU. Lorsque vous souhaitez échanger des processus sur le CPU, vous devez d'abord stocker l'état du processus en cours, puis relire l'état du processus à exécuter sur le CPU.
Quand échanger ?
Il existe trois situations possibles où un échange de contexte aura lieu, à savoir :
Multitâche
Le plus courant est que dans certains algorithmes de planification, un voyage doit parfois quitter temporairement le CPU pour permettre à un autre voyage d'entrer et de s'exécuter sur le CPU. Dans un système de multiplexage préemptif, chaque déplacement sera exécuté tour à tour pendant une durée variable. Ces périodes de temps sont appelées tranches de temps. Si le processus n'abandonne pas volontairement le CPU (par exemple, lors de l'exécution d'opérations d'E/S, le processus doit renoncer au droit d'utiliser le CPU), à l'expiration du délai, le système générera une interruption temporisée et le système d'exploitation planifiera l'exécution d'autres processus. Ce mécanisme est utilisé pour garantir que le CPU n'est pas monopolisé par des processus qui dépendent davantage des opérations du processeur. S'il n'y a pas d'interruption planifiée, le processus continuera à s'exécuter à moins qu'il n'abandonne volontairement le processeur. Pour les trajets comportant de nombreuses instructions d'E/S, ils ne peuvent souvent pas être exécutés longtemps avant de devoir abandonner le processeur, tandis que les trajets qui dépendent davantage du processeur comportent relativement moins d'opérations d'E/S, mais peuvent continuer à utiliser le processeur ; , formant un monopole. C'est l'effet Convoi.
Traitement des interruptions
Lors de la réception d'une interruption (Interrupt), le CPU doit effectuer un changement de contexte.
Échange de mode utilisateur ou de mode noyau
Lorsque l'échange de mode utilisateur et de mode noyau se produit, il n'est pas nécessaire d'effectuer un échange de contexte et le mode utilisateur et ; mode noyau L'échange lui-même n'est pas un échange contextuel. Cependant, selon le système d'exploitation, il arrive parfois qu'une étape d'échange de contexte soit réalisée à cet instant.
Échange contextuel :Étapes spécifiques
Dans un échange, le statut du premier trajet doit être enregistré quelque part, afin que lorsque le planificateur revient à ce planning, il peut reconstruire le planning et poursuivre l'opération.
Le soi-disant « état du processus » comprend ici tous les registres utilisés par ce processus, notamment le compteur du programme, ainsi que toutes les données spécifiques que le système d'exploitation peut exiger. Ces données sont généralement stockées dans une structure de données appelée bloc de contrôle de processus (PCB).
Échange de contexte : mis en œuvre par logiciel ou matériel
L'échange de contexte peut être divisé en principalement mis en œuvre par logiciel ou mis en œuvre par matériel. Certains processeurs, tels que l'Intel 80386 ou les processeurs haut de gamme de la même série, ont des conceptions matérielles prenant en charge le changement de contexte.