Information Technology Reference
In-Depth Information
processus de niveau n - 1 ne peuvent s'exécuter que lorsqu'il n'y aura plus aucun
processus dans la file de niveau supérieure n. De même les processus de niveau n - 2
ne peuvent s'exécuter que lorsqu'il n'y a plus aucun processus dans les files de
niveau supérieur n et n - 1. Ainsi, plus les processus sont dans les files de priorités
inférieures, plus leurs chances de s'exécuter sont réduites.
Si la même politique est mise en œuvre mais avec extinction de priorité, alors
lorsqu'un processus de niveau n a terminé son quantum, il ne regagne pas la file de
niveau n, mais la file de niveau juste inférieure n - 1. Ainsi sa priorité baisse.
Ordonnancement sous Linux
Principe de l'ordonnancement
Dans le système Linux, chaque processus est qualifié par une priorité. Par ailleurs,
conformément à la norme pour les systèmes d'exploitation ouverts POSIX 1003.1,
le système Linux offre trois politiques d'ordonnancement différentes, SCHED_FIFO,
SCHED_RR et SCHED_OTHER. Un processus créé est attaché à l'une des politi-
ques par un appel à la fonction système sched_setscheduler().
- La politique SCHED_FIFO élit à tout instant le processus de plus forte priorité
parmi les processus attachés à cette classe.
- La politique SCHED_RR est une politique de type tourniquet entre processus de
même priorité.
- La politique SCHED_OTHER implémente une politique à extinction de priorité,
qui est la politique d'ordonnancement classique du système Unix.
Les processus attachés aux politiques SCHED_FIFO et SCHED_RR sont plus prio-
ritaires que les processus attachés à la politique SCHED_OTHER, c'est-à-dire que les
processus SCHED_OTHER ne s'exécutent que lorsqu'il n'y a plus aucun processus
SCHED_FIFO ou SCHED_RR à exécuter.
Appels systèmes liés à l'ordonnancement
Le système Linux, conformément à la norme POSIX 1003.1, offre un ensemble de
primitives systèmes pour la gestion de l'ordonnancement, plus précisément :
- les primitives sched_setscheduler() et sched_getscheduler() permettent d'attribuer
une des trois politiques d'ordonnancement vues précédemment à un processus ou
de connaître la politique affectée à un processus ;
- les primitives setpriority() et getpriority() permettent de modifier la priorité
d'un processus ou de connaître la priorité affectée à un processus ;
- la primitive sched_rr_get_interval() permet de connaître le quantum de temps
attribué à un processus de type SCHED_RR.
Ordonnancement sous MVS
Dans le système MVS, les travaux à ordonnancer sont également qualifiés par une
priorité. Ces travaux de deux types différents sont décrits au sein du système par des
blocs de contrôle : d'une part les TCB ( Task Control Block ) représentent les processus
dans un espace adresse tels que les processus utilisateurs; d'autre part, les SRB ( Service
Search WWH ::




Custom Search