Académique Documents
Professionnel Documents
Culture Documents
Aimen Bouchhima
2021-2022
Plan
Ordonnancement temps-réel
Définition
Classification des ordonnanceurs
Ordonnaceur Cyclique
2 / 33
Processus/Thread/Tâche
3 / 33
Modèle de tâche temps-réel
c i,k
ri,k fi,k di,k
4 / 33
Tâche périodique
5 / 33
Tâche périodique : exemple
I Une tâche périodique à une structure régulière
I s’active périodiquement (chaque Ti )
I effctue un traitement
I se bloque en attendant la prochaine activation
6 / 33
Tâche périodique : représentation graphique
τ1
0 2 4 6 8 10 12 14 16 18 20 22 24
7 / 33
Tâche apériodique
I Une tâche apériodique n’est pas caractérisée par une période
I Le temps entre deux activations successives n’est pas connu à
l’avance
I On ne peut même pas garantir un temps minimal entre deux
activations successives
I Les tâches apériodiques peuvent modéliser
I La réponse à des évènements rares et imprévisibles qui
proviennet de l’environnement
I La réponse à des évènements irréguliers (exemple des paquets
venants du réseau)
τ1
0 2 4 6 8 10 12 14 16 18 20 22 24
8 / 33
Tâche sporadique
τ1
0 2 4 6 8 10 12 14 16 18 20 22 24 26
9 / 33
Criticité d’une tâche
10 / 33
Exemples
11 / 33
Définition d’un ordonnanceur
12 / 33
Architecture matérielle
I Dans la suite du cours, on distingue le cas uni-processeur (UP)
et le cas multi-processeur (Symetrical MultiProcessors SMP)
I L’architecture SMP est un cas particulier de MIMD (Multiple
Instruction Multiple Data) dans laquelle la mémoire est
accessible par tous les processeurs d’une façon uniforme
Bus Interconnection
13 / 33
Ordonnanceur Préemptif Vs Coopératif
14 / 33
Ordonnanceur Statique Vs Dynamique
15 / 33
Ordonnaceur Cyclique
16 / 33
Ordonnaceur Cyclique : exemple
On considère trois tâches périodiques τ1 , τ2 et τ3 à échéance sur
requête (Di = Ti )
Créneau Tâches
Tâche Ci (ms) Ti (ms)
1 {τ1 , τ3 }
τ1 10 25
⇒ 2 {τ1 , τ2 }
τ2 5 50
3 {τ1 }
τ3 13 100
4 {τ1 , τ2 }
∆ = 25, T = 100
Plannning
∆ T
17 / 33
Ordonnaceur Cyclique : Implémentation
I Exemple : implémentation sur micro-contrôleur
18 / 33
Ordonnaceur Cyclique : Avantages et Inconvénient
I Avantages
I Implémentation simple
I Simple appels de fonction
I Système d’exploitation non nécessaire
I Pas besoin de protéger les resources partagées par des mutex,
sémaphores,...
I Surcoût minimal lors de l’exécution (taille mémoire et latences)
I Plus facile à tester et valider (utilisé dans les systèmes
critiques)
I Inconvénients
I Implémentation simple
I Le temps d’exécution des tâche doit être connu avec précision
I Que se passe si une tâche n’arrive pas à terminer son
traı̂tement avant l’interruption TIMER ?
I Difficulté de gérer les tâches apériodiques et sporadiques
19 / 33
Ordonnaceur à priorité fixe
20 / 33
Exemples d’ordonnancement
I Exemple 1
Tâche Ci Ti pi
τ1 2 6 3
τ2 2 9 2
τ3 3 12 1
τ1
τ2
préemption
τ3
0 2 4 6 8 10 12 14 16 18 20 22 24
Tâche Ci Ti pi
τ1 2 6 1
τ2 2 9 2
τ3 3 12 3
τ3
τ2
τ1
0 2 4 6 8 10 12 14 16 18 20 22 24
23 / 33
Affectation optimale des priorités
24 / 33
Exercice
Ci Di Ti
τ1 3 6 6
τ2 2 4 8
τ3 2 12 12
0 2 4 6 8 10 12 14 16 18 20 22 24
25 / 33
Exercice (correction)
τ2
τ1
τ3
0 2 4 6 8 10 12 14 16 18 20 22 24
26 / 33
Test d’ordonnançabilité
27 / 33
Méthode 2 : Test basé sur l’utilisation du processeur
I On se place dans le cas monoprocesseur (UP)
I Chaque tâche utilise le processeur pendant une fraction Ui
Ci
Ui = T i
I l’utilisation totale du processeur U (charge du processeur)
P P Ci
U = Ui = Ti
I Si U > 1, alors sûrement l’ensemble de tâches n’est pas
ordonnançable
I Si U ≤ 1, l’ensemble de tâches peut être ordonnançable ou
non
I Etant donnée un algorithme d’ordonnancement, il existe un
seuil minimal limite d’utilisation du processeur Ulub (Least
Upper Bound) au dessous duquel on peut affirmer
l’ordonnançabilité
U ≤ Ulub ⇒ Ordonnançable
28 / 33
Méthode 2 : Test basé sur l’utilisation du processeur
n Ulub
2 0.828
3 0.779
4 0.756
5 0.743
6 0.734
... ...
∞ 0.69
29 / 33
Méthode 2 : Test basé sur l’utilisation du processeur
30 / 33
Méthode 3 : analyse des temps de réponses
31 / 33
Méthode 3 : analyse des temps de réponses
I Solution algorithmique:
I W0 = Ci
I W1 = F (W0 )
I W2 = F (W1 )
I ...
I Wk+1 = F (Wk )
I On s’arrête quand
I Wk+1 = Wk et Wk ≤ Di ⇒ ordonnaçable
I ou Wk > Di ⇒ non ordonnançable
32 / 33