Vous êtes sur la page 1sur 30

ORDONNANCEMENT

DES PROCESSUS
INTRODUCTION

• La multiprogrammation permet à plusieurs processus d'être dans


l'état prêt.
• Un ordinateur possède forcément plusieurs processus en
concurrence pour l’obtention du temps processeur.
• Cette situation se produit lorsque 2 ou plusieurs processus sont en
état prêt simultanément.
• Le processeur est alloué à un seul processus à un moment donné.
INTRODUCTION

• Le rôle de l'ordonnanceur (ou scheduler) est de choisir parmi les processus


prêts à être exécutés quel processus affecter au processeur,
• C'est la partie (un programme) du système d’exploitation responsable de régler
les états des processus (Prêt, Actif,…etc.) et de gérer les transitions entre ces
états ;
• c’est l’allocateur du processeur aux différent processus, il alloue le processeur au
processus en tête de file des Prêts.

• Différentes stratégies d'ordonnancement de processus sont utilisées.


INTRODUCTION

• Les objectifs d’un Ordonnanceur sont :


• Maximiser l’utilisation du processeur
• Présenter un temps de réponse acceptable
• Respecter l’équité entre les processus selon le critère
d’ordonnancement utilisé.
ORDONNANCEUR

• L'ordonnanceur est un programme du noyau qui alloue le


processeur aux processus.

• Son rôle consiste à choisir le processus à exécuter parmi les


processus prêts selon une stratégie d'ordonnancement donnée.
ORDONNANCEUR

• Les décisions d'ordonnancement peuvent avoir lieu dans l'une des quatre
circonstances suivantes :
• Un processus commute de l'état en exécution vers l'état en attente (requête
E/S).
• Un processus commute de l'état en exécution vers l'état prêt (quantum de
temps utilisé).
• Un processus commute de l'état en attente vers l'état prêt (terminaison d'une
E/S).
• Un processus se termine.
ORDONNANCEUR

• Les algorithmes d'ordonnancement de processus sont classés en deux


types de stratégie :
• Ordonnancement coopératif (sans réquisition) : les processus ne sont pas
interrompus, l'ordonnanceur ne choisit un nouveau processus que dans le cas où le
processus en cours termine son exécution ou attend une entrée/sortie.
• Ordonnancement préemptif (avec réquisition) : l’ordonnanceur peut interrompre un
processus en cours d’exécution si un nouveau processus de priorité plus élevée est
inséré dans la file des Prêts.
ORDONNANCEUR

• L’objectif d’un algorithme d’ordonnancement consiste à identifier le


processus qui conduira à la meilleure performance possible du système.
• Certes, il s’agit là d’une évaluation subjective dans laquelle entrent en
compte différents critères à l’importance relative variable.
• La politique d’ordonnancement détermine l’importance de chaque critère.
• Un certain nombre d’algorithmes ont fait leur preuve dans la mise en
œuvre d’une politique d’ordonnancement.
ORDONNANCEUR

• La liste qui suit passe en revue des critères d’ordonnancement fréquemment


utilisés.
• Utilisation de l’UC : Pourcentage de temps pendant lequel l’UC exécute un processus.
• L’importance de ce critère varie généralement en fonction du degré de partage du
système.
• Utilisation répartie : Pourcentage du temps pendant lequel est utilisé l’ensemble des
ressources (outre l’UC, mémoire, périphérique d’E/S…)
• Débit : Nombre de processus pouvant être exécutés par le système sur une période de
temps donnée.
ORDONNANCEUR

• La liste qui suit passe en revue des critères d’ordonnancement fréquemment utilisés.
• Temps de rotation : durée moyenne qu’il faut pour qu’un processus s’exécute. Le temps
de rotation d’un processus comprend tout le temps que celui-ci passe dans le système. Il
est inversement proportionnel au débit.
• Temps d’attente : durée moyenne qu’un processus passe à attendre. Mesurer la
performance par le temps de rotation présente un inconvénient : Le temps de
production du processus accroît le temps de rotation ; Le temps d’attente représente
donc une mesure plus précise de la performance. Il faut minimiser le temps d'attente en
traitement par lots.
ORDONNANCEUR

• La liste qui suit passe en revue des critères d’ordonnancement fréquemment utilisés.
• Temps de réponse : Temps moyen qu’il faut au système pour commencer à répondre aux
entrées de l’utilisateur. Il faut minimiser le temps de réponse aux processus interactifs.
• Equité : degré auquel tous les processus reçoivent une chance égale de s’exécuter. Un
bon algorithme d'ordonnancement doit être capable de s'assurer que chaque processus
en attente d'exécution reçoit sa part de temps processeur.
• Priorités : attribue un traitement préférentiel aux processus dont le niveau de priorité est
supérieur.
LES ALGORITHMES
D'ORDONNANCEMENT
Les algorithmes d'ordonnancement réalisent la
sélection parmi les processus actifs de celui qui
va obtenir l'utilisation d'une ressource, …
LES ALGORITHMES D'ORDONNANCEMENT

• Avec les algorithmes d'ordonnancement sans réquisition, un processus affecté au


processeur ne peut pas être interrompu.
• La décision d'ordonnancement aura lieu lorsque le processus courant termine
son exécution ou réalise une opération d'E/S.
• Trois algorithmes d'ordonnancement sans réquisition sont présentés dans cette
section :
• Premier arrivé premier servi,
• Le plus court d'abord
• L'ordonnancement avec priorité simple.
PREMIER ARRIVÉ PREMIER SERVI

