Professional Documents
Culture Documents
T2
T3
T1 R1 T4
Document de conception
T6 R2 T5
Ensemble de tches
1
Contraintes de tches (1)
Contraintes individuelles
Contraintes collectives
2
z Charge processeur dune application TR
Ci
ui = : Pourcentage de lactivit du processeur ddie la tche Ti
Pi
n
U =
Ci
: Charge processeur = taux dutilisation du processeur
Pi
pour les tches priodiques
i= 1
z Priorit de tche
z Premptible ou non
z Contraintes temporelles
Autres
z Autres contraintes
3
Contraintes de tches (4)
Contraintes collectives
z Contraintes de rpartition
Notion dordonnancement
z Priorits
P i it importantes
i t t attendues
tt d
Optimalit
Stabilit
Complexit
4
Classification des algorithmes dordonnancement
z Monoprocesseur / Multiprocesseur
z A priorits statiques
z A priorits dynamiques
Earliest Deadline First (EDF) : fond sur les chances
5
Rate Monotonic
log 2 69%
1
n(2 n 1 ) log 2 quand n
RM : exemple 1
r1 = r2 = 0 D 1 = P1 = 6 D 2 = P2 = 9
C1 = 2 C2 = 3
T1
T2
0 2 5 6 8 9 12 14 16 18
6
RM : exemple 2
r1 = r2 = r3 = 0 D 1 = P1 = 6 D 2 = P2 = 9 D3 = P3 = 18
C1 = 2 C2 = 3 C3 = 4
T1
T2
T3
0 2 5 6 8 9 12 14 16 18
EDF est optimal pour les systmes de tches indpendantes (pour Pi = Di)
U1
7
EDF : exemple
r1 = r2 = 0 D 1 = P1 = 5 D 2 = P2 = 3
C1 = 3 C2 = 1
T1
T2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
8
z Cas des tches apriodiques contraintes relatives
Pas dchance
Tapi(ri, Ci)
Transfert dimage
Optimiser le temps de rponse
Utilisation d
d'un
un serveur de tches apriodiques
Autres techniques
z Quand le serveur est activ sa capacit est utilise par les tches
apriodiques quil gre pour sexcuter (i.e. les tches apriodiques
sexcutent
la place du serveur)
9
Diffrentes stratgies pour le traitement de tches apriodiques
tches
priodiques
rejet
Serveur X
tches Serveur Y
apriodiques
Arrire
plan
File d'attente
de priorit leve
tches RM EDF,
RM, EDF ...
priodiques
Processeur
tches
apriodiques FIFO ou priorit
File d'attente
de priorit faible
10
Traitement en arrire plan : exemple
Temps creux
0 9 10 14 20
Tches apriodiques
0 8 9 10 14 18 20
T4 (r =12, C=3)
T3 (r =8, C=2)
11
Fonctionnement dun serveur sporadique simple (1)
(avec priorits fixes)
PRexe : priorit de la tche en cours dexcution.
PRs : priorit du serveur sporadique.
Ps : priode du serveur sporadique. Cs : capacit maximale du serveur sporadique.
RT : instant o aura lieu le rapprovisionnement de la capacit du SS.
RA : quantit
tit d
de rapprovisionnement
ii t quii sera rajoute
j t lla capacit
it du
d SS.
SS
Le SS est dit activable quand PRexe PRs (SS en cours de service ou bloqu par une tche
plus prioritaire). Le SS est dit inactif quand PRexe < PRs .
Quand une tche apriodique arrive, elle sexcute si la capacit du serveur nest pas nulle et si
la priorit du serveur le permet (les tches apriodiques sexcutent avec le mme niveau de
priorit que le serveur sporadique).
Rgles de rapprovisionnement de la capacit du serveur sporadique
z A linitialisation, la capacit du SS est approvisionne avec la valeur maximale Cs.
z Linstant de rapprovisionnement RT est fix ds le moment o le SS devient activale et Cs > 0
(soit ta ce moment). La valeur de RT est fix ta + Ps.
z La quantit de rapprovisionnement, RA, effectuer linstant RT est fixe au moment o le SS
devient inactif ou quand sa capacit est puise (soit t1 ce moment). La valeur de RA est fixe
une quantit gale celle consomme durant lintervalle [ta, t1].
T1 t
(C=1, P=5)
5 10 15 20
T2
t
(C=4, P=15)
5 10 15 20
C=2 C=2
Tches t
apriodiques
5 10 15 20
Serveur t
activable
ta 1 5 10 15 20
t11 ta2 t12
Cs(t)
5
4 RA3 = 2
3
RA1 = 0 (rien na 2 RA2 = 2
t consomm 1 t
RT1 RT2 RT3
dans [0, 1]
0
5 10 15 20
12
Serveur sporadique avec RM : exemple (2)
4. Partage de ressources
Difficults :
Interblocage
Inversion de priorits
E/S Rseau
13
Inversion de priorit
Libration
Prio3 < Prio2 < Prio1 de ressource
R
T3 R R R
R
T2
R
T1 R
R
Dure de blocage
z Principe
La tche Ti qui possde une section critique
prend une priorit gale au Max{Prioi, Priok | Tk en
attente de la section critique}.
14
Exemple du protocole hritage de priorit
Reprend Prio3
Hrite de Prio1
R
T3 R R R
T2
R
T1 R
Blocage R
Prio3 < Prio2 < Prio1
z Principe
Chaque ressource Rx possde une priorit plafond gale
Max(Prio
( k | Tk p
pouvant accder Rx}}.
On note s le maximum des priorits plafonds des ressources en cours
dutilisation par des tches. s est gal une valeur infrieure
la priorit la plus basse quand aucune ressource nest utilise.
Quand une tche Ti veut accder une ressource Rx qui est libre :
- Cas 1 : si Prioi est suprieur s, alors Ti obtient Rx.
- Cas 2 : si Prioi nest pas suprieur s, alors Ti obtient Rx seulement si Ti est
la tche qui dtient la (ou les) ressource(s) dont le plafond est gal s.
- Autres cas : Ti est bloque.
Une tche Ti qui est en SC prend la priorit
Prio = Max{Prioi, Priok| Tk en attente de SC}. En dautres termes, si une tche
Ti bloque une tche Tj, Ti hrite de Prioj si Prioj > Prioi.
Quand Ti sort de la SC, elle reprend la priorit quelle avait avant dentrer en SC.
15
Exemple de fonctionnement de PCP
T1 T2 R2 T4 T3
R1
R3
T1
R2
Plafond((R3) = Prio2 => requte
q refuse
T2
T3
R3 Hrite de Prio2
T4 R3 R3
16
Exemple de fonctionnement de PCP (suite)
R1
Plafond(R3) = Prio2 < Prio1
T1 R1
R2 R1
T2
T3
Prio2 > Prio3
R3 Hrite de Prio2 R2 Pas de ressource alloue
dautres tches
T4 R3 R R3 R3 R2 R3
3
R2 R3
Prio4 < Prio3 < Prio2 < Prio1
Plafond(R1) = Prio1 Plafond(R2) = Prio2 Plafond(R3) = Prio2
R1
Plafond(R3) = Prio2 < Prio1
T1 R1
R2 R1 R3
T2 R2 R3 R2 R2
R2
R3
T3
Prio2 > Prio3
R3 Hrite de Prio2 R2 Reprend sa Prio4
T4 R3 R R3 R3 R2 R3
3
R2 R3
Prio4 < Prio3 < Prio2 < Prio1
Plafond(R1) = Prio1 Plafond(R2) = Prio2 Plafond(R3) = Prio2
17
5. Ordonnancement avec POSIX
z Principes
- Chaque processus peut demander tre ordonnanc avec une politique quil choisit.
- Il y a quatre politiques :
* SCHED_FIFO
SCHED FIFO
* SCHED_RR
* SCHED_SPORADIC (introduit par Posix de 1999)
* SCHED_OTHER (attention la portabilit des applications!)
- Chaque politique dfinit un nombre minimum de priorits (32 niveaux au moins) pour
ordonnancer les processus.
- Posix utilise une structure sched_param qui contient les infos ncessaires lordonnancement
pour chaque politique supporte.
- Quand des threads sont en attente sur des mutex ou variables conditionnelles,
ils sont rveills selon leur ordre de priorit (i.e. le plus prioritaire est rveill en premier).
Politiques dordonnancement
18
z SCHED_SPORADIC
- La priorit dun thread servi par la politique SCHED_SPORADIC commute entre les valeurs de
sched_priority et sched_ss_low_priority de la structure sched_param
- La priorit affecte au thread servi par SCHED_SPORADIC est dfinie comme suit :
* si la capacit restante du Serveur Sporadique nest pas nulle et le nombre doprations de
rapprovisionnement est infrieur sched_ss_max_repl, la priorit du thread est fixe
sched_priority. Sinon, elle est fixe sched_ss_low_priority.
* si
s la
a valeur
a eu de sc
sched
ed_p o ty est infrieure
priority eu e ou ga gale
e ce
celle
e de sc
sched
ed_ss_
ss low
o _p priority,
o ty,
le fonctionnement du systme est indfini. Il sagit dune mauvaise utilisation des priorits.
z SCHED_SPORADIC (suite)
La capacit disponible du SS est modifie selon les rgles suivantes :
(1) Quand le thread en tte de file dattente associe la priorit sched_priority devient actif,
son temps dexcution ne doit pas dpasser la capacit disponible du SS.
(3) Quand le thread en excution, avec la priorit gale sched_priority, est prempt, il
est mis en tte de la liste associe cette priorit et le temps quil a consomm est soustrait
de la capacit disponible.
((4)) Q
Quand le thread en excution,, avec la priorit
p gale
g sched_p y, est bloqu
priority q le
temps consomm est soustrait de la capacit disponible et lopration de rapprovisionnement
est programme comme lindiquent les rgles (6) et (7).
19
z SCHED_SPORADIC (suite)
(5) Quand le thread en excution, avec la priorit gale sched_priority, atteint la limite
impose par son temps dexcution, il est mis en queue de liste associe la priorit
sched_ss_low_priority. Le temps consomm est soustrait de la capacit disponible et
lopration de rapprovisionnement est programme comme lindiquent les rgles (6) et (7).
z Combinaison de politiques
- Un systme peut grer plusieurs processus avec des politiques diffrentes.
20
API pour lordonnancement
- La primitive sched_yield
h d i ld permet au processus appelant de librer le processeur (CPU) et de
se mettre en queue de file (i.e. il cde volontairement le processeur).
int sched_yield (void)
21
z Primitives de manipulation des attributs lis lordonnancement
- Modifier les attributs des threads revient remplir la structure des attributs de threads attr qui
est du type pthread_attr_t.
Valeurs par dfaut (ces valeurs peuvent tre changes par les primitives
pthread_attr_set<nom de lattribut>):
* Etat de cration avec PTHREAD_CREATE_JOINABLE (qui signifie quun autre thread peut se synchroniser
avec la fin du thread et reprendre son excution la fin du thread en utilisant pthread_join)
* Politique dordonnancement = SCHED_OTHER
* Priorit = 0
* Etat de cration avec PTHREAD_EXPLICIT_SCHED (qui signifie que le thread cr hrite des attributs
dordonnancement de son pre).
22
z Primitives de manipulation des attributs lis lordonnancement (suite)
- La primitive pthread_attr_getinheritshed permet de connatre la valeur de lattribut
dhritage des proprits dordonnancement du fils partir du pre.
int pthread_attr_getinheritsched (const pthread_attr_t *attr,int *inheritsched)
- La primitive pthread_attr_setinheritsched permet de modifier dattribut dhritage des
proprits dordonnancement
int pthread_attr_setinheritsched (pthread_attr_t *attr, int inheritsched)
- La primitive pthread_attr_getscope permet de connatre ltendue des proprits
dordonnancement dun thread (pour le moment seul ltendue Systme global est spcifie)
int pthread_attr_getscope (const pthread_attr_t *attr, int *scope)
- La primitive pthread_attr_setscope permet de modifier ltendue des proprits
dordonnancement dun thread.
int pthread_attr_setscope
pthread attr setscope (pthread_attr_t
(pthread attr t *attr,
attr, int scope)
23
z Dfinition et fonctionnement de mutex plafond de priorit
- Problmes :
* Les mutex priorits ont un surcot plus lev que les mutex normaux.
* Sil y a des threads qui ont une priorit plus leve que celle du mutex, le protocole
vitement dinversion de priorit peut devenir inefficace
24
z Dfinition et fonctionnement de mutex hritage de priorit
25
Points forts / Points faibles de POSIX
Exercices
Exercice 1
Quels sont les ensembles de tches (parmi les ensembles suivants) ordonnanables avec RM ? Avec EDF ?
Ensemble 1 = {T1(P1 = 8, C1 = 2), T2(P2 = 4, C2 = 1), T3(P3 = 6, C3 = 3)}
Ensemble 2 = {T1(P1 = 8, C1 = 4), T2(P2 = 12, C2 = 4), T3(P3 = 20, C3 = 4)}
Ensemble 3 = {T1(P1 = 8, C1 = 4), T2(P2 = 10, C2 = 2), T3(P3 = 12, C3 = 3)}
1. Donner une squence dordonnancement RM qui se rpte indfiniment pour un des ensembles qui est
ordonnanable avec RM.
2. Donner une squence dordonnancement EDF qui se rpte indfiniment pour un des ensembles qui est
ordonnanable avec EDF.
Exercice 2
Soit un systme contenant les tches priodiques suivantes : T1(P1 = 10, C1 = 2), T2(P2 = 20, C2 = 4) et
P3 = 5, C3 = 1). Un serveur sporadique est utilis pour servir les tches apriodiques.
1. Supposons que toutes les tches sont ordonnances avec EDF.
- Quelles sont la priode et capacit maximale du serveur sporadique ?
- En retenant comme priode du serveur sporadique 10, donner la squence dordonnancement si trois tches
apriodiques arrivent comme suit : T4(r4 = 6, C4 = 3), T5(r5 = 8, C5 = 2), T6(r6 = 11, C6 = 3)
2. Mmes questions avec RM (mais en retenant 20 comme priode du serveur sporadique).
26
Exercices
Exercice 3
Montrer que le protocole PIP ne permet pas dviter les inrteblocages.
Exercice 4
Dmontrer que les situations dinterblocage ne peuvent pas apparatre si PCP est utilis.
Exercice 5
Expliquer limpact de lunit avec laquelle sont exprimes les contraintes temporelles sur les performances
du systme.
27