Chap06 1
Chap06 1
Chap06 1
Chapitre 6
http://w3.uqo.ca/luigi/
1
Aperçu du chapitre
Concepts de base
Critères d’ordonnancement
Algorithmes d’ordonnancement
Ordonnancement de multiprocesseurs
Ordonnancement temps réel
Évaluation d’algorithmes
Ch. 6 2
Importance des concepts de ce chapitres
Les méthodes d’ordonnancement ont des
nombreuses applications
Et ont été très étudiées,surtout avec des
méthodes probabilistes et de simulation
Non seulement en informatique, mais aussi
en gestion:
Supposons qu’on parle de différents tâches à
exécuter dans une usine dans laquelle il y a
des ressources qui sont des ouvriers et des
outils
Ch. 6 3
Importance dans l’informatique
L’utilisation de critères d’ordonnancement
efficaces est surtout importante pour les grands
centres d’informatique qui sont très chargés
Chiffres recueillies dans le web: Google, Microsoft:
bien plus d’1M de serveurs chaque
Une petite épargne en pourcentage dans cette
situation peut économiser des sommes
considérables (électricité, chauffage etc.)
Il est important de garder les serveurs saturés de travail
Ch. 6 4
Diagramme de transition d’états d`un processus
Ch. 6 5
Files d’attente de processus pour
ordonnancement
file prêt
Nous ferons l’hypothèse que le premier processus dans une file est celui
qui utilise la ressource: ici, proc7 exécute sur UCT
Nous débuterons avec l’hypothèse qu’il n’y a qu’une seule UCT
Ch. 6 6
Concepts de base
La multiprogrammation vise à obtenir une
utilisation optimale des ressources
et aussi un bon temps de réponse pour l’usager
L’UCT est la ressource la plus précieuse dans un
ordinateur, donc nous parlons d’elle
cependant, les principes que nous verrons s’appliquent
aussi à l’ordonnancement des autres ressources (unités
E/S, etc).
L’ordonnanceur UCT est la partie du SE qui décide
quel processus dans la file ready/prêt obtient
l’UCT quand elle devient libre
Ch. 6 7
Les cycles d’un processus
Ou autre service du SE
Cycles (bursts) d’UCT et E/S: l’activité d’un processus
consiste de séquences d’exécution sur UCT et d’attentes: -
d’E/S ou de synchronisation avec autres processus
Ch. 6 8
Durée normale des cycles
Étant donné la grande vitesse de l’UCT par
rapport aux périphériques, la plupart des
cycles d’UCT seront très courts
Cependant il pourrait y avoir des longs
cycles d’UCT quand on demandera des
calculs poussés
Calculs scientifiques etc.
Ch. 6 9
Durée typique des cycles UCT
Observation expérimentale:
dans un système typique, nous observerons un grand nombre de
court cycles d’UCT, et un petit nombre de long cycles
Les programmes tributaires de l’UCT auront normalem. un
petit nombre de long cycles UCT
Les programmes tributaires de l’E/S auront normalem. un
grand nombre de court cycles UCT
Ch. 6 10
Quand exécuter l’ordonnanceur UCT
L ’ordonnanceur UCT doit prendre sa décision chaque fois que le
processus exécutant est interrompu, ce qui peut avoir les causes
les plus variées
1. Clique de l’usager sur la souris ou clavier
2. Un autre processus se présente en tant que nouveau ou se
termine
3. Le proc exécutant demande un service du SE
¸ (E/S, communication entre processus, plus de mémoire …)
4. Une E/S se termine
5. Interruption de minuterie (en Linux, plus. fois p. sec.)
Préemption: on a préemption si on enlève l’UCT à un processus
qui l’avait et ne l’a pas laissée de propre initiative
P.ex. préemption dans le cas 1, 2, 4, 5 mais pas 3.
Ch. 6 11
Ordonnanceur d’UCT
L’UCT est interrompue
Le proc exécutant perd l’UCT
L’interruption est traitée
L’UCT doit être affectée à un proc.
Il y a une ou plusieurs files d’attente de
processus pour l’UCT
Files de proc en état prêt
L’ordonnanceur choisit quel processus en
attente reçoit l’UCT
Ch. 6 12
Dispatcheur (meilleur français: répartiteur)
Le dispatcheur met en exécution le
processus choisi. Il doit se préoccuper de:
changer de contexte
reprendre le processus choisi
changer à mode usager
Ch. 6 13
Critères d’ordonnancement
Il y aura normalement plusieurs processus
dans la file prêt
Quand l’UCT devient disponible, lequel choisir?
Critères généraux:
Bonne utilisation de l’UCT
Réponse rapide à l’usager
Mais ces critères peuvent être jugés
différemment...
Ch. 6 14
Defs à utiliser pour les exercices
Critères spécifiques d’ordonnancement
Utilisation UCT: pourcentage d’utilisation
Débit = Throughput: nombre de processus
qui complètent dans l’unité de temps
Temps de rotation = turnaround: le temps
pris par un proc de son arrivée à sa termin.
Temps d’attente: attente dans la file prêt
(somme de tout le temps passé en file prêt sans
exécuter)
Temps de réponse: le temps entre une
demande de l’usager et la réponse
Ch. 6 15
Critères d’ordonnancement: maximiser/minimiser
Utilisation UCT: pourcentage d’utilisation
à maximiser
Débit = Throughput: nombre de processus qui complètent
dans l ’unité de temps
à maximiser
Temps de rotation (turnaround): temps terminaison moins
temps arrivée
à minimiser
Temps d’attente: attente dans la file prêt sans exécuter
à minimiser
Temps de réponse (pour les systèmes interactifs): le temps
entre une demande et la réponse
à minimiser
Ch. 6 16
Examinons maintenant plusieurs méthodes
d’ordonnancement et voyons comment elles se
comportent par rapport à ces critères
Ch. 6 17
Premier arrivé, premier servi (PAPS)
= First come first serve (FCFS)
Ch. 6 18
Premier arrivé, premier servi (First come, first serve, FCFS)
P1 P2 P3
0 24 27 30
P1 P2 P3
0 24 27 30
Ch. 6 20
Tenir compte du temps d’arrivée!
Dans le cas où les processus arrivent à moment
différents, il faut soustraire les temps d’arrivée
Exercice: répéter les calculs si:
P1 arrive à temps 0 et dure 24
P2 arrive à temps 2 et dure 3
P3 arrive à temps 10 et dure 3
Donc P1 attend 0 comme avant
Mais P2 attend 24-2, etc.
P1 P2 P3
0 24 27 30
arr P2 arr P3
Ch. 6 21
FCFS Scheduling (Cont.)
Si les mêmes processus arrivent à 0 mais dans l’ordre
P2 , P3 , P1 .
Le diagramme de Gantt est:
P2 P3 P1
0 3 6 30
Temps d’attente pour P1 = 6 P2 = 0 P3 = 3
Temps moyen d’attente: (6 + 0 + 3)/3 = 3 était 17
Temps de rotation moyen: (3+6+30)/3 = 13 était 27
Beaucoup mieux!
Donc pour FCFS, les temps peuvent varier grandement par
rapport à l’ordre d’arrivée de différent processus
Exercice: calculer aussi le débit, etc.
Ch. 6 22
Problème: Effet d’accumulation ou effet convoi
Quand il y a une voiture lente qui ne peut
pas être doublée, elle crée un entassement
après elle
Dès qu’elle peut être doublée, les autres
voitures passent toutes ensemble
créant un vide après la voiture lente
Ceci se répète chaque fois qu’on rencontre
une voiture lente
Ch. 6 23
Effet d’accumulation (effet convoi) dans FCFS
Supposons (situation normale)
un processus tributaire de l’UCT qui exécute (cycles longs)
et plusieurs tributaires de l`E/S en attente (cycles courts)
Les processus tributaires de l’E/S attendent l’UCT: E/S sous-
utilisée (*)
Le processus tributaire de l’UCT fait une E/S: les procs tributaires
de l’UCT exécutent rapidement leur cycle UCT et retournent sur
l’attente E/S (convoi qui passe): UCT sous-utilisée
Processus tributaire de l’UCT finit son E/S, puis les autres aussi:
retour à la situation (*)
Donc dans ce sens FCFS favorise les procs tributaires de l’UCT
Et peut conduire à une mauvaise utilisation des ressources s’il y a
apport continu de procs longs=tributaires de l’UCT
Tant d’UCT que de périphériques
Une possibilité: interrompre de temps en temps les proc tributaires
de l’UCT pour permettre aux autres procs d’exécuter (préemption)
On fait ça
Ch. 6 24
Exemple
Supposons
P1: tributaire de l’UCT
On se retrouve à la
P2, P3: tributaires de l’E/S situation initiale avec P1 en
tête et probabl. P2 et P3
après
P1 P2 P3 UCT libre P1
Ch. 6 25
Plus court servi (PCS)
= Shortest Job First (SJF)
Ch. 6 26
Plus Court d’abord = Shortest Job First (SJF)
Le processus qui demande moins d’UCT part le premier
Optimal du point de vue du temps d’attente moyen
(v. exemple précédent)
P2 P3 P1
0 3 6 30
Temps moyen d’attente: (6 + 0 + 3)/3 = 3 était 17 pour PAPS
Temps de rotation moyen: (3+6+30)/3 = 13 était 27 pour PAPS
Beaucoup mieux que PAPS!
Mais comment savons-nous quel processus demande moins
d’UCT!
Supposons pour l’instant qu’on puisse
Ch. 6 27
PCS avec préemption ou non
Avec préemption:
si un processus qui dure moins que le restant
du processus courant se présente plus tard,
l’UCT est enlevée au proc courant et donnée à
ce nouveau processus
SRTF: shortest remaining-time first
Sans préemption: on permet au processus
courant de terminer son cycle
Ch. 6 28
Example de PCS sans préemption
Processus Arrivée Cycle UCT
P1 0 7
P2 2 4
P3 4 1
P4 5 4
PCS (sans préemption)
P1 P3 P2 P4
0 7 8 12 16
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
Ch. 6 31
Préemption ou non
La préemption est le cas normal pour l’UCT
car un événement quelconque cause une
interruption et à ce moment là
l’ordonnanceur devra prendre une décision sur
le prochain proc à exécuter
Mais pour la plupart des périphériques la
préemption est impossible:
P.ex. dans une imprimante il faut toujours
terminer l’impression courante avant d’en
amorcer une nouvelle
Pareillement pour un disque
Ch. 6 32
Comment déterminer la longueur des cycles à l’avance?
Quelques méthodes proposent de
déterminer le comportement futur d’un
processus sur la base de son passé
p.ex. méthode de la moyenne exponentielle
Ch. 6 33
Estimation d’une tendance
Jean me demande des prêts. Dans le passé il me demandait souvent 10$,
puis 6$ et 4$, plus récemment il m’a demandé plusieurs fois 13$.
Combien me demandera-t-il la prochaine fois?!
tendance
13 13
6 6
4 4
Ch. 6 34
Différentes méthodes en principe
Comportement constant d’un processus:
Un processus qui a eu des cycles d’UCT autour de
5 millisecondes en moyenne continuera comme ça
Comportement variable d’un processus:
Un processus qui avant avait des cycles d’UCT de
10ms en moyenne, maintenant a allongé ces
cycles, qui sont plutôt de 13ms
La durée des cycles les plus récents doit être
considérée plus importante pour la prévision des
prochains cycles
Ch. 6 35
Estimation de la durée du prochain cycle
hypothèse de comportement constant
Ti : la durée du ième cycle de l’UCT pour ce
processus
Si : la valeur estimée du ième cycle de l’UCT pour
ce processus.
Sn+1 l’estimée courante
Sn l’estimée précédente
Un choix simple est:
Sn+1 = (1/n) S{i=1 à n} Ti (une simple moyenne)
Ceci donne un poids identique à chaque cycle
Ch. 6 36
Estimation de la durée du prochain cycle
hypothèse de comportement variable
Nous devons décider quelle importance
donner
Aux changements plus récents
Par rapport aux observations précédentes
Ch. 6 37
Coefficient α pour le poids
0 1
α 1-α
Importance du cycle Importance de l’estim.
le plus récent précédente
Ch. 6 38
Estimation de la durée du prochain cycle
hypothèse de comportement variable
Les cycles récents peuvent être plus
représentatifs des comportements futurs
La moyenne exponentielle permet de donner
différents poids aux cycles plus ou moins
récents:
Sn+1 = a Tn+ (1-a) Sn ; 0 <= a <= 1
a : le coéfficient d’importance
Tn: la durée du cycle le plus récent
S: l’estimation
S
n+1 l’estimation courante (après le cycle Tn)
S l’estimation précédente
n
Ch. 6 39
Pourquoi ‘exponentielle’
Par expansion, nous voyons que le poids de
chaque cycle décroît exponentiellement
Sn+1 = aTn + (1-a)aTn-1 + ... (1-a)i aTn-i +
... + (1-a)n S1
la valeur estimée S1 du 1er cycle peut être
fixée à 0 pour donner priorité max. aux
nouveaux processus
Ch. 6 40
aImportance de différents valeurs de coefficients [Stallings]
Stallings
Ch. 6 43
Comment choisir le coefficient a
Un petit a assouplit les changements de comportement
d’un processus
Il donne moins d’importance aux cycles récents
Il est avantageux quand un processus peut avoir des
anomalies de comportement, après lesquelles il reprend son
comportement précédent
Cas limite: a = 0
on reste sur l’estimée initiale
Un gros a réagit rapidement aux changements
Il donne plus d’importance aux cycles récents
Est avantageux quand un processus est susceptible de
changer rapidement de type d’activité et il reste sur ça
Cas limite: a = 1: S
n+1 = Tn
Le dernier cycle est le seul qui compte
Ch. 6 44
Exercice: Travailler cet exemple dans le manuel
faire un calcul plus précis - aussi essayer des coefficients différents
estim.
réel
α=0,5
Ch. 6 45
Le Plus Court d’Abord SJF: critique
Difficulté d’estimer la longueur à l’avance
Plus pratique pour l’ordonnancement travaux que
pour l’ordonnancement processus
Normal. on peut plus facilement estimer la durée d’un
travail entier que la durée d’un seul cycle
Il y a assignation implicite de priorités: préférences
aux travaux plus courts
Famine possible pour les travaux aux cycles longs
S’il y a apport continu de travaux aux cycles courts
Ch. 6 46
Difficultés majeures avec les méthodes discutées
Premier arrivé, premier servi, FCFS:
Temps moyen d’attente non-optimal
Mauvaise utilisation des ressources s’il y a apport
continu de processus aux cycles longs (v. effet
d’accumulation)
Plus court servi, SJF:
Difficulté d’estimer les cycles
Famine possible s’i y a apport continu de processus aux
cycles courts
Donc besoin d’une méthode systématiquement préemptive
Le tourniquet
si vous faites toujours les devoirs les plus courts en premier, vous pourriez avoir
l’impression de faire beaucoup mais vous pourriez ne jamais arriver aux plus longs…
si vous faites les devoirs dans l’ordre d’arrivée, les longs pourraient vous bloquer pour
longtemps
Ch. 6 donc votre solution est de donner un peu de temps à chacun, cycliquement 47
Le tourniquet = Round-Robin (RR)
Ch. 6 48
Le tourniquet
Si j’ai une seule grande pizza et plusieurs
personnes affamées, je pourrais:
L’offrir à chacun à son tour: attendre que
chacun ait fini avant de passer au suivant
(méthodes précédentes)
Ou sinon offrir une tranche à la fois à chacun et
permettre de revenir
Ch. 6 49
Tourniquet = Round-Robin (RR)
Le plus utilisé en pratique
Chaque processus est alloué une tranche de
temps (p.ex. 10-100 millisecs.) pour exécuter
Tranche aussi appelée quantum
S’il exécute pour tranche entière sans autres
interruptions, il est interrompu par la minuterie et
l ’UCT est donnée à un autre processus
Le processus interrompu redevient prêt (à la fin de la file)
Méthode préemptive
P[0] P[1]
La file prêt est un
P[7] P[2]
cercle (dont RR)
P[6] P[3]
P[5] P[4]
Ch. 6 50
Exemple: Tourniquet tranche = 20
Processus Cycle
P1 53
P2 17
P3 68
P4 24
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
Observez
temps de rotation et temps d’attente moyens beaucoup plus
élevés que PCS (exercice: calculez-les…)
Ch. 6 mais aucun processus n’est favorisé 51
Performance de tourniquet
S’il y a n processus dans la file prêt et la
tranche est t, alors chaque processus
reçoit 1/n du temps UCT dans unités de
durée max. t
Si t grand FCFS
Si t petit... prochaine planche
Ch. 6 52
Une petite tranche augmente les commutations
de contexte (temps de SE)
Ch. 6 53
Exemple pour voir l’importance d’un bon choix
de tranche (à développer comme exercice)
Trois cycles:
A, B, C, tous de 10
Essayer avec:
t=1
t=10
Dans ce deuxième cas, tourniquet
fonctionne comme PAPS-FIFO et le temps
de rotation moyen est meilleur
Ch. 6 54
Le temps de rotation (turnaround) varie avec la
tranche (exemple à travailler)
= PAPS
(Stallings)
Ch. 6 57
Comment déterminer la tranche en pratique
Évidemment la durée médiane des cycles
des processus en attente est impossible à
déterminer avec certitude!
En pratique, les observations passées
peuvent être utilisées:
le SE peut garder une trace des durées des
cycles des processus récemment exécutés et
ajuster la tranche périodiquement
Ch. 6 58
Détail:
où mettre les processus qui arrivent au fur et à mesure
Solution du manuel – à utiliser pour les
exercices, examen etc.
Les nouveaux procs sont mis après ceux qui
sont déjà dans la file
Leur premier tour sera après le tour de tous les
autres
(Cependant on pourrait aussi les mettre
*avant* pour lui donner une chance tout de
suite)
Ch. 6 59
Comparaison finale
La méthode du tourniquet n’est *pas* la
meilleure si on considère les temps
d’exécution
Son avantage est qu’elle permet un
progrès constant à tous les processus
Ch. 6 60
Méthodes avec priorités
Ch. 6 61
Priorités
Affectation d’une priorité à chaque
processus (p.ex. un nombre entier)
souvent les petits chiffres dénotent des hautes
priorités
0 la plus haute
L’UCT est donnée au processus prêt avec
la plus haute priorité
avec ou sans préemption
il y a une file prêt pour chaque priorité
Ch. 6 62
Problème possible avec les priorités
Famine: les processus moins prioritaires
n’arrivent jamais à exécuter
Solution: vieillissement:
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
Plus en général, la modification dynamique
des priorités est une politique souvent
utilisée (v. files à rétroaction ou retour)
Ch. 6 63
Files à plusieurs niveaux (multiples)
La file prêt est séparée en plusieurs files, p.ex.
travaux `d’arrière-plan` (background - batch)
travaux `de premier plan` (foreground - interactive)
Chaque file a son propre algorithme
d’ordonnancement, p.ex.
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,
p.ex.
80% pour arrière-plan
20% pour premier plan
Ch. 6 64
Ordonnancement avec files multiples
(ex.: serveur principal d’une université)
Un proc peut être servi seulement si toutes les files de priorités plus
Ch. 6
élevées sont vides 65
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
Ch. 6 66
Files multiples et à retour
PRIO = 0
la + élevée
PRIO = 1
PRIO = 2
Ch. 6 67
Exemple de files multiples à retour
Trois files:
P0: tourniquet, tranche = 8 msecs
P1: tourniquet, tranche = 16 msecs
P2: FCFS
Ordonnancement:
Un nouveau processus entre dans Q0, il reçoit 8 msecs
d’UCT
S’il ne finit pas dans les 8 msecs, il est mis dans Q1, il
reçoit 16 msecs additionnels
S’il ne finit pas encore, il est interrompu et mis dans Q2
Si plus tard il commence à avoir des cycles plus courts,
il pourrait retourner à Q0 ou Q1
Ch. 6 68
Exercice
Exemple concret
Dans un système avec files multiples, un
processus a besoin de 50 secondes d’UCT
(sans appels au SE) .
Dans la première file on lui donne 5 secondes
et à chaque file successive on lui donne le
double (10, 20, 40 …)
Combien de fois sera-t-il interrompu et dans
quelle file se trouvera-t-il quand il terminera?
Ch. 6 69
En pratique …
Ch. 6 70
En pratique...
Les méthodes que nous avons vu sont toutes
utilisées (sauf plus court servi pur qui est
pratiquement impossible pour l’UCT, pourquoi?)
Les SE sophistiqués fournissent aux gérants de
grands systèmes des librairies de méthodes,
qu’ils peuvent choisir et combiner au besoin après
avoir observé le comportement du système
Pour chaque méthode, plusieurs params sont
disponibles: p.ex. durée des tranches,
coefficients, etc.
Ces méthodes évidemment sont importantes
surtout pour les grands ordis qui ont des fortes
charges de travail
Ch. 6 71
Aussi…
Notre étude des méthodes d’ordonnancement est théorique,
ne considère pas en détail tous les problèmes qui se
présentent dans l’ordonnancement UCT
P.ex. les ordonnanceurs UCT ne peuvent pas donner l’UCT à
un processus pour tout le temps dont il a besoin
Car en pratique, l’UCT sera souvent interrompue par quelque
événement externe avant la fin de son cycle
Cependant les mêmes principes d’ordonnancement
s’appliquent à unités qui ne peuvent pas être interrompues,
comme une imprimante, une unité disque, etc.
Dans le cas de ces unités, on pourrait avoir des infos
complètes concernant le temps de cycle prévu, etc.
Aussi, cette étude ne considère pas du tout les temps
d’exécution de l’ordonnanceur, du dispatcheur, etc.
Ch. 6 72
Plusieurs UCTs
Dans le passé, la vitesse des UCT augmentait
rapidement avec chaque génération d’ordinateurs
Aujourd’hui, l’ingénierie rencontre des limites
pour augmenter la vitesse des UCTs
Donc on se dirige vers la production de plus
d’UCTs par ordinateur
Cependant, augmenter le nombre d’UCT
n’implique pas une augmentation proportionnelle
de la puissance de l’ordi, pour des raisons que
nous verrons
Surtout, la charge de gestion de ces UCTs ralentit
l’ordinateur
Ch. 6 73
Ordonnancement avec plusieurs UCTs
identiques: homogénéité
Méthodes symétriques: UCT
chaque UCT peut exécuter
UCT
l’ordonnancement et la
répartition UCT
Une seule liste prêt pour
toutes les UCTs (division UCT
travail = load sharing)
Méthodes asymétriques:
UCT
certaines fonctions sont
réservées à des UCT UCT
spécifiques
Files d’attentes séparées UCT
pour chaque UCT
UCT
Ch. 6 74
Symétrique ou non?
La manière la plus normale de gérer
plusieurs UCT est la symétrique
Plus simple à gérer
Cependant l’asymétrique a un avantage :
???
Ch. 6 75
Symétrique ou non?
La manière la plus normale de gérer
plusieurs UCT est la symétrique
Plus simple à gérer
Cependant l’asymétrique a un avantage :
Étant donné que chaque UCT exécute des
fonctionnalités indépendantes, le temps perdu
en synchronisation entre UCT est réduit!
Chapitre suivant
Ch. 6 76
Tableau de comparaison
Ch. 6 77
Critère Préempt Motivation Temps de Temps de Effect sur Famine
sélection rotat. et atten. système processus
PAPS Max [w] non Simplicité Variable Minim. Favor. proc. Non
trib. UCT
FCFS
Bon pour
Optimisation Optimal, mais Peut être proc.
PCS Min[s] non souffre si des élevé (pour courts, Possible
des temps procs longs estimer les
SJF arrivent au début longs. des pénalise
trames) proc. longs
w: temps total dans file prêt jusqu’à présent; e: temps en exec jusqu’à présent
s: temps demandé;
Ch. 6
Famine est ‘renvoi infini’ 78
Exemple: Temps plus court restant
Processus Temps Temps Priorité
Arrivée Cycle (0 est la plus haute)
A 0 6 3
Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
A=6 A=5 B=3 B=2 B=1 A=4 A=3 A=2 A=1 C=5 C=4 C=3 C=2 C=1 D=3 D=2 D=1
UCT
File Prêt A=6 A=5 B=3
A=4
B=2
A=4
B=1
A=4
D=3 D=3 D=3 D=3 D=2 D=1
B 2 3 1
C 11 5 2
D 13 3 0
Ch. 6 79
Exemple: tourniquet avec tranche = 4
Processus Temps Temps Priorité
Arrivée Cycle (0 est la plus haute)
A 0 6 3
Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
UCT A=6 A=5 A=4 A=3 B=3 B=2 B=1 A=2 A=1 C=5 C=4 C=3 C=2 D=3 D=2 D=1 C=1
A=6 A=5 A=4 A=3 A=2 A=2 A=2 C=5 C=4 C=3 C=2 D=3 D=2 D=1 C=1
File B=3 B=3 D=3 D=3 C=1 C=1 C=1
Prêt
B 2 3 1
C 11 5 2
D 13 3 0
Ch. 6 80
Exemple: Avec 2 UCT, tranche = 5
Temps 0 1 2 3 4 5 6 7 8 9 10 11 12 1 14 15 16 17 18 19 20 21 22 23 24
3
UCT1 A A A A A A A A A A D D D D D D D D D D D D D D D
UCT2 C C C B B B B B B B B B B A A A A A A A A A A
File Prêt A A A A A B B B B B D D D D D A A A A A A A A A A
C C C A A A A A B B B B B D D D D D D D D D D
B D D A A A A A
Ch. 6 81
Exercice 2: deux UCT, une seule file et tranche=4
Temps 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
UCT1 A C A D D
UCT2 B D B
File A A A A B C D A D
Prêt B B B C D A B
C C D A B D
D A B
Ch. 6 82
Quelques formules pour le tourniquet
Soit :
s le temps pour une commutation de contexte
q la tranche
r le temps de cycle moyen d’un processus
Quelle est l’efficacité E d’utilisation de l’UCT dans les cas suivants:
q=∞
Identique à PAPS
E = r/(r+s)
q>r
Les cycles qui excèdent q seront interrompus, cependant en moyenne E sera le
même que dans le cas précédent
C’est le cas de q idéal mentionné avant (où la grande majorité des cycles n’est pas
interrompue)
s<q<r
Un proc moyen subira r/q changements de contexte, donc
• E = r/(r+sr/q) = q/(q+s)
s=q<r
Comme le cas précédent, mais avec s=q, E = ½
q presque 0
Supposant que encore s<q, nous sommes dans le cas s<q<r, mais E s’approche
de 0
Ch. 6 83
MATÉRIAUX SUPPLÉMENTAIRES
Ch. 6 84
Méthode d’évaluation et comparaison
d’algorithmes (section plutôt à lire)
Modélisation déterministe
Modèles de files d’attente (queuing theory)
Simulation
Implantation
Ch. 6 85
Modélisation déterministe
Essentiellement, ce que nous avons déjà
fait en étudiant le comportement de
plusieurs algorithmes sur plusieurs
exemples
Ch. 6 86
Utilisation de la théorie des files (queuing th.)
Méthode analytique basée sur la théorie
des probabilités
Modèle simplifié: notamment, les temps du
SE sont ignorés
Cependant, elle rend possibles des
estimées
Ch. 6 87
Théorie des files: la formule de Little
Un résultat important:
n= W
n: longueur moyenne de la file d ’attente
: débit d ’arrivée de travaux dans file
W: temps d ’attente moyen dans la file (temps de service)
P. ex.
si les travaux arrivent 3 par sec.
W et il restent dans la file 2 secs
n la longueur moyenne de la file sera ???
Exercice: Résoudre aussi pour et W
Observer que afin que n soit stable, W doit être stable
Un débit d’arrivée plus rapide doit impliquer un temps de
service mineur, et vice-versa
Si n doit rester 6 et monte à 4, quel sera W
Utile entre autres pour déterminer l’espace à allouer pour la
file
Ch. 6 88
Simulation
Construire un modèle (simplifié...) de la
séquence d’événements dans le SE
Attribuer une durée de temps à chaque
événement
Supposer une certaine séquence
d’événements extérieurs (p.ex. arrivée de
travaux, etc.)
Exécuter le modèle pour cette séquence
afin d’obtenir des stats
Ch. 6 89
Implémentation
Implémenter l’algorithme
Exécuter dans le système réel ou des
mélanges de travaux typiques (benchmark)
Obtenir des statistiques,
en tirer des conclusions...
Ch. 6 90
Points importants dans ce chapitre
Files d’attente pour UCT
Critères d’ordonnancement
Algorithmes d’ordonnancement
FCFS: simple, non optimal
PCS: optimal, implantation difficile
moyenne exponentielle
Priorités
Tourniquet: sélection du quantum
Évaluation des méthodes, théorie des files,
formule de Little
Ch. 6 91
Manuel: Pas sujet d’examen
Sections 6.6, 6.7, 6.8
Ch. 6 92
Question sur tourniquet (Round Robin)
Lorsque un processus a un temps de cycle inferieur au quantum ou
simplement finit son exécution à l'intérieure du quantum, l'UCT assigne le
temps restant pour le prochain processus disponible ou bien attend-elle la
fin du quantum (restant de cette façon du temps dans lequel l'UCT est libre).
Je vous pose cette question, car j'ai trouvé des réponses diverses dans la
littérature.
-----------
Réponse
Il faudrait des raisons très particulières pour laisser l’UCT libre (idle) en
attente que le temps du quantum passe. Je ne doute pas que ces raisons
pourraient exister (p.ex. ordonnanceur rigide qui ne peut intervenir qu’à
intervalles fixes, possiblement dans un système à temps réel). Cependant la
solution normale est que quand un processus laisse l’UCT, normalement
pour un appel au système, alors l’ordonnanceur trouve tout de suite un
autre processus à exécuter, s’il y en a un. C’est la solution utilisée dans
mes notes de cours, v. l’exemple.
Ch. 6 93
Systèmes temps réel
systèmes temps réel rigides (hard):
les échéances sont critiques (p.ex. contrôle d’une chaîne
d`assemblage, animation graphique)
il est essentiel de connaître la durée des fonctions
critiques
il doit être possible de garantir que ces fonctions sont
effectivement exécutées dans ce temps (réservation de
ressources)
ceci demande une structure de système très particulière
systèmes temps réel souples (soft):
les échéances sont importantes, mais ne sont pas
toujours critiques (p.ex. systèmes téléphoniques )
les processus critiques reçoivent la priorité
Ch. 6 94
Systèmes temps réel:
Problèmes d’attente dans plus. systèmes (ex. UNIX)
Dans UNIX ‘classique’ il n’est pas permis
d’effectuer changement de contexte pendant un
appel du système - et ces appels peuvent être longs
Pour le temps réel il est nécessaire de permettre la
préemption des appels de systèmes ou du noyau
en général
Donc Unix ‘classique’ n’est pas considéré
approprié pour le temps réel
Mais des variétés appropriées de UNIX ont été
conçues
Ch. 6 95
Inversion de priorité et héritage de priorités
Quand un processus de haute priorité doit
attendre pour des processus de moindre
priorité (p.ex. a besoin de données produites par
ces derniers)
Pour permettre à ces derniers de finir
rapidement, on peut lui faire hériter la
priorité du processus plus prioritaire
Ch. 6 96
Solaris 2: lire dans le manuel pour voir l’application pratique
de plusieurs concepts discutés
Priorités et préemption
Files multiniveau à retour avec
changement de priorité
Tranches plus grandes pour les processus
moins prioritaires
Les procs interactifs sont plus prioritaires
que les les procs tributaires de l’UCT
La plus haute priorité aux procs temps réel
Tourniquet pour les fils de priorités égales
Ch. 6 97
Ordonnancement et priorités en Solaris 2
Ch. 6 98