Cours Systèmes Temps Réel

64
Systèmes temps réel Pr. Ismail LAGRAT A.I.A.C 2012-2013 1 I.Lagrat AIAC 2012/2013

description

Cours Systèmes Temps Réel

Transcript of Cours Systèmes Temps Réel

Page 1: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 1

Systèmes temps réel

Pr. Ismail LAGRATA.I.A.C 2012-2013

Page 2: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 2

Problématique

Certains problèmes sont très liés au temps :

• un distributeur de billets ne doit pas mettre 5 minutes à délivrer les billets

• une balance ne doit pas peser en 30 secondes• un radar ne doit pas mettre 2 secondes à réagir• un système de freinage ABS ne doit pas mettre

plus de 150ms pour acquérir l'information et 1s pour réagir

Page 3: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 3

qu’est-ce qu’un système temps réel ?comment vérifier a priori le comportement

• ordonnancementcomment implémenter le comportement

• les outils de programmation concepts mis en jeu:

• gestion du temps• gestion des interruptions• interaction avec l'utilisateur

Page 4: Cours Systèmes Temps Réel

4

• système temps réel : qui doit fournir un service dans un contexte où le temps intervient

o évolution du système (système réactif)o contraintes de temps (échéances)

• par opposition aux systèmes interactifs ou transformationnels

• systèmes embarqués :o autonomes, avec un fort couplage entre le matériel

et le logicielo utilisation dans un but très préciso souvent inclus dans un système plus vasteo ~ 90% du marché des processeurs

I.Lagrat AIAC 2012/2013

Page 5: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 5

• non seulement des résultats exacts• mais aussi fournis dans un temps donné,

compatible avec l'évolution du système– l'échelle de temps dépend du système

o de quelques millisecondes pour un système de navigation aérienne

o à plusieurs minutes ou heures pour le contrôle d'un réacteur chimique

• dans un système temps réel, un résultat de calcul mathématiquement exact mais arrivant au delà d'une échéance prédéfinie est un résultat faux

Page 6: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 6

Problématiques Temps Réel

• Garantir qu'un événement se produit à une date donnée, ou avant une échéance donnée

– Contraintes périodiques : le service doit être rendu selon un certain rythme e.g. toutes les X ms

– Contraintes ponctuelles : lorsque l'évt Y se produit, il doit être traité dans un tps limité

• Garantir qu'un évt A se produit avant un évt B• Garantir qu'aucun évt externe à l'application TR ne retardera les

processus importants• Garantir qu'un ordonnancement entre plusieurs tâches est

effectivement possibleCauses de ces problématiques:– E/S hardware– Journalisation de données– E/S utilisateur– Exécution de tâches de fond

Page 7: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 7

Page 8: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 8

Le temps intervient dans la correction (validité) du programme :

• réagir en un temps adapte aux événements externes,• fonctionnement en continu sans réduire le débit du flot

d'informations traite,• temps de calculs connus et modélisables pour permettre

l'analyse de la réactivité.• Latence maitrisée. Outils :horloges matérielles, interruptions, etc.style de programmation adaptes : multitâches, événements,langages spécifiques (langages synchrones, etc.)outils de modélisation : logique temporelle, réseaux de Pétri,etc.

Problématiques Temps Réel

Page 9: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 9

Mécanismes de base : le processeur

Page 10: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 10

Mécanismes de base : les interruptions

Page 11: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 11

Mécanismes de base : les déroutements

Page 12: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 12

Mécanismes de base : les entrées/ sorties

Page 13: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 13

Mécanismes de base : les déroutements

Page 14: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 14

Mécanismes de base : les déroutements

Page 15: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 15

Caractéristiques du Système temps-réel: exactitude logique (comme tout système) : les sorties sont

déterminées en fonction des entrées et de l'état interne exactitude temporelle : les sorties sont positionnées au bon

momentLes types de temps-réel: Temps-réel mou : un retard dans l'obtention du résultat n'est pasdramatique (distributeur de billets) Temps-réel dur : un retard dans l'obtention du résultat le rendinutile (détection de missile) Temps-réel ferme : un retard, s'il arrive très peu souvent, peut

êtretoléré (téléphonie)

La plupart des systèmes temps-réel sont hybrides.

Système temps réel

Page 16: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 16

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)

Système temps réel

Page 17: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 17

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ème temps réel

Page 18: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 18

