Cours : Introduction aux systèmes d'exploitation

 
 
Ce chapitre constitue une introduction aux systèmes d'exploitation multiprogrammés. Après un rappel sur l'évolution de la prise en compte des entrées/sorties par la machine physique, nous donnons la définition d'un système d'exploitation., puis nous listons les différentes fonctions qui le composent. Les différents types de systèmes d'exploitation sont ensuite présentés et une attention toute particulière est alors portée sur les systèmes temps réel. Nous finissons par un rappel sur les notions de base.

1 Evolution de la prise en compte des entrées sorties par la machine matérielle : vers la machine multiprogrammée

 
 
Nous nous intéressons à l'évolution de la prise en charge des entrées/sorties au niveau matériel. Trois modes sont possibles : le mode programmé, les interruptions et le Dma. Nous allons voir que le dernier mode libère complètement le processeur de la réalisation d'une entrée sortie et permet alors de faire exécuter à celui-ci d'autres opérations durant celle-ci : le système pourra alors être multiprogrammé, c'est-à-dire pourra permettre le traitement de plusieurs programmes : l'une en entrées/sorties, l'autre en calcul.

1.1 Le mode programmé

Le premier mode de gestion des entrées/sorties est le mode programmé. Dans ce mode, l'unité d'échange qui interface le périphérique au bus et au processeur, ne sait pas délivrer d'informations sur son état. Pour savoir si l'unité d'échange est prête à recevoir ou délivrer une nouvelle donnée, le processeur doit régulièrement lire le contenu du registre d'état RE de l'unité d'échange. Le processeur est donc complètement occupé durant l'entrée sortie par la réalisation de cette boucle de scrutation dont la logique est donnée sur la figure 1 en mémoire centrale. On ne peut donc concevoir qu’un système monoprogrammé.
Fig 1 : Le mode programmé

1.2 Les interruptions

 
 
Une première amélioration provient du mécanisme d'interruption : l'unité d'échange délivre alors une interruption à destination du processeur lorsqu'elle est prête à délivrer ou recevoir une nouvelle donnée. Le processeur, à la prise en compte de cette interruption, va exécuter la routine associée qui lit la donnée présente dans RD (lecture) ou met dans RD la donnée suivante à écrire. Le processeur ne doit donc plus scruter le registre d'état RE de l'unité d'échange pour savoir si celle-ci est prête. Cependant, il reste le seul à pouvoir accéder à la mémoire centrale et doit donc encore gérer l'entrée sortie dans le sens où il doit se charger des transferts mémoire centrale – registre de donnée.
Fig 2 : Entrée/sortie et interruption

1.3 Le DMA ou Direct Memory Access

 
 
L'ajout d'un dispositif de DMA (Direct Memory Access) permet à l'unité d'échange d'accéder par elle-même à la mémoire centrale. Le DMA com port e quatre registres qui servent à décrire l'opération d'entrées/sorties à réaliser (nombre d'octets à transférer nb, adresse du premier octet @m, sens de l'opération, .adresse du périphérique concerné @p). Combiner au mécanisme d'interruption, le DMA permet de décharger le processeur de toute la réalisation des entrées/sorties. Celui-ci n'a plus qu'à initialiser l'opération en initialisant le contenu des registres du DMA tel que cela est décrit sur la figure 3. Le DMA se charge ensuite d'effectuer l'opération d'entrées/sorties, en lisant ou écrivant lui-même en mémoire centrale les données transférées par l'unité périphérique. Lorsque l'opération d'entrées sorties est terminée, le DMA émet une interruption pour le signaler au processeur.
Fig 3 : DMA et entrée sortie
 
 
Le chronogramme de la figure 4 illustre l'activité du processeur et du DMA lorsque le système est monoprogrammé. Le programme Prog s'exécute et fait du calcul : le processeur est actif et le DMA inactif. A un instant t, le programme Prog demande une opération d'entrées/sorties (Lire/Ecrire). Le Dma, une fois initialisé par le processeur, devient actif et le processeur inactif, puisqu'il n'y a qu'un seul programme en mémoire centrale et que le DMA gère seul l'opération d'entrées sorties. Le processeur demeure donc inactif jusqu’à ce que le DMA ait fini l'entrée sortie; à ce moment là le processeur reçoit l'interruption émise par le DMA, redevient actif, traite l'interruption puis reprend l'exécution du programme Prog.. 
Fig 4 : Activité du CPU et du DMA sur un système monoprogrammé
 
 
Laisser le processeur inactif conduit à une mauvaise utilisation de cette ressource matérielle. On choisit donc de "monter" plusieurs programmes en mémoire centrale : ainsi comme le montre la figure 5, lorsque le DMA réalise une opération d'entrées sorties pour le programme ProgA, le processeur peut exécuter un autre programme qui demande du calcul : ProgB. Le système est devenu multiprogrammé.
Fig 5 : Activité du CPU et du DMA sur un système multiprogrammé
Introduction Introduction aux systèmes d'exploitation