Vous êtes sur la page 1sur 52

Ordonnancement des

processus (Scheduling)
L'ordonnancement, ou scheduling, est un processus organisa5onnel

Abdelali.lasfar@est.um5.ac.ma
visant à op5miser la produc5on industrielle d'une entreprise

Abdelali.lasfar@est.um5.ac.ma
Abdelali.lasfar@est.um5.ac.ma
Cycle de vie d’un processus
Problématique

´Quand devons-nous stopper un processus


s’exécutant sur un CPU ?
´Quel processus va continuer sur ce CPU ?

Abdelali.lasfar@est.um5.ac.ma
Objectifs de l’ordonnancement

1.S’assurer que chaque processus en attente


d’exécution reçoive sa part de temps processeur
2. Minimiser le temps de réponse
3. Utiliser le processeur à 100%

Abdelali.lasfar@est.um5.ac.ma
4. Utiliser d’une manière équilibrée les ressources
5. Prendre en compte les priorités
Objectifs de l’ordonnancement

Pour répondre à ces objectifs parfois contradictoires,


un ordonnanceur fait face à deux problèmes
principaux :

§ Comment choisir quel processus exécuter ?

Abdelali.lasfar@est.um5.ac.ma
§ Combien de temps de processeur allouer au
processus choisi ?
Plan
1. Définitions
2. Les différents algorithmes d’ordonnancement.
2.1.Ordonnancement sans préemption
a. FCFS : First Come First served

Abdelali.lasfar@est.um5.ac.ma
b. SJF : Shortest Job First
2.2. Ordonnancement préemption
a. Round Robin (tourniquet)
Définition

´La partie du système d’exploitation qui effectue ce


choix se nomme l’ordonnanceur (scheduler) et
l’algorithme qu’il emploie s’appelle algorithme
d’ordonnancement (scheduling algorithm)
´Outre le fait de sélectionner le bon processus à

Abdelali.lasfar@est.um5.ac.ma
exécuter, l’ordonnancement doit également se
soucier de faire un usage efficace du processeur,
car le passage d’un processus à l’autre est coûteux
en termes de temps de traitement
Abdelali.lasfar@est.um5.ac.ma
Challenges
objectifs d'un ordonnanceur

´Les objectifs d'un ordonnanceur d'un système multi-


utilisateur sont entre autres :
´ S'assurer que chaque processus en attente
d'exécution reçoive sa part de temps processeur.
´ Minimiser le temps de réponse.

Abdelali.lasfar@est.um5.ac.ma
´Utiliser le processeur à 100%.
´Prendre en compte des priorités.
´Être prédictible.
États de processus et ordonnancement Quand
ordonnancer ?
´Lorsqu’un nouveau processus est créé, il faut se
décider s’il faut exécuter d’abord le processus parent
ou le processus enfant.
´Lorsqu’un processus se termine, un autre processus doit
être choisi parmi les processus prêts

Abdelali.lasfar@est.um5.ac.ma
´Lorsqu’un processus se bloque, un autre processus doit
être sélectionner pour être exécuter
´Lorsqu’une interruption d’E/S se produit, il faut prendre
une décision d’ordonnancement parmi les processus
qui étaient bloqué en attente d’E/S.
Interruption ?

´Interruption : arrêt temporaire de l’exécution

´Catégorie : Matérielle ou Logicielle

Abdelali.lasfar@est.um5.ac.ma
Interruption Logicielle ?

´Interruption Logicielle :
´ Si le CPU détecte une erreur dans le traitement
d’une instruction (division par zéro par exemple)
´Arrêt de l’exécution pour exécuter une routine
particulière ISR (Interrupt Service Routine) par type

Abdelali.lasfar@est.um5.ac.ma
d’erreur rencontrer (débordement de mémoire,
division par zéro,...)
Interruption Matérielle (IRQ : Interrupt Request)?

´Générées par les périphériques (clavier,


disque, USB,…)
´Interruption : le périphérique signale au CPU
les événements par interruption