Fiabilité• du matériel• tolérance aux fautes• systèmes embarqués

Système temps réel

Page 19: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 19

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ème temps réel

Page 20: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 20

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ériquesIl faut prévoir un ordonnancement permettant au système de remplir son rôle

Système temps réel

Page 21: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 21

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éralo 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

Système temps réel

Page 22: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 22

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 (HPF, EDF, LLF, best

efort)

Système temps réel

Page 23: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 23

Ordonnancement Temps Réel

Page 24: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 24

Introduction

• Tâches temps réel soumises à des contraintes de temps, plus ou moins strictes– instant de démarrage– instant de fin– absolus ou relatifs à d'autres tâches

• le but de l'ordonnancement est de permettre le respect de ces contraintes, lorsque l'exécution se produit dans un mode courant

• il doit permettre de borner les effets d'incidents ou de surcharges

Page 25: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 25

Caractéristiques des tâches

● r : date de réveilmoment 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

Page 26: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 26

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

Caractéristiques des tâches

Page 27: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 27

● 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

Caractéristiques des tâches

Page 28: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 28

États d'une tâche

Courante

Bloquée

Inexistante

Prête

ff

f : abandon de la requête pour cause de faute temporelle

Passive

Page 29: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 29

Définitions● configuration : ensemble de n tâches mises en jeu par

l'application➢ facteur d'utilisation du processeur

➢ facteur de charge

● intervalle d'étude : intervalle de temps minimum pour prouver l'ordonnançabilité d'une configuration

➢ le PPCM des périodes dans le cas d'une configuration de tâches périodiques

● laxité du processeur LP(t) = intervalle de temps pendant lequel le processeur peut rester inactif tout en respectant les échéances

✔ laxité conditionnelle

(somme sur les tâches déclenchées à la date t et qui sont devant i du point de vue de l'ordonnancement)

✔ LP(t) = min(LCi(t))

Page 30: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 30

Buts de l'ordonnancement● piloter l'application avec 2 objectifs majeurs :

➢ en fonctionnement nominal : respect des contraintes temporelles

➢ en fonctionnement anormal (par exemple pannes matérielles) : atténuer les effets des surcharges et maintenir un état cohérent et sécuritaire

● ordonnancer = planifier l'exécution des requêtes de façon à respecter les contraintes de temps

➢ de toutes les requêtes en fonctionnement nominal➢ d'au moins les requêtes les plus importantes (c'est-

à-dire celles nécessaires à la sécurité du procédé) en fonctionnement anormal

Page 31: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 31

Typologie des algorithmes

● en ligne ou hors ligne➢ choix dynamique ou prédéfini à la conception

● préemptif ou non préemptif➢ une tâche peut perdre le processeur (au profit d'une tâche

plus prioritaire) ou non➢ algorithme préemptif ⇔ toutes les tâches préemptibles

● stratégie du meilleur effort ou inclémence➢ en TR mou, meilleur effort = faire au mieux avec les

processeurs disponibles➢ en TR dur, obligation des respecter les contraintes

temporelles : inclémence aux fautes temporelles

● centralisé ou réparti

Page 32: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 32

Ordonnancement des tâches

indépendantes

Page 33: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 33

Introduction● tâches indépendantes :

➢ pas de partage de ressources➢ pas de contraintes de précédence

● cas des algorithmes en ligne➢ dynamique➢ sur la base d'une priorité définie

✔ soit de manière empirique✔ soit à partir d'un paramètre temporel de la tâche

➢ priorité constante ou variable avec le temps➢ à priorité identique, on évite la préemption➢ test d'acceptabilité hors ligne si tous les

paramètres sont connus➢ sinon test de garantie au réveil des tâches

Page 34: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 34

tâches périodiques

Page 35: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 35

Rate Monotonic Analysis (RMA)● 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)

● quand n est très grand : n(21/n – 1) ~ ln 2 = 0,69● dans la pratique, on peut rencontrer des

ordonnancements valides qui vont jusqu'à 88%

Page 36: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 36

Rate Monotonic Analysis (RMA)

● exempleT

1 (r0=0, C=3, P=20), T

2 (r0=0, C=2, P=5), T

3 (r0=0, C=2,

P=10)

ordonnançable

0 5 7 10

12 15

17 20

2

T2

0 2 4 12 14 20

10

T3

T1

0 4 20

5 7 9

