Académique Documents
Professionnel Documents
Culture Documents
3.1 Généralités
Dans un système à un seul processeur, on l’a vu, un seul processus peut tourner à
la fois ; les autres doivent attendre la disponibilité du processeur. L’objectif de la
multiprogrammation est de maximiser l’utilisation du processeur, en ayant toujours
un processus qui tourne. Le principe est simple : plusieurs processus sont
maintenus à l’état « prêt » en mémoire. Lorsqu’un processus doit attendre
(typiquement, pour une entrée sortie), alors au SE donne le temps CPU à un autre
processus.
L’ordonnanceur (scheduler) est la partie fondamentale du SE qui s’occupe de
distribuer les temps processeur entre les différents processus.
L’ordonnanceur règle les états et les transitions des processus d’un ordinateur. Il
a pour objectifs principaux :
processus) ;
complètement le système.
Si le processus se bloque et qu’il ne redonne pas la main au SE, alors tout le système est
bloqué.
Ce type d’algorithmes n’est pas présent dans les SE modernes. Les premiers
systèmes MS-DOS, Windows 3.1 et Mac OS avant la version 9 étaient de ce type.
Lorsqu’une longue opération était en cours, le système était « gelé ».
3.1.3 Commutation de contexte
On l’a vu, lorsque le SE change de processus élu, il y a commutation de contexte,
où le SE jongle avec les PCB des processus.
3.2.1 Quantums de temps
Le SE sélectionne un processus et le laisse s’exécuter pendant un délai maximum
déterminé : le quantum (avant de passer la main à un autre processus). Toutefois,
une interruption matérielle peut venir écourter le quantum de temps.
En d’autres termes, chaque processus possède son quantum de temps pendant
lequel il dispose des ressources de l’ordinateur et du microprocesseur. À la fin de
cet intervalle de temps, s’il n’a pas complété son travail, l’ordonnanceur lui retire
ses privilèges d’exécution et donne les ressources d’exécution à un autre
processus. Si le processus se bloque (E/S) ou se termine avant la fin de son
quantum, le processeur est alloué à un autre processus.
Un quantum trop petit provoque trop de commutations de processus et réduit
l’efficacité du système alors qu’un quantum trop grand augmente le temps de
réponse pour les utilisateurs.
Comme les processus ont tendance à basculer constamment entre des phases
d’entrées/sorties et des phases de calcul sur l’unité centrale, l’algorithme
d’ordonnancement doit profiter de ce comportement.
Pour s’assurer qu’un processus ne s’exécute pas trop longtemps, l’ordinateur
possède un compteur de temps qui génère des séquences de 30 à 100 fois par
seconde. À chacune de ces interruptions, le système d’exploitation reprend la
main et décide si le processus courant continue ou s’il passe le microprocesseur à
un autre processus prêt. Ce mécanisme se traduit par un changement de contexte
entre les processus