Vous êtes sur la page 1sur 8

Chapitre 4: Ordonnancement des processus

 Concepts de base
 Critères d’ordonnancement
 Algorithmes d’ordonnancement

Ordonnancement des processus est à la base des systèmes d'exploitation à


multiprogrammation. En commutant le CPU entre les processus, le système d'exploitation
rend l'ordinateur plus productif. Dans ce chapitre, nous introduisons les concepts de base et
les différents algorithmes d’ordonnancement.

4.1. Concepts de base

L'objectif de multiprogrammation est d'avoir à chaque instant un processus en cours


d’exécution, afin d'optimiser l'utilisation du processeur. Dans un système monoprocesseur,
seulement un processus peut fonctionner à la fois; d'autres processus doivent attendre
jusqu'à ce que le CPU soit libre pour être reprogrammé.

Un processus est exécuté jusqu’à ce qu’il doit attendre pour faire des opérations d’E/S.
quand un processus a à attendre, le système d’exploitation retire le CPU de ce processus et
l’attribue à un autre (prêt en attente dans ready queue).

4.1.1. Temps d’exécution CPU vs Opérations d’E/S

Le succès d’ordonnancement des processus dépend de la propriété observée ci-après :


Exécution des processus consiste en un cycle d'exécution de CPU et un cycle d’attente d’E/S.
Processus alternent entre ces deux états. L'exécution de processus commence avec CPU.
Cela est suivi d'une attente d’E/S, puis un autre cycle CPU, puis celui d'E/S, et ainsi de suite.
Finalement, l’exécution se terminera avec le cycle CPU après un appel system.

1
4.1.2. Ordonnanceur

Chaque fois que le CPU devient inactif, le système d'exploitation doit sélectionner l'un des
processus, dans la file d’attente ready queue, prêt à être exécuté. Le mécanisme de sélection
est effectué par l'ordonnanceur à court terme (ou CPU scheduler).

L'ordonnanceur sélectionne les processus en mémoire qui sont prêts à s’exécuter, et alloue
le CPU à l'un d'entre eux.

Conceptuellement, tous les processus dans la file d'attente ready queue sont alignés en
attente d'une chance de s’executer sur le CPU. Les contenus de cette file d'attente sont
généralement des blocs de contrôle de processus (PCB).

4.1.3. Ordonnancement préemptif et nom préemptif

Décisions d'ordonnancement peuvent avoir lieu dans les quatre cas suivants:

1. Quand un processus passe de l'état d’exécution à l'état d'attente (par exemple, à cause
des opérations d’E/S ou l’appel à la fonction wait pour terminer un processus enfant)

2. Quand un processus passe de l'état d’exécution à l'état prêt (par exemple, lorsqu'une
interruption se produit)

2
3. Quand un processus passe de l'état d'attente à l'état prêt (par exemple, après la
réalisation des opérations d’E/S)

4. Lorsqu'un processus se termine

Lorsque l'ordonnancement a lieu uniquement dans des circonstances 1 et 4, nous disons


qu’il est non préemptif ou coopératif (ou sans réquisition); autrement, l'ordonnancement
est préemptif ou non coopératif (ou avec réquisition).

Avec l’ordonnancement non préemptif, une fois que le CPU a été affecté à un processus, le
processus continue jusqu'à ce qu’il termine ou passe à l'état d'attente (bloqué).

Exemple : Windows (< 95), Windows NT, Mac OS(< 10)

Avec l’ordonnancement préemptif, pour s'assurer qu'aucun processus ne s'exécute pendant


trop de temps, les processus s’exécutent à tour de rôle pendant un temps bien définis
(quantum) jusqu’à ce qu’ils terminent.

L’inconvénient est que ça nécessite des outils de synchronisation et du matériel spécifique


comme horloge.

Exemple : Windows 95, Mac OS X, UNIX.

4.2. Critères d’ordonnancement

De nombreux critères ont été proposés pour comparer des algorithmes d’ordonnancement.
Les caractéristiques utilisées pour la comparaison peuvent faire une différence substantielle
dans la détermination du meilleur algorithme. Les critères comprennent :

Utilisation du processeur - garder le CPU aussi occupé que possible

Débit - nombre de processus qui terminent leur exécution par unité de temps