0 2 4 12 14

20

10

5 7 9 15

17

Prio2 > Prio

3 >

Prio1

Page 37: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 37

Deadline Monotonic Analysis (DMA)

● algorithme à priorité constante● basé sur le délai critique :

➢ la tâche de plus petit délai critique est la plus prioritaire

● test d'acceptabilité (condition suffisante)

● équivalent à RMA dans le cas des tâches à échéance sur requête, meilleur dans les autres cas

Page 38: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 38

Page 39: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 39

Earliest Deadline First (EDF)

● algorithme à priorité variable● basé sur l'échéance

➢ à chaque instant (i.e à chaque réveil de tâche), la priorité maximale est donnée à la tâche dont l'échéance est la plus proche

● test d'acceptabilité➢ condition nécessaire

➢ condition suffisante

Page 40: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 40

Earliest Deadline First (EDF)

● exempleT1 (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)

< 1

> 1

0

0

0

2 5

5

8

7

10

12

12

14

15 17

20

20

20

4

7

9

8 10

19

18

142 5 7

T1

T2

T3

chronogramme

Page 41: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 41

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 la plus petite laxité résiduelle L(t) = D(t) – C(t)

● équivalent à EDF si on ne calcule la laxité qu'au réveil des tâches

● optimum à trouver entre la granularité du calcul et le nombre de changements de contexte provoqués

Page 42: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 42

Least Laxity First (LLF)

● exemplemême configuration que pour EDFT1 (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)

● laxité calculée à t = 0, 1, 2, 3, etc...

0 8 10

12

15

17

20

4 9 19

14

2 5 7

T

1

T

2

T

3

1 3 6 11

13

16

18

0 8 10

12

15

17

20

4 9 19

14

2 5 71 3 6 11

13

16

18

0 8 10

12

15

17

20

4 9 19

14

2 5 71 3 6 11

13

16

18

t = 0 L

1 = 7-3 = 4, L

2 = 4-2 = 2, L

3 = 8-2 = 6

t = 1 L

1 = 3, L

2= 2, L

3 = 5

t = 2 L

1 = 2, L

3 = 4

t = 3L

1 = 2, L

3 = 3

t = 4L

1 = 2, L

3 = 2

t = 5L

2 = 2, L

3 = 1

t = 6L

2 = 1, L

3 = 1

t = 7L

2 = 0

Page 43: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 43

Page 44: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 44

Introduction● tâches prises en compte dans une configuration

comprenant déjà des tâches périodiques● a priori, on ne connaît pas l'instant d'arrivée de la

requête de réveil de la tâche apériodique● contraintes temporelles strictes ou relatives● buts à atteindre :

➢ si contraintes relatives : minimiser le temps de réponse

➢ si contraintes strictes : maximiser le nombre de tâches acceptées en respectant leurs contraintes

● 2 grandes catégories de traitement➢ traitement en arrière-plan➢ traitement par serveurs

Page 45: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 45

Traitement d'arrière-plan (1)● tâches apériodiques ordonnancées quand le

processeur est oisif➢ les tâches périodiques restent les plus prioritaires

● ordonnancement relatif des tâches apériodiques en mode FIFO

● traitement le plus simple, mais le moins performant

Tâches à contraintes relatives

Page 46: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 46

Traitement d'arrière-plan (2)

● exempleTp1 (r0=0, C=2, P=5), Tp2 (r0=0, C=2, P=10)Ta3 (r=3, C=2), Ta4 (r=10, C=1), Ta5 (r=11, C=2)

➢ ordonnancement RMA des tâches périodiques

0 14

20

10

0 5 7 10

12

15

17

202

Tp

1

2 4 12

Tp

2

Temps creux

4 5 7 10

14

15

17

20

Ta3 Ta4 Ta5

4 10

11

Tâches apériodiques

5 7 8 14

15

17

19

3

Page 47: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 47

Traitement par serveur (1)

● un serveur est une tâche périodique créée spécialement pour prendre en compte les tâches apériodiques

● serveur caractérisé par➢ sa période➢ son temps d'exécution : capacité du serveur➢ serveur généralement ordonnancé suivant le même

algorithme que les autres tâches périodiques➢ une fois actif, le serveur sert les tâches apériodiques dans la

limite de sa capacité.➢ l'ordre de traitement des tâches apériodiques ne dépend pas

de l'algorithme général

Page 48: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 48

