Next: Les interruptions Up: Les processus Previous: Le contexte d'un processus

Commutation de mot d'état et interruptions.

Ces fonctions de très bas niveau sont fondamentales pour pouvoir programmer un système d'exploitation.

Pour être exécuté et donner naissance à un processus, un programme et ses données doivent être chargés en mémoire centrale. Les instructions du programme sont transférées une à une de la mémoire centrale sur l'unité centrale où elles sont exécutées.

L'unité centrale:
Elle comprend des circuits logiques et arithmétiques qui effectuent les instructions mais aussi des mémoires appelées registres.

Certains de ces registres sont spécialisés directement par les constructeurs de l'unité centrale, d'autres le sont par le programmeur du noyau. Quelques registres spécialisés:

L'accumulateur
qui reçoit le résultat d'une instruction; sur les machines à registres multiples, le jeu d'instructions permet souvent d'utiliser n'importe lequel des registres comme accumulateur.
le registre d'instruction
(qui contient l'instruction en cours)
le compteur ordinal
(adresse de l'instruction en mémoire) Ce compteur change au cours de la réalisation d'une instruction pour pointer sur la prochaine instruction à exécuter, la majorité des instructions ne font qu'incrémenter ce compteur, les instructions de branchement réalisent des opérations plus complexes sur ce compteur€: affectation, incrémentation ou décrémentation plus importantes.
le registre d'adresse
les registres de données
qui sont utilisés pour lire ou écrire une donnée à une adresse spécifiée en mémoire.
les registres d'état
du processeur: (actif, mode (user/system), retenue, vecteur d'interruptions, etc)
les registres d'état du processus
droits, adresses, priorités, etc

Ces registres forment le contexte d'unité centrale d'un processus.

A tout moment, un processus est caractérisé par ces deux contextes: le contexte d'unité centrale qui est composé des mêmes données pour tous les processus et le contexte qui dépend du code du programme exécuté. Pour pouvoir exécuter un nouveau processus, il faut pouvoir sauvegarder le contexte d'unité centrale du processus courant (mot d'état), puis charger le nouveau mot d'état du processus à exécuter. Cette opération délicate réalisée de façon matérielle est appelée commutation de mot d'état. Elle doit se faire de façon non interruptible!

Cette "Super instruction" utilise 2 adresses qui sont respectivement:
l'adresse de sauvegarde du mot d'état
l'adresse de lecture du nouveau mot d'état

Le compteur ordinal faisant partie du mot d'état, ce changement provoque l'exécution dans le nouveau processus.

C'est le nouveau processus qui devra réaliser la sauvegarde du contexte global. En général c'est le noyau qui réalise cette sauvegarde, le noyau n'ayant pas un contexte du même type.

Le processus interrompu pourra ainsi reprendre exactement où il avait abandonné.

Les fonctions setjmp/longjmp permettent de sauvegarder et de réinitialiser le contexte d'unité central du processus courant, en particulier le pointeur de pile.

Next: Les interruptions Up: Les processus Previous: Le contexte d'un processus

Dominique REVUZ
Mon Feb 2 12:10:31 MET 1998
Une Bug Un mail Merci