Vous êtes sur la page 1sur 31

Algorithmes d’ordonnancement sans réquisition

Algorithmes d’ordonnancement avec réquisition

Partie 3 Ordonnancement des processus

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Introduction
Dans un système multitâche plusieurs processus sont en cours
simultanément, mais le processeur ne peut, à un moment donné, exécuter
qu’une instruction (d’un programme) à la fois. Le processeur travaille
donc en temps partagé.

L’ordonnanceur (scheduler) est le module du SE qui s’occupe de


sélectionner le processus suivant à exécuter parmi ceux qui sont
prêts.
Pr. A. AIT ABDELOUAHAD SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnancement de processus

Un processus passe entre les diverses files d’attente pendant sa durée


de vie (file d’attente des processus prêts (attendant pour s’exécuter),
fille d’attentes des périphériques, ....).

Le SE doit sélectionner les processus à partir de ces files d’attente


d’une manière quelconque.

Le processus de sélection est mené à bien par le scheduleur


approprié.

Classification des processus

Tributaire des E/S : dépense la plupart du temps à effectuer des E/S


plutôt que des calculs
Tributaire de la CPU : génère peut fréquemment des requêtes d’E/S,
cad, passe plus de temps à effectuer des calculs

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnancement de processus

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnanceurs (schedulers)

Programmes qui gèrent l’utilisation de ressources de l’ordinateur

L’ordonnanceur ne fournit pas seulement un mécanisme, mais prend


des décisions

Trois types d’ordonnanceurs :

à court terme

à long terme

à moyen terme

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnanceurs (schedulers)

Le scheduler à long terme (ou scheduler de travaux)


Sélectionne le processus qui doit aller dans la fille de processus prêts.
S’exécute moins fréquemment : peut être lent (seconds, minutes).
Contrôle le degré de multiprogrammation (le nombre de processus
dans la mémoire).
Il est important que le scheduleur à long terme réalise un bon
mélange de processus tributaires de la CPU et tributaires des E/S

Le scheduler à court terme (ou scheduler de la CPU)


Choisit parmi les processus prêts celui à être exécuté (alloue la CPU
à lui).
Appelé assez fréquemment : doit être Très rapide

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnanceurs (schedulers)

Le manque de ressources peut parfois forcer le SE à suspendre des


processus
ils seront plus en concurrence avec les autres pour des ressources
ils seront repris plus tard quand les ressources deviendront disponibles

Ces processus sont enlevés de mémoire centrale et mis en mémoire


secondaire, pour être repris plus tard
"swap out", "swap in", va-et-vient

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnanceurs (schedulers)

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnanceurs (schedulers)

Un bon ordonnanceur se doit :


de maximiser l’utilisation du processeur,
d’être équitable entre les différents processus, de présenter un temps
de réponse acceptable
d’avoir un bon rendement, d’assurer certaines priorités.

Un bon algorithme d’ordonnancement doit donc être capable de :


s’assurer que chaque processus reçoit sa part de temps processeur,
utiliser le temps processeur à 100%,
minimiser les temps de réponse pour les utilisateurs en mode
intéractif,
minimiser l’attente des utilisateurs qui travaillent en batch,
maximiser le nombre de travaux effectués en une heure.

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Algorithmes d’ordonnancement

Les algorithmes d’ordonnancement peuvent être classés en deux


catégories :
1 Non préemptif (sans réquisition)
Sélectionne un processus, puis le laisse s’exécuter jusqu’à ce qu’il
bloque (soit sur une E/S, soit en attente d’un autre processus) où
qu’il libère volontairement le processeur.
Même s’il s’exécute pendant des heures, il ne sera pas suspendu de
force.
Aucune décision d’ordonnancement n’intervient pendant les
interruptions de l’horloge.
inefficace et dangereux (ex : exécution d’une boucle sans fin. . . )
2 Préemptif (avec réquisition)
Sélectionne un processus et le laisse s’exécuter pendant un délai
déterminé.
Si le processus est toujours en cours à l’issue de ce délai, il est
suspendu et le scheduleur sélectionne un autre processus à exécuter.

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Algorithmes d’ordonnancement

