![]() |
||||||||||||||||||
2 Les politiques d'ordonnancementDéfinition : Politique d'ordonnancement
La politique d'ordonnancement détermine le choix d'un processus à élire parmi tous ceux qui sont prêts.
2.1 Objectifs des politiques d'ordonnancement
2.2 Les principales politiques d'ordonnancement2.2.1 Politique d'ordonnancement "premier arrivé, premier servi" (FIFO).
C'est une politique à l'ancienneté, sans réquisition ; l'unité centrale est allouée selon l'ordre de soumission des processus.
Dans cette politique, des processus de faible temps d'exécution peuvent être pénalisés parce qu'un processus de longue durée
les précède dans la file.
2.2.2 Politique d'ordonnancement "plus court d'abord"
Cette politique tente de remédier à l'inconvénient mentionné pour la politique précédente. Maintenant, l'unité centrale est
allouée au processus de plus petit temps d'exécution. Cette politique est également une politique sans réquisition. Elle a
la propriété de minimiser le temps de réponse moyen pour l'ensemble des algorithmes d'ordonnancement sans réquisition. Elle
pénalise les travaux longs. Elle impose également d'estimer la durée des processus ce qu'on ne connaît pas habituellement.
Il existe une version avec réquisition de cette politique appelée "temps restant le plus court d'abord" : dans ce cas, le
processus en exécution restitue le processeur lorsqu'un nouveau processus de temps d'exécution inférieur à son temps d'exécution
restant devient prêt.
2.2.3 Politique d'ordonnancement par tourniquet (Round Robin)
On définit une tranche de temps appelée quantum qui peut varier de 10 ms à 100 ms. Chaque processus présent dans la file des
processus prêts acquiert le processeur à tour de rôle, et ce pour au maximum un temps égal au quantum de temps. Si le processus
a terminé son exécution avant la fin du quantum, il libère le processeur et le processus suivant dans la file des processus
prêts est élu. Si le processus n'a pas terminé son exécution avant la fin du quantum, il perd le processeur et est réinséré
en fin de file des processus prêts. Cette politique du tourniquet est usuellement utilisée dans les systèmes en temps partagé.
Sa performance dépend largement de la taille du quantum. Un quantum trop grand augmente les temps de réponse alors qu'un quantum
trop petit multiplie les
commutations de contexte
jusqu'à les rendre non négligeables.
2.2.4 Politique d'ordonnancement par priorités constantes
Un niveau de priorité constant est affecté à chaque processus et à un instant donné, le processus élu est toujours celui de
plus forte priorité. Cet algorithme présente une version sans réquisition et une version avec réquisition. Le défaut de cette
politique est le risque de famine encouru par le processus de faible priorité. Une solution à ce problème est de faire "vieillir"
la priorité des processus en attente, c'est-à-dire d'augmenter celle-ci en fonction du temps d'attente. La priorité des
processus
devient ainsi variable.
2.2.5 Politique d'ordonnancement par files de priorités constantes multiniveaux avec ou sans extinction de priorité
On peut définir deux variantes de l'algorithme, fonction de l'évolution de la priorité des processus :
2.2.6 Les politiques d'ordonnancement sous le système Linux
Il existe deux autres classes d'ordonnancement dites temps réel : SCHED_FIFO et SCHED_RR.Les rubriques "policy" et "rt_priority"
stockées dans la structure des processus Linux permettent de leur attribuer une classe d'ordonnancement et une priorité temps
réel. SCHED_FIFO et SCHED_RR ne sont pas des classes temps réel strictes, mais relatives. Quand un processus temps réel est
prêt, tous les
processus
de priorité inférieure sont mis de côté. Un processus de la classe SCHED_FIFO peut s'exécuter jusqu'à la fin de son traitement
ou jusqu'à ce qu'un processus de la classe SCHED_FIFO de priorité temps réel plus forte soit prêt. Un processus de la classe
SCHED_RR est interrompu à la fin de son quantum de temps ou dès qu'un processus de priorité temps réel (SCHED_FIFO ou SCHED_RR)
supérieure est prêt. Il existe dans cette classe un principe de tourniquet parmi les processus de même priorité.
|
||||||||||||||||||