chap06-1 (1)
-
Upload
djebbi-sami -
Category
Documents
-
view
228 -
download
0
Transcript of chap06-1 (1)
-
8/17/2019 chap06-1 (1)
1/82
1
Ordonnancement ProcessusOrdonnancement Processus
Chapitre 6Chapitre 6
http://w3.uqo.ca/luigi/http://w3.uqo.ca/luigi/
-
8/17/2019 chap06-1 (1)
2/82
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
-
8/17/2019 chap06-1 (1)
3/82
Importance des concepts de ce chapitresImportance des concepts de ce chapitres
Les méthodes d’ordonnancement ont desnombreuses applications Et ont été très étudiées,surtout avec des
éthodes pro!a!ilistes et de siulation Non seulement en informatique, mais aussi
en gestion "upposons qu#on parle de di$$érents t%ches &
e'écuter dans une usine dans laquelle il ( ades ressources qui sont des ouvriers et desoutils
Ch. 6 3
-
8/17/2019 chap06-1 (1)
4/82
Importance dans l’informatiqueImportance dans l’informatique
L’utilisation de critères d’ordonnancementefficaces est surtout importante pour les grandscentres d’informatique qui sont très chargés Chi$$res recueillies dans le we!: )oogle, *icroso$t:
!ien plus d#1* de serveurs chaque +ne petite épargne en pourcentage dans cette
situation peut éconoiser des soesconsidéra!les électricité, chau$$age etc.- l est iportant de garder les serveurs saturés de travail
Ch. 6
-
8/17/2019 chap06-1 (1)
5/82
Ch. 6 0
Diagramme de transition d’états d`un processusDiagramme de transition d’états d`un processus
-
8/17/2019 chap06-1 (1)
6/82
Ch. 6 6
Files d’attente de processus pourFiles d’attente de processus pourordonnancementordonnancement
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 U!
-
8/17/2019 chap06-1 (1)
7/82Ch. 6
Concepts de baseConcepts de base
La multiprogrammation vise ! obtenir une utilisation optiale des ressources et aussi un !on teps de réponse pour l#usager
L’"C# 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#ordonnanceent des autres ressources unitésE/", etc-.
L’ordonnanceur "C# est la partie du $% qui décidequel processus dans la file read&'pr(t obtientl’"C# quand elle devient libre
-
8/17/2019 chap06-1 (1)
8/82Ch. 6
es c!cles d’un processuses c!cles d’un processus
C&cles )bursts* d’"C# et %'$ l’activité d’un processusconsiste de séquences d’e+écution sur "C# et d’attentes
d’%'$ ou de s&nchronisation avec autres processus
-
8/17/2019 chap06-1 (1)
9/82
Durée normale des c!clesDurée normale des c!cles
Étant donné la grande vitesse de l’"C# parrapport au+ périphériques, la plupart desc&cles d’"C# seront très courts
Cependant il pourrait & avoir des longsc&cles d’"C# quand on demandera descalculs poussés Calculs scienti$iques etc.
Ch. 6
-
8/17/2019 chap06-1 (1)
10/82Ch. 6 14
Observation e+périmentale dans un s(stèe t(pique, nous o!serverons un grand no!re de
court c(cles d#+C5, et un petit no!re de long c(cles Les programmes tributaires de l’"C# auront normalem- un
petit nombre de long c&cles "C# Les programmes tributaires de l’%'$ auront normalem- un
grand nombre de court c&cles "C#
Durée t!pique des c!cles "C#Durée t!pique des c!cles "C#
-
8/17/2019 chap06-1 (1)
11/82Ch. 6 11
$uand in%oquer l’ordonnanceur$uand in%oquer l’ordonnanceur "C#"C# L ’ordonnanceur "C# doit prendre sa décision chaque fois que le
processus e+écutant est interrompu, c’e!-d-1. un processus se présente en tant que nouveau ou se terine
2. un processus e'écutant devient !loqué en attente3. un processus change d#e'écutant/running & prt/read(. un processus change de attente & prt/read(
7 tout événeent dans un s(stèe qui cause une interruption de l#+C5iplique l#intervention de l#ordonnanceur,
7 qui devra prendre une décision concernant quel proc ou thread aural#+C5 après
.réemption on a préemption si on enlève l’"C# ! un processusqui l’avait et ne l’a pas laissée de propre initiative 8.e'. préeption dans le cas 3, pas de préeption dans le cas 2
.lusieurs pbs ! résoudre dans le cas de préemption, v- manuel
-
8/17/2019 chap06-1 (1)
12/82Ch. 6 12
DispatcheurDispatcheur &meilleur français' répartiteur(&meilleur français' répartiteur(
Le processus qui donne le contr/le auprocessus choisi par l’ordonnanceur- 0ldoit se préoccuper de changer de conte'te
changer & ode usager réaorcer le processus choisi
Attente de dispatcheur )dispatcher latenc&* le teps nécessaire pour e'écuter les
$onctions du dispatcheur il est souvent négligé, il $aut supposer qu#il soit
petit par rapport & la longueur d#un c(cle
-
8/17/2019 chap06-1 (1)
13/82Ch. 6 13
Crit)res d’ordonnancementCrit)res d’ordonnancement
0l & aura normalement plusieurs processusdans la file pr(t
1uand l’"C# devient disponible, lequel choisir2
Critères générau+ 9onne utilisation de l#+C5 éponse rapide & l#usager
3ais ces critères peuvent (tre 4ugésdifféremment---
-
8/17/2019 chap06-1 (1)
14/82
Ch. 6 1
Crit)res spécifiques d’ordonnancementCrit)res spécifiques d’ordonnancement
"tilisation "C# pourcentage d’utilisation 5ébit 6 #hroughput nombre de processus
qui complètent dans l’unité de temps
#emps de rotation 6 turnaround le tempspris par un proc de son arrivée ! sa termin- #emps d’attente attente dans la file pr(t
)somme de tout le temps passé en file pr(t*
#emps de réponse le temps entre unedemande de l’usager et la réponse
-
8/17/2019 chap06-1 (1)
15/82
Ch. 6 10
Crit)res d’ordonnancement'Crit)res d’ordonnancement' ma*imiser+minimiserma*imiser+minimiser
"tilisation "C# pourcentage d’utilisation & a'iiser 5ébit 6 #hroughput nombre de processus qui
complètent dans l ’unité de temps & a'iiser
#emps de rotation )turnaround* temps terminaisonmoins temps arrivée & iniiser
#emps d’attente attente dans la file pr(t
& iniiser #emps de réponse )pour les s&stèmes interactifs* le
temps entre une demande et la réponse & iniiser
-
8/17/2019 chap06-1 (1)
16/82
Ch. 6 16
,*aminons maintenant plusieurs méthodes,*aminons maintenant plusieurs méthodesd’ordonnancement et %o!ons comment elles sed’ordonnancement et %o!ons comment elles secomportent 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 desimulationsimulation
-
8/17/2019 chap06-1 (1)
17/82
Ch. 6 1
Premier arri%é. premier ser%iPremier arri%é. premier ser%i &First come. first ser%e. FCF/(&First come. first ser%e. FCF/(
"xemple: #rocessus !emps de cycle #$ %&
#% '
#' '
(i les processus arrivent au temps ) dans l’ordre: #$ , #% , #'*e dia+ramme antt pour l’utilisation de l’U! est:
!emps d’attente pour #$- ) #%- %& #'- %7
!emps attente moyen: /) 0 %& 0 %712' - $7
P1
P2 P
3
24 27 300
-
8/17/2019 chap06-1 (1)
18/82
Ch. 6 1
Premier arri%e. premier ser%iPremier arri%e. premier ser%i
"tilisation "C# 6 7889 5ébit 6 :':8 6 8,7
3 processus coplétés en 34 unités de teps #emps de rotation mo&en );=:8*': 6 ;>
P1
P2 P
3
24 27 300
-
8/17/2019 chap06-1 (1)
19/82
Ch. 6 1
#enir compte du temps d’arri%ée0#enir compte du temps d’arri%ée0
5ans le cas o? les processus arrivent ! momentdifférents, il faut soustraire les temps d’arrivée %+ercice répéter les calculs si
81 arrive & teps 4 et dure 2
82 arrive & teps 2 et dure 3 83 arrive & teps 0 et dure 3
5onc .7 attend 8 comme avant 3ais .; attend ;
-
8/17/2019 chap06-1 (1)
20/82
Ch. 6 24
FCF/ /cheduling &Cont1(FCF/ /cheduling &Cont1(
$i les m(mes processus arrivent ! 8 mais dans l’ordre
P 2 , P 3 , P 1 -Le diagramme de @antt est
#emps d’attente pour P 1 = P 2 6 8 P 3 = : #emps mo&en d’attente ) = 8 = :*': 6 : était 7> #emps de rotation mo&en ):==:8*': 6 7: était ;> Beaucoup mieu+ 5onc pour cette technique, les temps peuvent varier
grandement par rapport ! l’ordre d’arrivée de différentprocessus
Exercice: calculer aussi le débit, etc.
P1
P3
P2
63 300
-
8/17/2019 chap06-1 (1)
21/82
Ch. 6 21
,ffet d’accumulation,ffet d’accumulation &effet con%oi(&effet con%oi( dans FCF/dans FCF/
$upposons )situation normale* un processus tri!utaire de l#+C5 c(cles longs- et plusieurs tri!utaires de l;E/" c(cles courts-
Les processus tributaires de l’%'$ attendent l’"C# %'$ sousutilisée)D*
Le processus tributaire de l’"C# fait une %'$ les procs tributaires de
l’"C# e+écutent rapidement leur c&cle "C# et retournent surl’attente %'$ )convoi qui passe* "C# sousutilisée .rocessus tributaire de l’"C# finit son %'$, puis les autres aussi
retour ! la situation )D* 5onc dans ce sens ECE$ favorise les procs tributaires de l’"C# %t peut conduire ! une mauvaise utilisation des ressources s’il & a
apport continu de procs longs6tributaires de l’"C# 5ant d#+C5 que de périphériques "ne possibilité interrompre de temps en temps les proc tributaires
de l’"C# pour permettre au+ autres procs d’e+écuter )préemption*
-
8/17/2019 chap06-1 (1)
22/82
,*emple,*emple
$upposons 81: tri!utaire de l#+C5 82, 83: tri!utaires de l#E/"
Ch. 6 22
P1 P2 P3 P1UCT libre
*e convoi qui passe
pendant que #$ fait
son "2(
*’"2( de #$ a terminé mais
les "2( de #% et #'
continuent
#$ demande une "2(
-
8/17/2019 chap06-1 (1)
23/82
Ch. 6 23
Plus Court d’abord 2 /hortest 3ob First &/3F(Plus Court d’abord 2 /hortest 3ob First &/3F(
Le processus qui demande moins d’"C# part le premier Optimal du point de vue du temps d’attente mo&en v. le dernier e'eple-
3ais comment savonsnous quel processus demande moins
d’"C# "upposons pour l#instant qu#on puisse
P1
P3
P2
63 300
-
8/17/2019 chap06-1 (1)
24/82
Ch. 6 2
/3F a%ec préemption ou non/3F a%ec 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#+C5 est enlevée au proc courant et donnée &ce nouveau processus "5>: shortest reaining?tie $irst
$ans préemption on permet au processuscourant de terminer son c&cle
-
8/17/2019 chap06-1 (1)
25/82
Ch. 6 20
.rocessusArrivée C&cle "C#
P 1 8 >
P 2 ; < P 3 < 7
P 4 F <
$GE )sans préemption*
#emps d’attente mo&en 6 4@?2-@?-@12?0--/ A 4 @ 6 @ 3 @ -/ B #emps de rotation mo&en 6 )@12?2-@?-@16?0-- / B
,*ample de /3F sans préemption,*ample de /3F sans préemption
P1
P3 P
2
7 160
P4
8 12
P 2 arr . P
3 arr. P
4 arr
"xercice: calculer avec #3#(
-
8/17/2019 chap06-1 (1)
26/82
Ch. 6 26
,*emple de /3F a%ec préemption,*emple de /3F a%ec préemption.rocessus Arrivée C&cle
P 1 8 > P 2 ; <
P 3 < 7
P 4 F < $GE )préemptive*
#emps mo&en dHattente 6 )I = 7 = 8 =;*'< 6 : était < .7 attend de ; ! 77, .; de < ! F, .< de F ! >
#emps de rotation mo&en 6 16@ ?2- @ 0?- @ 11?0- B était
P1
P3
P2
42 110
P4
5 7
P2
P1
16
P 2 arr . P 3 arr. P 4 arr
-
8/17/2019 chap06-1 (1)
27/82
Plus en détail' file pr4tPlus en détail' file pr4t
#emps des interruptions #emps 8
e seul proc est 81, il est choisi #emps ; 0nterruption causée par l’arrivée de .;
Deu' procs dans la $ile: 81 qui deande encore 0 et 82qui deande : ce dernier est choisi #emps
-
8/17/2019 chap06-1 (1)
28/82
Préemption ou nonPréemption ou non
La préemption est le cas normal pour l’"C#car l’arrivée d’un nouveau proc cause uneinterruption et ! ce moment l! l#ordonnanceur devra prendre une décision sur
le prochain proc & e'écuter 3ais dans quelques ressources la
préemption est impossible
8.e'. dans une ipriante il $aut touoursteriner l#ipression courante avant d#enaorcer une nouvelle
Ch. 6 2
-
8/17/2019 chap06-1 (1)
29/82
Ch. 6 2
Comment déterminer la longueur des c!cles - l’a%ance5Comment déterminer la longueur des c!cles - l’a%ance5
1uelques méthodes proposent dedéterminer le comportement futur d’unprocessus sur la base de son passé p.e'. éthode de la o(enne e'ponentielle
-
8/17/2019 chap06-1 (1)
30/82
Différentes méthodes en principeDifférentes méthodes en principe
J&pothèse de comportement constant d’unprocessus +n processus qui a eu des c(cles d#+C5 de 3
illisecondes en o(enne continuera coe =a
J&pothèse de comportement variable d’unprocessus +n processus qui avant avait des c(cles d#+C5 de
3s, aintenant a allongé ces c(cles, qui sont de14s
a durée des c(cles les plus récents estconsidérée plus iportante pour la prévision desprochains c(cles
Ch. 6 34
-
8/17/2019 chap06-1 (1)
31/82
Ch. 6 31
,stimation de la durée du prochain c!cle,stimation de la durée du prochain c!cleh!poth)se de comportement constanth!poth)se de comportement constant
#i la durée du i ème c&cle de l’"C# pour ceprocessus $i la valeur estimée du i ème c&cle de l’"C# pour ce
processus- "
n@1l#estiée courante
"n l#estiée précédente
"n choi+ simple est
"n@1 B 1/n- ΣFiB1 & nG 5i une siple o(enne- Nous pouvons éviter de recalculer la somme en
récrivant
"n@1 B 1/n- 5n @ n?1-/n- "n Ceci donne un poids identique ! chaque c&cle
-
8/17/2019 chap06-1 (1)
32/82
,stimation de la durée du prochain c!cle,stimation de la durée du prochain c!cleh!poth)se de comportement %ariableh!poth)se de comportement %ariable
Nous devons décider quelle importancedonner Hu' changeents plus récents 8ar rapport au' o!servations précédentes
Ch. 6 32
-
8/17/2019 chap06-1 (1)
33/82
Coefficient 6 pour le poidsCoefficient 6 pour le poids
Ch. 6 33
0 1
α 1-α
4mportance du cycle
le plus récent4mportance de l’estimée
précédente
Pex. si α = 0,7, alors 1-α = 0,3
-
8/17/2019 chap06-1 (1)
34/82
Ch. 6 3
,stimation de la durée du prochain c!cle,stimation de la durée du prochain c!cleh!poth)se de comportement %ariableh!poth)se de comportement %ariable
3ais les c&cles récents peuvent (tre plus
représentatifs des comportements ! venir La mo&enne e+ponentielle permet de donner
différents poids au+ c&cles plus ou moinsrécents
"n@1 B α 5n@ 1?α- "n I 4 JB α JB 1
α
le coéfficient d’importance #n la durée du c&cle le plus récent $ l’estimée
"n@1 l#estiée courante après le c(cle 5n- "n l#estiée précédente
-
8/17/2019 chap06-1 (1)
35/82
Pourquoi 7e*ponentielle’Pourquoi 7e*ponentielle’
.ar e+pansion, nous vo&ons que le poids dechaque c&cle décroKt e+ponentiellement "n@1 B α5n @ 1?α-α5n?1 @ ... 1?α-iα5n?i @
... @ 1?α-n "1
la valeur estimée $7 du 7er c&cle peut (trefi+ée ! 8 pour donner priorité ma+- au+nouveau+ processus
Ch. 6 30
-
8/17/2019 chap06-1 (1)
36/82
Ch. 6 36
Importance de différents %aleurs de coefficientsImportance de différents %aleurs de coefficients 8/tallings98/tallings9
Stallings
#eu d’import. aux cycles récents
5eaucoup d’import. aux cycles récs
*a durée des vieux cycles perd d’importance rapidement si on donne beaucoup
d’importance aux cycles récents, et aussi le converse6
α
-
8/17/2019 chap06-1 (1)
37/82
Ch. 6 3
Importance de différents %aleurs de coefficientsImportance de différents %aleurs de coefficients 8/tallings98/tallings9
$7 6 8 )priorité au+ nouveau+ processus* "n coefficient plus élevé réagit plus rapidement au+
changements de comportement Stallings
-
8/17/2019 chap06-1 (1)
38/82
Ch. 6 3
"n deu*i)me e*emple"n deu*i)me e*emple 8/tallings98/tallings9
Stallings
-
8/17/2019 chap06-1 (1)
39/82
Ch. 6 3
Comment choisir le coefficientComment choisir le coefficientα
"n petitα
assouplit les changements de comportement d’unprocessus l donne oins d#iportance au' c(cles récents l est avantageu' quand un processus peut avoir des
anoalies de coporteent, après lesquelles il reprend soncoporteent précédent
Cas liite:α
6 8 on reste sur l#estiée initiale
"n grosα
réagit rapidement au+ changements l donne plus d#iportance au' c(cles récents
Est avantageu' quand un processus est suscepti!le dechanger rapideent de t(pe d#activité et il reste sur =a
Cas liite:α =
: " n@1 B 5n e dernier c(cle est le seul qui copte
-
8/17/2019 chap06-1 (1)
40/82
,*ercice' #ra%ailler cet e*emple dans le manuel,*ercice' #ra%ailler cet e*emple dans le manuelfaire un calcul plus précis :faire un calcul plus précis : aussi essa!er des coefficientsaussi essa!er des coefficients
différentsdifférents
Ch. 6 4
réel
estim.
α=0,5
-
8/17/2019 chap06-1 (1)
41/82
Ch. 6 1
e plus court d’abord /3F' critiquee plus court d’abord /3F' critique
5ifficulté d’estimer la longueur ! l’avance .lus pratique pour l’ordonnancement travau+ que
pour l’ordonnancement processus Koral. on peut plus $acileent prévoir la durée d#un
travail entier que la durée d#un seul c(cle 0l & a assignation implicite de priorités préférences
au+ travau+ plus courts Famine possi!le pour les travau' au' c(cles longs
-
8/17/2019 chap06-1 (1)
42/82
Ch. 6 2
Difficultés ma;eures a%ec les méthodes discutéesDifficultés ma;eures a%ec les méthodes discutées
.remier arrivé, premier servi, ECE$
5eps o(en d#attente non?optial *auvaise utilisation des ressources s#il ( a apport continu de
processus au' c(cles longs v. e$$et d#accuulation-
.lus court servi, $GE
Di$$iculté d#estier les c(cles >aine s#il ( a apport continu de processus au' c(cles courts
5onc besoin d’une méthode sstémati!uement préemptive e tourniquet
si vous $aites touours les devoirs les plus courts en preier, vous pourrieL avoir l#ipressionde $aire !eaucoup ais vous pourrieL ne aais arriver au' plus longsM si vous $aites les devoirs dans l#ordre d#arrivée, les longs pourraient vous !loquer pour
longteps donc votre solution est de donner un peu de teps & chacun, c(cliqueent
-
8/17/2019 chap06-1 (1)
43/82
e tourniquete tourniquet
$i 4’ai une seule grande pia et plusieurspersonnes affamées, 4e pourrais #o$$rir & chacun & son tour: attendre que
chacun ait $ini avant de passer au suivant éthodes précédentes-
-
8/17/2019 chap06-1 (1)
44/82
Ch. 6
#ourniquet 2
-
8/17/2019 chap06-1 (1)
45/82
Ch. 6 0
,*emple' #ourniquet tranche 2 =>,*emple' #ourniquet tranche 2 =>
.rocessus C&cle
P 1 F:
P 2 7>
P 3 M
P 4 ;<
Observe
teps de rotation et teps d#attente o(ens !eaucoup plus élevés que "N>e'ercice: calculeL?lesM-
ais aucun processus n’est favorisé
P1 P
2 P
3 P
4 P
1 P
3 P
4 P
1 P
3 P
3
0 20 37 57 77 97 117 121134 154162
-
8/17/2019 chap06-1 (1)
46/82
Ch. 6 6
Performance de tourniquetPerformance de tourniquet
$’il & a n processus dans la file pr(t et latranche est t, alors chaque processusreoit 7'n du temps "C# dans unités dedurée ma+- t
$i t grand ⇒ ECE$ $i t petit--- nous verrons
-
8/17/2019 chap06-1 (1)
47/82
Ch. 6
"ne petite tranche augmente les commutations"ne petite tranche augmente les commutationsde conte*tede conte*te &temps de /,(&temps de /,(
-
8/17/2019 chap06-1 (1)
48/82
Ch. 6
,*emple pour %oir l’importance d’un bon choi*,*emple pour %oir l’importance d’un bon choi*de tranchede tranche &- dé%elopper comme e*ercice(&- dé%elopper comme e*ercice(
#rois c&cles H, 9, C, tous de 14
%ssa&er avec tB1 tB14
5ans ce deu+ième cas, tourniquetfonctionne comme E0EO et le temps de
rotation mo&en est meilleur
-
8/17/2019 chap06-1 (1)
49/82
Ch. 6
e temps de rotation &turnaround( %arie a%ec lae temps de rotation &turnaround( %arie a%ec latranchetranche &e*emple - tra%ailler(&e*emple - tra%ailler(
"xemple qui montre que le temps de rotation moyen n ’améliore pas
nécessairement en au+mentant la tranche /sans considérer les temps de
commutation contexte1
= "#"$
Choi* de la tranche pour le tourniquetChoi* de la tranche pour le tourniquet
-
8/17/2019 chap06-1 (1)
50/82
Ch. 6 04
Choi* de la tranche pour le tourniquetChoi* de la tranche pour le tourniquet doit (tre beaucoup plus grande que le temps requis pour e+écuter le changement de
conte+te devrait permettre le complètement d’appro+- M89 des c&cles
pour donner le temps ! la plupart des proc de terminer leur c&cle, mais pas trop pour éviter de pénaliser les processuscourts
(Stallings!
. ex. prec. o8 les tranches optimales sont 9 et 7
-
8/17/2019 chap06-1 (1)
51/82
Comment déterminer la tranche en pratiqueComment déterminer la tranche en pratique
Évidemment la durée médiane des c&clesdes processus en attente est impossible !déterminer avec certitude
%n pratique, les observations passées
peuvent (tre utilisées le "E peut garder une trace des durées des
c(cles des processus réceent e'écutés etauster la tranche périodiqueent
Ch. 6 01
-
8/17/2019 chap06-1 (1)
52/82
Ch. 6 02
PrioritésPriorités
Affectation d’une priorité ! chaqueprocessus )p-e+- un nombre entier* souvent les petits chi$$res dénotent des hautes
priorités 4 la plus haute
L’"C# est donnée au processus pr(t avecla plus haute priorité
avec ou sans préeption il ( a une $ile prêt pour chaque priorité
-
8/17/2019 chap06-1 (1)
53/82
Ch. 6 03
Probl)me possible a%ec les prioritésProbl)me possible a%ec les priorités
Eamine les processus moins prioritairesn’arrivent 4amais ! e+écuter $olution vieillissement
odi$ier la priorité d #un processus en $onction
de son %ge et de son historique d #e'écution le processus change de $ile d;attente
.lus en général, la modification d&namique
des priorités est une politique souventutilisée )v- files ! rétroaction ou retour*
-
8/17/2019 chap06-1 (1)
54/82
Ch. 6 0
Files - plusieurs ni%eau* &multiples(Files - plusieurs ni%eau* &multiples(
La file pr"t est séparée en plusieurs files, p-e+- travau' ;d#arrière?plan; !acOground ? !atch- travau' ;de preier plan; $oreground ? interactive-
Chaque file a son propre algorithme d’ordonnancement,p-e+-
>C>" pour arrière?plan tourniquet pour preier plan
Comment ordonnancer entre files2 8riorité $i'e & chaque $ile → $aine possi!le, ou
Chaque $ile re=oit un certain pourcentage de teps +C5, p.e'. 4P pour arrière?plan 24P pour preier plan
Ordonnancement a%ec files multiplesOrdonnancement a%ec files multiples
-
8/17/2019 chap06-1 (1)
55/82
Ch. 6 00
Ordonnancement a%ec files multiplesOrdonnancement a%ec files multiples&e*1' ser%eur principal d’une uni%ersité(&e*1' ser%eur principal d’une uni%ersité(
Un proc peut tre servi seulement si toutes les files de priorités plus
élevées sont vides
-
8/17/2019 chap06-1 (1)
56/82
Ch. 6 06
Files multiples et - retourFiles multiples et - retour
"n processus peut passer d’une file !l’autre, p-e+- quand il a passé trop detemps dans une file
déterminer no!re de $iles algorithes d#ordonnanceent pour chaque $ile algorithes pour décider quand un proc doit passer
d #une $ile & l;autre
algorithe pour déteriner, pour un proc qui devientprt, sur quelle $ile il doit tre is
-
8/17/2019 chap06-1 (1)
57/82
Ch. 6 0
Files multiples et - retourFiles multiples et - retour
Pla ? éle%ée
P
-
8/17/2019 chap06-1 (1)
58/82
Ch. 6 0
,*emple de files multiples - retour,*emple de files multiples - retour
#rois files 84: tourniquet, tranche B secs 81: tourniquet, tranche B 16 secs 82: >C>"
Ordonnancement +n nouveau processus entre dans Q4, il re=oit secs
d #+C5 " #il ne $init pas dans les secs, il est is dans Q1, il
re=oit 16 secs additionnels " #il ne $init pas encore, il est interropu et is dans Q2 "i plus tard il coence & avoir des c(cles plus courts,
il pourrait retourner & Q4 ou Q1
-
8/17/2019 chap06-1 (1)
59/82
,*ercice,*ercice
%+emple concret Dans un s(stèe avec $iles ultiples, un
processus a !esoin de 04 secondes d#+C5sans appels au "E- .
Dans la preière $ile on lui donne 0 secondeset & chaque $ile successive on lui donne ledou!le 14, 24, 4 M-
Co!ien de $ois sera?t?il interropu et dans
quelle $ile se trouvera?t?il quand il terineraR
Ch. 6 0
-
8/17/2019 chap06-1 (1)
60/82
Ch. 6 64
,n pratique111,n pratique111
Les méthodes que nous avons vu sont toutesutilisées )sauf plus court servi pur qui estnormalement impossible, pourquoi2*
Les $% sophistiqués fournissent au+ gérants degrands s&stèmes des librairies de méthodes,
qu’ils peuvent choisir et combiner au besoin aprèsavoir observé le comportement du s&stème .our chaque méthode, plusieurs params sont
disponibles p-e+- durée des tranches,coefficients, etc-
Ces méthodes évidemment sont importantessurtout pour les grands ordis qui ont des fortescharges de travail
-
8/17/2019 chap06-1 (1)
61/82
Ch. 6 61
AussiAussi
Notre étude des méthodes d’ordonnancement est théorique,
ne considère pas en détail tous les problèmes qui seprésentent dans l’ordonnancement "C#
.-e+- les ordonnanceurs "C# ne peuvent pas donner l’"C# !un processus pour tout le temps dont il a besoin Car en pratique, l#+C5 sera souvent interropue par quelque
événeent e'terne avant la $in de son c(cle Cependant les m(mes principes d’ordonnancement
s’appliquent ! unités qui ne peuvent pas (tre interrompues,comme une imprimante, une unité disque, etc-
5ans le cas de ces unités, on pourrait avoir des infoscomplètes concernant le temps de c&cle prévu, etc- Aussi, cette étude ne considère pas du tout les temps
d’e+écution de l’ordonnanceur, du dispatcheur, etc-
-
8/17/2019 chap06-1 (1)
62/82
Plusieurs "C#sPlusieurs "C#s
5ans le passé, la vitesse des "C# augmentaitrapidement avec chaque génération d’ordinateurs
Au4ourd’hui, l’ingénierie rencontre des limitespour augmenter la vitesse des "C#s
5onc on se dirige vers la production de plusd’"C#s par ordinateur Cependant, augmenter le nombre d’"C#
n’implique pas une augmentation proportionnellede la puissance de l’ordi, pour des raisons quenous verrons "urtout, la charge de gestion de ces +C5s ralentit
l#ordinateur
Ch. 6 62
O d l i "C#
-
8/17/2019 chap06-1 (1)
63/82
Ch. 6 63
Ordonnancement a%ec plusieurs "C#sOrdonnancement a%ec plusieurs "C#sidentiques'identiques' homogénéitéhomogénéité
3éthodes s&métriqueschaque "C# peut e+écuterl’ordonnancement et larépartition +ne seule liste prêt pour
toutes les +C5s divisiontravail B load sharing- 3éthodes as&métriques
certaines fonctions sontréservées ! des "C#
spécifiques >iles d#attentes séparées
pour chaque +C5
U!
U!
U!
U!
U!
U!
U!
U!
-
8/17/2019 chap06-1 (1)
64/82
/!métrique ou non5/!métrique ou non5
La manière la plus normale de gérerplusieurs "C# est la s&métrique 8lus siple & gérer
Cependant l’as&métrique a un avantage RRR
Ch. 6 6
-
8/17/2019 chap06-1 (1)
65/82
Ch. 6 60
/!métrique ou non5/!métrique ou non5
La manière la plus normale de gérerplusieurs "C# est la s&métrique 8lus siple & gérer
Cependant l’as&métrique a un avantage Stant donné que chaque +C5 e'écute des$onctionnalités indépendantes, le teps perduen s(nchronisation entre +C5 est réduitT
Chapitre suivant
Ch. 6 6
-
8/17/2019 chap06-1 (1)
66/82
Ch. 6 66
/!st)mes temps réel/!st)mes temps réel s&stèmes temps réel rigides #$ard%:
les échéances sont critiques p.e'. contrUle d#une chaVned;asse!lage, aniation graphique-
il est essentiel de connaVtre la durée des $onctionscritiques
il doit tre possi!le de garantir que ces $onctions sont
e$$ectiveent e'écutées dans ce teps réservation deressources-
ceci deande une structure de s(stèe très particulière s&stèmes temps réel souples #so&t%:
les échéances sont iportantes, ais ne sont pastouours critiques p.e'. s(stèes téléphoniques- les processus critiques re=oivent la priorité
-
8/17/2019 chap06-1 (1)
67/82
Ch. 6 6
/!st)mes temps réel'/!st)mes temps réel'
Probl)mes d’attente dans plus1 s!st)mes &e*1 "BI(Probl)mes d’attente dans plus1 s!st)mes &e*1 "BI(
5ans "N0P Qclassique’ il n’est pas permisd’effectuer changement de conte+te pendant unappel du s&stème et ces appels peuvent (tre longs
.our le temps réel il est nécessaire de permettre lapréemption des appels de s&stèmes ou du no&auen général
5onc "ni+ Qclassique’ n’est pas considéréapproprié pour le temps réel
3ais des variétés appropriées de "N0P ont étéconues
-
8/17/2019 chap06-1 (1)
68/82
Ch. 6 6
In%ersion de priorité et héritage de prioritésIn%ersion de priorité et héritage de priorités
1uand un processus de haute priorité doitattendre pour des processus de moindrepriorité )p-e+- a besoin de données produites parces derniers*
.our permettre ! ces derniers de finirrapidement, on peut lui faire $ériter lapriorité du processus plus prioritaire
-
8/17/2019 chap06-1 (1)
69/82
Ch. 6 6
Ordonnancement de threadsOrdonnancement de threads
Local la librairie des threads pour uneapplication donnée décide quel threadusager obtient un LR. disponible
@lobal le no&au décide quel thread de
no&au e+écute sur l’"C#
-
8/17/2019 chap06-1 (1)
70/82
Ch. 6 4
Ordonnancement et priorités en /olaris =Ordonnancement et priorités en /olaris =
/ l i =/ l i =
-
8/17/2019 chap06-1 (1)
71/82
Ch. 6 1
/olaris ='/olaris =' lire dans le manuel pour %oir l’application pratiquelire dans le manuel pour %oir l’application pratiquede plusieurs concepts discutésde plusieurs concepts discutés
.riorités et préemption Eiles multiniveau ! retour avecchangement de priorité
#ranches plus grandes pour les processus
moins prioritaires Les procs interactifs sont plus prioritaires
que les les procs tributaires de l’"C# La plus haute priorité au+ procs temps réel #ourniquet pour les fils de priorités égales
éthode d’é al ation et comparaisonéthode d’é%aluation et comparaison
-
8/17/2019 chap06-1 (1)
72/82
Ch. 6 2
éthode d’é%aluation et comparaisonéthode d’é%aluation et comparaisond’algorithmesd’algorithmes §ion plutEt - lire(§ion plutEt - lire(
3odélisation déterministe
3odèles de files d’attente )queuing theor&*
$imulation
0mplantation
-
8/17/2019 chap06-1 (1)
73/82
Ch. 6 3
odélisation déterministeodélisation déterministe
%ssentiellement, ce que nous avons dé4!fait en étudiant le comportement deplusieurs algorithmes sur plusieurse+emples
-
8/17/2019 chap06-1 (1)
74/82
Ch. 6
"tilisation de la théorie des files &queuing th1("tilisation de la théorie des files &queuing th1(
3éthode anal&tique basée sur la théoriedes probabilités
3odèle simplifié notamment, les temps du$% sont ignorés
Cependant, elle rend possibles des
estimées
-
8/17/2019 chap06-1 (1)
75/82
Ch. 6 0
#héorie des files' la formule de ittle#héorie des files' la formule de ittle
"n résultat important n 6 λ × R
n: longueur o(enne de la $ile d #attente λ : dé!it d #arrivée de travau' dans $ile W: teps d #attente o(en dans la $ile teps de service-
.- e+-
λ si les travau' arrivent 3 par sec. R et il restent dans la $ile 2 secs n la longueur o(enne de la $ile sera RRR
%+ercice Sésoudre aussi pourλ
et
R Observer que afin que n soit stable, λ × R doit (tre stable
+n dé!it d#arrivée plus rapide doit ipliquer un teps de serviceineur, et vice?versa "i n doit rester 6 et λ onte & , quel sera W
"tile entre autres pour déterminer l’espace ! allouer pour la file
-
8/17/2019 chap06-1 (1)
76/82
Ch. 6 6
/imulation/imulation
Construire un modèle #simpli&ié...% de laséquence d’événements dans le $% Attribuer une durée de temps ! chaque
événement $upposer une certaine séquence
d’événements e+térieurs )p-e+- arrivée detravau+, etc-*
%+écuter le modèle pour cette séquenceafin d’obtenir des stats
-
8/17/2019 chap06-1 (1)
77/82
Ch. 6
ImplémentationImplémentation
0mplémenter l’algorithme %+écuter dans le s&stème réel ou desmélanges de travau+ t&piques )benchmarT*
Obtenir des statistiques, en tirer des conclusions...
-
8/17/2019 chap06-1 (1)
78/82
Ch. 6
#ableau de comparaison#ableau de comparaison
e tableau sui%ant fait une comparaisone tableau sui%ant fait une comparaisonglobale des différentes techniques étudiéesglobale des différentes techniques étudiées
Assure:%ous de comprendre chaque caseAssure:%ous de comprendre chaque case
Critèreél ti
.réempt 3otivation #emps det t t tt
#emps detè
%ffect sur Eamine
-
8/17/2019 chap06-1 (1)
79/82
Ch. 6
sélection rotat- et atten- s&stème processus
.A.$ECE$
*a' XwY non $implicité Uariable *ini. Eavor- proc-trib- "C#
Kon
#ourniq- 5our $i'e oui%quité Uariable selontranche,
Normalementélevé
Slevé sitranchescourtes
Squita!le Kon
.C$$GE
*inXsY non
-
8/17/2019 chap06-1 (1)
80/82
Ch. 6 4
Points importants dans ce chapitrePoints importants dans ce chapitre
Eiles d’attente pour "C# Critères d’ordonnancement Algorithmes d’ordonnancement
>C>": siple, non optial "N>: optial, iplantation di$$icile
o(enne e'ponentielle
8riorités
5ourniquet: sélection du quantu Évaluation des méthodes, théorie des files,
$orule de ittle
l ; d
-
8/17/2019 chap06-1 (1)
81/82
Ch. 6 1
anuel' Pas su;et d’e*amenanuel' Pas su;et d’e*amen
$ections -, ->, -M
$ i i & d bi (
-
8/17/2019 chap06-1 (1)
82/82
$uestion sur tourniquet &