ORDONANCEMENT
Ordonnancement des processus
D
Ans
un système multi-utilisateurs à temps partagé, plusieurs processus peuvent être présents en mémoire centrale en attente d’exécution.
Si plusieurs processus sont prêts, le système d’exploitation doit gérer l’allocation du processeur aux différents processus à exécuter. C’est l’ordonnanceur qui s’acquitte de cette tâche.
8.1 Introduction
Tout le logiciel d’un ordinateur peut être vu comme un ensemble de processus dont l’exécution est gérée par un processus particulier : l’ordonnanceur (scheduler en anglais). Un ordonnanceur fait face à deux problèmes principaux :
– le choix du processus à exécuter, et
– le temps d’allocation du processeur au processus choisi.
Un système d’exploitation multitâche est préemptif lorsque celui-ci peut arrêter (réquisition) à tout moment n’importe quelle application pour passer la main à la suivante. Dans les systèmes d’exploitation préemptifs on peut lancer plusieurs applications à la fois et passer de l’une à l’autre, voire lancer une application pendant qu’une autre effectue un travail.
Il y a aussi des systèmes d’exploitation dits multitâches, qui sont en fait des « multi-tâches coopératifs ». Quelle est la différence ? Un multitâche coopératif permet à plusieurs applications de fonctionner et d’occuper des plages mémoire, laissant le soin à ces applications de gérer cette occupation, au risque de bloquer tout le système. Par contre, avec un « multi-tâche préemptif », le noyau garde toujours le contrôle (qui fait quoi, quand et comment), et se réserve le droit de fermer les applications qui monopolisent
1
2
CHAPITRE 8. ORDONNANCEMENT DES PROCESSUS
les ressources du système. Ainsi les blocages du système sont inexistants.
8.2 Types d’ordonnanceurs
Il est possible de distinguer trois types d’ordonnanceurs : à long terme, à moyen terme et à court terme. Leurs principales fonctions sont les suivantes :
À long terme : L’ordonnanceur fait la