Vous êtes sur la page 1sur 44

2014-01-06

Noyau d'un systme d'exploitation


INF2610
Chapitre 9 : Ordonnancement de processus

Dpartement de gnie informatique et gnie logiciel

Hiver 2014

Chapitre 9 - Ordonnancement de processus


Introduction
Niveaux et objectifs dordonnancement
Politiques dordonnancement
Ordonnancement non premptif
Ordonnancement premptif
Etudes de cas
Linux (noyau 2.6)
Windows
Ordonnancement temps rel
Quest quun systme temps rel
Quest quun systme dexploitation temps rel (RT-Linux)
Ordonnancement temps rel de tches priodiques

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

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.

Dans un systme multiprogramm, plusieurs processus peuvent


tre prsents en mmoire centrale.

SE dcide de lordre et du moment de ladmission des processus en


attente (ordonnanceur de haut niveau).

SE gre galement lallocation du (des) processeur(s) aux diffrents


processus excuter (ordonnanceur de bas niveau).

Lexcution dun processus est une squence alterne de calculs


CPU (rafales) et dattentes dvnements (E/S, attente dun
smaphore..).

Lorsque le processus en cours se bloque, le processeur est allou


un autre => Lordonnanceur de bas niveau se charge des
changements de contexte.

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Noyau d'un systme d'exploitation

Chapitre 9 - 3

Introduction (2)
Commutation de contexte
Processus A
Mode utilisateur

excution

Mode kernel

Processus B
Mode utilisateur

Sauvegarder tat dans PCB A


Charger tat de PCB B

excution

Sauvegarder tat en PCB B


excution

Charger tat de PCB A

Pour acclrer la commutation, certains processeurs sont dots


de deux ou plusieurs groupes de registres.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 4

2014-01-06

Niveaux et objectifs dordonnancement


Ordonnancement

Expiration

de haut niveau
Lot de travaux en attente dadmission

File dattente, prt

Ordonnancement
de bas niveau

Termin

Process
eur
Processeur

Ordonnancement
de niveau intermdiaire
File dattente, prt hors mmoire

Ordonnancement
de niveau intermdiaire

File dattente, attente hors mmoire

Occurrence

File dattente, attente dvnement


Attente dvnement

dvnement

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 5

Niveaux et objectifs dordonnancement (2)

Lordonnanceur de haut niveau dcide du degr de la


multiprogrammation ( nombre maximal de processus dans le
systme).
Lordonnanceur de niveau intermdiaire gre le dplacement des
processus dune file dattente une autre.
Dans la majorit des systmes actuels, les niveaux intermdiaire
et haut sont combins -> haut niveau.
Lordonnanceur de bas niveau (dispatcher ou rpartiteur) est
sollicit plusieurs fois par seconde et doit constamment rsider en
mmoire.
Lordonnancement doit se faire selon une politique bien rflchie
visant rpondre des objectifs de performance.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 6

2014-01-06

Niveaux et objectifs dordonnancement (4)


1. Maximiser le nombre de processus excuts par unit de temps.
2. Minimiser le temps dattente dexcution de chaque processus.
3. Maximiser les temps dutilisation des processeurs et autres
ressources.
4. Respecter les chanciers (terminer lexcution avant leurs
deadlines).
5. viter le problme de famine (attente infinie).
6. Favoriser les processus les plus prioritaires (viter le problme
dinversion des priorits).
7. Minimiser le nombre et la dure des changements de contexte.

Difficile de les satisfaire la fois (exemple objectifs 1 et 4).


Prioriser les objectifs.
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 7

Critres de performance de l'ordonnancement

Temps de sjour dun processus (temps de rotation ou de


virement) : temps entre ladmission du processus et sa sortie.
Temps d'attente dun processus : somme des priodes que le
processus passe l'tat prt
Temps de rponse: temps entre l'entre d'un processus
moment o il commence tre trait

et le

Capacit de traitement : nombre de processus traits par


unit de temps.
Taux dutilisation dun processeur.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 8

2014-01-06

Politique dordonnancement

Choix du processus excuter ?


Premier arriv, premier servi.
Plus prioritaire (priorits statiques ou dynamiques).
Plus court temps .
Le temps dallocation du processeur au processus choisi :
Allocation jusqu terminaison ou libration volontaire
(ordonnancement non premptif).
Temps dallocation limit fixe ou variable (ordonnancement
premptif).
Quand appeler lordonnanceur ?
Le processus en cours se termine, se bloque ou cde le processeur,
Le temps allou a expir.
Larrive dun processus plus prioritaire

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 9

Ordonnancement non premptif

Le systme dexploitation choisit le prochain processus


