Un exemple de mise en uvre
On considère trois processus A, B et C qui ont chacun une priorité initiale de 60. La priorité de base du niveau utilisateur
est également la priorité 60. L'interruption horloge se déclenche 60 fois par seconde. A l'instant 0, le processus A est élu.
Chaque seconde, l'interruption horloge survient et le champ "utilisation du processeur " (compte UC sur la figure 10) est
incrémenté de une unité. Au bout de 60 secondes (instant t = 1), la priorité des processus est recalculée. Du fait que les
processus B et C ne se sont pas encore exécutés leur priorité est inchangée (le compte UC est nul pour ces processus). La
priorité du processus A par contre baisse et devient égale à 75 (60 + 30/2). C'est donc le
processus
B qui est à présent élu. A l'instant 2, de nouveau les priorités sont recalculées. Le compte UC du processus C étant toujours
nul , la priorité de ce processus n'est pas modifiée. Les priorités du processus A et B par contre évoluent et deviennent
respectivement égales à 67 pour le processus A (60 + 15/2) et à 75 pour le processus B. On voit à présent que le processus
A a une priorité qui remonte du fait qu'il n'a pas pu utiliser l'unité centrale.
 |
Fig 10 : Exemple de mise en uvre de l'ordonnancement sous Unix
|
|