Académique Documents
Professionnel Documents
Culture Documents
(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
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.
5
Exemple (2/2)
Utilisation de la ressource processeur par deux processus:
Processeur A Attente E/S Attente E/S
6
Problème
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
13
First Come First Served (FCFS)
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)
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 :
19
Solution
Q1:SJF
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.
21
Ordonnanceurs préemptifs
22
Shortest Remaining Time (SRT)
23
Round Robin (RR)
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
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
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)
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)
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
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
Très simple:
Il exécute un processus jusqu'à ce qu'il se termine ou crée un ls.
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