Page préc.
Gestion mémoire
Fin de page Page suiv.
Algorithmes d'allocation du processeur

Introduction

    Avant même la mémoire centrale, le(s) processeur(s) constitue(nt) une ressource hautement critique que, dans un contexte  multitâche, un S.E. doit attribuer à chaque processus de façon "optimale". Cette activité est appelée ordonnancement (en anglais scheduling) et est réalisée par un ordonnanceur (en anglais scheduler), qui est une partie du S.E., selon des algorithmes d'ordonnancement.

Objectifs de l'ordonnancement

    Pour rendre un S.E. efficace et satisfaisant pour l'utilisateur, l'ordonnanceur doit essayer d'atteindre les objectifs suivants:     Tous ces objectifs déterminent les algorithmes d'ordonnancement qui prennent en compte différentes caractéristiques des processus qu'ils ont à gérer et de leur comportement :

Ordonnancement préemptif/non préemptif

    On dit qu'un ordonnanceur est non préemptif lorsqu'après avoir donné le contrôle (le processeur) à un processus, il ne peut le lui reprendre. C'est alors au processus lui-même d'abandonner le processeur. Dans le cas contraire, l'ordonnanceur est dit préemptif ou avec réquisition.

    Un mode préemptif est indispensable dans le cas du temps réel : un traitement d'extrème urgence ne peut attendre le bon vouloir d'un processus qui ne veut pas abandonner son activité. Le temps partagé interactif devrait lui aussi être en mode préemptif afin d'assurer à chacun un temps de réponse raisonnable. Cependant, ce mode peut être coûteux car il peut générer une rotation plus grande des processus actifs, augmentant d'une part l'overhead par les multiples commutations de contexte qu'il provoque, d'autre part le nombre de processus devant être présents physiquement en mémoire, ce qui nécessite des capacités de stockage primaire accrues.

Le "timer"

    Toute machine possède une horloge de fréquence donnée et fixe. A ce dispositif hardware peut en être superposé un autre qui déclenche une interruption à un intervalle de temps déterminé (par exemple 50 à 60 fois par seconde). A chaque interruption, le système peut reprendre le contrôle et relancer le processus de son choix. Ce mécanisme permet de mettre en place le quantum de temps.

Priorité statique/dynamique

    La priorité d'un processus peut être fixée définitivement au moment du lancement du processus, ou au contraire être calculée au fur et à mesure des besoins, par exemple à chaque top d'horloge. Bien entendu, la première méthode est beaucoup plus facile à mettre en oeuvre mais la seconde est beaucoup plus souple. En effet, l'ordonnanceur ne connaît pas quel sera le comportement du processus avant qu'il commence. La priorité initiale est tout-à-fait arbitraire. Au contraire, dans le second cas, l'ordonnanceur calcule la priorité courante en fonction du comportement passé du processus. Dans certains systèmes, la priorité peut être achetée par un utilisateur.
Page préc.
Gestion mémoire
Début de page Page suiv.
Algorithmes d'allocation du processeur
Dernière mise à jour : 06/07/2001