Cours : Ordonnancement de processus
1 Notions liées à l'ordonnancement de processus
1.1 Qu'est-ce que l'ordonnancement de processus ?
La figure 1 schématise le fonctionnement d'une machine multiprocessus. Plusieurs processus sont présents en mémoire centrale.
P1 est élu et s'exécute sur le processeur. P2 et P4 sont dans l'état bloqué car ils attentent tous les deux une fin d'entrée/sortie
avec le disque. Les processus P3, P5 et P6 quant à eux sont dans l'état prêt : ils pourraient s'exécuter (ils ont à leur disposition
toutes les
ressource
s nécessaires) mais ils ne le peuvent pas car le processeur est occupé par P1. Lorsque P1 quittera le processeur parce qu'il
a terminé son exécution, les trois processus P3, P5 et P6 auront tous les trois le droit d'obtenir le processeur. Mais le
processeur ne peut être alloué qu'à un seul processus à la fois : il faudra donc choisir entre P3, P5 et P6 : c'est le rôle
de l'
ordonnancement
qui élira un des trois
processus
.
 |
Fig 1 : qu'est-ce l'ordonnancement ?
|
|
Définition : Ordonnancement
La fonction d'ordonnancement gère le partage du processeur entre les différents processus en attente pour s'exécuter, c'est-à-dire
entre les différents processus qui sont dans l'état prêt. L'opération d'élection consiste à allouer le processeur à un processus.
1.2 Ordonnancement préemptif ou non préemptif
La figure 2 reprend le graphe d'états tel qu'il a été vu à la leçon précédente concernant les processus. Une transition a
été cependant ajoutée entre l'état élu et l'état prêt : c'est la transition de préemption. La préemption correspond à une
opération de réquisition du processeur, c'est-à-dire que le processeur est retiré au processus élu alors que celui-ci dispose
de toutes les ressources nécessaires à la poursuite de son exécution. Cette réquisition
port
e le nom de
préemption
.
 |
Fig 2 : Ordonnancement préemptif
|
|
Définition : Préemption
Selon si l'opération de réquisition du processeur est autorisée ou non, l'ordonnancement sera qualifié d'ordonnancement préemptif
ou non préemptif :
- si l'ordonnancement est non préemptif, la transition de l'état élu vers l'état prêt est interdite : un processus quitte le
processeur si il a terminé son exécution ou si il se bloque.
- si l'ordonnancement est préemptif, la transition de l'état élu vers l'état prêt est autorisée : un processus quitte le processeur
si il a terminé son exécution , si il se bloque ou si le processeur est réquisitionné.
1.3 Les entités système responsables de la fonction d'ordonnancement
Le système d'ordonnancement gère une file des processus (bloc de contrôle) prêts et une file des processus bloqués. La file
des processus prêts est classée selon une
politique d'ordonnancement
qui assure que le processus en tête de file est le prochain processus à élire au regard de la politique mise en oeuvre. Ce
classement est effectué par l'
ordonnanceur
et est réactualisé à chaque fois qu'un processus est préempté ou qu'un processus est débloqué (ajout d'un nouvel élément prêt).
C'est le répartiteur qui élit le processus en tête de file, c'est-à-dire qui lui alloue un processeur libre. La figure montre
le cas d'un système multiprocesseur ; le répartiteur doit alors choisir quel processeur allouer. Dans un système monoprocesseur,
cette question ne se pose évidemment pas et souvent alors, ordonnanceur et répartiteur sont confondus. Une fois élu par le
répartiteur, le processus s'exécute. S'il quitte le processeur, sur préemption, il réintègre la file des processus prêts ;
au contraire, s'il quitte le processeur sur un blocage, il intègre la file des processus bloqués. Dans les deux cas, un nouveau
processus est élu (la tête de file des processus prêts). Plus précisément, la file d'attente des processus bloqués est souvent
organisée en files multiniveaux, chaque niveau correspondant à une attente d'un événement/
ressource
particulier auquel peut être éventuellement associé une priorité. Dans le cas où des événements se produisent simultanément,
cette priorité sert alors à déterminer quel événement doit être traité en premier.
 |
Fig 3 : Ordonnanceur et répartiteur
|
|
Définition : Ordonnanceur
L'ordonnanceur est un programme système dont le rôle est d'allouer le processeur à un processus prêt.
Ordonnancement
Ordonnancement de processus
|