Qu’est-ce que le changement de contexte dans le système d’exploitation ?
Dans le système d’exploitation, il y a des cas où vous devez ramener le processus qui est dans l’état d’exécution à un autre état comme l’état prêt ou l’état d’attente/blocage. Si le processus en cours d’exécution veut effectuer une certaine opération d’entrée/sortie, alors vous devez retirer le processus de l’état en cours d’exécution et ensuite mettre le processus dans la file d’attente d’entrée/sortie. Parfois, le processus peut utiliser un algorithme d’ordonnancement round-robin où, après chaque quantum de temps fixe, le processus doit revenir de l’état d’exécution à l’état prêt. Ces changements de processus sont donc effectués à l’aide de la commutation de contexte. Dans ce blog, nous allons apprendre le concept de commutation de contexte dans le système d’exploitation et nous allons également apprendre les avantages et les inconvénients de la commutation de contexte. Alors, commençons.
Qu’est-ce que le Context Switching?
Un context switching est un processus qui implique le basculement du CPU d’un processus ou d’une tâche à un autre. Dans ce phénomène, l’exécution du processus qui est présent dans l’état d’exécution est suspendue par le noyau et un autre processus qui est présent dans l’état prêt est exécuté par le CPU.
C’est l’une des caractéristiques essentielles du système d’exploitation multitâche. Les processus sont commutés si rapidement que cela donne l’illusion à l’utilisateur que tous les processus sont exécutés en même temps.
Mais le processus de commutation de contexte impliquait un certain nombre d’étapes qui doivent être suivies. Vous ne pouvez pas directement faire passer un processus de l’état d’exécution à l’état prêt. Vous devez sauvegarder le contexte de ce processus. Si vous ne sauvegardez pas le contexte d’un processus P, au bout d’un certain temps, lorsque le processus P arrive dans l’UC pour être exécuté à nouveau, le processus commencera à s’exécuter à partir du début. Mais en réalité, il devrait continuer à partir du point où il a quitté le CPU lors de sa précédente exécution. Donc, le contexte du processus doit être sauvegardé avant de mettre tout autre processus dans l’état d’exécution.
Un contexte est le contenu des registres et du compteur de programme d’un CPU à un moment donné. Le changement de contexte peut se produire pour les raisons suivantes :
- Lorsqu’un processus de haute priorité arrive dans l’état prêt. Dans ce cas, l’exécution du processus en cours d’exécution doit être arrêtée et le processus de priorité supérieure doit recevoir l’unité centrale pour l’exécution.
- Lorsqu’une interruption se produit, alors le processus en cours d’exécution doit être arrêté et l’unité centrale doit traiter l’interruption avant de faire autre chose.
- Lorsqu’une transition entre le mode utilisateur et le mode noyau est nécessaire alors vous devez effectuer la commutation de contexte.
Étapes impliquées dans la commutation de contexte
Le processus de commutation de contexte implique un certain nombre d’étapes. Le schéma suivant représente le processus de changement de contexte entre les deux processus P1 et P2.
Dans la figure ci-dessus, vous pouvez voir qu’initialement, le processus P1 est dans l’état d’exécution et le processus P2 est dans l’état prêt. Maintenant, lorsqu’une certaine interruption se produit alors vous devez faire passer le processus P1 de l’état d’exécution à l’état prêt après avoir sauvegardé le contexte et le processus P2 de l’état prêt à l’état d’exécution. Les étapes suivantes seront effectuées :
- D’abord, le contexte du processus P1 c’est-à-dire le processus présent dans l’état d’exécution sera sauvegardé dans le bloc de commande de processus du processus P1 c’est-à-dire le PCB1.
- Maintenant, vous devez déplacer le PCB1 vers la file d’attente appropriée c’est-à-dire.c’est-à-dire la file d’attente prête, la file d’attente d’E/S, la file d’attente d’attente, etc.
- Depuis l’état prêt, sélectionnez le nouveau processus qui doit être exécuté, c’est-à-dire le processus P2.
- Maintenant, mettez à jour le bloc de contrôle de processus du processus P2 c’est-à-dire le PCB2 en définissant l’état du processus à l’exécution. Si le processus P2 a été précédemment exécuté par le CPU, alors vous pouvez obtenir la position de la dernière instruction exécutée afin de pouvoir reprendre l’exécution de P2.
- De même, si vous voulez exécuter à nouveau le processus P1, alors vous devez suivre les mêmes étapes que celles mentionnées ci-dessus(de l’étape 1 à 4).
Pour que le changement de contexte se produise, deux processus sont au moins nécessaires en général, et dans le cas de l’algorithme round-robin, vous pouvez effectuer le changement de contexte à l’aide d’un seul processus.
Le temps impliqué dans le changement de contexte d’un processus par un autre est appelé le temps de changement de contexte.
Avantage du changement de contexte
Le changement de contexte est utilisé pour réaliser le multitâche c’est-à-dire la multiprogrammation avec partage du temps(apprenez-en plus sur le multitâche depuis ici). Le multitâche donne l’illusion aux utilisateurs que plus d’un processus est exécuté en même temps. Mais en réalité, une seule tâche est exécutée à un moment donné par un processeur. Ici, le changement de contexte est si rapide que l’utilisateur a l’impression que le processeur exécute plus d’une tâche en même temps.
L’inconvénient du changement de contexte
L’inconvénient du changement de contexte est qu’il nécessite un certain temps pour le changement de contexte c’est-à-dire le temps de changement de contexte. Le temps est nécessaire pour sauvegarder le contexte d’un processus qui est dans l’état d’exécution et ensuite obtenir le contexte d’un autre processus qui est sur le point de venir dans l’état d’exécution. Pendant ce temps, aucun travail utile n’est effectué par le CPU du point de vue de l’utilisateur. Donc, le changement de contexte est une pure surcharge dans cette condition.
C’est tout pour ce blog. J’espère que vous avez apprécié ce blog.