Sobes.tech
Junior

Qu'est-ce que le changement de contexte ?

sobes.tech IA

Réponse de l'IA

Le changement de contexte (Context Switching) est le processus de sauvegarde de l’état d’un processus (ou thread) et de restauration de l’état d’un autre processus (ou thread) par le système d’exploitation. Cela permet à plusieurs processus de partager un même processeur.

L’algorithme comprend les étapes suivantes :

  1. Sauvegarde du contexte actuel : Les registres du processeur, le compteur d’instructions (PC), l’état de la pile et d’autres informations sur le processus en cours sont sauvegardés dans son bloc de contrôle de processus (PCB).
  2. Choix du processus suivant : Le planificateur du système d’exploitation sélectionne le prochain processus à exécuter.
  3. Restauration du contexte : L’état sauvegardé du processus sélectionné est chargé depuis son PCB dans les registres du processeur.

Les coûts (overhead) liés au changement de contexte incluent :

  • Le temps consacré à sauvegarder et restaurer l’état.
  • La perte d’efficacité due aux manques de cache (cache misses), car le cache rempli avec les données d’un processus devient obsolète pour un autre.
  • Les coûts d’exécution des instructions du planificateur.

Exemple :

Supposons que nous ayons deux processus, A et B, s’exécutant sur un seul cœur de processeur.

// Initialement, le processus A s’exécute
// Le processus A utilise les ressources CPU

// Un événement se produit, nécessitant un changement, par exemple, l’expiration du quantum de temps du processus A
// L’état du processus A (registres, PC) est sauvegardé
// Le système d’exploitation choisit le processus B pour s’exécuter
// L’état du processus B est chargé
// Le processus B commence à s’exécuter

Le changement de contexte est un mécanisme fondamental de la multitâche dans les systèmes d’exploitation, permettant de créer l’illusion d’une exécution parallèle de plusieurs processus sur un seul processeur physique.