Les divers algorithmes de scheduling de la CPU possèdent des


propriétés différentes et peuvent favoriser une classe de processus
plutôt qu’une autre
Critères utilisés :
Utilisation de la CPU : maintenir la CPU aussi occupée que possible.
Capacité de traitement ou débit (Throughput) : nombre de processus
terminés par unité de temps.
Temps de rotation ou temps d’exécution (Turnaround time) : temps
nécessaire pour l’exécution d’un processus = temps terminaison
moins temps arrivée.
Temps d’attente : quantité de temps qu’un processus passe à
attendre dans la file d’attente des processus prêts.
Temps de réponse : temps écoulé à partir du moment où on soumet
une requête jusqu’à l’arrivée de la première réponse .

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Premier arrivé, premier servi (FCFS : First-come,


first-served)
Les processus sont traités dans leur ordre d’arrivée (PAPS)

L’implantation de la politique FCFS est facilement gérée avec une


file d’attente FIFO.

Une fois que la CPU a été allouée à un processus, celui-ci garde la


CPU jusqu’à ce qu’il la libère (fin ou E/S).

FCFS est particulièrement incommode pour le temps partagé où il


est important que chaque utilisateur obtienne la CPU à des
intervalles réguliers.

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Premier arrivé, premier servi (FCFS : First-come,


first-served)

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Premier arrivé, premier servi (FCFS : First-come,


first-served)
Intérêts :
Algorithme facile à comprendre
Faible complexité d’implémentation (une seule liste chaînée)

Inconvénients :
Pas de prise en compte de l’importance relative des processus
Temps d’attente du processeur généralement important

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Plus court temps d’exécution d’abord (PCTE) ou (SJF :


Shortest Job First)
Associe à chaque processus la longueur de son prochain cycle de CPU.
Quand la CPU est disponible, elle est assignée au processus qui possède le
prochain cycle le plus petit. Si deux processus possèdent la même
longueur, le FCFS est utilisé.
SJF est optimal : il obtient le temps moyen d’attente minimal pour un
ensemble de processus donné.
Difficulté : pouvoir connaître la longueur de la prochaine requête de la
CPU
Deux schémas : Non préemptif et préemptif.

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Plus court temps d’exécution d’abord (PCTE) ou (SJF :


Shortest Job First)

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Plus court temps d’exécution d’abord (PCTE) ou (SJF :


Shortest Job First)
Intérêts :
SJF réduit le temps d’attente des processus
Utilisation limitée à des environnements et à des applications
spécifiques

Inconvénients :
Pas de prise en compte de l’importance relative des processus
Algorithme optimal uniquement dans le cas où tous les processus
sont disponibles simultanément

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Algorithmes d’ordonnancement avec réquisition

Pour s’assurer qu’aucun processus ne s’exécute pendant trop de


temps, les ordinateurs ont une horloge électronique qui génère
périodiquement une interruption.
A chaque interruption d’horloge, le système d’exploitation reprend la
main et décide si le processus courant doit :
poursuivre son exécution ou
être suspendu pour laisser place à un autre

S’il décide de suspendre l’exécution au profit d’un autre, il doit


d’abord sauvegarder l’état des registres du processeur avant de
charger dans les registres les données du processus à lancer
(commutation de contexte)

Cette sauvegarde est nécessaire pour pouvoir poursuivre


ultérieurement l’exécution du processus suspendu

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Algorithmes d’ordonnancement avec réquisition

Le processeur passe donc d’un processus à un autre en exécutant


chaque processus pendant quelques dizaines ou centaines de
millisecondes.

Le temps d’allocation du processeur au processus est appelé


quantum (noté par : q)

Cette commutation entre processus doit être rapide (temps


nettement inférieur au quantum).

Le processeur, à un instant donné, n’exécute réellement qu’un seul


processus

Pendant une seconde, le processeur peut exécuter plusieurs