Abdelali.lasfar@est.um5.ac.ma
´Éviter au CPU d’attendre un délai
supplémentaire (boucler) pour que les
données soient émises par le périphérique
(technique de polling ou questionnement)
Interruption Matérielle (IRQ : Interrupt Request)?

´Générées par les périphériques (clavier,


disque, USB,…)
´Le CPU arrête momentanément l’exécution
d’un processus pour exécuter la requête du

Abdelali.lasfar@est.um5.ac.ma
périphérique.
´Déclenche l’ordonnancement entre les
processus bloqué en l’attente de l’E/S en
question
Interruption et Ordonnancement

´On utilise les interruptions d’horloge pour


commuter les tâches dans les systèmes
multitâches.
´Généralement, une interruption périodique

Abdelali.lasfar@est.um5.ac.ma
est déclenchée par une horloge (souvent 100
ou 1 000 Hz), et l'ordonnanceur est alors mis en
action.
´ 1Hz = 1 cycle par seconde
Les algorithmes

Abdelali.lasfar@est.um5.ac.ma
d’ordonnancement
Classification des algorithmes
d'ordonnancement

Abdelali.lasfar@est.um5.ac.ma
Algorithmes d'ordonnancement non préemptif

Sélectionne un processus, puis le laisse s’exécuter


jusqu’à ce qu’il se bloque, ou qu’il libère
volontairement le processeur
´Même s’il s’exécute pendant des heures, il ne sera
pas suspendu de force

Abdelali.lasfar@est.um5.ac.ma
´Aucune décision d’ordonnancement n’intervient
pendant les interruptions d’horloge
Algorithmes d'ordonnancement préemptif

Sélectionne un processus et le laisse s’exécuter


pendant un délai déterminé
´si le processus est toujours en cours d’exécution à
l’issue de ce délai, il est suspendu
´l’ordonnancement sélectionne un autre processus à

Abdelali.lasfar@est.um5.ac.ma
exécuter
Ordonnancements non
préemptifs

Abdelali.lasfar@est.um5.ac.ma
Ordonnanceurs non préemptifs Métriques

Temps de séjour =
temps de terminaison – temps d’entrée

Abdelali.lasfar@est.um5.ac.ma
Temps d’attente =
temps de séjours – temps d’exécution
Ordonnanceurs non préemptifs

Dans un système à ordonnancement non préemptif ou


sans réquisition, le système d'exploitation choisit le
prochain processus à exécuter :
´le Premier Arrivé est le Premier Servi PAPS (ou First-
Come First-Served FCFS)

Abdelali.lasfar@est.um5.ac.ma
´ou le plus court d'abord (Shortest Job First SJF )
Il lui alloue le processeur jusqu'à ce qu'il se termine ou
qu'il se bloque (en attente d'un évènement).
´→ Il n'y a pas de réquisition
Premier arrivé premier servi (FCFS)
First-Come, First-Served (FCFS)

Exemple : considérons les processus Processus Temps CPU

P1, P2, P3 avec les temps


d’exécutions suivants. Ces processus

Abdelali.lasfar@est.um5.ac.ma
arrivent tous au temps 0.
Premier arrivé premier servi (FCFS)
First-Come, First-Served (FCFS)

Supposons que les processus arrivent dans l’ordre


suivant: P1 , P2 , P3 Le diagramme de Gantt
correspondant est:

Abdelali.lasfar@est.um5.ac.ma
P1 P2 P3

0 24 27 30

´Temps d’attente de P1 = 0; P2 = 24; P3 = 27


´Temps d’attente moyen: (0 + 24 + 27)/3 = 51/3=17
Premier arrivé premier servi (FCFS)
First-Come, First-Served (FCFS)
Supposons que les processus arrivent dans l’ordre suivant
P2 , P3 , P1 Le diagramme de Gantt serait alors:

P2 P3 P1

Abdelali.lasfar@est.um5.ac.ma
0 3 6 30

´Temps d’attente de P1 = 6; P2 = 0; P3 = 3
´Temps d’attente moyen: (6 + 0 + 3)/3 = 3
´Meilleur résultat que le cas précédent
Exercice (FCFS)
´Dans un système monoprocesseur,
on suppose la situation illustrée Processus Date Durée
dans le tableau suivant : d’arrivée d’exécution
´Dessinez le diagramme de Gantt
pour l’algorithme FCFS P1 0 3

