Ordonnancement des processus en temps réel
Ordonnancement des processus en temps réel
Ordonnancement
Obtention des tests de faisabilité entre processus
Analyse de l'interaction entre processus
Inclusion de processus apériodiques
Vers une meilleure maîtrise du temps
Objectifs :
Nous présentons les mécanismes spécifiques qui permettent de prévoir
avec plus d'exactitude le comportement temporel d'un système.
Nous étudions les méthodes d'ordonnancement temps réel.
Ordonnancement /définitions
C'est lors de l'ordonnancement que l'on choisit la tâche qui devient la tâche
courante.
Dans les systèmes temps réel, on espère collecter des informations a priori
pour pouvoir prédire le comportement de l'application.
C'est pourquoi des ordonnancements hors fonctionnement (off line)
prennent les décisions avant l'exécution du système.
Si cela est possible, on a recourt à des algorithmes en ligne (on line) qui
prennent les décisions durant l'exécution du système.
Ordonnancement hors-ligne
La séquence d'ordonnancement est donc pré-calculée avant l'exécution.
A l'exécution, l'ordonnanceur est un simple séquenceur : on parle de cyclic
scheduler
Le séquenceur lit un tableau "modulo la longeur" : pas besoin d'exécutif
multitâche
La mise en œuvre est simple
La surcharge est facilement détectable
1 2 3 4 5 6 7
T1 T1 Nop T2 T3 T1 T2
t=19 (19mod7)=5
Ordonnancement en ligne
Des études ont été menées pour trouver des critères associés aux tâches
pouvant conduire à une politique d'ordonnancement optimale dans certains
cas.
S'il existe un ordonnancement d'un ensemble de tâches qui respecte les
contraintes temporelles associées à ces tâches, alors l'ensemble des tâches
est dit faisable.
Un ordonnancement optimal est un ordonnancement qui peut produire un
ordonnancement pour tout ensemble faisable de tâches.
Critères liés aux tâches
Les tâches périodiques sont celles qui doivent être activées à intervalles
réguliers. Les instants de début d'exécution peuvent varier d'une instance à
l'autre.
Capacité
Deadline
T : période
Exemple :
Fluide 2 Fluide 1
Réacteur
Modélisation du problème :
T C Fluide 2 Fluide 1
P1 100 20
P2 150 40 Réacteur
P3 350 100
P1
P2
P3
T C Fluide 1
P1 100 20
P2 150 40 Réacteur
P3 350 100
P1
P2
P3
T C Fluide 2
P1 100 20
P2 150 40 Réacteur
P3 350 100
P1
P2
P3
T C
P1 100 20
P2 150 40 Réacteur
P3 350 100
P1
P2
P3
T C Fluide 1
P1 100 20
P2 150 40 Réacteur
P3 350 100
P1
P2
P3
T C Fluide 2
P1 100 20
P2 150 40 Réacteur
P3 350 100
P1
P2
P3
T C
P1 100 20
P2 150 40 Réacteur
P3 350 100
P1
P2
P3
T C
P1 100 20
P2
P3
150
350
40
100
!
P1
P2
P3
Capacité
Deadline
A A+?
Les algorithmes
T C D
P1: 25 10 25
P2: 25 8 25
P3: 50 5 50
P4: 50 4 50
P5: 100 2 100
Définir :
un cycle majeur PPCM = (25,50,100)=100
un cycle mineur qui correspond au rythme des interruptions d'horloge.
T C D
P1: 25 10 25
P2: 25 8 25
P3: 50 5 50
P4: 50 4 50
P5: 100 2 100
P1 P2 P3P5 P1 P2 P4 - P1 P2 P3 - P1 P2 P4 -
10 8 5 2 10 8 4 3 10 8 5 2 10 8 4 3
IT horloge IT horloge IT horloge IT horloge
25
Mais, il est très utilisé dans les systèmes critiques, en particulier les
systèmes aéronautiques ou les systèmes de défenses.
Les algorithmes de décisions en ligne
Dans les modèles statiques, on utilise une transformation hors ligne des
contraintes temporelles en entiers fixes représentant les priorités.
Dans les modèles dynamiques, la priorité évoluera en fonction du temps.
Plan
Ordonnancement
Obtention des tests de faisabilité entre processus
Analyse de l'interaction entre processus
Inclusion de processus apériodiques
Obtention de tests de faisabilité d'ordonnancement
n
U= durée i / Période i
i=1
1,000
0,970
0,940
Taux d'utilisation
0,910
0,880
0,850
0,820
0,790
0,760
0,730
0,700
1 2 3 4 5 6 7 8 9 10
Û 1,000 0,828 0,780 0,757 0,743 0,735 0,729 0,724 0,721 0,718
Nombre de tâches
Exemple pour RM :
T C
P1 100 20
P2 150 40
P3 350 100
Exemple pour RM :
T C
P1 100 20
P2 150 40
P3 350 100
Ci
Ui
nn
Ci
Ui TiTi
i11
i
U i 20 40 100 0.753
100 150 350
Exemple pour RM :
T C
P1 100 20
P2 150 40
P3 350 100
11
i i 1
i2
UUiii
2 1
T C
P1 100 20
P2 150 40
P3 350 100
On a bien, U0,7530,779
i
T C
P1 100 20
P2 150 40
P3 350 100
P1
P2
P3
T C
P1 100 20
P2 150 40
P3 350 100
P1
P2
P3
T C
P1 100 20
P2 150 40
P3 350 100
P1
P2
P3
T C
P1 100 20
P2 150 40
P3 350 100
P1
P2
P3
T C
P1 100 20
P2 150 40
P3 350 100
P1
P2
P3
P1
P2
P3
T C
P1 100 20
P2 150 40
P3 350 100 60
P1
P2
P3
T C
P1 100 20
P2 150 40
P3 350 100 60
P1
P2
P3
T C
P1 100 20
P2 150 40
P3 350 100 60
P1
P2
P3
T C
P1 100 20
P2 150 40
P3 350 100 30
P1
P2
P3
P1
P2
P3
T C
P1 100 20
P2 150 40
P3 350 100 30
P1
P2
P3
P1
P2
P3
T C
P1 100 20
P2 150 40
P3 350 100
P1
P2
P3
P
1
P
2
P
3
0 20 60
20 60 80
Exemple pour RM :
P
1
P
2
P
3
Utilisation du modulo.
Remarques :
La condition de faisabilité est très restrictive puisque dans l'exemple
précédent, nous étions limités à utiliser le processeur à 77,9 % de sa
capacité totale.
Mais notre but est de l’utiliser au maximum de ses capacités et cela en toute
sécurité.
Quelques précisions :
On néglige le temps de communication et d'ordonnancement.
Elles sont indépendants les unes des autres.
La capacité de chaque tâche est connue.
ID Depart C T
T1 3 20
T2 2 5
T3 2 10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
T2 T2 T3 T3 T1 T2 T2 T1 T1 nop T2 T2 T3 T3 nop T2 T2 nop nop nop
T1 T1 T1 T1
T2 T2 T2 T2 T2 T2 T2 T2 T2
T3 T3 T3 T3 T3
RM Cas d'échec
ID Depart C T D
T1 1 3 3
T2 1 4 4
T3 2 6 3
1 2
T1 T2 T3
T1 T1
T2 T2
T3 T3
0 : T1 est
1 :déclenchée
T1 Finie
2 : T2
son
Finie
pour
exécution
la
son
:1 exécution
fois
N°1 N°1
0 : T2 est
1 :déclenchée
T2 s'exécute
2 : T3 DEADLINE
pour la :1 fois
DEPASSEE de2
i
i, 1 i n min C j / t * t / T j 1
0<t<Di j=1
i
Soit W i(t) = C j * t / T j
j=1
33==300/100
300/100
P1
P2
P3
Pi T C
P1 100 40
P2 150 40 U = 0.779,
P3 350 100 Mais on va montrer que l'exemple
répond au théorème de la zone critique.
600
500
400 Série1
Série2
300
Série3
200 Série4
100
0
1 30 59 88 117 146 175 204 233 262 291 320 349 378
Autre algorithme : inverse deadline
ID Depart C T D
T1 3 20 7
T2 2 5 4
T3 2 10 9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
T1 T1 T1 T1
T2 T2 T2 T2 T2 T2 T2 T2 T2
T3 T3 T3 T3 T3
Ordonnancements dynamiques
T C
P1 6 2
P2 8 2
P3 12 3
6 8 12 16 18 24
Exemple LLF Least Laxity Fisrt
T C
P1 6 2
P2 8 2
P3 12 3
La marge = Échéance - durée restante de traitement - temps courant
6 8 12 16 18 24
Exemple
T D C ML
T1 3 3 1 =Deadline-C_restante
T2 4 4 1
T3 6 3 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
T3 T1 T3 T2 T1 T2 T3 T1 T3 T1 T2 nop T3 T1 T3 T2 T1 T2 T3 T1
T1 T1 T1 T1 T1 T1 T1 T1
T2 T2 T2 T2 T2 T2
T3 T3 T3 T3 T3 T3 T3 T3
n
Ui = C i / T i 1
i=1
Optimalité de l'algorithme d'ordonnancement EDF
Ordonnancement
Obtention des tests de faisabilité entre processus
Analyse de l'interaction entre processus
Inclusion de processus apériodiques
Rappels
la communication et la synchronisation
Analyse de l'interaction entre processus
j1 S
j2
fin
S S S
j3
j3j3démarre
démarreààtps=0
tps=0
t0 Rés
+ Prioritaire
j1 2 S(2)
j2 7
Inversion de Priorité
0 1 2 4 5 6 7 8 10 12 14 15 16
j1 S
j2
fin
S S S
j3
j3j3demande
demandeSSààtps=1
tps=1
t0 Rés
+ Prioritaire
j1 2 S(2)
j2 7
Inversion de Priorité
0 1 2 4 5 6 7 8 10 12 14 15 16
j1 S
j2
fin
S S S
j3
j1j1démarre
démarreààtps=2
tps=2
t0 Rés
+ Prioritaire
j1 2 S(2)
j2 7
Inversion de Priorité
0 1 2 4 5 6 7 8 10 12 14 15 16
j1 S
j2
fin
S S S
j3
j1j1demande
demandeSSqui
quiest
estpris
prispar
parj3j3donc
doncililest
estbloqué
bloquéet
et
redonne
redonnelalamain
mainààj3j3
t0 Rés
+ Prioritaire
j1 2 S(2)
j2 7
Inversion de Priorité
0 1 2 4 5 6 7 8 10 12 14 15 16
j1 S
j2
fin
S S S
j3
À t=7, j2 démarre son exécution et
finit à t=10
t0 Rés
+ Prioritaire
j1 2 S(2)
j2 7
Inversion de Priorité
0 1 2 4 5 6 7 8 10 12 14 15 16
j1 S
j2
fin
S S S
j3
À t=10, j2 finit son exécution
et
redonne la main à j3
t0 Rés
+ Prioritaire
j1 2 S(2)
j2 7
Inversion de Priorité
0 1 2 4 5 6 7 8 10 12 14 15 16
j1 S
j2
fin
S S S
j3
A t=12, j3 relâche S et
j1 profite pour récupérer S qu'elle avait demandé
t0 Rés
+ Prioritaire
j1 2 S(2)
j2 7
Inversion de Priorité
0 1 2 4 5 6 7 8 10 12 14 15 16
j1 S
j2
fin
S S S
j3
t0 Rés
+ Prioritaire
j1 2 S(2)
j2 7
Inversion de priorité
0 1 2 4 5 6 7 8 10 12 14 15 16
j1 Durée
Durée ?? S
j2
fin
S S S
j3
t0 Rés
+ Prioritaire j1 2 S(2)
j2 7
Solutions à l'inversion de priorité
Une tâche ne doit pas être préemptée systématiquement si elle est en
section critique.
Cette solution est acceptable pour des accès courts. Sinon le système
créera des situations d'inversion de priorité fréquentes et inutilement
longues.
Méthode de l'héritage de priorité (priority inherance).
Le système effectue une gestion dynamique de priorité. L'idée est de
rajouter aux sémaphores la notion de possesseurs.
Héritage de priorité
T1 demande S Fin T1
Fin T2
Fin T3
T3 relâche S
?
Autre exemple
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
1
2
3
4
5
j4j5demande
j1
les demande
démarre.
tâches
j2 Squi
j4 demande
1Vet 2 ne
est
Spartagent
qui
prisest
donc par
j5pris
j4.j4
aucune
par
bloquebloque
[Link].
j4 j5 donc
qui bloque
j1 Déroulement
bloque j2
et et
hérite
hérite
j1,donc saest
j1 sa
priorité.
normale
priorité.
bloqué jusqu’à la fin.
par j5 qui hérite sa priorité (phénomène de Transitivité).
j5 prend la main puis libère S à tps=11.
taches ri ei pi Sections critiques
j1 7 3 1 [V;1]
j2 5 3 2 [S;1]
j3 4 2 3
j4 2 6 4 [V;2,5[S;1,5]]
j5 0 6 5 [S;4]
Partage de plusieurs ressources : les inter-blocages possibles
T1 démarre
P(S2) P(S1)
T2 démarre T2 bloquée
Solutions
T1 Prêt
T2 démarre
Solution : Héritage par la méthode du plafond de priorité
P(S2) V(S1)
P(S1) refusé
T1<=Plafond P(S1) V(S2)
T1 démarre
P(S2) héritage
Plafond = Max(T1,T2)=T1
Exemple
0 1 2 4 6 8 10 12 14 16 18 20
1
2
3
4
5
1
2=П(t)
P4< P1>
3
4
5
?
Comparaison
0 2 4 6 8 10 12 14 16 18 20
1
2
3
4
5
1
2
3
4
5
Plan
Ordonnancement
Obtention des tests de faisabilité entre processus
Analyse de l'interaction entre processus
Inclusion de processus apériodiques
Inclusion de processus apériodiques
On peut penser à interrompre les tâches périodiques pour faire passer les
tâches apériodiques jusqu'à ce que celles ci se terminent. Mais on peut
mettre en péril l'ordonnancement.
On peut affecter la priorité la plus basse aux tâches apériodiques. Cette
solution n'offre qu'un temps de réponse moyen aux tâches apériodiques.
Les serveurs
On affecte un processus périodique en charge de contrôler les taches
apériodiques en leur offrant la possibilité d'exécuter leur activité au niveau
de priorité requis.
Les méthodes existantes
Le serveur par scrutation (polling server)
le serveur différé (deferabe serveur)
Serveur par scrutation
T C
P1 10 2 t C
P2 15 6 e1 2 1.5
S 5 2 e2 6 2
e1 e2
0.5
2 5 6 10 11.5 13.5
On fournit une ressource privée (une tâche fictive) à l'usage exclusif des
tâches apériodiques.
On crée une tâche périodique DS, de capacité Cds et de période Tds qui
servent à définir sa priorité selon la méthode RM.
Si toutes les tâches apériodiques sont traitées avec moins de capacité, on
abandonne plus tôt la tâche DS (la capacité non utilisée est alors perdue).
Exemple
ID Depart C T D
T1 3 20 20
T2 2 10 10
Ta1 4 2
Ta2 10 1
Ta3 11 2
serveur 2 5 5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
T2 T2 T1 T1 T1 Ta1 Ta1 nop nop nop Ta2 Ta3 T2 T2 nop Ta3 nop nop nop nop
T1 T1 T1 T1
T2 T2 T2 T2 T2
Ta1 Ta1 Ta1
Ta2 Ta2
Ta3 Ta3 Ta3
serveur
Exemple
T C
P1 6 2 t C
P2 8 3 e1 1 .5
Ds 5 1 e2 7 2
e3 14 1
e1 e2 e3
Épuisement Renouvellement
de DS de DS
Serveur périodique et ordonnancement dynamique EDF
T C t C
P1 6 2 e1 1.5 .5
P2 8 3 e2 6 2
Ds 4 1
Arrive e2 et EDF plus gd
e1 e2
Épuisement
de DS
Renouvelement
de DS
Serveur sporadique
ID Depart C T D
T1 3 20 20
T2 2 10 10
Ta1 4 2
Ta2 10 1
Ta3 11 2
serveur 2 5 5
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
T2 T2 T1 T1 Ta1 Ta1 T1 nop nop nop Ta2 Ta3 T2 T2 nop Ta3 nop nop nop nop
T1 T1 T1 T1
T2 T2 T2 T2 T2
Ta1 Ta1 Ta1
Ta2 Ta2
Ta3 Ta3 Ta3
serveur
Résumé : Rate Monotonic
Dynamique
Test : charge totale < 100%
Entraîne le moins de changements de contexte
EDF est optimal car on peut transformer tout ordonnancement arbitraire en
ordonnancement EDF.
EDF peut être augmenté pour prendre en compte les situations de blocage
et les événements apériodiques.
Meilleur algorithme quand la loi d'arrivée des tâches est quelconque et
quand on ne connaît par leur capacité.
Exercice 1
Pi T C
T1 4 2
P2 10 5
Ces deux tâches sont elles ordonnançables par l'analyse Rate Monotonic ?
Sont elles ordonnaçables par EDF ?
Exercice 2
On considère un système constitué de trois tâches périodiques définies par :
Pi T C D
T1 100 20 100
P2 150 78 150
P3 160 30 145
On applique d'abord l'analyse Rate Monotonic sur les tâches. Grâce au test de
terminaison, calculer l'instant auquel la tâche3 termine sa première exécution.
Respecte-t-elle son échéance ?
On classe maintenant les trois tâches en fonction de leurs échéances (analyse
deadline Monotonic). Utiliser le test suffisant de l'analyse RM pour prouver que les
tâches 1,3 sont ordonnançables ( on considère que la tâche C subit un blocage E3
égal à T3-D3.
Plan :
Introduction
I) De la théorie à la pratique
II) Mise en œuvre du simulateur
1) Modélisation des tâches
2) Gestion des priorités Java
3) Problèmes engendrés par l’OS
4) Démonstration du simulateur.
Conclusion
Le cœur du scheduler :
1ère idée :
Problème : !
Si le nombre de tâches est supérieur au nombre de priorités…
Gestion de priorité (2) :
Max
Java scheduler
virtuel Middle
machine T1 T2 T3 T4 Min
Gestion de priorité (4) :
priorité
Max
Java scheduler
virtuel Middle
machine T1 T2 T3 T4 Min
Gestion de priorité (5) :
priorité
Max
Java scheduler
virtuel Middle
T2
machine T1 T3 T4 Min
Gestion de priorité (7) :
priorité
Sleep Max
Java scheduler
60 ns
virtuel Middle
T2
machine T1 T3 T4 Min
Gestion de priorité (8) :
priorité
Max
Java scheduler
virtuel Middle
T2
machine T1 T3 T4 Min
Gestion de priorité (9) :
priorité
Max
Java scheduler
virtuel Middle
T2
machine T1 T3 T4 Min
Gestion de priorité (10) :
priorité
Max
Java scheduler
virtuel Middle
machine T1 T2 T3 T4 Min
Annexe Inversion de Priorité
0 1 2 4 5 6 7 8 10 12 14 15 16
j1 S
j2
fin
S S S
j3
À t=7, j2 A démarre
t=12, j3 relâche S et et
son exécution
j1 S
profiteÀÀ t=10,j2
t=15,
pour finit son
j1finit
récupérer Sson exécution
exécution
qu'elle etet laisse
avait demandé
j1j1j3j3 démarre
j3 finit
demande
démarre à
demande
j1
j3 demande
demande
ààtps=0
t=10
démarre
S qui à
tps=0
j1 démarre
S quiSestà
esttps=1
tps=2
pris
ààtps=1 par
tps=2
pris j3 donc
par j3 donc il est bloqué
il estàbloquéet
et
redonne
redonne la main
j3 finir j3
elle aussi.
redonnelalamain mainààj3j3
t0 Rés
+ Prioritaire
j1 2 S(2)
j2 7