processus et donne ainsi l’impression de parallélisme

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Plus court temps restant (Shortest Remaining Time SRT)

C’est la version de PCTE avec réquisition

Si le processus arrivant dans la file a un temps d’exécution plus


court que le temps restant du processus dans le CPU ; ce dernier est
arrêté en faveur du nouveau.

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Plus court temps restant (Shortest Remaining Time SRT)

Intérêts :
SRT minimise le temps d’attente moyen des processus les plus courts
Utilisation limitée à des environnements et à des applications
spécifiques

Inconvénients :
Pas de prise en compte de l’importance relative des processus
Non équité de service : SRT pénalise les processus longs
Possibilité de famine pour les processus longs

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnancement circulaire (tourniquet=Round-Robin (RR))


Chaque processus possède un quantum d’exécution (en général de
10 à 100 ms)
Si le processus a fini dans cet intervalle : au suivant !
S’il n’a pas fini : le processus passe en fin de liste et au suivant !

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnancement circulaire (tourniquet=Round-Robin (RR))

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnancement circulaire (tourniquet=Round-Robin (RR))

Intérêts :
Equité de l’attribution du processeur entre toutes les tâches
Mise en œuvre simple

Inconvénients :
Pas de prise en compte de l’importance relative des tâches
Difficulté du choix de la tranche de temps
Si q est trop grand, Round-Robin devient équivalent à FIFO
Si q est trop petit, il y a augmentation du nombre de changements de
contexte !

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnancement avec priorité

Une priorité est associée à chaque processus.

CPU est allouée au processus de plus haute priorité (priorité = 1 >


priorité = 2)
avec ou sans préemption
il y a une file prêt pour chaque priorité

Les processus ayant la même priorité sont schedulés dans un ordre


FCFS.

SJF : priorité déterminée par la durée du prochain cycle de CPU.

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Ordonnancement avec priorité

Exemple

Problème : Famine (starvation) ou blocage indéfinie : processus avec


des basses priorités peuvent attendre indéfiniment (ne jamais être
exécutés).

Solution : Vieillissement (aging) :


modifier la priorité d’un processus en fonction de son âge et de son
historique d’exécution
le processus change de file d’attente

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Files à plusieurs niveaux (multiples)

La file prêt est séparée en plusieurs files

travaux "d’arrière-plan" (background - batch)

travaux "de premier plan" (foreground - interactive)

Chaque file a son propre algorithme d ’ordonnancement

FCFS pour arrière-plan

tourniquet pour premier plan

Comment ordonnancer entre files ?

Priorité fixe à chaque file −→ famine possible ou

Chaque file reçoit un certain pourcentage de temps UCT :

80% pour arrière-plan


20% pour premier plan
Pr. A. AIT ABDELOUAHAD SEII
Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Files à plusieurs niveaux (multiples)

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Files multiples et à retour

Un processus peut passer d’une file à l ’autre, p.ex. quand il a passé


trop de temps dans une file

à déterminer :

nombre de files

algorithmes d’ordonnancement pour chaque file

algorithmes pour décider quand un proc doit passer d’une file à


l’autre

algorithme pour déterminer, pour un proc qui devient prêt, sur quelle
file il doit être mis

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Files multiples et à retour

Pr. A. AIT ABDELOUAHAD SEII


Algorithmes d’ordonnancement sans réquisition
Algorithmes d’ordonnancement avec réquisition

Exemple de files multiples à retour

Trois files :

Q0 : tourniquet, quantum 8 msecs

Q1 : tourniquet, quantum 16 msecs

Q2 : FCFS

Ordonnancement :

Un nouveau processus est inséré dans Q0

Processus de Q0 : S’il ne finit pas en 8ns, alors il est interrompu et


placé en Q1

Si Q0 est vide, le processus en tête de Q1 prend la CPU. S’il ne


termine pas en 16ns, il est interrompu et mis dans Q2

de Q2 : exécutés avec FCFS (seulement quand Q0 et Q1 sont vides)

Pr. A. AIT ABDELOUAHAD SEII

Vous aimerez peut-être aussi