excuter :
Premier arriv, Premier servi (FCFS, First-Come First-Served) ou
Plus court dabord (SPF, Short Process First ou SJF Short Job First).
Plus prioritaire dabord (priorite = (temps dattente + temps
dexcution) / temps dexcution).

Il lui alloue le processeur jusqu ce quil se termine, se bloque


(en attente dun vnement) ou cde le processeur. Il ny a
pas de rquisition.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 10

2014-01-06

Ordonnancement non premptif (2)

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Noyau d'un systme d'exploitation

Chapitre 9 - 11

Ordonnancement non premptif (3) : FCFS


Processus

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

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 12

2014-01-06

Ordonnancement non premptif (4) : SPF


Plus court en premier (Short Process First)
Processus

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

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 13

Ordonnancement non premptif (5) : SPF


Plus court en premier (Short Process First)

Parmi les processus prts, le processus lu est celui dont la


prochaine rafale est la plus courte.

Comment estimer le temps de la prochaine rafale ?

Le temps de la prochaine rafale de chaque processus est estim


en se basant sur le comportement pass du processus.
Soient Si et Ti les temps dexcution estim et mesur pour la
iime rafale, les estimations successives sont :
S0 ;
pour la premire
S1 = T0 +(1- )S0 ; pour la seconde
S2 = T1 +(1- )S1 ;
pour la troisime
.
01

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 14

2014-01-06

Ordonnancement non premptif (6): priorits

Processus

Excution

Arrive

Priorit = (temps dattente + temps dexcution) / temps


dexcution
AAABBBBBBEDDCCCC
Le temps moyen de sjour : 6,4
Le temps moyen dattente : 3,2

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 15

Ordonnancement premptif (avec rquisition)

Pour viter quun processus monopolise le processeur, les


ordinateurs ont une horloge lectronique qui gnre
priodiquement une interruption.
A chaque interruption dhorloge, le systme dexploitation
reprend la main et dcide si le processus courant doit :
poursuivre son excution ou
tre suspendu pour laisser place un autre.

Sil dcide de suspendre lexcution au profit dun autre, il doit


dabord sauvegarder ltat des registres du processeur avant de
charger dans les registres les donnes du processus lancer
(commutation de contexte).
Cette sauvegarde est ncessaire pour pouvoir poursuivre
ultrieurement lexcution du processus suspendu.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 16

2014-01-06

Ordonnancement premptif (2)

Le processeur passe donc dun processus un autre en excutant


chaque processus pendant quelques dizaines ou centaines de
millisecondes.
Le temps dallocation du processeur au processus est appel
quantum.
Cette commutation entre processus doit tre rapide (temps
nettement infrieur au quantum).
Le processeur, un instant donn, nexcute rellement quun
seul processus.
Pendant une seconde, le processeur peut excuter plusieurs
processus et donne ainsi limpression de paralllisme (pseudoparalllisme).
Le systme peut aussi suspendre lexcution dun processus en
cours si un processus plus prioritaire passe ltat prt.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 17

Ordonnancement premptif (3)

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 18

2014-01-06

Ordonnancement premptif (4) : SRT


Shortest Remaining Time
Lorsquun processus arrive,
Processus
lordonnanceur compare le temps
estim de son excution avec celui du
processus actuellement en excution
A
(version premptive du SPF).
B
Si ce temps est plus petit, on excute
immdiatement le nouveau processus.

Excution

Arrive

AAABCCCCEDDBBBBB

Temps moyen de sjour : 5.8


Temps moyen dattente : 2.6
Nombre de changements de contexte : 6

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 19

Ordonnancement premptif (5) : circulaire


(tourniquet/round robin)

Algorithme ancien, simple, fiable et trs utilis.


Il mmorise dans une file (FIFO : First In First Out), la liste des
processus en attente dexcution (prts).

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 20

10

2014-01-06

Ordonnancement premptif (6) : circulaire


(tourniquet/round robin)
Choix de la valeur du quantum :

Algorithme quitable mais sensible au choix du quantum.


Un quantum trop petit provoque trop de commutations de
processus et abaisse lefficacit du processeur.
Un quantum trop lev augmente le temps de rponse des
courtes commandes en mode interactif.

Il tait de 1 seconde dans les premires versions dUNIX.

Il varie entre 20 et 120 ms.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 21

Ordonnancement premptif (7) : circulaire


(tourniquet/round robin)
Exemple 1

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

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 22

11

2014-01-06

Ordonnancement premptif (8) : circulaire


(tourniquet/round robin)
Exemple 2 :
Quantum = 3 units
Commutation de contexte = 1 unit

Processus

Excution Arrive

5(2)3

Le temps de sjour moyen : 21.33.