Traitement par serveur par scrutation (1)

● Serveurs par scrutation (polling)➢ à chaque activation, traitement des tâches en

suspens jusqu'à épuisement de la capacité ou jusqu'à ce qu'il n'y ait plus de tâches en attente

➢ si aucune tâche n'est en attente (à l'activation ou parce que la dernière tâche a été traitée) , le serveur se suspend immédiatement et perd sa capacité qui peut être réutilisée par les tâches périodiques

Page 49: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 49

Traitement par serveur par scrutation (2)

● exemple de serveur par scrutation (ordonnancement RMA)➢ 2 tâches périodiques : Tp1 (r0=0, C=3, P=20) Tp2 (r0=0, C=2, P=10)

➢ serveur : Tps (r0=0, C=2, P=5)

0 202

Tp1

5

0 2 12 14 2010

Tp2

0 2 12 15 2010

Tps

115 7 17

4

4 7 9

Page 50: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 50

Traitement par serveur par scrutation (3)

● exemple de serveur par scrutation (ordonnancement RMA)➢ 2 tâches périodiques : Tp1 (r0=0, C=3, P=20) Tp2 (r0=0, C=2, P=10)

➢ serveur : Tps (r0=0, C=2, P=5)

➢ tâches apériodiques : Ta3 (r=4, C=2), Ta4 (r=10, C=1), Ta5 (r=11, C=2)

0 202

Tp1

5

0 2 12 14 2010

Tp2

0 2 12 15 2010

Tps

115 7 17

012

Capacité Ta4Ta3 Ta5

Tâches apériodiques

Page 51: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 51

● limitations du serveur par scrutation➢ perte de la capacité si aucune tâche apériodique en attente➢ si occurrence d'une tâche apériodique alors que le serveur est

suspendu, il faut attendre la requête suivante

Traitement par serveur par scrutation (4)

Page 52: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 52

● Serveur sporadique➢ améliore le temps de réponse des tâches

apériodiques sans diminuer le taux d'utilisation du processeur pour les tâches périodiques

➢ comme le serveur ajournable mais ne retrouve pas sa capacité à période fixe 

➢ le serveur sporadique peut être considéré comme une tâche périodique « normale » du point de vue des critères d'ordonnancement

Traitement par serveur sporadique (1)

Page 53: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 53

Traitement par serveur sporadique (2)

● calcul de la récupération de capacité➢ le serveur est dit « actif » quand la priorité de la tâche

courante Pexe

est supérieure ou égale à celle du serveur Ps

➢ le serveur est dit « inactif » si Pexe

< Ps

➢ RT : date de la récupération✔ calculée dès que le serveur devient actif (tA)✔ égale à tA + Ts

➢ RA : montant de la récupération à effectuer à RT✔ calculée à l'instant tI où le serveur devient inactif ou que la

capacité est épuisée✔ égal à la capacité consommée pendant l'intervalle [tA, tI]

Page 54: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 54

Traitement par serveur sporadique (3)

● exemple de serveur sporadique à haute priorité➢ 2 tâches périodiques : Tp1 (r0=0, C=3, P=20), Tp2 (r0=0, C=2, P=10)

➢ serveur : Tps (r0=0, C=2, P=5)

➢ tâches apériodiques : Ta3 (r=4, C=2), Ta4 (r=10, C=1), Ta5 (r=11, C=2)

2

9

0 20

Tp1

0 20

Tp2

0

10Tps

012

Capacité Tâches apériodiques

2 4

4 6

6 7

10 12 15 20

12 14

10 11 12 15 16

Ta3 Ta4 Ta5

5

Page 55: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 55

Tâches à contraintes strictes

Page 56: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 56

Principe de l'ordonnancement● ordonnancer les tâches en EDF● A chaque nouvelle tâche apériodique, faire tourner

une "routine de garantie" pour vérifier que toutes les contraintes temporelles seront respectées

➢ si oui, accepter la tâche.➢ si non, refuser la tâche.

● 2 politiques d'acceptation dynamique :➢ acceptation dans les temps creux➢ ordonnancement conjoint

● favorise les tâches périodiques

Page 57: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 57

acceptation dans les temps creux

● ordonnancement EDF des tâches périodiques● les tâches apériodiques acceptées sont ordonnancées