Abdelali.lasfar@est.um5.ac.ma
P2 2 6
´Calculez pour chaque processus
P3 4 4
§ Temps de séjour
P4 6 5
§ Temps d’attente P5 8 2
Exercice (FCFS)
´Dessinez le diagramme de Gant
pour l’algorithme FCFS

Abdelali.lasfar@est.um5.ac.ma
Exercice (FCFS)
´Calculez pour chaque processus
§ Temps de séjour
§ Temps d’attente
Processus Temps de Temps
séjour d’attente

Abdelali.lasfar@est.um5.ac.ma
CPU
P1 3-0=3 0
P2 9-2=7 3-2=1
P3 13-4=9 9-4=5
P4 18-6=12 13-6=7
P5 20-8=12 18-8=10
Premier arrivé premier servi (FCFS)
First-Come, First-Served (FCFS)

´Implémenter via une file d’attente FIFO


´Par contre, c’est une stratégie qui peut engendrer des
temps d’attentes moyens importants et très variables

Abdelali.lasfar@est.um5.ac.ma
Exemple de SJF Non-Préemptif
´ L’ordonnanceur choisit, parmi le lot de processus à
exécuter, le plus court (plus petit temps d’exécution).

´Stratégie offre le temps moyen d’attente minimale

Abdelali.lasfar@est.um5.ac.ma
Exemple de SJF Non-Préemptif

Exemple les processus P1, P2,


P3 et P4 arrivent tous au
temps 0 et ont les temps
d’exécution suivant

Abdelali.lasfar@est.um5.ac.ma
Exemple de SJF Non-Préemptif

Avec SJF, on aura le


diagramme de Gantt suivant :

Abdelali.lasfar@est.um5.ac.ma
P1 attends 3ms, P3 9ms, P2 16ms et P4 0ms. Le
temps moyen d’attente est (3+16+9+0)/4 = 7ms
Ordonnanceurs non préemptifs Métriques

Temps de séjour =
temps de terminaison – temps d’entrée

Abdelali.lasfar@est.um5.ac.ma
Temps d’attente =
temps de séjours – temps d’exécution
Exercice 2

Processus Date Durée


d’arrivée d’exécution
Considérons cinq travaux A,
B, C, D et E, dont les temps A 3 0
d’exécution et leurs temps B 6 1
d’arrivée respectifs sont les C 4 4

Abdelali.lasfar@est.um5.ac.ma
suivants: D 2 6
E 1 7
Exercice 1

Faire un schéma qui illustre l’exécution (diagramme de Gantt)


et calculer le temps de séjour de chaque processus, le temps
moyen de séjour, le temps d'attente et le temps moyen
d'attente en utilisant :

Abdelali.lasfar@est.um5.ac.ma
´Premier arrivé premier servi (FCFS)
´Le plus court d'abord (SJF)
Correction

qAu temps 0, seulement le processus A est dans le système et


il s’exécute.
qAu temps 1 le processus B arrive mais il doit attendre que le
processus A termine son exécution car il a encore 2 unités

Abdelali.lasfar@est.um5.ac.ma
de temps.
q Ensuite B s’exécute pendant 4 unités de temps.
qAu temps 4, 6, et 7 les processus C, D et E arrivent mais B a
encore 2 unités de temps.
qUne fois que B a terminé, C, D et E entrent au système dans
l'ordre
Exemple de SJF Non-Préemptif
Processus Tps d’Arrivée Tps CPU
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
´ SJF (non préemptif)

Abdelali.lasfar@est.um5.ac.ma
P1 P3 P2 P4

0 3 7 8 12 16

´ Temps moyen d’attente = (0 + 6 + 3 + 7)/4 - 4


Exemple de SJF Préemptif
Processus Tps d’Arrivée Tps CPU
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4
´ SJF (préemptif)

Abdelali.lasfar@est.um5.ac.ma
P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

´ Temps d’Attente Moyen = (9 + 1 + 0 +2)/4 - 3


