Utilisateur:Regards sur sciences/agreg/leçons/13. Algorithmes d'ordonnancement de tâches et de gestion de ressources.

Une page de Wikiversité, la communauté pédagogique libre.

Dans les systèmes d'exploitation, l’ordonnanceur est le composant du noyau du système d'exploitation choisissant l'ordre d'exécution des processus sur les processeurs d'un ordinateur. En anglais, l'ordonnanceur est appelé scheduler.

Un processus a besoin de la ressource processeur pour exécuter des calculs; il l'abandonne quand se produit une interruption, etc. De nombreux anciens processeurs ne peuvent effectuer qu'un traitement à la fois. Pour les autres, un ordonnanceur reste nécessaire pour déterminer quel processus sera exécuté sur quel processeur (c'est la notion d'affinité, très importante pour ne pas dégrader les performances). Au-delà des classiques processeurs multicœur, la notion d'hyperthreading rend la question de l'ordonnancement encore un peu plus complexe.

À un instant donné, il y a souvent davantage de processus à exécuter que de processeurs.

Un des rôles du système d'exploitation, et plus précisément de l'ordonnanceur du noyau, est de permettre à tous ces processus de s'exécuter à un moment ou un autre et d'utiliser au mieux le processeur pour l'utilisateur. Pour que chaque tâche s'exécute sans se préoccuper des autres et/ou aussi pour exécuter les tâches selon les contraintes imposées au système (exemple: contraintes temporelles dans le cas d'un système d'exploitation temps réel) , l'ordonnanceur du noyau du système effectue des commutations de contexte de celui-ci.

Algorithmes d'ordonnancement[modifier | modifier le wikicode]

  • Round-robin (ou méthode du tourniquet)
  • Rate-monotonic scheduling (RMS)
  • Earliest deadline first scheduling (EDF)
  • FIFO
  • Shortest job first (SJF, ou SJN -Shortest Job Next-)
  • Completely Fair Scheduler (CFS)

Bibliographie[modifier | modifier le wikicode]

  • Andrew Tanenbaum, Systèmes d'exploitation, 3e, Pearson Education, 2008, (ISBN 978-2-7440-7299-4)
  • Joseph Y-T. Leung, Handbook of Scheduling: Algorithms, Models, and Performance Analysis, Chapman & Hall/CRC Computer & Information Science Series, 2004.
  • J. Stankovic et al., Deadline Scheduling for Real-Time Systems, Kluwer Aacademic, Boston, 1998, (ISBN 0-7923-8269-2)