dans les temps creux des tâches périodiques (~ méthode d'arrière-plan) selon l'algorithme EDF

● routine de garantie (au réveil d'une tâche apériodique):

➢ teste l'existence d'un temps creux suffisant entre le réveil et l'échéance de la tâche apériodique)

➢ vérifie que l'acceptation de la nouvelle tâche ne remet pas en cause le respect des contraintes temporelles des autres tâches apériodiques déjà acceptées et non encore terminées

➢ si OK, la tâche est ajoutée à la liste des tâches apériodiques

Page 58: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 58

● exemple➢ Tp1 (r0=0, C=3, D=7, P=20), Tp2 (r0=0, C=2, D=4, P=5),

Tp3 (r0=0, C=1, D=8, P=10)

➢ Ta4 (r=4, C=2, d=10), Ta5 (r=10, C=1, d=18),

Ta6 (r=11, C=2, d=16)

Ta6

Tp

1

Tp

2

Tp

3

0

0

2

2

5

4 5 6

5 6

7

8

8

9 10

10

12

12 13

14 15

17

18

19 20

20

20Temps creux

0 8 10 13 15

17

20

Ta

4

Ta

5

acceptation dans les temps creux

Tâches apériodiques

0 11 15 17

184 13108 16

Page 59: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 59

● exemple➢ Tp1 (r0=0, C=3, D=7, P=20), Tp2 (r0=0, C=2, D=4, P=5),

Tp3 (r0=0, C=1, D=8, P=10)

➢ Ta4 (r=4, C=2, d=10), Ta5 (r=10, C=2, d=18),

Ta6 (r=11, C=2, d=16)

16

Tp

1

Tp

2

Tp

3

0

0

2

2

5

4 5 6

5 6

7

8

8

9 10

10

12

12 13

14 15

17

18

19 20

20

20Temps creux

0 8 10 13 15

17

20

Ta

4

Ta

5

acceptation dans les temps creux (3)

Tâches apériodiques

0 11 15 17

184 13108

X Ta6

Page 60: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 60

ordonnancement conjoint (1)

● la séquence des tâches périodiques n'est plus immuable

● à l'arrivée de chaque nouvelle tâche apériodique, construction d'une nouvelle séquence EDF

➢ si la construction est possible : acceptation de la tâche

➢ sinon rejet

Page 61: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 61

ordonnancement conjoint (2)

● exemple➢ Tp1 (r0=0, C=3, D=7, P=20), Tp2 (r0=0, C=2, D=4, P=5),

➢ Tp3 (r0=0, C=1, D=8, P=10)

➢ Ta4 (r=4, C=2, d=10), Ta5 (r=10, C=1, d=18),

Ta4

Ta5

Tp3

Tp2

2 4 5 6 8 9 10 12 15 17 19 20

Tp

1 0 2 5 7 20

60 5 8 10 14 18 201512 13

Tâches apériodiques

0 8 10 11 13 14 184

Page 62: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 62

ordonnancement conjoint (3)

● exemple➢ Tp

1 (r

0=0, C=3, D=7, P=20), Tp

2 (r

0=0, C=2, D=4, P=5),

➢ Tp3 (r

0=0, C=1, D=8, P=10)

➢ Ta4 (r=4, C=2, d=10), Ta

5 (r=10, C=1, d=18),

Ta6 (r=11, C=2, d=16)

Ta4

Ta5

Tp3

Tp2

2 4 5 6 8 9 10 12 15 17 19 20

Tp

1 0 2 5 7 20

60 5 8 10 14 18 201512 13

Tâches apériodiques

0 8 10 11 13 14 184 12

Ta6

Page 63: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 63

ordonnancement conjoint (3)

● exemple➢ Tp

1 (r

0=0, C=3, D=7, P=20), Tp

2 (r

0=0, C=2, D=4, P=5),

➢ Tp3 (r

0=0, C=1, D=8, P=10)

➢ Ta4 (r=4, C=2, d=10), Ta

5 (r=10, C=2, d=18),

Ta6 (r=11, C=2, d=16)

Ta4

Ta5

Tp3

Tp2

2 4 5 6 8 9 10 12 15 17 19 20

Tp

1 0 2 5 7 20

60 5 8 10 14 18 201512 13

Tâches apériodiques

0 8 10 11 13 14 184 12

Ta6

Page 64: Cours Systèmes Temps Réel

I.Lagrat AIAC 2012/2013 64

Ordonnancement de tâches dépendantes