Information Technology Reference
In-Depth Information
11.4.1 Modes d'exécutions et commutations de contexte
Modes d'exécutions
Un programme utilisateur s'exécute par défaut selon un mode qualifié de mode esclave
ou mode utilisateur : ce mode d'exécution est un mode pour lequel les actions pouvant
être entreprises par le programme sont volontairement restreintes afin de protéger la
machine des actions parfois malencontreuses du programmeur. Notamment, le jeu
d'instructions utilisables par le programme en mode utilisateur est réduit, et spécia-
lement les instructions permettant la manipulation des interruptions est interdite.
Le système d'exploitation, quant à lui, s'exécute dans un mode privilégié encore
appelé mode superviseur , pour lequel aucune restriction de droits n'existe.
Le codage du mode esclave et du mode maître est réalisé au niveau du processeur,
dans le registre d'état de celui-ci.
Modes d'exécutions du processeur 68000 de Motorola
Le registre d'état du processeur 68000 est un registre 16 bits, dans lequel le
bit 13 permet le codage du mode d'exécution du processeur, soit utilisateur
pour lequel le jeu d'instructions utilisables vis-à-vis du processeur est réduit
(interdiction notamment d'utilisation des instructions permettant la modifi-
cation du registre d'état et interdiction de certaines opérations sur la pile),
soit superviseur pour lequel toutes les instructions sont utilisables.
Commutations de contexte
Aussi, lorsqu'un programme utilisateur demande l'exécution d'une routine du système
d'exploitation par le biais d'un appel système, ce programme quitte son mode
courant d'exécution (le mode esclave) pour passer en mode d'exécution du système,
c'est-à-dire le mode superviseur. Ce passage du mode utilisateur au mode supervi-
seur constitue une commutation de contexte : elle s'accompagne d'une opération de
sauvegarde du contexte utilisateur, c'est-à-dire principalement de la valeur des registres
du processeur (CO, PSW). Lorsque l'exécution de la fonction système est achevée,
le programme repasse du mode superviseur au mode utilisateur. Il y a de nouveau
une opération de commutation de contexte avec restauration du contexte utilisa-
teur sauvegardé lors de l'appel système, ce qui permet de reprendre l'exécution du
programme utilisateur juste après l'appel (figure 11.7).
Trois causes majeures provoquent le passage du mode utilisateur au mode super-
viseur (figure 11.8) :
- le fait que le programme utilisateur appelle une fonction du système. C'est une
demande explicite de passage en mode superviseur;
- l'exécution par le programme utilisateur d'une opération illicite (division par 0,
instruction machine interdite, violation mémoire…) : c'est la trappe ou l'exception .
L'exécution du programme utilisateur est alors arrêtée ;
 
 
Search WWH ::




Custom Search