Le temps moyen dattente : 14
Nombre de changements de contexte : 8
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 23

Ordonnancement premptif (9) : circulaire


(tourniquet/round robin)

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

Le temps de sjour moyen : (21+22+13)/3 (soit 18,66).


Le temps dattente moyen : 11,33.
Nombre de changements de contexte : 5
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 24

12

2014-01-06

Ordonnancement premptif (10) : circulaire


(tourniquet/round robin)

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

Le temps de sjour moyen : (21+22+15)/3 (soit 19.33).


Le temps dattente moyen : 12.
Nombre de changements de contexte : 5
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 25

Ordonnancement premptif (11) : files multiples


Une priorit est attribue chaque processus (priorit statique
ou dynamique).
Les processus de mme priorit sont dans une mme file
FIFO
Il y a autant de files quil y a de niveaux de priorits
Les processus de chaque file sont ordonnancs selon lalgorithme
du Tourniquet (Round Robin avec un quantum variable ou fixe) ou
FCFS.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 26

13

2014-01-06

Ordonnancement premptif (12) : files multiples


Problmes

quit : Lexcution des processus moins prioritaires peut


tre constamment retarde par larrive de processus plus
prioritaires.

Inversion des priorits :


un processus moins prioritaire dtient une ressource
ncessaire lexcution dun processus plus prioritaire.
Le processus moins prioritaire ne peut pas sexcuter car il y a
constamment des processus actifs plus prioritaires.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 27

Ordonnancement premptif (13) : files multiples


Attribution et volution des priorits

Pour empcher les processus de priorit leve de sexcuter


indfiniment, lordonnanceur diminue rgulirement la priorit du
processus en cours dexcution (priorit dynamique) et augmente
progressivement celles des processus en attente.

La priorit du processus en cours est compare rgulirement


celle du processus prt le plus prioritaire (en tte de file).
Lorsquelle devient infrieure, la commutation a lieu.
Dans ce cas, le processus suspendu est insr en queue de file
correspondant sa nouvelle priorit.
Pour favoriser les processus qui font beaucoup dE/S, ils doivent
acqurir le processeur ds quils le demandent, afin de leur
permettre de lancer leurs requtes suivantes dE/S.
Pour viter quil y ait beaucoup de commutations pour les
processus consommateurs de temps CPU, il est prfrable
dallouer un plus grand quantum ces processus (quantum
variable).

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 28

14

2014-01-06

tudes de cas :
Linux et Windows
Algorithmes dordonnancement utiliss
Attribution et volution des priorits

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 29

Cas de Linux (noyau 2.6)

Lordonnancement sous Linux est premptif et priorit avec files multiples


(140 niveaux de priorit). Les priorits sont dynamiques.
Lordonnanceur Linux gre les threads et non pas les processus (threads
noyau). Appel sched_setscheduler choisit la classe:
Les FIFO temps rel : les plus prioritaires et premptibles par des threads
de la mme classe ayant un niveau de priorit plus lev.
Les tourniquets temps rel : un quantum de temps est associ chaque
thread de cette classe (ordonnancement circulaire).
Les threads temps rel ont des priorits allant de 0 99 (les plus
leves).
Les threads en temps partag : ont des priorits allant de 100 139 (100
+ nice value). Un quantum de temps est associ chaque niveau de
priorit.

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

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 30

15

2014-01-06

Cas de Linux (noyau 2.6) (2)

Lordonnanceur utilise une file pour chaque


processeur, compose de deux tableaux
Active/Expired.

Un vecteur bit
indiquant les
listes non vides

Il slectionne le thread le plus prioritaire, en


tte de file Active.
Si le thread consomme son quantum restant,
il est dplac vers le tableau Expired.
Lorsque le tableau Active devient vide,
lordonnanceur permute les pointeurs Active
et Expired.
Linux attribue des quanta variables selon
leurs priorits Quanta plus levs pour les
plus prioritaires (ex. pri.100 qt = 800ms,
pri. 139 qt = 5ms ).
Noyau d'un systme d'exploitation

If (SP < 120): qt = (140 SP) 20


if (SP >= 120): qt= (140 SP) 5

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 31

Cas de Linux (noyau 2.6) (3)

Lordonnanceur associe chaque thread une variable


sleep_avg. Cette variable est incrmente si la tche est en
excution et dcrmente si elle est prempte ou que son
quantum de temps a expir.
sleep_avg est utilise pour mapper le
bonus du thread sur des valeurs
allant de -5 5.
Lordonnanceur recalcule le niveau
de priorit dun thread au moment o
il est dplac vers le tableau Expired.

volution Dynamique
des priorits
Noyau d'un systme d'exploitation

DP = SP bonus + 5
DP = min(139, max(100, DP))

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 32

