nuage.gif (26536 octets)
carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets) carre_transparent.gif (42 octets)
    Retour au sommaireAlian
Rubrique Informatique
Théorie des systèmes d'exploitation
    - III - MECANISME DE BASE
     

Il existe deux mécanismes fondamentaux implémentés au niveau matériel :

  • La commutation du mot d'état
  • Les interruptions
     

Registres de l'UC

   

Retour au sommaire Haut de page

 

L'exécution d'une instruction provoque un transfert entre l'UC et la mémoire centrale. Pour gérer ce transfert 2 registres sont nécessaires :

UC<->MC

  1. Registres d'adresse qui va indiquer l'adresse de la cellule dans laquelle / vers laquelle a lieu le transfert des données .
  2. Registre contenant les données à transférer .
  3. Registres d'état (actif ou inactif , mode système ou utilisateur, ...)

Les informations dont on disposent sur les process en cours d'exécution telles que les zones mémoires accessibles le droit d'accès, le niveau de priorité, ...

On regroupe l'ensemble de ces registres sous le nom unique de mot d'état :

PSW Processus Status World

A un instant donné un processus est caractérisé par 2 notions telles que :

  1. Le programme sous-jacent et son contexte : contexte mémoire
  2. La valeur du PSW que on appelle contexte UC
     

Commutations de contexte

     

Dans le cas où différents programmes se trouvent en MC prêt à être exécuté. On va procéder en partageant l'UC entre les différentes exécutions. On exécute une partie du 1er, on le sort et exécute une partie du 2e, etc.

Laissez s'exécuter d'autres process modifient forcement le contexte de l'UC et en particulier les registres du processeur. Il est donc indispensable de sauvegarder la partie de ces contextes susceptibles d'être modifié. On parle alors de commutation de contexte. Cette opération doit être exécutée de façon atomique. En particulier :

  • La sauvegarde du mot d'Etat (PSW) dans une zone mémoire précise.
  • Le chargement d'une nouvelle valeur à partir d' une zone mémoire précise.

Il est évident que l'exécution de l'opération provoque l'exécution d'un nouveau processus car le compteur ordinal fait partie du mot d'Etat.

Important : si la sauvegarde est partielle, il est donc nécessaire de faire accomplir par le nouveau processus comme 1ere tache la partie complémentaire du contexte.

     

Interruptions

 

Retour au sommaire Haut de page

 

Principe : c'est une commutation du mot d'Etat provoqué par un signal géré par le matériel. Ce signal est lui-même un événement qui peut être interne au processus et donc résultant de son exécution, ou bien extérieur indépendant de cette exécution .

Exemple :

  • L'événement concerne 1 périphérique d'entrée / sortie .
  • L'événement concerne 1 utilisateur ou un opérateur .

Cela veut dire que le signal modifie un indicateur qui est consulté régulièrement par le système d'exploitation en vue de déterminer la cause de l'interruption .

A chaque cause on associe un niveau d'interruption . On distingue en général 3 niveaux :

  1. Les interruptions externes dont la cause est extérieure au déroulement du processus (panne)
  2. Les déroutements qui proviennent de exécution en cours tel que les divisions par 0 ou les débordements mémoires
  3. Les appels systèmes : lorsque une procédure appelle une fonction appartenant au système (SVC Supervisor Call)

Exemple :

     
  1. Sauvegarde du PSW courant dans l'ancien PSW correspondant au niveau d'interruption.
  2. Chargement du nouveau mot d'Etat dans le mot d'état courant .

La commutation du mot d'Etat peut dépendre du niveau d'interruption. Le process est suspendu et mis en attente. Son contexte est sauvegardé. Le chargement du nouveau mot d'Etat engendre un nouveau processus particulier appelé "Traitant de l'interruption" ou "Interrupt Handler".

     

Le système Unix connait 6 niveaux d'interruptions :

 

Retour au sommaire Haut de page

 
Numéro Nature Traitant associé
0 It horloge clock_interrupt()
1 It disque disk_interrupt()
2 It consol tty_interrupt
3 It périphérique dev_interrupt
4 SVC system_interrupt
5 Other it other_interrupt
     
Le traitant se termine par
  • le rechargement du contexte d'un processus qui n'est pas obligatoirement celui qui a été interrompu
  • Une nouvelle commutation du mot d'état -> Acquittement
     

Priorité, masquage et désarmement des interruptions

     
Retour Retour au sommaire Haut de page