Commutateur de Contexte (Context Switch)

Publié le par CYRUSIEN

Commutation de contexte : context switch


        
            A l’instant qu’un système d’exploitation multitâche arrête l’exécution d’un processus pour démarrer un autre on parle de commutation de contexte. Beaucoup de systèmes d’exploitation  implémentent la simultanéité en maintenant des environnements ou "contextes" séparés  pour chaque  processus. Le taux de séparation entre les processus et la quantité d’informations dans chaque contexte dépend des systèmes d’exploitation mais en règle générale les OS devraient empêcher les processus d’interférer entre eux, par exemple en modifiant la mémoire des autres.

            D’après Wikipédia, Une commutation de contexte (context switch) consiste à sauvegarder l'état d'un processus ou d'un processus léger et à restaurer l'état d'un autre processus (léger) de façon à ce que des processus multiples puissent partager les ressources d'un seul processeur dans le cadre d'un système d’exploitation multitâche. Elle se défini aussi  comme étant le mécanisme qui permet au système d’exploitation de remplacer le processus élu par un autre processus éligible.

        Une commutation de contexte permet à un autre processus (entité) d’utiliser la ressource (processeur, etc.…). Elle peut se faire aussi simplement que par la modification du registre code et du pointeur de pile, ou bien en reconfigurant le MMU pour qu’un autre jeu de pages mémoires soient disponibles, afin de donner aux utilisateurs une impression de parallélisme et d’autoriser les processus de répondre promptement aux événements externes, beaucoup de systèmes commutent le contexte des dizaines voir des centaines de fois par seconde. Le contexte sauvegardé doit au minimum inclure une portion notable de l'état du processeur (registres généraux, registres d'états, etc.) ainsi que, pour certains systèmes, les données nécessaires au système d'exploitation pour gérer ce processus.

La commutation de contexte invoque au moins trois étapes. Par exemple, en présumant que l'on veut commuter l'utilisation du processeur par le processus P1 vers le processus P2 :

Sauvegarder le contexte du processus P1 quelque part en mémoire (usuellement sur la pile de P1).

Retrouver le contexte de P2 en mémoire (usuellement sur la pile de P2).

Restaurer le contexte de P2 dans le processeur, la dernière étape de la restauration consistant à reprendre l'exécution de P2 à son point de dernière exécution.

Remarque : Certains processeurs peuvent sauvegarder et restaurer le contexte du processeur en interne, évitant ainsi d'avoir à sauvegarder ce contexte en mémoire vive.         

Autre définition : Le contexte d’un processus se défini comme étant des informations dynamique qui représentent l’état d’exécution d’un processus c’est-à-dire ou est-ce que le processus en est de son exécution.

Contexte : c’est l’état courant d’un processus.

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article