Vous êtes sur la page 1sur 41

Ordonnancement des processus

(Suite)

1
Plan
 Introduction
 Problème
 Ordonnancement
 Ordonnanceurs non préemptifs
 First Come First Served (FCFS)
 Short Job First (SJF)
 Ordonnanceurs préemptifs
 Shortest Remaining Time (SRT)
 Round Robin (RR)
 Priorité
 Files multiples
 Files de priorité
 Cas d'étude
 MS-Dos
 Unix

2
Monoprogrammation Vs Multiprogrammation

3
Introduction
 Un système propose la multiprogrammation s'il permet de

charger simultanément plusieurs processus en mémoire et de leur


faire partager l'unité centrale.
 Le principe de fonctionnement est de laisser un processus
s'exécuter jusqu'à ce qu'il ait besoin de se mettre en attente (par
exemple sur une fin d'entrée/sortie).
 Pendant que ce processus est en attente, un autre processus peut
utiliser à son tour le processeur.

4
Exemple (1/2)
 Supposons que l'on ait deux processus A et B à exécuter, chacun
alternant des périodes d'exécution dans l'unité centrale et des périodes
d'attente.

 L'exécution totale du processus A nécessite 5 unités de temps, dont 2


d'attente
 Le processus B nécessite 3 unités de temps ,dont 1 d'attente

 L'exécution de ces deux processus sans multiprogrammation prend 8

unités de temps. Avec multiprogrammation, elle ne prend plus que 5