16

2014-01-06

Cas de Linux (noyau 2.6) (4)

http://www.ibm.com/developerworks/library/l-completely-fair-scheduler/

Multiprocesseurs affinit + rquilibrage priodique des files


dexcutions.

Un thread qui passe ltat bloqu est


dplac vers la waitqueue .

La waitqueue contient une file


dattente par type dvnement .

La dcision dordonnancement est


indpendante du nombre de threads dans le systme (complexit en
temps est O(1) par rapport au nombre de threads).

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 33

Cas Windows

Lordonnanceur de Windows est premptif et priorit avec


files multiples (32 niveaux de priorit). Les priorits sont
dynamiques.
Windows ordonnance les threads sans se proccuper des
processus.
Windows ne contient pas un module autonome qui se charge de
lordonnancement. Le code de lordonnanceur est excut par un
thread ou un DPC (appel de procdure diffr).
Le code de lordonnanceur est excut par un thread dans les trois
cas suivants :
Il excute une fonction qui va basculer son tat vers bloqu
(E/S, smaphore, mutex, etc). Cette fonction fait appel au code
de lordonnanceur pour slectionner un successeur et raliser
la commutation de contexte.
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 34

17

2014-01-06

Cas de Windows (2)


Il excute une fonction qui signale un objet (smaphore, mutex,
vnement, etc). Cette fonction fait appel au code de
lordonnanceur pour vrifier lexistence dun thread prt plus
prioritaire. Si cest le cas, un basculement vers ce thread est
ralis.
Son quantum a expir. Le thread passe en mode noyau puis
excute le code de lordonnanceur pour vrifier lexistence dun
thread prt plus prioritaire. Si cest le cas, un basculement vers
ce thread est ralis.

Lordonnanceur est galement appel la fin dune E/S et


lexpiration dun timeout.
Linterruption de fin dE/S ou celle associe au timeout va
programmer un DPC (appel de procdure diffr). Ce DPC va
excuter le code de lordonnanceur pour vrifier si le thread
dbloqu est plus prioritaire que le thread courant. Si cest le
cas, un basculement vers le thread dbloqu est ralis.
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 35

Cas de Windows (3)

LAPI Win32 fournit deux fonctions pour influencer lordonnancement


des threads :
SetPriorityClass qui dfinit la classe de priorit de tous les threads du
processus appelant (realtime, high, above normal, normal, below normal,
idle, background).
SetThreadPriority qui dfinit la priorit relative dun thread par rapport
la classe de priorit de son processus (timecritical, highest, above normal,
normal, below normal, lowest, idle).

Les combinaisons
de classe de priorit
et de priorit relative
sont mappes
sur 32 priorits
de threads absolues
Priorits de base

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 36

18

2014-01-06

Cas de Windows (4)

Chaque thread a une priorit de base et une priorit


courante qui peut tre plus leve que celle de base
mais jamais plus basse.

Lordonnanceur slectionne
le thread le plus prioritaire.
Ce thread va sexcuter
pendant au maximum
un quantum
(20ms par dfaut, 120 ms)

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 37

Cas de Windows (5)

On distingue quatre classes de processus lgers :


Les threads temps rel : chaque thread de cette classe a une priorit
comprise entre 16 et 31. Sa priorit ne change jamais.
Les threads utilisateur : chaque thread de cette classe a une priorit
comprise entre 1 et 15. Sa priorit varie durant sa vie mais reste
toujours comprise entre 1 et 15. Il migre dune file une autre avec
lvolution de sa priorit.
Le thread zro (priorit 0) : sexcute, en arrire plan, lorsque toutes
les files, de priorit suprieure, sont vides. Il se charge de la remise
zro des pages libres.
Le thread idle : sexcute si toutes les files sont vides.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 38

19

2014-01-06

Cas de Windows (6)


La priorit courante dun thread utilisateur est augment lorsquil
sort de ltat bloqu suite :
une fin dE/S (+1 pour un disque, +6 pour un clavier, +8 pour
la carte son, etc)
Acquisition dun smaphore, mutex ou larrive dun
vnement (+2 ou +1) , etc.

La priorit courante dun thread utilisateur ne peut jamais


dpasser 15.

La priorit courante dun thread utilisateur est diminu de 1 sil


consomme son quantum et sa priorit courante est suprieure
sa priorit de base.

volution Dynamique
des priorits
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 39

Cas de Windows (7)

Problme dinversion de priorit (producteur /


consommateur) :
Le producteur de priorit de base 12 est bloqu car le tampon
est plein.
Le consommateur de priorit de base 4 est en attente car il y a
un thread de priorit de base 8 qui monopolise le processeur.

