Qu’est-ce que le changement de contexte dans un système d’exploitation ?

La commutation de contexte implique le stockage du contexte ou de l’état d’un processus afin qu’il puisse être rechargé au besoin et que l’exécution puisse reprendre au même point que précédemment. C’est une caractéristique d’un système d’exploitation multitâche et permet à une seule unité centrale de traitement d’être partagée par plusieurs processus.

Un diagramme qui démontre le changement de contexte est le suivant –

Dans le diagramme ci-dessus, initialement le processus 1 est en cours d’exécution. Le processus 1 est sorti et le processus 2 est entré à cause d’une interruption ou d’un appel système. La commutation de contexte implique la sauvegarde de l’état du processus 1 dans le PCB1 et le chargement de l’état du processus 2 à partir du PCB2. Après un certain temps, un nouveau changement de contexte se produit, le processus 2 est désactivé et le processus 1 est réactivé. Cela implique la sauvegarde de l’état du processus 2 dans le PCB2 et le chargement de l’état du processus 1 depuis le PCB1.

Déclencheurs de changement de contexte

Il existe trois déclencheurs principaux pour le changement de contexte. Ils sont donnés comme suit –

  • Multitâche : Dans un environnement multitâche, un processus est commuté hors de l’unité centrale pour qu’un autre processus puisse être exécuté. L’état de l’ancien processus est sauvegardé et l’état du nouveau processus est chargé. Sur un système préemptif, les processus peuvent être sortis par l’ordonnanceur.

  • Gestion des interruptions : Le matériel commute une partie du contexte lorsqu’une interruption se produit. Cela se produit automatiquement. Seule une partie du contexte est modifiée pour minimiser le temps nécessaire à la gestion de l’interruption.

  • Commutation des modes utilisateur et noyau : Une commutation de contexte peut avoir lieu lorsqu’une transition entre le mode utilisateur et le mode noyau est nécessaire dans le système d’exploitation.

Étapes de commutation de contexte

Les étapes impliquées dans la commutation de contexte sont les suivantes –

  • Sauvegarder le contexte du processus qui est actuellement en cours d’exécution sur le CPU. Mettre à jour le bloc de contrôle de processus et d’autres champs importants.
  • Déplacer le bloc de contrôle de processus du processus ci-dessus dans la file d’attente pertinente telle que la file d’attente prête, la file d’attente E/S, etc.
  • Sélectionner un nouveau processus pour l’exécution.
  • Mettre à jour le bloc de contrôle de processus du processus sélectionné. Cela inclut la mise à jour de l’état du processus en cours d’exécution.
  • Mettre à jour les structures de données de gestion de la mémoire selon les besoins.
  • Restaurer le contexte du processus qui était précédemment en cours d’exécution lorsqu’il est chargé à nouveau sur le processeur. Ceci est fait en chargeant les valeurs précédentes du bloc de contrôle du processus et des registres.

Coût du changement de contexte

Le changement de contexte entraîne un coût supplémentaire à cause des vidages de TLB, du partage du cache entre plusieurs tâches, de l’exécution du planificateur de tâches, etc. Le changement de contexte entre deux threads d’un même processus est plus rapide qu’entre deux processus différents car les threads ont les mêmes cartes de mémoire virtuelle. A cause de cela, le TLB flushing n’est pas nécessaire.

raja

Publié le 28-Sep-2018 15:31:15

Publicités

.

Leave a Reply