Délai d'exécution - quantité de temps pour exécuter un processus particulier. Le délai


d'exécution est la somme de temps passé à attendre pour entrer dans la mémoire, dans la
file d'attente prêt, exécutant sur le processeur, et faisant E/S.

Temps d'attente - quantité de temps un processus a été en attente dans la file d’attente
prêt (ready queue)
3
Temps de réponse - quantité de temps qu'il faut à partir du moment où une requête a été
lancée jusqu’à la première réponse

Le critère d’optimisation consiste à maximiser l'utilisation du processeur et le débit, et à


minimiser le délai d'exécution, le temps d'attente, et le temps de réponse.

4.3. Algorithmes d’ordonnancement

Ordonnancement des processus traite le problème de décider lequel des processus dans la
file d'attente prêt (ready queue) doit être alloué le CPU.

Un algorithme d'ordonnancement est une méthode ou stratégie utilisée pour ordonnancer les
processus.

4.3.1. PAPS : Premier Arrivé Premier Servi (ou FCFS : First-Come, First-Served)

 La mise en œuvre de l’ordonnancement PAPS est facilement gérable avec une file
d'attente FIFO.

 Quand le CPU est libre, il est affecté au processus à la tête de la file d'attente. Ce
processus est ensuite retiré de la file.

 Le code de l’ordonnancement PAPS est simple à écrire et comprendre. Cependant la


moyenne des temps d'attente, est souvent assez longue

 Considérons l'ensemble des processus suivants qui arrivent au temps 0, avec la


longueur du temps d’exécution CPU donnée en millisecondes :

4
4.3.2. SJF : Shortest-Job-First (Le plus court d'abord)

Cet algorithme associe à chaque processus la durée de son prochain temps d’exécution CPU.
Le processus avec le temps le plus court est sélectionné. En cas d’égalité, on revient au FCFS

Deux schémas :

Non préemptif - une fois le CPU est alloué au processus ne peut pas être interrompu avant son
exécution complète.

Préemptif - si un nouveau processus débarque avec un temps inférieur au temps d'exécution


restant de processus en cours, préempter. Ce schéma est connu comme SRTF : Shortest-
Remaining-Time-First (temps restant le plus court).

5
SJF est optimal - donne le temps moyen d'attente minimum pour un ensemble donné de
processus.

Inconvénient

 Difficulté de calculer la longueur des cycles


 Approximation possible par moyenne exponentielle :

6

t n  longueur actuelle de n th cycle CPU
 n 1  valeur predite du prochain cycle CPU
, 0    1

4.3.3. Ordonnancement à priorité

L'ordonnanceur à priorité attribue à chaque processus une priorité. Le choix du processus à


élire dépend des priorités des processus prêts.
Les processus de même priorité sont regroupés dans une file du type FIFO. L'ordonnanceur
choisit le processus le plus prioritaire qui se trouve en tête de file.
Attribution et évolution des priorités :
Pour empêcher les processus de priorité élevée de s'exécuter indéfiniment, l'ordonnanceur
diminue régulièrement la priorité du processus en cours d'exécution.
La priorité du processus en cours est comparée régulièrement à celle du processus prêt le plus
prioritaire (en tête de file). Lorsqu'elle devient inférieure, la commutation a lieu. Dans ce cas,
le processus suspendu est inséré en queue de file correspondant à sa nouvelle priorité.

4.3.4. Ordonnancement circulaire


L'algorithme du tourniquet, circulaire ou round robin montré sur la figure ci-dessous est
un algorithme ancien, simple, fiable et très utilisé. Il mémorise dans une file du type FIFO
(First In First Out) la liste des processus prêts, c'est-à-dire en attente d'exécution.

 Choix du processus à exécuter


Il alloue le processeur au processus en tête de file, pendant un quantum de temps.
Si le processus se bloque ou se termine avant la fin de son quantum, le processeur est
immédiatement alloué à un autre processus (celui en tête de file).

7
Si le processus ne se termine pas au bout de son quantum, son exécution est suspendue. Le
processeur est alloué à un autre processus (celui en tête de file). Le processus suspendu est
inséré en queue de file.
Les processus qui arrivent ou qui passent de l'état bloqué à l'état prêt sont insérés en queue de
file.

Vous aimerez peut-être aussi