Si un thread ltat prt reste trop longtemps en attente du


processeur (ce temps dpasse un certain seuil), il se voit
attribuer une priorit 15 pendant 2 quanta (acclrer le thread
pour viter les problmes de famine et dinversion de priorit).
la fin des deux quanta, le thread reprend sa priorit de base.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 40

20

2014-01-06

Cas de Windows (8)

Cest le balance set manager qui se charge de la recherche de


tels threads (toutes les secondes).
Afin de minimiser le temps CPU consomm par le balance set
manager , un nombre limit (par exemple 16) de threads sont
examins chaque passage. Il examinera les suivants son
prochain passage.
Le balance set manager limite le nombre de threads
acclrer (par exemple 10).

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 41

Ordonnancement temps rel

Quest ce quun systme temps rel ?

Quest ce quun systme dexploitation temps rel ? (RT-Linux)

Ordonnancement temps rel de tches priodiques


-

Tches indpendantes

Tches dpendantes

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 42

21

2014-01-06

Quest ce quun systme temps rel ?

http://www.cs.aau.dk/~kgl/ARTES

Un systme temps rel (STR) est un systme qui doit rpondre un


ensemble de stimuli provenant de son environnement, dans un intervalle de
temps dict par ce mme environnement (i.e. contraintes temporelles).

Les systmes temps rel se caractrisent par :


de fortes interaction avec le procd ou lenvironnement ( donnes avec une
dure de validit limite, temps de rponse stricts) et
des contraintes de cot, despace, de consommation dinergie, de matriel
Environnement dexcution spcifique

Un STR est gnralement compos dune partie continue et dune partie


discrte (un ensemble de tches qui commandent la partie continue).

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 43

Quest ce quun systme temps rel ? (2)


Il existe deux types de systmes temps rel (STR) :

STR stricts : Le systme doit imprativement respecter les contraintes


temporelles (temps de rponse, chances). Sinon, il peut y avoir des
consquences majeures.

STR souples : Les contraintes temporelles sont importantes, mais le systme


fonctionne correctement mme si celles-ci ne sont pas respectes (chances
manques, retard sur les rponses). Il en rsulte seulement une dgradation
de performance.

Exemples de STR stricts :


Avionique et arospatial;
Gestion du trafic arien;
Contrle dune centrale nuclaire.
Exemples de STR souples :
Jeux vidos;
Tl-confrences.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 44

22

2014-01-06

Quest ce quun systme dexploitation temps rel ?

Real time in operating systems:


The ability of the operating system to provide a required level of service in a bounded
response time.
POSIX Standard 1003.1

Le noyau dun RTOS assure les fonctions de base dun OS:


gestion des tches (cration, ordonnancement, communication, synchronisation);
gestion des interruptions;
gestion du temps (minuteries);
gestion de la mmoire.
Mais il doit garantir en plus des temps de rponses borns et acceptables aux
demandes de services.

Lobjectif est dexcuter des applications temps rel


{ tches concurrentes, communicantes avec ventuellement des contraintes
temporelles strictes et/ou souples }

Noyau non premptif ou premptif -> premptif

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 45

Quest ce quun systme dexploitation temps rel ?


(2)
Comment garantir des temps de rponse borns et satisfaire les contraintes
temporelles ?

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.

lire la tche la plus prioritaire ( la plus urgente )

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 46

23

2014-01-06

Quest ce quun systme dexploitation temps rel ?


(3)
Tches temps rel : Contraintes temporelles
chance

Tche priodique
priode

Tche apriodique
(sporadique)

pmin : intervalle miminum entre deux activations

Relations de prcdence

Tche A
A prcde B
Tche B
rB = fin de A

Exclusion mutuelle

Tche A
Tche B

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Section critique
Chapitre 9 - 47

Quest ce quun systme dexploitation temps rel ?


(4)
Tches temps rel : Priorits

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.

Les priorits des tches peuvent tre :


- statiques (les priorits sont fixes, ne changent pendant lexcution de lapplication).
- dynamiques (les priorits peuvent changer pendant lexcution de lapplication).

La complexit des systmes temps rel rend difficile le processus dassignation


des priorits aux tches.

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

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

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).

Systmes d'exploitation temps rel ddis :

VxWorks,
MicroC,
QNX,
LynuxWorks

Les extensions existantes de cohabitation du noyau Linux avec un micronoyau :


RT-Linux,
RTAI.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

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.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 50

25

2014-01-06

RT-Linux (3)

Application = partie TR (tches temps rel) + partie non TR (processus Linux).

Les processus Linux et les tches TR peuvent communiquer par des FIFOS
(pipes) ou par mmoire partage.

Les tches RT-Linux sexcutent dans lespace dadressage du noyau au


