Beruflich Dokumente
Kultur Dokumente
Hiver 2014
Chapitre 9 - 2
2014-01-06
Introduction
Cest le systme dexploitation (SE) qui se charge de crer les
processus (et threads) ncessaires lexcution de programmes.
Chapitre 9 - 3
Introduction (2)
Commutation de contexte
Processus A
Mode utilisateur
excution
Mode kernel
Processus B
Mode utilisateur
excution
Chapitre 9 - 4
2014-01-06
Expiration
de haut niveau
Lot de travaux en attente dadmission
Ordonnancement
de bas niveau
Termin
Process
eur
Processeur
Ordonnancement
de niveau intermdiaire
File dattente, prt hors mmoire
Ordonnancement
de niveau intermdiaire
Occurrence
dvnement
Chapitre 9 - 5
Chapitre 9 - 6
2014-01-06
Chapitre 9 - 7
et le
Chapitre 9 - 8
2014-01-06
Politique dordonnancement
Chapitre 9 - 9
Chapitre 9 - 10
2014-01-06
Chapitre 9 - 11
Excution
Arrive
AAABBBBBBCCCCDDE
Temps de sjour moyen : 7.6
Temps moyen dattente : 4.4
Nombre de changements de contexte : 5
Remarque :
Temps moyen dattente lev si de longs processus sont excuts en
premier.
Noyau d'un systme d'exploitation
Chapitre 9 - 12
2014-01-06
Excution
Arrive
AAABBBBBBEDDCCCC
Temps de sjour moyen : 6.4
Temps moyen dattente : 3.2
Nombre de changements de contexte : 5
Remarque : Meilleur temps moyen dattente.
Noyau d'un systme d'exploitation
Chapitre 9 - 13
Chapitre 9 - 14
2014-01-06
Processus
Excution
Arrive
Chapitre 9 - 15
Chapitre 9 - 16
2014-01-06
Chapitre 9 - 17
Chapitre 9 - 18
2014-01-06
Excution
Arrive
AAABCCCCEDDBBBBB
Chapitre 9 - 19
Chapitre 9 - 20
10
2014-01-06
Chapitre 9 - 21
Quantum = 1
Temps de commutation = 0
Processus
Excution
Arrive
ABABACBDCEBDCBCB
Temps moyen de sjour : 8,0
Temps moyen dattente : 4,8
Nombre de changements de contexte : 16
Noyau d'un systme d'exploitation
Chapitre 9 - 22
11
2014-01-06
Processus
Excution Arrive
5(2)3
Chapitre 9 - 23
Exemple 3 :
Processus
Quantum = 5 units
Commutation de contexte = 1 unit
Excution
Arrive
5(2)3
Quantum = 5 units
A A A A A
B B B B B
C C C C
A A A
B B B
Chapitre 9 - 24
12
2014-01-06
Exemple 4:
Processus
Excution
Arrive
5(2)3
B B B
Quantum = 7 units
Commutation de contexte = 1 unit
Quantum = 7 units
A A A A A A A
B B B B B
C C C C
Chapitre 9 - 25
Chapitre 9 - 26
13
2014-01-06
Chapitre 9 - 27
Chapitre 9 - 28
14
2014-01-06
tudes de cas :
Linux et Windows
Algorithmes dordonnancement utiliss
Attribution et volution des priorits
Chapitre 9 - 29
Linux associe une valeur nice chaque thread. La valeur par dfaut est 0 et
peut tre modifie par nice(val) avec val [-20 19]. Seul ladministrateur
peut appeler nice(val) avec val <0.
Noyau d'un systme d'exploitation
Chapitre 9 - 30
15
2014-01-06
Un vecteur bit
indiquant les
listes non vides
Chapitre 9 - 31
volution Dynamique
des priorits
Noyau d'un systme d'exploitation
DP = SP bonus + 5
DP = min(139, max(100, DP))
Chapitre 9 - 32
16
2014-01-06
http://www.ibm.com/developerworks/library/l-completely-fair-scheduler/
Chapitre 9 - 33
Cas Windows
Chapitre 9 - 34
17
2014-01-06
Chapitre 9 - 35
Les combinaisons
de classe de priorit
et de priorit relative
sont mappes
sur 32 priorits
de threads absolues
Priorits de base
Chapitre 9 - 36
18
2014-01-06
Lordonnanceur slectionne
le thread le plus prioritaire.
Ce thread va sexcuter
pendant au maximum
un quantum
(20ms par dfaut, 120 ms)
Chapitre 9 - 37
Chapitre 9 - 38
19
2014-01-06
volution Dynamique
des priorits
Noyau d'un systme d'exploitation
Chapitre 9 - 39
Chapitre 9 - 40
20
2014-01-06
Chapitre 9 - 41
Tches indpendantes
Tches dpendantes
Chapitre 9 - 42
21
2014-01-06
http://www.cs.aau.dk/~kgl/ARTES
Chapitre 9 - 43
Chapitre 9 - 44
22
2014-01-06
Chapitre 9 - 45
Interdire tous les appels bloquants dans les ISR ou dans les tches
associes aux interruptions.
Rduire et borner les dures de masquage des interruptions, le temps
ncessaire pour dterminer la prochaine tche lire.
Excuter les tches temps rel dans lespace noyau.
Ordonnancer les tches en tenant compte de leurs contraintes temporelles
(ordonnancement temps rel) :
q Ordonnancement premptif priorit
q Lattribution des priorits doit tenir compte des contraintes temporelles.
Chapitre 9 - 46
23
2014-01-06
Tche priodique
priode
Tche apriodique
(sporadique)
Relations de prcdence
Tche A
A prcde B
Tche B
rB = fin de A
Exclusion mutuelle
Tche A
Tche B
Section critique
Chapitre 9 - 47
La priorit dune tche est une mtrique qui caractrise son importance.
Principe gnral : plus une tche est importante et critique du point de vue
temporel, plus la priorit quon lui assigne est leve.
Il est ncessaire de faire une analyse prcise, afin de dterminer les tches
critiques et non critiques du systme (surtout pour les systmes temps rel avec
contraintes strictes).
Noyau d'un systme d'exploitation
Chapitre 9 - 48
24
2014-01-06
RT-Linux
http://www.mnis.fr/ocera_support/rtos/c1450.html
Linux nest pas un systme dexploitation Temps Rel (dur) car le noyau Linux
possde de longues sections de code o tous les vnements extrieurs sont
masqus (non interruptible).
VxWorks,
MicroC,
QNX,
LynuxWorks
Chapitre 9 - 49
RT-Linux (2)
http://www.mnis.fr/ocera_support/rtos/c1450.html
RT-Linux est une extension du systme Linux classique vers le temps rel.
Il est constitu par un noyau temps rel RT-Linux qui partage le processeur avec le
noyau de base Linux et excute des tches temps rel.
Les tches TR sont charges comme des modules Linux. Linux apparat comme la
tche de fond.
Chapitre 9 - 50
25
2014-01-06
RT-Linux (3)
Les processus Linux et les tches TR peuvent communiquer par des FIFOS
(pipes) ou par mmoire partage.
Chapitre 9 - 51
RT-Linux (4)
Les tches
http://cedric.cnam.fr/PUBLIS/RC190.pdf
Chapitre 9 - 52
26
2014-01-06
RT-Linux (5)
Les tches
Tches priodiques :
- excutent priodiquement un traitement.
- sont actives priodiquement
Tches apriodiques :
- excutent des intervalles de temps irrguliers un traitement.
- sont gnralement actives par dautres tches (relation de
prcdence, arrive dun vnement, ).
Chapitre 9 - 53
RT-Linux (6)
Les tches
Chapitre 9 - 54
27
2014-01-06
RT-Linux (7)
Les tches
Cette fonction doit tre appele aprs sa cration (pas aprs son activation).
Chapitre 9 - 55
RT-Linux (8)
Tches priodiques
Lorsquune tche est cre rt_task_init(), elle est ltat dormant.
Lappel la fonction rt_task_make_periodic) rend la tche priodique et la
met en attente jusqu la date du prochain rveil son rveil, elle
passe ltat prt.
Si elle est lue, elle passe ltat lue. Elle revient ltat prt, si elle est
prempte, et ainsi de suite.
La fonction rt_task_wait() permet la tche de se mettre en attente de la
prochaine activation priodique elle passe ltat attente.
La fonction rt_task_suspend() permet de suspendre la tche elle passe
ltat dormant (elle est inactive).
La fonction rt_task_delete() permet la suppression de la tche elle
passe ltat Inexistant.
http://cedric.cnam.fr/PUBLIS/RC190.pdf
Chapitre 9 - 56
28
2014-01-06
RT-Linux (9)
Tches apriodiques
Lorsquune tche est cre rt_task_init(), elle est ltat dormant.
La fonction rt_task_wakeup permet de rveiller la tche elle passe
ltat prt.
Si elle est lue, elle passe ltat lue. Elle revient ltat prt, si elle
est prempte, et ainsi de suite.
La fonction rt_task_suspend() permet de suspendre la tche elle
passe ltat dormant (elle est inactive).
La fonction rt_task_delete() permet la suppression de la tche elle
passe ltat Inexistant.
http://cedric.cnam.fr/PUBLIS/RC190.pdf
Chapitre 9 - 57
RT-Linux (10)
Ordonnancement de tches
Chapitre 9 - 58
29
2014-01-06
Chapitre 9 - 59
Chapitre 9 - 60
30
2014-01-06
Priode dactivation : Pi
Chapitre 9 - 61
Chapitre 9 - 62
31
2014-01-06
Chapitre 9 - 63
T2 : C2=2 P2 = 5
prio(T1) < prio(T3) < prio(T2)
< 78 %
Simulation
Intervalle dtude :
[0, PPCM(P1,P2,P3)]
=> ordonnanable
T1
T2
T3
Chapitre 9 - 64
32
2014-01-06
Chapitre 9 - 65
Chapitre 9 - 66
33
2014-01-06
Exercice 1
Soit lensemble de tches suivant ordonnancer :
Chapitre 9 - 67
Ci
n(2 n 1)
i =1 Di
Noyau d'un systme d'exploitation
Chapitre 9 - 68
34
2014-01-06
T2 : C2=2 D2=4 P2 = 5
prio(T3) < prio(T1) < prio(T2)
non < 78 %
T1
T2
T3
Chapitre 9 - 69
Ordonnancement premptif
priorits dynamiques de
tches priodiques indpendantes
Chapitre 9 - 70
35
2014-01-06
Ci
Pi 1
i =1
Ci
Pi 1
i =1
Ci
Di 1
i =1
Chapitre 9 - 71
T2
T3
Chapitre 9 - 72
36
2014-01-06
Period, P
Deadline, D
Computation Time, C
T1
T2
10
10
2/4 + 5/10 = 1, donc les tches peuvent tre ordonnances EDF (Liu and
Layland ).
Chapitre 9 - 73
cycle 4 de T1 cycle 5 de T1
T1
Premption de
T1 sur T2
T2
cycle 1 de T2
Premption de
T1 sur T2
10
12
14
16
18
20
cycle 2 de T2
Chapitre 9 - 74
37
2014-01-06
Chapitre 9 - 75
Chapitre 9 - 76
38
2014-01-06
Cest en fait le plus petit multiple commun entre les deux priodes qui
dtermine le point de rencontre.
Chapitre 9 - 77
Chapitre 9 - 78
39
2014-01-06
Ordonnancement priorit
Chapitre 9 - 79
Tche
Date de dpart
Priorit
Squence dexcution
T3
EER1E
T2
EEE
T1
EER1R1R1R1E
Chapitre 9 - 80
40
2014-01-06
prio(T1)<prio(T2)< prio(T3)
T3 dem. R1
T3 bloqu
Arrive de T2
premption de T1
T3
T2
Arrive de T3
premption de T1
T1
0
10
12
14
16
Excution
Suspendue / prte
Section critique
Bloque
18
T1 dem. R1
T1 ne bloque pas
Noyau d'un systme d'exploitation
Chapitre 9 - 81
Chapitre 9 - 82
41
2014-01-06
Chapitre 9 - 83
T3
T2
Arrive de T3
premption de T1
T1
0
10
12
14
16
Excution
Suspendue / prte
Section critique
Bloque
T1 dem. R1
T1 ne bloque pas
Noyau d'un systme d'exploitation
18
T1 libre R1
T1 reprend sa prio. statique
Chapitre 9 - 84
42
2014-01-06
Tche T2
Demander(R1);
Demander(R2);
/* utiliser R1
/* utiliser R2
Demander(R2) ;
Demander(R1) ;
/* utiliser R1 et R2
/* utiliser R1 et R2
Liberer(R2);
Liberer(R1);
Liberer(R1);
Liberer(R2) ;
Chapitre 9 - 85
Chapitre 9 - 86
43
2014-01-06
Date darrive
Temps dexcution
Ci
Priode
Pi
T3
3: ER1E
T2
2: EE
10
T1
5 : ER1R1R1E
20
Chapitre 9 - 87
44