Ordonnancement a Priorité
´ Une priorité (nombre entier) est associée à chaque processus
´ Le CPU est alloué au processus à la priorité la plus grande (le plus
petit entier º la plus grande priorité)
´ Préemptif
´ Non préemptif
´ SJF est un ordonnancement à priorité où la priorité correspond au

Abdelali.lasfar@est.um5.ac.ma
temps CPU suivant
´ Problème º Famine – processus à faible priorité peuvent ne jamais
s’exécuter
´ Solution º Vieillissement – avec le temps, incrémenter la priorité des
processus en attente
Abdelali.lasfar@est.um5.ac.ma
Ordonnancements
préemptifs
Ordonnanceurs préemptifs

´La préemption correspond à une opération de


réquisition du processeur, c'est-à-dire que le
processeur est retiré au processus élu
alors que celui-ci dispose de toutes les ressources
nécessaires à la poursuite de son exécution.

Abdelali.lasfar@est.um5.ac.ma
´Le processeur passe donc d’un processus à un autre
en exécutant chaque processus pendant quelques
dizaines ou centaines de millisecondes.
Ordonnanceurs préemptifs

´Le temps d’allocation du processeur au processus


est appelé quantum.
´Cette commutation entre processus doit être
rapide, c’est-à-dire, exiger un temps nettement
inférieur au quantum.

Abdelali.lasfar@est.um5.ac.ma
´Le processeur, à un instant donné, n’exécute
réellement qu’un seul processus, mais pendant une
seconde, le processeur peut exécuter plusieurs
processus et donne ainsi l’impression de parallélisme
(pseudo-parallélisme).
Ordonnancement circulaire

´L’algorithme du tourniquet, circulaire ou round robin


(RR) 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

Abdelali.lasfar@est.um5.ac.ma
attente d’exécution
Ordonnancement circulaire

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

Abdelali.lasfar@est.um5.ac.ma
immédiatement alloué à un autre processus
(celui en tête de file).
§ Si le processus ne se termine pas au bout de
son quantum, son exécution est suspendue.
Ordonnancement circulaire

Choix du processus à exécuter


§ Le processeur est alloué à un autre
processus (celui en tête de file). Le
processus suspendu est inséré en queue
de file.

Abdelali.lasfar@est.um5.ac.ma
§ Les processus qui arrivent ou qui passent
de l’état bloqué à l’état prêt sont insérés
en queue de file.
Ordonnancement circulaire

Choix de la valeur du quantum


§ Un quantum trop petit provoque trop de
commutations de processus et abaisse l’efficacité
du processeur.
§ Un quantum trop élevé augmente le temps de

Abdelali.lasfar@est.um5.ac.ma
réponse des courtes commandes en mode
interactif.
§ Un quantum entre 20 et 50 ms est souvent un
compromis raisonnable .
Exemple de RR avec Q = 20

Processus Temps CPU


P1 53
P2 17
P3 68
P4 24 P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

´ Le diagramme de Gantt est: 0 20 37 57 77 97 117 121 134 154 162

Abdelali.lasfar@est.um5.ac.ma
´ Typiquement, une moyenne de temps de rotation plus grande que
SJF, mais un meilleur temps de réponse
Exercice
Soient deux processus A et B prêts tels Processus Date Durée
que A est arrivé en premier suivi de B, d’arrivée d’exécution
2 unités de temps après.
Le temps de commutation est A 0 15
supposé nul. B 2 4

Calculer le temps de séjour de chaque processus A et B, le temps

Abdelali.lasfar@est.um5.ac.ma
moyen de séjour, le temps d’attente, le temps moyen d’attente, et le
nombre de changements de contexte pour :
1. SJF
2. Round robin (quantum = 10 unités de temps)
3. Round robin (quantum = 3 unités de temps)
Abdelali.lasfar@est.um5.ac.ma
Correction
Abdelali.lasfar@est.um5.ac.ma
Correction
Abdelali.lasfar@est.um5.ac.ma
Correction
Abdelali.lasfar@est.um5.ac.ma
Correction

Vous aimerez peut-être aussi