mme titre que lordonnanceur temps rel.
limine la charge occasionne par tout changement de mode de protection
(mode utilisateur, mode noyau);
rduit les latences et les temps de rponse;
comporte un risque : un Bug dans une tche temps rel peut mettre en
danger tout le systme.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 51

RT-Linux (4)
Les tches

Les tches sont, en gnral, cres lors du chargement du module (fonction


init_module()) et les supprimer uniquement au dchargement (fonction
cleanup_module).

La structure rt_task_struct (ou RT_TASK par typedef struct rt_task_struct


RT_TASK;) des tches temps rel dans RT-Linux contient notamment les
champs suivants :
- tat (Inexistant, Dormant, Prt, lu, Attente de la prochaine activation, etc );
- Priorit;
- Priode;
- Date de la prochaine activation.

http://cedric.cnam.fr/PUBLIS/RC190.pdf

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 52

26

2014-01-06

RT-Linux (5)
Les tches

Deux types de tches sont gres dans RT-Linux :

Tches priodiques :
- excutent priodiquement un traitement.
- sont actives priodiquement

Le traitement priodique ralise par une tche doit se faire lintrieure


de la priode (avant la prochaine activation).

Tches apriodiques :
- excutent des intervalles de temps irrguliers un traitement.
- sont gnralement actives par dautres tches (relation de
prcdence, arrive dun vnement, ).

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 53

RT-Linux (6)
Les tches

Cration dune tche :


int rt_task_init ( RT_TASK *task, void (fn)(int data), int data,
int stack_size, int priority );

Activation dune tche :


int rt_task_wakeup ( RT_TASK *task );

Rendre une tche inactive :


int rt_task_suspend (RT_TASK *task);

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 54

27

2014-01-06

RT-Linux (7)
Les tches

Transformation dune tche cre en une tche priodique :