unités de temps (soit la durée d'exécution du processus A),

5
Exemple (2/2)
 Utilisation de la ressource processeur par deux processus:
Processeur A Attente E/S Attente E/S

Processeur B Attente E/S

 Sans gestion multitâches


Attente E/S Attente E/S Attente E/S

 Avec gestion multitâches

6
Problème

Quelle politique d'allocation du processeur au processus


(ou ordonnancement ou scheduling) choisir pour utiliser le
processeur "au mieux" ?

Comment évaluer la performance des algorithmes de la


gestion du file d’attente ?

7
Ordonnancement
 Dans un système multitâches, le système d'exploitation doit
gérer l'allocation du processeur aux processus. On parle
d'ordonnancement des processus.

8
ordonnanceur
 L’ordonnanceur est un algorithme qui va élire le processus
qui a accès à la CPU. Ce processus a le « privilège »d’accéder
à la CPU pendant un intervalle de temps.

 Commutation de contexte :
Une commutation de contexte consiste à sauvegarder l’état d’un
processus et à restaurer l’état d’un autre processus.

9
Types d'ordonnanceurs
Il est possible de distinguer trois types d'ordonnanceurs:
 À long terme : L'ordonnanceur fait la sélection de programmes à admettre
dans le système pour leur exécution. Les programmes admis deviennent des
processus à l'état prêt.
 À moyen terme : Il fait la sélection de processus déjà admis à débarquer ou
rembarquer sur la mémoire.
 À court terme : L'ordonnanceur à court terme a comme tâche la gestion des
processus prêts. Il sélectionne . en fonction d'une certaine politique. le prochain
processus à exécuter. Il effectue aussi le changement de contexte des processus.

10
Objectifs de l'ordonnanceur
 S'assurer que chaque processus en attente d'exécution reçoive
sa part de temps processeur.
 Minimiser le temps de réponse.
 Utiliser le processeur à 100%.
 Utilisation équilibrée des ressources.
 Prendre en compte des priorités.
 Être prédictibles.

11
Critères d'évaluation de performances
 Rendement
▪ Nombre de travaux exécutés par unité de temps.
 Temps de service ou d’exécution (séjour)
▪ Temps qui s'écoule entre le moment où un travail est soumis et où il
est exécuté (temps d'accès mémoire + temps d'attente en file des
éligibles + temps d'exécution dans le processeur et E/S).
 Temps d'attente
▪ Temps passé dans la file des processus éligibles
 Temps de réponse
▪ Temps qui s'écoule entre la soumission d'une requête et la première
réponse obtenue

12
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, en général

➢ Le premier arrivé est le premier servi PAPS (ou FCFS: first-


come first served )
➢ Ou le plus court d’abord (short job first SJF)

 Chacun alloue le processeur jusqu’à ce qu’il se termine ou


qu’il se bloque (en attente d’un événement)

13
First Come First Served (FCFS)

Les processus sont exécutés dans l’ordre de soumission.

Propriétés:
Pas de notion de priorité sur les processus
Non préemptif (pas de réquisition)
Pas de connaissance sur la durée des processus
Croissance rapide du temps d’attente

14
First Come First Served (FCFS)
Processus Durée Temps Processus Temps de Temps
d’arrivage d’attente séjour
1 3 0 1 0 3
2 2 2 2 5 7
3 4 1 3 2 6
4 3 3 4 6 9

Processus
4
3
2
1

15 Temps
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12
Short Job First (SJF)

Les processus les plus courts sont exécutés en premier.

Propriétés:
Pas de notion de priorité sur les processus ;
Non préemptif ;
Nécessité de connaître la durée des processus ;
Risque de privation.

16
Short Job First (SJF)
Processus Durée Temps Processus Temps de Temps
d’arrivage d’attente séjour
1 3 0 1 0 3
2 2 2 2 1 3
3 4 1 3 7 11
4 3 3 4 2 5

Processus
4
3
2
1

17 Temps
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12
Exercice 1
 Considérons cinq travaux A, B, C, D et E, dont les temps d’exécution et leurs

arrivages respectifs sont donnés dans la table 8.1. Faire un schéma qui illustre
son exécution 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 :

1. Premier arrivé premier servi (PAPS/FCFS)

2. Le plus court d’abord (SJF)


Processus Temps d’exécution Temps d’arrivage
A 3 0
B 6 1
C 4 4
D 2 6
18 E 1 7
Solution
 Q1:FCFS

Processus Temps de séjour Temps d’attente


A 3-0 = 3 3-3 = 0
B 9-1 = 8 8-6 = 2
C 13-4 = 9 9-4 = 5
D 15-6 = 9 9-2 = 7
E 16-7 = 9 9-1 = 8

Temps moyen de séjour Temps moyen d’attente


(3+8+9+9+9)/5=7,6 (0+2+5+7+8) /5=4,4

19
Solution
 Q1:SJF

Processus Temps de séjour Temps d’attente


A 3-0=3 3-3 = 0
B 9-1=8 8-6 = 2
C 10 -7=3 3-1=2
D 12-6 =6 6 -2 = 4
E 16 - 4=12 12 - 4= 4

Temps moyen de séjour Temps moyen d’attente


(3+8+3+6+12)/5= 6.4 (0+2+2+4+4) /5=3.2

20
Ordonnanceurs non préemptifs (limites)
 Les ordonnanceurs non préemptifs ne sont pas intéressants pour les
systèmes multiutilisateurs car les temps de réponse ne sont pas toujours
acceptables.

 FCFS: L'autre problème est qu'il y a un risque de famine (les processus


de longue durée peuvent n'avoir jamais accès à l'unité centrale si des
processus de courte durée arrivent en permanence).
 SJF: risque de famine (les processus de longue durée peuvent n'avoir

jamais accès au processeur si des processus de courte durée arrivent en


permanence).

21
Ordonnanceurs préemptifs

Dans un schéma d’ordonnanceur préemptif, ou 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

22
Shortest Remaining Time (SRT)

 SRT est la version préemptive de l’algorithme SJF

 Un processus arrive dans la file de processus, l’ordonnanceur


compare la valeur espérée pour ce processus contre la valeur
du processus actuellement en exécution. Si le temps du
nouveau processus est plus petit, il rentre en exécution
immédiatement.

23
Round Robin (RR)

Dans le Round Robin (tourniquet, circulaire) Les processus


sont rangés dans une file. Un intervalle de temps, appelé quantum,
est assigné à chaque job. Si l’exécution du processus n’est pas
terminée à la fin du quantum, il est replacé en fin de file..

Propriétés:
Pas de notion de priorité sur les processus
Préemptif
Pas de connaissance sur la durée des processus

24
Round Robin (RR)

E D C B A Processeur

Un quantum trop petit provoque trop de commutations de


processus et abaisse l’efficacité du processeur. Un quantum trop
élevé augmente le temps de réponse des courtes commandes en
mode interactif. Un quantum entre 20 et 50 ms est souvent un
compromis raisonnable

25
Exemple
 Soient deux processus A et B prêts tels que A est arrivé en
premier suivi de B, 2 unités de temps après. Les temps de
UCT nécessaires pour l’exécution des processus A et B sont
respectivement 15 et 4 unités de temps. Le temps de
commutation est supposé nul. Calculer le temps de séjour de
chaque processus A et B, le temps moyen de séjour, le temps
d’attente, le temps moyen d’attente, et le nombre de
changements de contexte pour :
 SRT
 Round robin (quantum = 10 unités de temps)
 Round robin (quantum = 3 unités de temps)

26
Solution SRT

Processus Durée Temps Processus Temps de Temps


d’arrivage séjour d’attente
1 15 0 1 19 4
2 4 2 2 4 0
Temps moyen de séjour : 11,5
Temps moyen d’attente : 2
Processus

2
1

t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19
27 Temps
Solution Round robin (quantum = 10)

Processus Durée Temps Processus Temps de Temps


d’arrivage séjour d’attente
1 15 0 1 19 4
2 4 2 2 12 8
Temps moyen de séjour : 15,5
Temps moyen d’attente : 6
Processus

2
1

t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19
28 Temps
Solution Round robin (quantum = 3)

Processus Durée Temps Processus Temps de Temps


d’arrivage séjour d’attente
1 15 0 1 19 4
2 4 2 2 8 4
Temps moyen de séjour : 13,5
Temps moyen d’attente : 4
Processus

2
1

t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19
29 Temps
Diagrammes de Gantt
 Soient trois processus A, B et C. Le processus A arrive en
premier suivi de B (20 msec après), puis C (46 msec après
A).

30
Diagrammes de Gantt
 Soient trois processus A, B et C. Le processus A arrive en premier
suivi de B (20 msec après), puis C (46 msec après A).
 On suppose que l'exécution du processus A nécessite 80 msec de
temps UCT. L'exécution du processus B nécessite d'abord 50 msec
de temps UCT, bloquera ensuite durant 20 msec pour une
entrée/sortie, puis exigera finalement 30 msec de temps UCT.
L'exécution du processus C nécessite 40 msec de temps UCT. Le
temps de changement de contexte est de 1 msec
 Donner le diagramme de Gantt pour un quantum de 30,50,20
msec
 Donner le temps d’exécution de chaque processus

31
Diagrammes de Gantt
Quantum = 30ms
0 30 61 92 123 144 165 176 207
A A A B B B A A A C C C B B A A C B B B

B A C B A C C B
C B A C B
Quantum = 50ms
0 50 101 142 173 204
A A A A A B B B B B C C C C A A A B B B

B B C A A B
C A B
Quantum = 20ms
0 20 41 62 83 104 125 136 157 178 209
A A B B A A B B C C A A B C C A A B B B

32 BA B C A B C A AB
C A B C A B
Diagrammes de Gantt
Le tableau montre le résultat des diagrammes de Gantt obtenus
pour des quantum de 30 msec, 50 msec et 20 msec

Quantum A B C Changement de Temps de séjour


Temps de contexte moyen
séjour(exécution)
30 165 187 130 7 161

50 173 184 96 4 151

20 178 189 111 9 159

33
Priorité
 On associe une priorité à chaque processus. Les processus
sont exécutés par ordre de priorité.
 Problème : risque de famine.
 Solution : utiliser une technique dite de vieillissement qui
augmente périodiquement la priorité des processus.
 Intérêt : certains processus système doivent être exécutés en
priorité.
Priorité 4
Priorité 3
Priorité 2
Priorité 1
34
Exemple
 Les processus qui font beaucoup d'E/S (qui sont souvent en
attente) doivent acquérir le processeur dès qu'ils le
demandent. Lorsqu'un processus passe de l'état élu à l'état
bloqué, sa priorité est recalculée. Sa nouvelle valeur est le
rapport : quantum/temps réellement utilisé par le processus.
 Les processus qui ont le plus grand rapport sont les plus
prioritaires :
❑Si le quantum = 100 ms et le temps utilisé = 2 ms, la nouvelle
priorité est 50.
❑Si le quantum = 100 ms et le temps utilisé = 50 ms, la nouvelle
priorité est 2.

35
Files multiples
 Pour éviter qu'il y ait beaucoup de commutations pour les
processus consommateurs de temps UCT, il est préférable
d'allouer un plus grand quantum à ces processus.
 Lorsqu'un processus passe à l'état élu :
 Pour la première fois, le processeur lui est alloué pendant un
quantum
 Pour la seconde fois, le processeur lui est alloué pendant 2
quantum
 Pour la n fois le processeur lui est alloué pendant 2n-1quantum

36
Files de priorité
 Il existe des classes de processus qui sont rangés dans
différent files de priorité.
▪ processus systèmes,
▪ processus temps réel,
▪ processus interactifs,
▪ processus d’édition interactive,
▪ processus « batch ».
• Chaque classe est absolument prioritaire sur celles du niveau
inférieur.
 À l’intérieur de chaque classe, les processus sont rangés dans
un système de files de priorité multi-niveaux

37
Cas d'étude :MS-DOS
 Mono-utilisateur:
 Il peut y avoir, à un moment donné, plusieurs processus en

mémoire mais un seul est à l'état prêt

 Très simple:
 Il exécute un processus jusqu'à ce qu'il se termine ou crée un ls.

Le processus créateur est suspendu jusqu'à ce que le processus


créé se termine.

38
Cas d'étude :Unix(généralités)
 Utilisation de files à plusieurs niveaux, chaque file correspondant à
un ensemble de priorités disjoint des autres
 Les processus sont séparés en deux parties :
 Les processus qui s’exécutent en mode noyau (i.e. processus qui font
des appels système)
 Les processus utilisateurs (i.e. qui ne font pas d’appel système)
 Les processus utilisateurs ont des priorités à valeurs positives
 Les processus qui s’exécutent en mode noyau ont des priorités à
valeurs négatives
 Les priorités négatives sont prioritaires par rapport aux valeurs
positives
 Uniquement les processus qui résident en mémoire et prêts à
l’exécution sont placés dans ces files

39
Cas d'étude :Unix(représentation)

40
Cas d'étude :Unix (description)
 L’ordonnanceur parcourt les files en partant de la priorité la
plus haute(valeur la plus basse) ;
 Dès qu’une file non vide est trouvée : le premier processus
de la file est démarré ;
 Le processus s’exécute pendant un quantum de temps
(typiquement 100ms) sauf s’il se bloque avant ;
 Une fois le quantum terminé, le processus est placé en fin de
file ;
 Les processus de même classe partagent donc le CPU suivant
l’algorithme Round Robin.

41

Vous aimerez peut-être aussi