MECANISME DE LA COMMUTATION DE CONTEXTE
LA COMMUTATION DE CONTEXTE
Dans les systèmes d'exploitation l’ordonnanceur désigne le module du noyau du système d'exploitation qui choisit les processus qui vont être exécutés par les processeurs d'un ordinateur.En anglais, l'ordonnanceur est appelé scheduler.
C’est quoi un ordonnancement ?
Un processus peut avoir besoin (Les besoins se situent au niveau de l'interaction entre l'individu et l'environnement. Il est souvent fait un...) de la ressource processeur pour, par exemple, effectuer des calculs, déclencher une interruption, etc. La plupart des composants matériel, et en particulier le processeur d'un ordinateur, n'est pas capable d'effectuer plusieurs traitements simultanément. Pour la très grande majorité des ordinateurs, avoir un seul processeur implique de ne pouvoir effectuer qu'un traitement à la fois.
Or, à un instant donné, il est possible qu'il y ait plus de processus à exécuter qu'il n'y a de processeurs. Il est courant que de nombreux programmes soient exécutés en parallèle sur une machine mono processeur.
Un des rĂ´les du système d'exploitation et plus prĂ©cisĂ©ment de l'ordonnanceur du noyau est de permettre Ă tous ces processus de s'exĂ©cuter et d'utiliser le processeur de manière optimale du point (Graphie) de vue de l'utilisateur. Pour arriver Ă donner l'illusion que plusieurs tâches sont traitĂ©es simultanĂ©ment, l'ordonnanceur du noyau du système s'appuie sur les notions de commutation de contexte (Étape →3/5 : Une relecture a Ă©tĂ© demandĂ©e. • Si vous voyez des erreurs de traduction, vous pouvez...) et d'ordonnancement.
Commutation de contexte et élection
Pour effectuer ces tâches, l'ordonnanceur procède de la manière suivante : à intervalle régulier, le système appelle une procédure d'ordonnancement qui élit le processus à exécuter. Si le nouveau processus est différent de l'ancien alors survient un changement de contexte, opération qui consiste à sauvegarder le contexte d'exécution de l'ancienne tâche, comme par exemple, les zones mémoires du processus, le pointeur de programme. Cette structure de données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose,...) est généralement appelée PCB. Le système d'exploitation restaure le PCB de la nouvelle tâche.
Une commutation de contexte (context switch) en informatique 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.
Une commutation de contexte peut être plus ou moins coûteuse en temps processeur suivant le système d'exploitation et l'architecture matérielle utilisés.
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.
Certains processeurs peuvent sauvegarder et restaurer le contexte du processeur en interne, évitant ainsi d'avoir à sauvegarder ce contexte en mémoire vive.
Illustration
· Si n tâches doivent être exécutées de manière simultanée et qu'il est physiquement impossible pour l'ordinateur de traiter plus d'une tâche simultanément, le noyau commute rapidement le contexte d'exécution des n tâches, de manière à ce que :
· Une seule tâche soit exécutée à la fois,
· globalement toutes les tâches soient exécutées.
· Par exemple, avec 3 tâches cela peut se décomposer par
· Sauvegarde (En informatique, la sauvegarde (backup en anglais) est l'opération qui consiste à dupliquer et à mettre en sécurité les...) par le noyau des contextes d'exécutions de 3 tâches,
· commutation de contexte et élection de la nouvelle tâche n°1
o Chargement (Le mot chargement peut désigner l'action de charger ou son résultat :) par le noyau du contexte de la tâche 1.
o Exécution des instructions de la tâche 1 pendant x milli-secondes
o Sauvegarde du contexte de la tâche 1
· commutation de contexte et élection de la nouvelle tâche n°2
o Chargement par le noyau du contexte de la tâche 2.
o Exécution des instructions de la tâche 2 pendant x milli-secondes
o Sauvegarde du contexte de la tâche 2
· commutation de contexte et élection de la nouvelle tâche n°3
o Chargement par le noyau du contexte de la tâche 3.
o Exécution des instructions de la tâche 3 pendant x milli-secondes
o Sauvegarde du contexte de la tâche 3
· commutation de contexte et élection de la nouvelle tâche n°1
o Chargement par le noyau du contexte de la tâche 1.
o Exécution des instructions de la tâche 1 pendant x milli-secondes
o Sauvegarde du contexte de la tâche 1