int rt_task_make_periodic(RT_TASK *task, RTIME start_time, RTIME period

Cette fonction doit tre appele aprs sa cration (pas aprs son activation).

Suspension dune tche priodique jusqu sa prochaine date de rveil :


int rt_task_wait (void);

Suppression dune tche RT-Linux (passe ltat dormant) :


int rt_task_delete (RT_TASK *task);

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

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

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

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

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 57

RT-Linux (10)
Ordonnancement de tches

Ordonnancement (par dfaut) premptif priorits statiques


Il slectionne la tche prte la plus prioritaire.

Ordonnancement Earliest Deadline First (EDF)

Ordonnancement Rate Monotonic priority assignment (RMA)

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 58

29

2014-01-06

Ordonnancement temps rel de tches priodiques

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 59

Ordonnancement temps rel de tches priodiques


Les tches ont des contraintes temporelles, de prcdence, de partage
de ressources.
Lordonnancement doit se faire de manire respecter toutes ces
contraintes.
- Ordonnancement premptif / non premptif => Ordonnancement premptif
- Ordonnancement priorits statiques / dynamiques => Priorits statiques /
dynamiques, mais assignes en tenant compte des contraintes temporelles,
de prcdence, de partage de ressources.

La squence d'excution des tches est tablie dynamiquement par


l'ordonnanceur en fonction des vnements qui surviennent.
L'ordonnanceur choisit la prochaine tche excuter en fonction d'un
critre de priorit qui dpend en gnral des contraintes temporelles.
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 60

30

2014-01-06

Ordonnancement temps rel de tches priodiques


(2)
Contraintes sur les tches priodiques

Priode dactivation : Pi

Temps dexcution de chaque tche (au pire cas) chaque activation : Ci

chance (deadline) de chaque tche : Di

Tches qui peuvent dmarrer durant toute la priode ou doivent dmarrer


durant les x premiers cycles de la priode.

Date dactivation initiale : Oi

Tche chance sur requte : Di = Pi

Tches synchrones Oi = Oj, pour tout (i, j)


Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 61

Ordonnancement premptif priorits fixes de


tches priodiques indpendantes

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 62

31

2014-01-06

Rate monotonic priority assignment (RMA)


[Liu & Layland, 1973]
La priorit dune tche est inversement proportionnelle sa priode. Plus la
priode est petite, plus la priorit est grande => Priorit statique

La rsolution de conflit est arbitraire.

Un ensemble de n tches priodiques indpendantes (pas de section critique)


o Di=Pi, est ordonnanable si (condition suffisante de Liu et Layland) :

n => borne = 69.3 %


Ui = Ci / Pi Taux doccupation processeur (ou charge) par tche.
Gnie informatique et gnie logiciel
Ecole Polytechnique de Montral

Noyau d'un systme d'exploitation

Chapitre 9 - 63

Rate monotonic priority assignment (RMA) (2)


Exemple 1
T1 : C1=3 P1=20
T3 : C3=2 P3 = 10

T2 : C2=2 P2 = 5
prio(T1) < prio(T3) < prio(T2)

3/20 + 2/5 + 2/10 = 75 %

< 78 %

Simulation
Intervalle dtude :
[0, PPCM(P1,P2,P3)]

=> ordonnanable

T1

T2

T3

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 64

32

2014-01-06

Rate monotonic priority assignment (RMA) (3)


Exemple 2

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 65

Rate monotonic priority assignment (RMA) (4)


Exemple 2

Par contre, graphiquement on voit quon ne peut pas ordonnancer


Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 66

33

2014-01-06

Exercice 1
Soit lensemble de tches suivant ordonnancer :

100% non < 78% donc on ne peut rien dire


Vrifiez par reprsentation graphique (diagramme de Gantt) si les
tches peuvent tre ordonnances RMA.

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Noyau d'un systme d'exploitation

Chapitre 9 - 67

Deadline monotonic priority assignment (DMA)


[Leung & Whitehead, 1985]
La priorit dune tche est inversement proportionnelle son
deadline (plus le deadline est petit, plus la priorit est grande)
Priorit statique.
Le conflit est rsolu de faon arbitraire.
Un ensemble de n tches priodiques indpendantes est
ordonnanable si :
n

Ci
n(2 n 1)

i =1 Di
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 68

34

2014-01-06

Deadline monotonic priority assignment (DMA) (2)


Exemple 3
T1 : C1=3 D1=7 P1=20
T3 : C3=2 D3=9 P3 = 10
3/7 + 2/4 + 2/9 = 115 %

T2 : C2=2 D2=4 P2 = 5
prio(T3) < prio(T1) < prio(T2)

non < 78 %

on ne peut rien dire

T1

T2

T3

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 69

Ordonnancement premptif
priorits dynamiques de
tches priodiques indpendantes

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 70

35

2014-01-06

Earliest Deadline First (EDF)


[Liu & Layland, 1973]
La tche la plus prioritaire (parmi les tches prtes) est celle dont
lchance absolue est la plus proche.
Il est applicable aussi bien pour des tches priodiques quapriodiques.
Ordonnanable:
Pour les tches chance sur requte, CNS :
Pour les autres cas:
CN :
CS :

Ci

Pi 1
i =1

Ci

Pi 1
i =1

Ci

Di 1
i =1

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 71

Earliest Deadline First (EDF) (2)


Exemple 4
T1 : C1=3 D1=7 P1=20
T2 : C2=2 D2=4 P2 = 5
T3 : C3=1 D3=8 P3 = 10
3/7 + 2/4 + 1/8 = 105 % non < 1
on ne peut rien dire
T1

T2

T3

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 72

36

2014-01-06

Earliest Deadline First (EDF) (3)


Exemple 5
Soient les tches suivantes :
Task

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 ).

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Noyau d'un systme d'exploitation

Chapitre 9 - 73

Earliest Deadline First (EDF) (4)


Exemple 5
Lordonnancement EDF de ces tches:

cycle 4 de T1 cycle 5 de T1

cycle 1 de T1 cycle 2 de T1 cycle 3 de T1

T1
Premption de
T1 sur T2

T2

cycle 1 de T2

Noyau d'un systme d'exploitation

Premption de
T1 sur T2

10

12

14

16

18

20

cycle 2 de T2

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 74

37

2014-01-06

Earliest Deadline First (EDF) (5)


Exemple 5
Remarques :
T1 dmarre en premier, car elle possde le plus petit deadline (4 vs 10);
linstant 1, le deadline de T1 (3) est toujours plus petit que celui de T2 (9),
donc T1 poursuit son excution;
linstant 2, T1 a termin son cycle 1 et son deadline devient 0. Par contre,
T2 qui na pas encore dmarr, a maintenant un deadline de 8. T2 a donc le
plus petit deadline non nul elle dmarre;
linstant 3, le deadline de T1 est encore 0, tandis que celui de T2 est 7, donc
T2 poursuit son excution;
linstant 4, T2 a maintenant un deadline de 6 et T1 retrouve son deadline de
4 (dbut de son 2e cycle). Donc T1 a une premption sur T2;
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 75

Earliest Deadline First (EDF) (6)


