SystemTR Part1
SystemTR Part1
SystemTR Part1
Types de contraintes:
Précision : effectuer certaines opérations à un
moment précis (horloge dont l'aiguille avance toutes
les secondes)
Temps de réponse : effectuer certaines opérations en
un temps maximum (système de freinage ABS) ou
avec un temps moyen (distributeur de billets)
Rendement : nombre de requêtes traitées par unité
de temps (robot de production dans une usine)
Caractéristiques importantes:
Prévisibilité
● pour déterminer a l'avance si un système va respecter ses contraintes
temporelles
● connaissance des paramètres lies aux calculs des activités
➢ temps global de calcul de chaque activité
➢ périodicité et gigue
➢ Préemptivité
● évaluation des performances dans le pire des cas
● pour définir le meilleur algorithme d'ordonnancement
Déterminisme
● but a atteindre pour prédire le comportement temporel du système
● temps réel dur : chercher a savoir si toutes les échéances de toutes les
activités seront respectées
● temps réel lâche : par exemple savoir quels seront les retards moyens
Systèmes temps réel 16
Système temps réel
Fiabilité
● du matériel
● tolérance aux fautes
● systèmes embarqués
Architecture mono-tâche:
● Un système temps-réel à une seule tâche est simple à
définir. Il suffit de répéter indéfiniment la suite de
tâches :
➢ Attendre un stimulus
➢ Agir en fonction du stimulus
● Le dimensionnement du processeur dépend du
temps de réponse souhaité.
Exemples :
● Un distributeur automatique
● Une carte à puce
Systèmes temps réel 18
Système temps réel
Architecture multi-tâches:
Plusieurs problèmes se posent lorsque plusieurs tâches
s'exécutent simultanément :
● accès au processeur
● accès concurrent à la mémoire
● accès aux périphériques
Il faut prévoir un ordonnancement permettant au système
de remplir son rôle
Priorités:
Les priorités permettent d'organiser les tâches
Elles peuvent être statiques ou dynamiques
Dans un système temps-réel, en général
o une tâche n'est jamais bloquée par une tâche de
moindre priorité (inversion de priorité)
o une tâche ne cède la main à une tâche de même
priorité que volontairement (prix du changement
de contexte)
Le système Unix n'est pas temps-réel à la base
Microsoft Windows n'est pas temps-réel
Ordonnancement:
● On peut prévoir le comportement d'un système si on connaît
certaines caractéristiques des tâches :
➢ loi d'arrivée
➢ temps de traitement
● Méthodes :
➢ algorithmes statiques : table d'exécution ou analyse « rate
monotonic »
➢ algorithmes dynamiques
● Ordonnancement optimal
Algorithme qui produit un ordonnancement pour tout ensemble
de tâches ordonnançables (si un algorithme le fait, lui le fait aussi)
● Test d’ordonnancement
Formule qui fournit une condition nécessaire et/ou suffisante
pour qu’un algorithme satisfasse les contraintes temporelles d’un
ensemble de tâches
● Test d’admission
Formule qui vérifie que l’ajout d’une nouvelle tâche préserve le
respect des contraintes temporelles de l’ensemble de tâches
précédent
● r : date de réveil
moment du déclenchement de la 1ère requête d'exécution
● C : durée d'exécution maximale (capacité)
● D : délai critique
➢ délai maximum acceptable pour son exécution
● P : période (si tâche périodique)
● d = r+D : échéance (si tâche à contraintes strictes)
● tâche périodique : rk = r0 + k*P
➢ si D = P, tâche à échéance sur requête
P P
D
r0 C d0 r1 d1 r2 temps 25
Systèmes temps réel
Notations
● paramètres statiques
➢ U = C/P : facteur d'utilisation du processeur
➢ CH = C/D : facteur de charge du processeur
● paramètres dynamiques
➢ s : date du début de l'exécution
➢ e : date de la fin de l'exécution
➢ D(t) = d-t : délai critique résiduel à la date t (0 ≤ D(t) ≤ D)
➢ C(t) : durée d'exécution résiduelle à la date t (0 ≤ C(t) ≤ C)
➢ L = D-C : laxité nominale de la tâche
✔ retard maximum pour son début d'exécution s (si elle est seule)
➢ L(t) = D(t) - C(t) : laxité nominale résiduelle
✔ retard maximum pour reprendre l'exécution
➢ TR = e - r : temps de réponse de la tâche
➢ CH(t) = C(t)/D(t) : charge résiduelle (0 ≤ CH(t) ≤ C/P)
26
Systèmes temps réel
Notations
● paramètres statiques
➢ U = C/P : facteur d'utilisation du processeur
● Caractéristiques du système
➢ N : nombre de tâches périodiques
➢ U = ∑ Ui = utilisation globale du processeur
● Opérateurs
➢ Plafond ⎡x⎤ (x si x est entier sinon l’entier supérieur)
➢ Plancher ⎣x⎦ (x si x est entier sinon l’entier inférieur)
27
Systèmes temps réel
Caractéristiques des tâches
● préemptibles ou non
● dépendance ou indépendance
➢ ordre partiel prédéterminé ou induit
➢ partage de ressources
● priorité externe
➢ ordonnancement hors ligne déterminé à la conception
● gigue (jitter) maximale
➢ variation entre la requête et le début de l'exécution
● urgence ↔ échéance
● importance
28
Systèmes temps réel
Caractéristiques des tâches
Définitions
● configuration : ensemble de n tâches mises en jeu par
l'application
➢ facteur d'utilisation du processeur
➢ facteur de charge
C C
D D
T T
Temps
34
Systèmes temps réel
Ordonnancement
35
Systèmes temps réel
Ordonnancement
36
Systèmes temps réel
Ordonnancement
40
Systèmes temps réel
TRAITEMENT DES TÂCHES
indépendantes
41
Systèmes temps réel
Exemple d’algorithme statique:
Ordonnancement piloté par une table
● Le modèle de l’application:
➢ une séquence est une procédure définie par user; unité
de base de l’application
➢ processus: suite ordonnée de séquences qui s’exécutent
consécutivement dans leur ordre de déclaration
➢ l’ordonnancement des processus est régit par un
calendrier et suivant une table
➢ le nombre de séquences, de processus, et de calendriers
est fixé à l’initialisation du système
➢ les processus sont indépendants les uns des autres
➢ l’ordonnancement des processus est régi par horloge
➢ Le découpage en séquences élémentaire non
interruptibles assure la protection des données partagées
entre les processus
42
Systèmes temps réel
Exemple d’algorithme statique:
Ordonnancement piloté par une table
Cycle mineur = 25 44
Systèmes temps réel
Exemple d’algorithme statique:
Ordonnancement piloté par une table
● Généralement
➢ Cycle mineur (Cm) inférieur ou égale à chacune des
périodes des processus
✘ pas de contraintes sur le placement des instructions d’un
processus dans le Cm
P1
P1 P2
P2 P3
P3 P5
P5 P1
P1 P2
P2 P4
P4 P5 P1
P1 P2
P2 P3 P5
P3 P1
P1 P2
P2 P4
P4
10
10 88 55 22 10
10 88 44 32 10
10 88 55 2 10
10 88 44 33
IT horloge
IT horloge IT horloge
IT horloge IT horloge
IT horloge IT horloge
IT horloge IT horloge
IT horloge
● Hypothèses
➢ Tâches périodiques
● Principe
➢ Cycle majeur = PPCM des périodes
● Avantages
➢ Mise en œuvre efficace
➢ Pas besoin d’exclusion mutuelle entre tâches
● Inconvénients
➢ Manque de flexibilité
➢ Impact d’une tâche supplémentaire
➢ Traitement des tâches apériodiques
➢ Construction difficile de la table
➢ La découpe constitue un problème complexe dès lors qu’il
faut prendre en compte les contraintes temporelles, les
ressources partagées, et les tâches apériodiques
47
Systèmes temps réel
Ordonnancement par priorité statique
Rate Monotonic Scheduling
● méthode d’affectation hors ligne de priorité statiques à
un ensemble de tâches
● critères retenus:
➢ les tâches sont périodiques et sont à l’état PRÊT au début
de chaque période
✔ Échéance en fin de période (Di = Ti)
48
Systèmes temps réel
Ordonnancement par priorité statique
Rate Monotonic Scheduling
● Principe
➢ Une activation de tâche réveille l’ordonnanceur
➢ Il choisit la tâche éligible de plus courte période
49
Systèmes temps réel
Ordonnancement par priorité statique
Rate Monotonic Scheduling
● Le taux d’utilisation du processeur
n
durée i
U
i 1 periode i
Soit une tâche i ayant une période Ti, un temps d’exécution Ci,
et une échéance Di, si Di=Ti
i Cj 1i
i , 1 i n , Ui i 2 1
j 1 Tj
Condition suffisante mais pas nécessaire
Formule utile : indique l’ensemble des tâches qui ne seront
pas perturbées en cas de surcharge
Les tâches d’un système ne sont pas toujours critiques
On peut créer des tâches critiques selon cette formule
50
puis ajouter des traitements moins importants
Systèmes temps réel
Ordonnancement par priorité statique
Rate Monotonic Scheduling
Pour i=n, cette condition d’ordonnançabilité est
suffisante mais pas nécessaire, [Liu et Layland,
1979] n C
1
Un j
n 2 n 1
j 1 Tj
n Cj n1
Condition suffisante U n n 2 1
j 1 Tj 52
Systèmes temps réel
Ordonnancement Rate Monotonic
Analysis ( RMA)
● Résumons:
➢ Algorithme à priorité constante
➢ Basé sur la période (tâches à échéance sur
requête) :
✔ La tâche de plus petite période est la plus
prioritaire
➢ Test d'acceptabilité (condition suffisante)
n Cj n1
Un n 2 1
j 1 Tj
53
Systèmes temps réel
Ordonnancement Rate Monotonic
Analysis ( RMA)
Exemple de l’analyse RM
● Soit une application composée de 3 tâches
périodiques P1, P2, P3, caractérisées par les durées
d’exécution C1, C2, C3, et les périodes d’activation T1,
T2, T3
T1 20, T 2 5, T 3 10 C1 3, C 2 2, C 3 2
T1 20, T 2 5, T 3 10 C1 3, C 2 2, C 3 2
T1
0 4 5 7 9 20
T2
0 2 5 7 10 12 15 17 20
T3
0 2 4 10 12 14 20
0 2 4 5 7 9 10 12 14 15 17 20 55
Systèmes temps réel
Ordonnancement Rate Monotonic
Analysis ( RMA)
Question tester la condition d'acceptabilité du RMA, et
ordonner les priorités des tâches
T1 20, T 2 15, T 3 36 C1 2, C 2 4, C 3 12
56
Systèmes temps réel
Ordonnancement Deadline Monotonic
Analysis (DMA)
plus prioritaire
● Test d'acceptabilité (condition suffisante)
n Cj n1
Un n 2 1
j 1 Tj
● Équivalent à RMA dans le cas des tâches à
échéance sur requête, meilleur dans les
autres cas 57
Systèmes temps réel
Ordonnancement Deadline Monotonic
Analysis (DMA)
Exemple de l’analyse DM
● T1(r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4,
P=5), T3 (r0 = 0, C=2, D=9, P=10)
• Question: tester la condition d'acceptabilité du
DMA, et ordonner les priorités des tâches
Prio2 > Prio1 > Prio3
T1
0 2 5 7 20
T
2
0 2 4 5 7 9 10 12 14 15 17 19 20
T
3
0 7 9 10 12 14 19 20
59
Systèmes temps réel
ordonnancement Earliest Deadline
First (EDF)
● Algorithme à priorité variable
● Basé sur l'échéance
➢ À chaque instant (i.e à chaque réveil de tâche),
n Cj n1
➢ Condition suffisante U n T n 2 1
j 1 j
60
Systèmes temps réel
ordonnancement Earliest Deadline
First (EDF)
Exemple
T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2,
D=4, P=5), T3 (r0 = 0, C=2, D=8, P=10)
• Question: tester la condition d'acceptabilité du RM,
et ordonner les priorités des tâches
T
1
0 2 5 7 20
T
2
0 2 4 5 7 8 9 10 12 14 15 17 19 20
T
3
0 5 7 8 10 12 14 18 20
61
Systèmes temps réel
Ordonnancement Least Laxity First
(LLF)
● algorithme à priorité variable
● aussi appelé Least Slack Time (LST)
● basé sur la laxité résiduelle
➢ la priorité maximale est donnée à la tâche qui a
63
Systèmes temps réel
Ordonnancement Least Laxity
First (LLF)
Exemple T1 (r0 = 0, C=3, , D=7, P=20), T2 (r0 = 0, C=2, D=4,
P=5), T3 (r0 = 0, C=2, D=8, P=10)
T1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T
2
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
T
3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
64
Systèmes temps réel
EXERCICES
65
Systèmes temps réel
Exercice 1
66
Systèmes temps réel
Exercice 1
67
Systèmes temps réel
Exercice 2
68
Systèmes temps réel
Exercice 3
69
Systèmes temps réel
Exercice 4
70
Systèmes temps réel
Exercice 4
71
Systèmes temps réel
Exercice 4
72
Systèmes temps réel
Exercice 5
73
Systèmes temps réel
Exercice 5
74
Systèmes temps réel
Exercice 6
75
Systèmes temps réel
Exercice 7
76
Systèmes temps réel