• L'algorithme d'ordonnancement premier arrivé premier servi (First Come


First Served : FCFS) est le plus simple des algorithmes d'ordonnancement.
• Sa mise en œuvre peut être réalisée grâce à une file d'attente FIFO.
• Dès que le processeur est libre, il est alloué au processus en tête de la file
d'attente.
• Une fois le processeur est alloué à un processus, celui ci le garde jusqu'à la
fin du processus ou suite à la demande d'une entrée/sortie.
PREMIER ARRIVÉ PREMIER SERVI

• Exemple :
• Considérons les processus P1, P2, P3, P4, P5 suivants dont leurs différents temps
d’exécution sont indiqués dans le tableau suivant :

Processus P1 P2 P3 P4 P5

Temps d’exécution (ms) 10 1 2 1 5

Temps d’arrivé 0 0 0 0 0
PREMIER ARRIVÉ PREMIER SERVI

• L'exécution de
l'algorithme FCFS sur
ces processus donne le
diagramme de suivant :
PREMIER ARRIVÉ PREMIER SERVI

• Temps d’attente moyen = (0 + 10 + 11 + 13 + 14 ) / 5 = 48 / 5 = 9,6 ms


• Le temps de réponse TR = (10 + 11 + 13 + 14 + 19) / 5 = 13,4 ms

L'algorithme d'ordonnancement FCFS possède l'avantage d'être


simple à réaliser.
Néanmoins, le temps d'attente pour l'allocation du processeur au
processus n'est pas optimal puisque les processus en tête de la file
peuvent être les processus les plus longs à exécuter.
LE PLUS COURT D'ABORD

• L'algorithme d'ordonnancement le plus court d'abord (Shortest Job First : SJF)


affecte le processeur au processus possédant le plus court temps d'exécution.

• Chaque processus est associé à la longueur de son prochain cycle.

• Le processeur est alloué au processus de plus court cycle.

• Dans le cas où plusieurs processus possèdent la même durée, la politique FCFS sera
alors utilisée.
LE PLUS COURT D'ABORD

• Exemple :
• Considérons les processus P1, P2, P3, P4, P5 suivants dont leurs différents temps
d’exécution sont indiqués dans le tableau suivant :

Processus P1 P2 P3 P4 P5

Temps d’exécution (ms) 10 1 2 1 5

Temps d’arrivé 0 0 0 0 0
LE PLUS COURT D'ABORD

• On reprend le même exemple


de processus de l'algorithme
FCFS, l'exécution de
l'algorithme SJF sur ces
processus donne le diagramme
suivant :
LE PLUS COURT D'ABORD

• Temps d’attente moyen = (0 + 1 + 2 + 4 + 9) / 5 = 16 / 5 = 3,2 ms


• Le temps de réponse TR = (1 + 2 + 4 + 9 + 19) / 5 = 7 ms

Cet algorithme possède l'avantage de donner un


temps d'attente optimal. Néanmoins, il est
difficile de pouvoir estimer à l'avance le temps
d'exécution d'un processus.
L'ORDONNANCEMENT AVEC PRIORITÉ SIMPLE

• Le principe de cet algorithme consiste à attribuer à chaque


processus une valeur qui indique sa priorité.

• Le processeur est alloué au processus de plus haute priorité.

• La priorité varie selon les systèmes et peut aller de 0 à 127.


L'ORDONNANCEMENT AVEC PRIORITÉ SIMPLE

• Un classement possible des processus est donné comme suit (des


processus les plus prioritaires aux processus les moins prioritaires) :
1) Processus système.
2) Processus interactifs.
3) Processus batch.
4) Processus utilisateurs.
L'ORDONNANCEMENT AVEC PRIORITÉ SIMPLE

• Exemple :
• Considérons les processus P1, P2, P3, P4, P5 suivants dont leurs différents temps
d’exécution sont indiqués dans le tableau suivant :

Processus P1 P2 P3 P4 P5
Temps d’exécution (ms) 10 1 2 1 5
Temps d’arrivé 0 0 0 0 0
Priorité 3 5 2 1 4
L'ORDONNANCEMENT AVEC PRIORITÉ SIMPLE

• L'exécution de l'algorithme
avec priorité simple sur ces
processus donne le
diagramme de suivant :
L'ORDONNANCEMENT AVEC PRIORITÉ SIMPLE

• Temps d’attente moyen = (0 + 1 + 6 + 16 + 18) / 5 = 41 / 5 = 8,2 ms


• Le temps de réponse TR = (1 + 6 + 16 + 18 + 19) / 5 = 12 ms

Cet algorithme possède l'avantage de donner un


temps d'attente optimal. Néanmoins, il est
difficile de pouvoir estimer à l'avance le temps
d'exécution d'un processus.
L'ALGORITHME TOURNIQUET

• L'algorithme d'ordonnancement tourniquet


(Round Robin : RR) a été conçu pour les
systèmes à temps partagé.
• Le principe de cet algorithme consiste à définir
un intervalle de temps appelé quantum.
• Le processeur est alloué aux processus à tour
de rôle pendant la durée du quantum (figure
suivante).
L'ALGORITHME TOURNIQUET

• La performance de l'algorithme de Round Robin dépend du choix de la


taille du quantum.
• Un quantum trop court provoque trop de commutations de contexte et
abaisse l'efficacité du processeur.
• Un quantum trop long augmente le temps d'attente. Il faut trouver un juste
équilibre afin d'obtenir un temps d'attente convenable et une perte de temps
processeur raisonnable (choisir un quantum ni trop court ni trop long).
L'ALGORITHME TOURNIQUET

• On reprend le
même exemple
de processus :
L'ALGORITHME TOURNIQUET

• Temps d’attente moyen = (0 + 10 + 1 + 5 + 3 + 9) / 5 = 5,6 ms


• Le temps de réponse TR = (20 + 2 + 8 + 5 +15) / 5 = 10,0 ms

La performance de l'algorithme de Round


Robin dépend du choix de la taille du
quantum. .

Vous aimerez peut-être aussi