Exemple 5
linstant 5, le deadline de T1 (3) est toujours plus petit que celui de T2
(5), donc T1 poursuit son excution;
linstant 6, T1 a termin son cycle 2 et son deadline devient 0. Par
contre, T2 a maintenant un deadline de 4. T2 a donc le plus petit deadline
non nul elle redmarre son excution;
linstant 7, T2 a maintenant un deadline de 3 et T1 a encore un deadline
de 0, donc T2 poursuit son excution;
linstant 8, T2 a maintenant un deadline de 2 et T1 retrouve son deadline
de 4 (dbut de son 3e cycle). Cependant puisque 2 < 4, T2 poursuit son
excution.
linstant 9, T2 a termin son cycle 1 et donc son deadline devient 0. Par
consquent, T1 qui a un deadline de 3 dmarre son cycle 3;
etc.
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 76

38

2014-01-06

Earliest Deadline First (EDF) (7)


Exemple 5

On remarque aussi que ce nest qu la priode 20 que les deux tches


terminent un cycle en mme temps (ce qui nest pas le cas la priode 10).

On peut donc considrer que le mme ordonnancement se rptera entre


les priodes 20 et 40, 40 et 60, 60 et 80, etc.

Cest en fait le plus petit multiple commun entre les deux priodes qui
dtermine le point de rencontre.

Finalement on remarque que le CPU est utilis 100% du temps (dans la


plupart des cas, le CPU est utilise moins que 100%).

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 77

Ordonnancement en prsence de ressources


partages

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 78

39

2014-01-06

Problmes de partages de ressources

Les tches partagent des ressources accs exclusif.

Lorsquune tche Tx demande une ressource dj alloue une autre tche


Ty, Tx se met en attente de la ressource.

Ordonnancement priorit

Inversion de priorits possible : Une tche de basse priorit empche une


tche plus prioritaire daccder sa section critique (bloque une tche plus
prioritaire).
Interblocage

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 79

Problmes de partages de ressources


Inversion de priorits
Exemple 6 :

Tche

Date de dpart

Priorit

Squence dexcution

T3

EER1E

T2

EEE

T1

EER1R1R1R1E

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 80

40

2014-01-06

Problmes de partages de ressources


Inversion de priorits (2)
Exemple 6 : Trois tches : T1, T2, T3

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

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 81

Problmes de partages de ressources


Inversion de priorits (3)
Traitement du problme dinversion de priorits :

Protocole dhritage de priorits

[Kaiser, 1982] [Sha, 1990]

OCPP (Original Ceiling Priority Protocol) [Chen, 1990] [Sha, 1990]

ICPP (Immediate Ceiling Priority protocol)

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 82

41

2014-01-06

Protocole dhritage de priorits


(PIP = Priority Inheritance Protocol)

Lorsquune tche Tx bloque suite une demande daccs une


ressource R, la tche bloquante Ty (celle qui dtient R) hrite la
priorit courante de Tx.

La tche Ty sexcutera avec la priorit hrite jusqu la libration


de la ressource.

Elle retrouve ensuite sa priorit.

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Noyau d'un systme d'exploitation

Chapitre 9 - 83

Protocole dhritage de priorits (2)


(PIP = Priority Inheritance Protocol)
T3 dem. R1; T3 bloque;
T1 hrite la prio de T3
Arrive de T2 pas de
premption de T1

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

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

18

T1 libre R1
T1 reprend sa prio. statique

Chapitre 9 - 84

42

2014-01-06

Protocole dhritage de priorits (3)


(PIP = Priority Inheritance Protocol)

Ce protocole peut mener un Interblocage : Deux tches T1 et T2 utilisant


deux ressources R1 et R2; prio(T1) < prio(T2); T1 est lance avant T2.
Tche T1

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) ;

Temps de blocage est born (sauf en cas d'interblocage) PIP permet


dvaluer cette borne Bi (au pire cas) pour chaque tche Ti.

PIP nlimine pas linversion de priorit mais il permet de la rduire.

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 85

Protocole dhritage de priorits (4)


Problme dinterblocage

Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 86

43

2014-01-06

Exercice 2 (RMA + PIP)


Tche

Date darrive

Temps dexcution
Ci

Priode
Pi

T3

3: ER1E

T2

2: EE

10

T1

5 : ER1R1R1E

20

Les tches T1, T2 et T3 sont-elles ordonnanables, selon RMA ?

A-t-on un problme dinversion de priorit ? Si oui, donnez le diagramme


de Gantt correspondant au cas o ce problme est trait en utilisant le
protocole PIP (Priority Inheritance Protocol). A-t-on des chances
manques, dans ce cas ?

Mission Mars Pathfinder lance par la NASA (dcembre 1996)


http://www.fil.univ-lille1.fr/~nebut/portail/svl/fichiers/tp/tpPathfinder/
tpPathfinder.pdf
Noyau d'un systme d'exploitation

Gnie informatique et gnie logiciel


Ecole Polytechnique de Montral

Chapitre 9 - 87

44