SlideShare une entreprise Scribd logo
1
Ordonnancement ProcessusOrdonnancement Processus
Chapitre 6Chapitre 6
http://w3.uqo.ca/luigi/http://w3.uqo.ca/luigi/
Ch. 6 2
Aperçu du chapitreAperçu du chapitre
Concepts de base
Critères d’ordonnancement
Algorithmes d’ordonnancement
Ordonnancement de multiprocesseurs
Ordonnancement temps réel
Évaluation d’algorithmes
Importance des concepts de ce chapitresImportance 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
Ch. 6 4
Diagramme de transition d`états d`un processusDiagramme de transition d`états d`un processus
Ch. 6 5
Files d’attente de processus pourFiles d’attente de processus pour
ordonnancementordonnancement
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.
Nous débuterons avec l’hypothèse qu’il n’y a qu’une seule UCT
Ch. 6 6
Concepts de baseConcepts 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 processusLes cycles d’un processus
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
Longueur normale des cyclesLongueur 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 8
Ch. 6 9
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
Histogramme de durée des cycles UCTHistogramme de durée des cycles UCT
Ch. 6 10
Quand invoquer l’ordonnanceurQuand invoquer l’ordonnanceur UCTUCT
L ’ordonnanceur UCT doit prendre sa décision chaque fois que le
processus exécutant est interrompu, c’e-à.-d.
1. un processus se présente en tant que nouveau ou se termine
2. un processus exécutant devient bloqué en attente
3. un processus change d’exécutant/running à prêt/ready
4. un processus change de attente à prêt/ready
• tout événement dans un système qui cause une interruption de l’UCT
implique l’intervention de l’ordonnanceur,
• qui devra prendre une décision concernant quel proc ou thread aura
l’UCT après
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 3, pas de préemption dans le cas 2
Plusieurs pbs à résoudre dans le cas de préemption, v. manuel
Ch. 6 11
DispatcheurDispatcheur (meilleur français: répartiteur)(meilleur français: répartiteur)
Le processus qui donne le contrôle au
processus choisi par l’ordonnanceur. Il
doit se préoccuper de:
changer de contexte
changer à mode usager
réamorcer le processus choisi
Attente de dispatcheur (dispatcher latency)
le temps nécessaire pour exécuter les
fonctions du dispatcheur
il est souvent négligé, il faut supposer qu’il soit
petit par rapport à la longueur d’un cycle
Ch. 6 12
Critères d’ordonnancementCritè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 13
Critères spécifiques d’ordonnancementCritè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)
Temps de réponse: le temps entre une
demande de l’usager et la réponse
Ch. 6 14
Critères d’ordonnancement:Critères d’ordonnancement: maximiser/minimisermaximiser/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
à minimiser
Temps de réponse (pour les systèmes interactifs):
le temps entre une demande et la réponse
à minimiser
Ch. 6 15
Examinons maintenant plusieurs méthodesExaminons maintenant plusieurs méthodes
d’ordonnancement et voyons comment elles sed’ordonnancement et voyons comment elles se
comportent par rapport à ces critèrescomportent par rapport à ces critères
nous étudierons des cas spécifiquesnous étudierons des cas spécifiques
l’étude du cas général demanderait recours à techniques probabilistes ou del’étude du cas général demanderait recours à techniques probabilistes ou de
simulationsimulation
Ch. 6 16
Premier arrivé, premier serviPremier arrivé, premier servi (First come, first serve, FCFS)(First come, first serve, FCFS)
Exemple: Processus Temps de cycle
P1 24
P2 3
P3 3
Si les processus arrivent au temps 0 dans l’ordre: P1 , P2 , P3
Le diagramme Gantt est:
Temps d’attente pour P1= 0; P2= 24; P3= 27
Temps attente moyen: (0 + 24 + 27)/3 = 17
P1 P2 P3
24 27 300
Ch. 6 17
Premier arrive, premier serviPremier arrive, premier servi
Utilisation UCT = 100%
Débit = 3/30 = 0,1
3 processus complétés en 30 unités de temps
Temps de rotation moyen: (24+27+30)/3 = 27
P1 P2 P3
24 27 300
Ch. 6 18
Tenir compte du temps d’arrivée!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 5 et dure 3
Donc P1 attend 0 comme avant
Mais P2 attend 24-2, etc.
P1 P2 P3
24 27 300
arrivée P2
Ch. 6 19
FCFS Scheduling (Cont.)FCFS Scheduling (Cont.)
Si les mêmes processus arrivent à 0 mais dans l’ordre
P2 , P3 , P1 .
Le diagramme de Gantt est:
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 cette technique, les temps peuvent varier
grandement par rapport à l’ordre d’arrivée de différent
processus
Exercice: calculer aussi le débit, etc.
P1P3P2
63 300
Ch. 6 20
Effet d’accumulationEffet d’accumulation (effet convoi)(effet convoi) dans FCFSdans FCFS
Supposons (situation normale)
un processus tributaire de l’UCT (cycles longs)
et plusieurs tributaires de l`E/S (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 autres proc
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 21
Plus Court d’abord = Shortest Job First (SJF)Plus Court d’abord = Shortest Job First (SJF)
Le processus qui demande moins d’UCT part le premier
Optimal en principe du point de vue du temps d’attente
moyen
(v. le dernier exemple)
Mais comment savons-nous quel processus demande moins
d’UCT!
Supposons pour l’instant qu’on puisse
P1P3P2
63 300
Ch. 6 22
SJF avec préemption ou nonSJF 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 23
Processus Arrivée Cycle UCT
P1 0 7
P2 2 4
P3 4 1
P4 5 4
SJF (sans préemption)
Temps d’attente moyen = (0+(8-2)+(7-4)+(12-5))/4
– (0 + 6 + 3 + 7)/4 = 4
Temps de rotation moyen = (7+(12-2)+(8-4)+(16-5)) /4 = 8
Example de SJF sans préemptionExample de SJF sans préemption
P1 P3 P2
7 160
P4
8 12
P2 arr. P3 arr. P4 arr
Ch. 6 24
Exemple de SJF avec préemptionExemple de SJF avec préemption
Processus Arrivée Cycle
P1 0 7
P2 2 4
P3 4 1
P4 5 4
SJF (préemptive)
Temps moyen d`attente = (9 + 1 + 0 +2)/4 = 3 était 4
P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7
Temps de rotation moyen = 16+ (7-2) + (5-4) + (11-5) = 7 était 8
P1 P3P2
42 110
P4
5 7
P2 P1
16
P2 arr. P3 arr. P4 arr
Plus en détail: file prêtPlus en détail: file prêt
Temps des interruptions
Temps 0:
Le seul proc est P1, il est choisi
Temps 2: Interruption causée par l’arrivée de P2
Deux procs dans la file: P1 qui demande encore 5
et P2 qui demande 4: ce dernier est choisi
Temps 4: Interruption causée par l’arrivée de P3
Trois procs dans la file: P1=5, P2=2, P3=1: ce
dernier est choisi
Etc: compléter comme exercice
Ch. 6 25
Préemption ou nonPréemption ou non
La préemption est le cas normal pour l’UCT
car l’arrivée d’un nouveau proc cause une
interruption et à ce moment là
l’ordonnanceur devra prendre une décision sur
le prochain proc à exécuter
Mais dans quelques ressources la
préemption est impossible:
P.ex. dans une imprimante il faut toujours
terminer l’impression courante avant d’en
amorcer une nouvelle
Ch. 6 26
Ch. 6 27
Comment déterminer la longueur des cycles à l’avance?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
Différentes méthodes en principeDifférentes méthodes en principe
Hypothèse de comportement constant d’un
processus:
Un processus qui a eu des cycles d’UCT de 3
millisecondes en moyenne continuera comme ça
Hypothèse de comportement variable d’un
processus:
Un processus qui avant avait des cycles d’UCT de
3ms, maintenant a allongé ces cycles, qui sont de
10ms
La durée des cycles les plus récents est
considérée plus importante pour la prévision des
prochains cycles
Ch. 6 28
Ch. 6 29
Estimation de la durée du prochain cycleEstimation de la durée du prochain cycle
hypothèse de comportement constanthypothè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) Σ{i=1 à n} Ti (une simple moyenne)
Nous pouvons éviter de recalculer la somme en
récrivant:
Sn+1 = (1/n) Tn + ((n-1)/n) Sn
Ceci donne un poids identique à chaque cycle
Estimation de la durée du prochain cycleEstimation de la durée du prochain cycle
hypothèse de comportement variablehypothè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 30
Coefficient α pour le poidsCoefficient α pour le poids
Ch. 6 31
0 1
α 1-α
Importance du cycle
le plus récent
Importance de
l’estimée précédente
Pex. si α = 0,7, alors 1-α = 0,3
Ch. 6 32
Estimation de la durée du prochain cycleEstimation de la durée du prochain cycle
hypothèse de comportement variablehypothèse de comportement variable
Mais les cycles récents peuvent être plus
représentatifs des comportements à venir
La moyenne exponentielle permet de donner
différents poids aux cycles plus ou moins
récents:
Sn+1 = α Tn+ (1-α) Sn ; 0 <= α <= 1
α : le coéfficient d’importance
Tn: la durée du cycle le plus récent
S: l’estimée
Sn+1 l’estimée courante (après le cycle Tn)
Sn l’estimée précédente
Pourquoi ‘exponentielle’Pourquoi ‘exponentielle’
Par expansion, nous voyons que le poids de
chaque cycle décroît exponentiellement
Sn+1 = αTn + (1-α)αTn-1 + ... (1-α)i
αTn-i +
... + (1-α)n
S1
la valeur estimée S1 du 1er cycle peut être
fixée à 0 pour donner priorité max. aux
nouveaux processus
Ch. 6 33
Ch. 6 34
Importance de différents valeurs de coefficientsImportance de différents valeurs de coefficients [Stallings][Stallings]
Stallings
Peu d’import. aux cycles récents
Beaucoup d’import. aux cycles récs
La durée des vieux cycles perd d’importance rapidement si on donne beaucoup
d’importance aux cycles récents, et aussi le converse…
Ch. 6 35
Importance de différents valeurs de coefficientsImportance de différents valeurs de coefficients [Stallings][Stallings]
S1 = 0 (priorité aux nouveaux processus)
Un coefficient plus élevé réagit plus rapidement aux
changements de comportement
Stallings
Ch. 6 36
Un deuxième exempleUn deuxième exemple [Stallings][Stallings]
Stallings
Ch. 6 37
Comment choisir le coefficientComment choisir le coefficient αα
Un petit α 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: α = 0
on reste sur l’estimée initiale
Un gros α 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: α = 1: S n+1 = Tn
Le dernier cycle est le seul qui compte
Exercice: Travailler cet exemple dans le manuelExercice: Travailler cet exemple dans le manuel
Ch. 6 38
réel
estim.
α=0,5
Ch. 6 39
Le plus court d’abord SJF: critiqueLe 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 prévoir la durée d’un
travail entier que la durée d’un cycle
Il y a assignation implicite de priorités: préférences
aux travaux plus courts
Famine possible pour les travaux aux cycles longs
Ch. 6 40
Difficultés majeures avec les méthodes discutéesDifficultés majeures avec les méthodes discutées
Premier arrivé, premier servi, FCFS:
Temps moyen d’attente non-optimal
Mauvaise utilisation des ressources et famine 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
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…
donc votre solution est de donner un peu de temps à chacun, cycliquement
Le tourniquetLe tourniquet
Si j’ai une seule grande pizza et plusieurs
personnes affamées, je pourrais:
Offrir la pizza à chacun mais attendre qu’une
personne ait fini avant de passer à la suivante
(méthodes précédentes)
Ou sinon offrir une tranche à la fois à chacun et
permettre aux personnes de revenir
Ch. 6 41
Ch. 6 42
Tourniquet = Round-Robin (RR)Tourniquet = Round-Robin (RR)
Le plus utilisé en pratiqueLe 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]
P[7] P[2]
P[6] P[3]
P[4]P[5]
La file prêt est un
cercle (dont RR)
Ch. 6 43
Exemple: Tourniquet tranche = 20Exemple: Tourniquet tranche = 20
Processus Cycle
P1 53
P2 17
P3 68
P4 24
Observez
temps de rotation et temps d’attente moyens beaucoup plus
élevés que SJF (exercice: calculez-les…)
mais aucun processus n’est favorisé
P1 P2 P3 P4 P1 P3 P4 P1 P3 P3
0 20 37 57 77 97 117 121 134 154 162
Ch. 6 44
Performance de tourniquetPerformance 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... nous verrons
Ch. 6 45
Une petite tranche augmente les commutationsUne petite tranche augmente les commutations
de contextede contexte (temps de SE)(temps de SE)
Ch. 6 46
Exemple pour voir l’importance d’un bon choixExemple pour voir l’importance d’un bon choix
de tranchede tranche (à développer comme exercice)(à développer comme exercice)
Trois cycles:
A, B, C, toutes de 10
Essayer avec:
t=1
t=10
Dans ce deuxième cas, tourniquet
fonctionne comme FIFO et le temps de
rotation moyen est meilleur
Ch. 6 47
Le temps de rotation (turnaround) varie avec laLe temps de rotation (turnaround) varie avec la
tranchetranche (exemple à travailler)(exemple à travailler)
Exemple qui montre que le temps de rotation moyen n ’améliore pas
nécessairement en augmentant la tranche (sans considérer les temps de
commutation contexte)
= FIFO
Ch. 6 48
Choix de la tranche pour le tourniquetChoix de la tranche pour le tourniquet
doit être beaucoup plus grande que le temps requis pour exécuter le changement de
contexte
devrait permettre le complètement d’approx. 80% des cycles
pour donner le temps à la plupart des proc de terminer leur cycle, mais pas trop pour éviter de pénaliser les processus
courts
(Stallings)
V. ex. prec. où les tranches optimales sont 6 et 7
Comment déterminer la tranche en pratiqueComment déterminer la tranche en pratique
Évidemment la durée médiane des cycles
des processus en attente est impossible à
déterminer!
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 49
Ch. 6 50
PrioritésPriorité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 51
Problème possible avec les prioritésProblè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 52
Files à plusieurs niveaux (multiples)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 53
Ordonnancement avec files multiplesOrdonnancement avec files multiples
(ex.: serveur principal d’une université)(ex.: serveur principal d’une université)
Un proc peut être servi seulement si toutes les files de priorités plus
hautes sont vides
Ch. 6 54
Files multiples et à retourFiles 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 55
Files multiples et à retourFiles multiples et à retour
PRIO = 0
la + élevée
PRIO = 1
PRIO = 2
Ch. 6 56
Exemple de files multiples à retourExemple 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
ExerciceExercice
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 57
Ch. 6 58
En pratique...En pratique...
Les méthodes que nous avons vu sont toutes
utilisées (sauf plus court servi pur qui est
normalement impossible, 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 59
Aussi…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.
Plusieurs UCTsPlusieurs 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 60
Ch. 6 61
Ordonnancement avec plusieurs UCTsOrdonnancement avec plusieurs UCTs
identiques:identiques: homogénéitéhomogénéité
Méthodes symétriques:
chaque UCT peut exécuter
l’ordonnancement et la
répartition
Une seule liste prêt pour
toutes les UCTs (division
travail = load sharing)
Méthodes asymétriques:
certaines fonctions sont
réservées à des UCT
spécifiques
Files d’attentes séparées
pour chaque UCT
UCT
UCT
UCT
UCT
UCT
UCT
UCT
UCT
Symétrique ou non?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 62
Ch. 6 63
Symétrique ou non?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 63
Ch. 6 64
Systèmes temps réelSystè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 65
Systèmes temps réel:Systèmes temps réel:
Problèmes d’attente dans plus. systèmes (ex. UNIX)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 66
Inversion de priorité et héritage de prioritésInversion 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 67
Ordonnancement de threadsOrdonnancement de threads
Local: la librairie des threads pour une
application donnée décide quel thread
usager obtient un LWP disponible
Global: le noyau décide quel thread de
noyau exécute sur l’UCT
Ch. 6 68
Ordonnancement et priorités en Solaris 2Ordonnancement et priorités en Solaris 2
Ch. 6 69
Solaris 2:Solaris 2: lire dans le manuel pour voir l’application pratiquelire dans le manuel pour voir l’application pratique
de plusieurs concepts discutésde 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 70
Méthode d’évaluation et comparaisonMéthode d’évaluation et comparaison
d’algorithmesd’algorithmes (section plutôt à lire)(section plutôt à lire)
Modélisation déterministe
Modèles de files d’attente (queuing theory)
Simulation
Implantation
Ch. 6 71
Modélisation déterministeModélisation déterministe
Essentiellement, ce que nous avons déjà
fait en étudiant le comportement de
plusieurs algorithmes sur plusieurs
exemples
Ch. 6 72
Utilisation de la théorie des files (queuing th.)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 73
Théorie des files: la formule de LittleThé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 74
SimulationSimulation
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 75
ImplémentationImplé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 76
Tableau de comparaisonTableau de comparaison
Le tableau suivant fait une comparaisonLe tableau suivant fait une comparaison
globale des différentes techniques étudiéesglobale des différentes techniques étudiées
Assurez-vous de comprendre chaque caseAssurez-vous de comprendre chaque case
Ch. 6 77
Critère
sélection
Préempt Motivation Temps de
rotat. et atten.
Temps de
système
Effect sur
processus
Famine
PAPS
FCFS
Max [w] non Simplicité Variable Minim. Favor. proc.
trib. UCT
Non
Tourniq. Tour fixe oui
Equité
Variable selon
tranche,
Normalement
élevé
Élevé si
tranches
courtes
Équitable Non
PCS
SJF
Min[s] non
Optimisation
des temps
Optimal, mais
souffre si des
procs longs
arrivent au début
Peut être
élevé (pour
estimer les
longs. des
trames)
Bon pour
proc.
courts,
pénalise
proc. longs
Possible
PCS
SJF
préemp.
Min[s-e] oui Évite le problème
de procs longs au
début
Meilleur, même si
des procs longs
arrivent au début
Peut être
élevé
Pénalise
plus encore
proc. longs Possible
Files
multiniv.
v. détails oui
Varie la longueur
des tranches en
fonction des
besoins
Variable
Peut être
élévé
Variable
Peut être
évitée
w: temps total dans système jusqu’à présent; e: temps en exec jusqu’à présent
s: temps demandé; Famine est ‘renvoi infini’
Ch. 6 78
Points importants dans ce chapitrePoints importants dans ce chapitre
Files d’attente pour UCT
Critères d’ordonnancement
Algorithmes d’ordonnancement
FCFS: simple, non optimal
SJF: 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 79
Pas sujet d’examenPas sujet d’examen
Sections 6.6, 6.7, 6.8

Contenu connexe

Tendances

Présentation PFE | Eolane | Amélioration de la productivité de l'atelier CMS
Présentation PFE | Eolane | Amélioration de la productivité de l'atelier CMSPrésentation PFE | Eolane | Amélioration de la productivité de l'atelier CMS
Présentation PFE | Eolane | Amélioration de la productivité de l'atelier CMS
Zouhair Boufakri
 
Présentation kaizen
Présentation kaizenPrésentation kaizen
Présentation kaizen
LafargeHolcim
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vieHarun Mouad
 
Présentation soutenance
Présentation soutenancePrésentation soutenance
Présentation soutenance
shurongliu
 
Cours GPAO el hassani Ibtissam - ENSEM Casablanca
Cours GPAO el hassani Ibtissam - ENSEM CasablancaCours GPAO el hassani Ibtissam - ENSEM Casablanca
Cours GPAO el hassani Ibtissam - ENSEM Casablanca
ibtissam el hassani
 
Présentation de mon projet fin d’étude
Présentation de mon projet fin d’étude Présentation de mon projet fin d’étude
Présentation de mon projet fin d’étude
bacemmeskin
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercicesSelman Dridi
 
GMAO
GMAOGMAO
GMAO
senejug
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
Mohamed Ayoub OUERTATANI
 
Comment faire rapport + soutenance
Comment faire rapport + soutenanceComment faire rapport + soutenance
Comment faire rapport + soutenance
Radouan LAHSINI
 
Formation lean supply chain - Lean Logistics
Formation lean supply chain - Lean LogisticsFormation lean supply chain - Lean Logistics
Formation lean supply chain - Lean Logistics
Mohammed MARZAK
 
Le juste à temps (JAT)
Le juste à temps (JAT)Le juste à temps (JAT)
Le juste à temps (JAT)
Hasnae SQUALLI HOUSSAINI
 
21.la gestion de la production
21.la gestion de la production21.la gestion de la production
21.la gestion de la productionOULAAJEB YOUSSEF
 
Etude critique et amélioration de la gestion de la performance du service mai...
Etude critique et amélioration de la gestion de la performance du service mai...Etude critique et amélioration de la gestion de la performance du service mai...
Etude critique et amélioration de la gestion de la performance du service mai...darckdaxter
 
Kanban
Kanban Kanban
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'Etudes
Hosni Mansour
 
Modèle en cascade
Modèle en cascadeModèle en cascade
Modèle en cascade
Ghodhbane Mohamed Amine
 
Test logiciel
Test logicielTest logiciel
Test logiciel
Youness Boukouchi
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesSirine Barguaoui
 

Tendances (20)

Présentation PFE | Eolane | Amélioration de la productivité de l'atelier CMS
Présentation PFE | Eolane | Amélioration de la productivité de l'atelier CMSPrésentation PFE | Eolane | Amélioration de la productivité de l'atelier CMS
Présentation PFE | Eolane | Amélioration de la productivité de l'atelier CMS
 
Présentation kaizen
Présentation kaizenPrésentation kaizen
Présentation kaizen
 
2.2 cycles de vie
2.2 cycles de vie2.2 cycles de vie
2.2 cycles de vie
 
Présentation soutenance
Présentation soutenancePrésentation soutenance
Présentation soutenance
 
Cours GPAO el hassani Ibtissam - ENSEM Casablanca
Cours GPAO el hassani Ibtissam - ENSEM CasablancaCours GPAO el hassani Ibtissam - ENSEM Casablanca
Cours GPAO el hassani Ibtissam - ENSEM Casablanca
 
Présentation de mon projet fin d’étude
Présentation de mon projet fin d’étude Présentation de mon projet fin d’étude
Présentation de mon projet fin d’étude
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercices
 
GMAO
GMAOGMAO
GMAO
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
 
Comment faire rapport + soutenance
Comment faire rapport + soutenanceComment faire rapport + soutenance
Comment faire rapport + soutenance
 
Gmao
GmaoGmao
Gmao
 
Formation lean supply chain - Lean Logistics
Formation lean supply chain - Lean LogisticsFormation lean supply chain - Lean Logistics
Formation lean supply chain - Lean Logistics
 
Le juste à temps (JAT)
Le juste à temps (JAT)Le juste à temps (JAT)
Le juste à temps (JAT)
 
21.la gestion de la production
21.la gestion de la production21.la gestion de la production
21.la gestion de la production
 
Etude critique et amélioration de la gestion de la performance du service mai...
Etude critique et amélioration de la gestion de la performance du service mai...Etude critique et amélioration de la gestion de la performance du service mai...
Etude critique et amélioration de la gestion de la performance du service mai...
 
Kanban
Kanban Kanban
Kanban
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'Etudes
 
Modèle en cascade
Modèle en cascadeModèle en cascade
Modèle en cascade
 
Test logiciel
Test logicielTest logiciel
Test logiciel
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiques
 

En vedette

Meeting and conference participation
Meeting and conference participationMeeting and conference participation
Meeting and conference participation
Imran Ahmed
 
Meeting and conference
Meeting and conference Meeting and conference
Meeting and conference
Chandan Gpta
 
Useful phrases
Useful phrasesUseful phrases
Useful phrases
chiquilennon
 
System d\'exploitation
System d\'exploitationSystem d\'exploitation
System d\'exploitationThắng Thao
 
Public speaking
Public speaking Public speaking
Public speaking
Chandan Gpta
 
Guide To Most Useful Business Meeting Phrases
Guide To Most Useful Business Meeting PhrasesGuide To Most Useful Business Meeting Phrases
English Phrases for Presentations
English Phrases for PresentationsEnglish Phrases for Presentations
English Phrases for Presentations
KatieEnglishTutoring
 
500 real-english-phrases
500 real-english-phrases500 real-english-phrases
500 real-english-phrases
cagius81
 
Useful phrases for your oral test
Useful phrases for your oral testUseful phrases for your oral test
Useful phrases for your oral test
melisa
 
Useful phrases for speaking
Useful phrases for speakingUseful phrases for speaking
Useful phrases for speaking
andydei
 
Chap2 ordonnancement
Chap2 ordonnancementChap2 ordonnancement
Chap2 ordonnancement
michel martiz
 

En vedette (12)

Meeting and conference participation
Meeting and conference participationMeeting and conference participation
Meeting and conference participation
 
Meeting and conference
Meeting and conference Meeting and conference
Meeting and conference
 
Useful phrases
Useful phrasesUseful phrases
Useful phrases
 
Ordonnancement SJF
Ordonnancement SJFOrdonnancement SJF
Ordonnancement SJF
 
System d\'exploitation
System d\'exploitationSystem d\'exploitation
System d\'exploitation
 
Public speaking
Public speaking Public speaking
Public speaking
 
Guide To Most Useful Business Meeting Phrases
Guide To Most Useful Business Meeting PhrasesGuide To Most Useful Business Meeting Phrases
Guide To Most Useful Business Meeting Phrases
 
English Phrases for Presentations
English Phrases for PresentationsEnglish Phrases for Presentations
English Phrases for Presentations
 
500 real-english-phrases
500 real-english-phrases500 real-english-phrases
500 real-english-phrases
 
Useful phrases for your oral test
Useful phrases for your oral testUseful phrases for your oral test
Useful phrases for your oral test
 
Useful phrases for speaking
Useful phrases for speakingUseful phrases for speaking
Useful phrases for speaking
 
Chap2 ordonnancement
Chap2 ordonnancementChap2 ordonnancement
Chap2 ordonnancement
 

Similaire à Chap06 1

Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
MbarkiIsraa
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processusSelman Dridi
 
Cours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdfCours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdf
MedBechir
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
Alexandru Radovici
 
Gpao 6 - Ordonnancement
Gpao 6 - OrdonnancementGpao 6 - Ordonnancement
Gpao 6 - Ordonnancement
ibtissam el hassani
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
Alexandru Radovici
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
Christian Charreyre
 
gestion de processus
gestion de processusgestion de processus
gestion de processus
MoodyBop
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
MoodyBop
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreel
youssef essakhi
 
Ordonnancement
OrdonnancementOrdonnancement
Ordonnancement
Abbas Ebrahimi
 
Atelier d'Optimisation de Contrôleurs en simulation Dynamique
Atelier d'Optimisation de Contrôleurs en simulation DynamiqueAtelier d'Optimisation de Contrôleurs en simulation Dynamique
Atelier d'Optimisation de Contrôleurs en simulation Dynamique
Sergio Joao
 
Retour Experience Atchik Sigma T9 200903[1]
Retour Experience Atchik Sigma T9 200903[1]Retour Experience Atchik Sigma T9 200903[1]
Retour Experience Atchik Sigma T9 200903[1]almerys
 
La gestion des processus
La gestion des processusLa gestion des processus
La gestion des processus
sarah Benmerzouk
 
The supply chain is susceptible to market volatility, driven by changing cons...
The supply chain is susceptible to market volatility, driven by changing cons...The supply chain is susceptible to market volatility, driven by changing cons...
The supply chain is susceptible to market volatility, driven by changing cons...
DanielMohamed4
 
alaa.pptx
alaa.pptxalaa.pptx
alaa.pptx
GhorbelOmar2
 
Fr linux job_scheduling
Fr linux job_schedulingFr linux job_scheduling
Fr linux job_schedulingORSYP France
 
La méthode ziegler nichols pour la détermination des paramètres d un controle...
La méthode ziegler nichols pour la détermination des paramètres d un controle...La méthode ziegler nichols pour la détermination des paramètres d un controle...
La méthode ziegler nichols pour la détermination des paramètres d un controle...
osmalilwano
 

Similaire à Chap06 1 (20)

Ordonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdfOrdonnanc-Proc_Threads (1).pdf
Ordonnanc-Proc_Threads (1).pdf
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processus
 
STR-2.pdf
STR-2.pdfSTR-2.pdf
STR-2.pdf
 
ex6_solution.pdf
ex6_solution.pdfex6_solution.pdf
ex6_solution.pdf
 
Cours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdfCours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdf
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
Gpao 6 - Ordonnancement
Gpao 6 - OrdonnancementGpao 6 - Ordonnancement
Gpao 6 - Ordonnancement
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
 
gestion de processus
gestion de processusgestion de processus
gestion de processus
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreel
 
Ordonnancement
OrdonnancementOrdonnancement
Ordonnancement
 
Atelier d'Optimisation de Contrôleurs en simulation Dynamique
Atelier d'Optimisation de Contrôleurs en simulation DynamiqueAtelier d'Optimisation de Contrôleurs en simulation Dynamique
Atelier d'Optimisation de Contrôleurs en simulation Dynamique
 
Retour Experience Atchik Sigma T9 200903[1]
Retour Experience Atchik Sigma T9 200903[1]Retour Experience Atchik Sigma T9 200903[1]
Retour Experience Atchik Sigma T9 200903[1]
 
La gestion des processus
La gestion des processusLa gestion des processus
La gestion des processus
 
The supply chain is susceptible to market volatility, driven by changing cons...
The supply chain is susceptible to market volatility, driven by changing cons...The supply chain is susceptible to market volatility, driven by changing cons...
The supply chain is susceptible to market volatility, driven by changing cons...
 
alaa.pptx
alaa.pptxalaa.pptx
alaa.pptx
 
Fr linux job_scheduling
Fr linux job_schedulingFr linux job_scheduling
Fr linux job_scheduling
 
La méthode ziegler nichols pour la détermination des paramètres d un controle...
La méthode ziegler nichols pour la détermination des paramètres d un controle...La méthode ziegler nichols pour la détermination des paramètres d un controle...
La méthode ziegler nichols pour la détermination des paramètres d un controle...
 

Dernier

Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union
 
Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
frizzole
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
M2i Formation
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
BenotGeorges3
 
Textes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdfTextes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdf
Michel Bruley
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 

Dernier (7)

Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
 
Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
 
Textes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdfTextes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdf
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 

Chap06 1

  • 1. 1 Ordonnancement ProcessusOrdonnancement Processus Chapitre 6Chapitre 6 http://w3.uqo.ca/luigi/http://w3.uqo.ca/luigi/
  • 2. Ch. 6 2 Aperçu du chapitreAperçu du chapitre Concepts de base Critères d’ordonnancement Algorithmes d’ordonnancement Ordonnancement de multiprocesseurs Ordonnancement temps réel Évaluation d’algorithmes
  • 3. Importance des concepts de ce chapitresImportance 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
  • 4. Ch. 6 4 Diagramme de transition d`états d`un processusDiagramme de transition d`états d`un processus
  • 5. Ch. 6 5 Files d’attente de processus pourFiles d’attente de processus pour ordonnancementordonnancement 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. Nous débuterons avec l’hypothèse qu’il n’y a qu’une seule UCT
  • 6. Ch. 6 6 Concepts de baseConcepts 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
  • 7. Ch. 6 7 Les cycles d’un processusLes cycles d’un processus 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
  • 8. Longueur normale des cyclesLongueur 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 8
  • 9. Ch. 6 9 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 Histogramme de durée des cycles UCTHistogramme de durée des cycles UCT
  • 10. Ch. 6 10 Quand invoquer l’ordonnanceurQuand invoquer l’ordonnanceur UCTUCT L ’ordonnanceur UCT doit prendre sa décision chaque fois que le processus exécutant est interrompu, c’e-à.-d. 1. un processus se présente en tant que nouveau ou se termine 2. un processus exécutant devient bloqué en attente 3. un processus change d’exécutant/running à prêt/ready 4. un processus change de attente à prêt/ready • tout événement dans un système qui cause une interruption de l’UCT implique l’intervention de l’ordonnanceur, • qui devra prendre une décision concernant quel proc ou thread aura l’UCT après 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 3, pas de préemption dans le cas 2 Plusieurs pbs à résoudre dans le cas de préemption, v. manuel
  • 11. Ch. 6 11 DispatcheurDispatcheur (meilleur français: répartiteur)(meilleur français: répartiteur) Le processus qui donne le contrôle au processus choisi par l’ordonnanceur. Il doit se préoccuper de: changer de contexte changer à mode usager réamorcer le processus choisi Attente de dispatcheur (dispatcher latency) le temps nécessaire pour exécuter les fonctions du dispatcheur il est souvent négligé, il faut supposer qu’il soit petit par rapport à la longueur d’un cycle
  • 12. Ch. 6 12 Critères d’ordonnancementCritè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...
  • 13. Ch. 6 13 Critères spécifiques d’ordonnancementCritè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) Temps de réponse: le temps entre une demande de l’usager et la réponse
  • 14. Ch. 6 14 Critères d’ordonnancement:Critères d’ordonnancement: maximiser/minimisermaximiser/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 à minimiser Temps de réponse (pour les systèmes interactifs): le temps entre une demande et la réponse à minimiser
  • 15. Ch. 6 15 Examinons maintenant plusieurs méthodesExaminons maintenant plusieurs méthodes d’ordonnancement et voyons comment elles sed’ordonnancement et voyons comment elles se comportent par rapport à ces critèrescomportent par rapport à ces critères nous étudierons des cas spécifiquesnous étudierons des cas spécifiques l’étude du cas général demanderait recours à techniques probabilistes ou del’étude du cas général demanderait recours à techniques probabilistes ou de simulationsimulation
  • 16. Ch. 6 16 Premier arrivé, premier serviPremier arrivé, premier servi (First come, first serve, FCFS)(First come, first serve, FCFS) Exemple: Processus Temps de cycle P1 24 P2 3 P3 3 Si les processus arrivent au temps 0 dans l’ordre: P1 , P2 , P3 Le diagramme Gantt est: Temps d’attente pour P1= 0; P2= 24; P3= 27 Temps attente moyen: (0 + 24 + 27)/3 = 17 P1 P2 P3 24 27 300
  • 17. Ch. 6 17 Premier arrive, premier serviPremier arrive, premier servi Utilisation UCT = 100% Débit = 3/30 = 0,1 3 processus complétés en 30 unités de temps Temps de rotation moyen: (24+27+30)/3 = 27 P1 P2 P3 24 27 300
  • 18. Ch. 6 18 Tenir compte du temps d’arrivée!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 5 et dure 3 Donc P1 attend 0 comme avant Mais P2 attend 24-2, etc. P1 P2 P3 24 27 300 arrivée P2
  • 19. Ch. 6 19 FCFS Scheduling (Cont.)FCFS Scheduling (Cont.) Si les mêmes processus arrivent à 0 mais dans l’ordre P2 , P3 , P1 . Le diagramme de Gantt est: 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 cette technique, les temps peuvent varier grandement par rapport à l’ordre d’arrivée de différent processus Exercice: calculer aussi le débit, etc. P1P3P2 63 300
  • 20. Ch. 6 20 Effet d’accumulationEffet d’accumulation (effet convoi)(effet convoi) dans FCFSdans FCFS Supposons (situation normale) un processus tributaire de l’UCT (cycles longs) et plusieurs tributaires de l`E/S (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 autres proc 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
  • 21. Ch. 6 21 Plus Court d’abord = Shortest Job First (SJF)Plus Court d’abord = Shortest Job First (SJF) Le processus qui demande moins d’UCT part le premier Optimal en principe du point de vue du temps d’attente moyen (v. le dernier exemple) Mais comment savons-nous quel processus demande moins d’UCT! Supposons pour l’instant qu’on puisse P1P3P2 63 300
  • 22. Ch. 6 22 SJF avec préemption ou nonSJF 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
  • 23. Ch. 6 23 Processus Arrivée Cycle UCT P1 0 7 P2 2 4 P3 4 1 P4 5 4 SJF (sans préemption) Temps d’attente moyen = (0+(8-2)+(7-4)+(12-5))/4 – (0 + 6 + 3 + 7)/4 = 4 Temps de rotation moyen = (7+(12-2)+(8-4)+(16-5)) /4 = 8 Example de SJF sans préemptionExample de SJF sans préemption P1 P3 P2 7 160 P4 8 12 P2 arr. P3 arr. P4 arr
  • 24. Ch. 6 24 Exemple de SJF avec préemptionExemple de SJF avec préemption Processus Arrivée Cycle P1 0 7 P2 2 4 P3 4 1 P4 5 4 SJF (préemptive) Temps moyen d`attente = (9 + 1 + 0 +2)/4 = 3 était 4 P1 attend de 2 à 11, P2 de 4 à 5, P4 de 5 à 7 Temps de rotation moyen = 16+ (7-2) + (5-4) + (11-5) = 7 était 8 P1 P3P2 42 110 P4 5 7 P2 P1 16 P2 arr. P3 arr. P4 arr
  • 25. Plus en détail: file prêtPlus en détail: file prêt Temps des interruptions Temps 0: Le seul proc est P1, il est choisi Temps 2: Interruption causée par l’arrivée de P2 Deux procs dans la file: P1 qui demande encore 5 et P2 qui demande 4: ce dernier est choisi Temps 4: Interruption causée par l’arrivée de P3 Trois procs dans la file: P1=5, P2=2, P3=1: ce dernier est choisi Etc: compléter comme exercice Ch. 6 25
  • 26. Préemption ou nonPréemption ou non La préemption est le cas normal pour l’UCT car l’arrivée d’un nouveau proc cause une interruption et à ce moment là l’ordonnanceur devra prendre une décision sur le prochain proc à exécuter Mais dans quelques ressources la préemption est impossible: P.ex. dans une imprimante il faut toujours terminer l’impression courante avant d’en amorcer une nouvelle Ch. 6 26
  • 27. Ch. 6 27 Comment déterminer la longueur des cycles à l’avance?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
  • 28. Différentes méthodes en principeDifférentes méthodes en principe Hypothèse de comportement constant d’un processus: Un processus qui a eu des cycles d’UCT de 3 millisecondes en moyenne continuera comme ça Hypothèse de comportement variable d’un processus: Un processus qui avant avait des cycles d’UCT de 3ms, maintenant a allongé ces cycles, qui sont de 10ms La durée des cycles les plus récents est considérée plus importante pour la prévision des prochains cycles Ch. 6 28
  • 29. Ch. 6 29 Estimation de la durée du prochain cycleEstimation de la durée du prochain cycle hypothèse de comportement constanthypothè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) Σ{i=1 à n} Ti (une simple moyenne) Nous pouvons éviter de recalculer la somme en récrivant: Sn+1 = (1/n) Tn + ((n-1)/n) Sn Ceci donne un poids identique à chaque cycle
  • 30. Estimation de la durée du prochain cycleEstimation de la durée du prochain cycle hypothèse de comportement variablehypothè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 30
  • 31. Coefficient α pour le poidsCoefficient α pour le poids Ch. 6 31 0 1 α 1-α Importance du cycle le plus récent Importance de l’estimée précédente Pex. si α = 0,7, alors 1-α = 0,3
  • 32. Ch. 6 32 Estimation de la durée du prochain cycleEstimation de la durée du prochain cycle hypothèse de comportement variablehypothèse de comportement variable Mais les cycles récents peuvent être plus représentatifs des comportements à venir La moyenne exponentielle permet de donner différents poids aux cycles plus ou moins récents: Sn+1 = α Tn+ (1-α) Sn ; 0 <= α <= 1 α : le coéfficient d’importance Tn: la durée du cycle le plus récent S: l’estimée Sn+1 l’estimée courante (après le cycle Tn) Sn l’estimée précédente
  • 33. Pourquoi ‘exponentielle’Pourquoi ‘exponentielle’ Par expansion, nous voyons que le poids de chaque cycle décroît exponentiellement Sn+1 = αTn + (1-α)αTn-1 + ... (1-α)i αTn-i + ... + (1-α)n S1 la valeur estimée S1 du 1er cycle peut être fixée à 0 pour donner priorité max. aux nouveaux processus Ch. 6 33
  • 34. Ch. 6 34 Importance de différents valeurs de coefficientsImportance de différents valeurs de coefficients [Stallings][Stallings] Stallings Peu d’import. aux cycles récents Beaucoup d’import. aux cycles récs La durée des vieux cycles perd d’importance rapidement si on donne beaucoup d’importance aux cycles récents, et aussi le converse…
  • 35. Ch. 6 35 Importance de différents valeurs de coefficientsImportance de différents valeurs de coefficients [Stallings][Stallings] S1 = 0 (priorité aux nouveaux processus) Un coefficient plus élevé réagit plus rapidement aux changements de comportement Stallings
  • 36. Ch. 6 36 Un deuxième exempleUn deuxième exemple [Stallings][Stallings] Stallings
  • 37. Ch. 6 37 Comment choisir le coefficientComment choisir le coefficient αα Un petit α 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: α = 0 on reste sur l’estimée initiale Un gros α 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: α = 1: S n+1 = Tn Le dernier cycle est le seul qui compte
  • 38. Exercice: Travailler cet exemple dans le manuelExercice: Travailler cet exemple dans le manuel Ch. 6 38 réel estim. α=0,5
  • 39. Ch. 6 39 Le plus court d’abord SJF: critiqueLe 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 prévoir la durée d’un travail entier que la durée d’un cycle Il y a assignation implicite de priorités: préférences aux travaux plus courts Famine possible pour les travaux aux cycles longs
  • 40. Ch. 6 40 Difficultés majeures avec les méthodes discutéesDifficultés majeures avec les méthodes discutées Premier arrivé, premier servi, FCFS: Temps moyen d’attente non-optimal Mauvaise utilisation des ressources et famine 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 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… donc votre solution est de donner un peu de temps à chacun, cycliquement
  • 41. Le tourniquetLe tourniquet Si j’ai une seule grande pizza et plusieurs personnes affamées, je pourrais: Offrir la pizza à chacun mais attendre qu’une personne ait fini avant de passer à la suivante (méthodes précédentes) Ou sinon offrir une tranche à la fois à chacun et permettre aux personnes de revenir Ch. 6 41
  • 42. Ch. 6 42 Tourniquet = Round-Robin (RR)Tourniquet = Round-Robin (RR) Le plus utilisé en pratiqueLe 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] P[7] P[2] P[6] P[3] P[4]P[5] La file prêt est un cercle (dont RR)
  • 43. Ch. 6 43 Exemple: Tourniquet tranche = 20Exemple: Tourniquet tranche = 20 Processus Cycle P1 53 P2 17 P3 68 P4 24 Observez temps de rotation et temps d’attente moyens beaucoup plus élevés que SJF (exercice: calculez-les…) mais aucun processus n’est favorisé P1 P2 P3 P4 P1 P3 P4 P1 P3 P3 0 20 37 57 77 97 117 121 134 154 162
  • 44. Ch. 6 44 Performance de tourniquetPerformance 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... nous verrons
  • 45. Ch. 6 45 Une petite tranche augmente les commutationsUne petite tranche augmente les commutations de contextede contexte (temps de SE)(temps de SE)
  • 46. Ch. 6 46 Exemple pour voir l’importance d’un bon choixExemple pour voir l’importance d’un bon choix de tranchede tranche (à développer comme exercice)(à développer comme exercice) Trois cycles: A, B, C, toutes de 10 Essayer avec: t=1 t=10 Dans ce deuxième cas, tourniquet fonctionne comme FIFO et le temps de rotation moyen est meilleur
  • 47. Ch. 6 47 Le temps de rotation (turnaround) varie avec laLe temps de rotation (turnaround) varie avec la tranchetranche (exemple à travailler)(exemple à travailler) Exemple qui montre que le temps de rotation moyen n ’améliore pas nécessairement en augmentant la tranche (sans considérer les temps de commutation contexte) = FIFO
  • 48. Ch. 6 48 Choix de la tranche pour le tourniquetChoix de la tranche pour le tourniquet doit être beaucoup plus grande que le temps requis pour exécuter le changement de contexte devrait permettre le complètement d’approx. 80% des cycles pour donner le temps à la plupart des proc de terminer leur cycle, mais pas trop pour éviter de pénaliser les processus courts (Stallings) V. ex. prec. où les tranches optimales sont 6 et 7
  • 49. Comment déterminer la tranche en pratiqueComment déterminer la tranche en pratique Évidemment la durée médiane des cycles des processus en attente est impossible à déterminer! 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 49
  • 50. Ch. 6 50 PrioritésPriorité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é
  • 51. Ch. 6 51 Problème possible avec les prioritésProblè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)
  • 52. Ch. 6 52 Files à plusieurs niveaux (multiples)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
  • 53. Ch. 6 53 Ordonnancement avec files multiplesOrdonnancement avec files multiples (ex.: serveur principal d’une université)(ex.: serveur principal d’une université) Un proc peut être servi seulement si toutes les files de priorités plus hautes sont vides
  • 54. Ch. 6 54 Files multiples et à retourFiles 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
  • 55. Ch. 6 55 Files multiples et à retourFiles multiples et à retour PRIO = 0 la + élevée PRIO = 1 PRIO = 2
  • 56. Ch. 6 56 Exemple de files multiples à retourExemple 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
  • 57. ExerciceExercice 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 57
  • 58. Ch. 6 58 En pratique...En pratique... Les méthodes que nous avons vu sont toutes utilisées (sauf plus court servi pur qui est normalement impossible, 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
  • 59. Ch. 6 59 Aussi…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.
  • 60. Plusieurs UCTsPlusieurs 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 60
  • 61. Ch. 6 61 Ordonnancement avec plusieurs UCTsOrdonnancement avec plusieurs UCTs identiques:identiques: homogénéitéhomogénéité Méthodes symétriques: chaque UCT peut exécuter l’ordonnancement et la répartition Une seule liste prêt pour toutes les UCTs (division travail = load sharing) Méthodes asymétriques: certaines fonctions sont réservées à des UCT spécifiques Files d’attentes séparées pour chaque UCT UCT UCT UCT UCT UCT UCT UCT UCT
  • 62. Symétrique ou non?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 62
  • 63. Ch. 6 63 Symétrique ou non?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 63
  • 64. Ch. 6 64 Systèmes temps réelSystè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é
  • 65. Ch. 6 65 Systèmes temps réel:Systèmes temps réel: Problèmes d’attente dans plus. systèmes (ex. UNIX)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
  • 66. Ch. 6 66 Inversion de priorité et héritage de prioritésInversion 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
  • 67. Ch. 6 67 Ordonnancement de threadsOrdonnancement de threads Local: la librairie des threads pour une application donnée décide quel thread usager obtient un LWP disponible Global: le noyau décide quel thread de noyau exécute sur l’UCT
  • 68. Ch. 6 68 Ordonnancement et priorités en Solaris 2Ordonnancement et priorités en Solaris 2
  • 69. Ch. 6 69 Solaris 2:Solaris 2: lire dans le manuel pour voir l’application pratiquelire dans le manuel pour voir l’application pratique de plusieurs concepts discutésde 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
  • 70. Ch. 6 70 Méthode d’évaluation et comparaisonMéthode d’évaluation et comparaison d’algorithmesd’algorithmes (section plutôt à lire)(section plutôt à lire) Modélisation déterministe Modèles de files d’attente (queuing theory) Simulation Implantation
  • 71. Ch. 6 71 Modélisation déterministeModélisation déterministe Essentiellement, ce que nous avons déjà fait en étudiant le comportement de plusieurs algorithmes sur plusieurs exemples
  • 72. Ch. 6 72 Utilisation de la théorie des files (queuing th.)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
  • 73. Ch. 6 73 Théorie des files: la formule de LittleThé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
  • 74. Ch. 6 74 SimulationSimulation 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
  • 75. Ch. 6 75 ImplémentationImplé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...
  • 76. Ch. 6 76 Tableau de comparaisonTableau de comparaison Le tableau suivant fait une comparaisonLe tableau suivant fait une comparaison globale des différentes techniques étudiéesglobale des différentes techniques étudiées Assurez-vous de comprendre chaque caseAssurez-vous de comprendre chaque case
  • 77. Ch. 6 77 Critère sélection Préempt Motivation Temps de rotat. et atten. Temps de système Effect sur processus Famine PAPS FCFS Max [w] non Simplicité Variable Minim. Favor. proc. trib. UCT Non Tourniq. Tour fixe oui Equité Variable selon tranche, Normalement élevé Élevé si tranches courtes Équitable Non PCS SJF Min[s] non Optimisation des temps Optimal, mais souffre si des procs longs arrivent au début Peut être élevé (pour estimer les longs. des trames) Bon pour proc. courts, pénalise proc. longs Possible PCS SJF préemp. Min[s-e] oui Évite le problème de procs longs au début Meilleur, même si des procs longs arrivent au début Peut être élevé Pénalise plus encore proc. longs Possible Files multiniv. v. détails oui Varie la longueur des tranches en fonction des besoins Variable Peut être élévé Variable Peut être évitée w: temps total dans système jusqu’à présent; e: temps en exec jusqu’à présent s: temps demandé; Famine est ‘renvoi infini’
  • 78. Ch. 6 78 Points importants dans ce chapitrePoints importants dans ce chapitre Files d’attente pour UCT Critères d’ordonnancement Algorithmes d’ordonnancement FCFS: simple, non optimal SJF: optimal, implantation difficile moyenne exponentielle Priorités Tourniquet: sélection du quantum Évaluation des méthodes, théorie des files, formule de Little
  • 79. Ch. 6 79 Pas sujet d’examenPas sujet d’examen Sections 6.6, 6.7, 6.8