chapitre 3 ordonnancement sous contraintes temps r el l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Chapitre 3 Ordonnancement sous contraintes temps réel PowerPoint Presentation
Download Presentation
Chapitre 3 Ordonnancement sous contraintes temps réel

Loading in 2 Seconds...

play fullscreen
1 / 65

Chapitre 3 Ordonnancement sous contraintes temps réel - PowerPoint PPT Presentation


  • 142 Views
  • Uploaded on

Ingénieur Civil des Mines 2ème année Conception Sûre des Systèmes Embarqués et Ambiants – Module SI342b. Chapitre 3 Ordonnancement sous contraintes temps réel. 2006-2007 Françoise Simonot-Lion (simonot@loria.fr). Plan. Différentes approches de la programmation temps réel Approche synchrone

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Chapitre 3 Ordonnancement sous contraintes temps réel' - miracle


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
chapitre 3 ordonnancement sous contraintes temps r el

Ingénieur Civil des Mines

2ème année

Conception Sûre des Systèmes Embarqués et Ambiants – Module SI342b

Chapitre 3Ordonnancement sous contraintes temps réel

2006-2007

Françoise Simonot-Lion (simonot@loria.fr)

slide2

Plan

  • Différentes approches de la programmation temps réel
    • Approche synchrone
    • Approche asynchrone
  • Ordonnancement
    • Problématique (temps réel critique / temps réel mou)
    • Types de tâches
    • Caractéristiques des tâches
    • Caractérisation d'un ordonnancement
    • Ordonnancement de tâches périodiques
    • Ordonnancement de tâches apériodiques

CSSEA - SI342b

approche synchrone 1 8
Approche synchrone (1/8)

A chaque événement, on associe l’exécution de la fonction de traitement de cet événement

A chaque occurrence d’événement, la fonction de traitement de cet événement est exécutée

Liste d’états et d’événements prédéfinis

Hypothèses : pas d’autres événements « à traiter »

pendant l’exécution de la fonction (non préemption, non interruptibilité du traitement de la fonction)

CSSEA - SI342b

approche synchrone 2 8

void automate(int E)

{ switch E

1 : . . .

. . .

i : switch (etat)

1 : . . .

j : traitement (i,j);

etat=nouvel_etat(i,j);

return;

. . .

endsw;

. . .

default : ;

endsw;

}

int etat;

non interruptible

non préemptible

Approche synchrone (2/8)

Les automates - version 1 - 1 action par événement

Partie

opérative

void SSP_IT()

{ int ev;

ev=lire_IT();

automate(ev);

acquittement;

}

CSSEA - SI342b

approche synchrone 3 8

Que se passe-t-il pour les événements E3 et E4 qui arrivent pendant le traitement de E2 ?

Faites des propositions argumentées.

E1

E2

E3

E4

?

Traitement

de E1

Traitement

de E2

Approche synchrone (3/8)

Les automates - version 1

Problème : un seul événement traité à la fois

CSSEA - SI342b

approche synchrone 4 8

void automate()

{int E_presents, etat;

while(1)

{E_presents=check_and_reset(flag);

if(not_vide(E_presents))

{traitement (etat,E_presents);

etat=nouvel_etat(etat,E_presents);

}

}

}

IT2

void SSP_IT2()

{ int ev;

ev=lire_IT();

flag=set(ev);

acquittement;

}

IT1

void SSP_IT1()

{ int ev;

ev=lire_IT();

flag=set(ev);

acquittement;

}

Approche synchrone (4/8)

Les automates - version 2

int flag;

Partie

opérative

CSSEA - SI342b

approche synchrone 5 8

Proposez une représentation de la variable « Flag » :

- dans le cas où les événements arrivant entre deux fenêtres d’observation sont considérés comme simultanés,

- dans le cas contraire.

Flag = {E1}

Flag = {E2}

Flag = {E2,E3}

E1

E2

E3

Flag=

Traitement

de E1

Flag=

Traitement

de E2 et E3

Approche synchrone (5/8)

Les automates - version 2 - fenêtre d’observation des événements ([ ])

[ ]

[ ]

[ ]

t

t0

CSSEA - SI342b

approche synchrone 6 8

?

Flag = {E1}

Flag = {E2}

Flag = {E4}

Flag = {E2,E3}

Flag = {E4}

E1

E2

E3

E4

E4

[ ]

[ ]

Flag=

Traitement

de E1

Flag=

Traitement

de E2 et E3

Approche synchrone (6/8)

Les automates - version 2 - fenêtre d’observation des événements ([ ])

[ ]

t

t0

CSSEA - SI342b

approche synchrone 7 8

fenêtre périodique d’observation des événements ([ ])

Flag = {E1}

Flag = {E2}

Flag = {E4}

Flag = {E2,E3}

?

E1

E2

E3

E4

[ ]

[ ]

[ ]

Flag=

Traitement

de E1

Flag=

Traitement

de E2 et E3

Approche synchrone (7/8)

Les automates - version 2 - Cyclique vs périodique

t

t0

CSSEA - SI342b

approche synchrone 8 8
Approche synchrone (8/8)

Conclusions

  • possibilité de génération automatique de l ’automate (version 2) - langages synchrones
  • vérification : simulation - analyse exhaustive
  • complexité de l’application (nombre d’états et d’événements - identification)
  • maîtrise des hypothèses (simultanéité - durée de traitement - …)
  • maîtrise des hypothèses (cas de la distribution)

CSSEA - SI342b

approche asynchrone 1 6
Approche asynchrone (1/6)

A chaque événement, on associe l’exécution de la fonction de traitement de cet événement sous la forme d’une tâche

Toute occurrence d’événement est observée et peut éventuellement « interrompre » l’exécution d’une tâche (préemption) pour que soit exécutée une tâche plus « urgente »

CSSEA - SI342b

approche asynchrone 2 6

Séparationtraitements des interruptionstraitements applicatifs

tâches immédiatestâches différées

IT2

void SSP_IT2()

{ int ev;

ev=lire_IT();

flag=set(ev);

acquittement;

}

IT1

void SSP_IT1()

{ traiter_urgent_IT1();

activer_TD1();

acquittement;

}

void function_td2()

{traiter_moins_urgent_IT2();

exit();

}

void function_td1()

{traiter_moins_urgent_IT1();

exit();

}

niveau d’interruptions

masquage d’interruptions

imbrication / mise en file

ordonnancement

synchronisation

coopération

Approche asynchrone (2/6)

Partie

opérative

CSSEA - SI342b

approche asynchrone 3 6

Préemption d ’une tâche

différée par une autre tâche différée

E1

E2

E3

a

b

c

d

e

f

g

h

Traitement

de E2

Traitement

de E3

Interruption

Début - Suite - Fin

Traitement de E1

Approche asynchrone (3/6)

t

t0

urgence de E2>urgence de E1 >urgence de E3

CSSEA - SI342b

approche asynchrone 4 6

Traitement

de E2

Approche asynchrone (4/6)

E1

E2

t

t0

Début - Suite

Traitement de E1

urgence de E2<urgence de E1

CSSEA - SI342b

approche asynchrone 5 6

Quels sont les points clés du déroulement présenté ?

Approche asynchrone (5/6)

Problèmes

Échéance

de E1

E1

E2

!

Échéance

de E2

t

t0

Traitement

de E2

Début - Suite et Fin

Traitement de E1

urgence de E2>urgence de E1

CSSEA - SI342b

approche asynchrone 6 6
Approche asynchrone (6/6)

Conclusions

  • Programmation plus aisée d’applications complexes
  • Cohabitation temps réel dur / temps réel mou
  • Cohabitation d’activités périodiques / apériodiques / sporadiques
  • Nécessité d’un exécutif multi-tâches (logiciel)
    • langage temps réel (Ada)
    • systèmes temps réel (VxWorks, OSEK, OS9, …)
  • Difficulté de spécification de l’urgence des tâches
  • Difficulté de prédire le bon fonctionnement (ordonnançabilité)

CSSEA - SI342b

slide18

X

Z

Engine ctrl

Y

AGB

ABS/VDC

Suspension

WAS/DHC

CAN nw ctrl

CAN nw ctrl

CAN nw ctrl

CAN nw ctrl

CAN nw ctrl

CAN

CAN nw ctrl

Intelligent Switching Unit

VAN nw ctrl

VAN nw ctrl

VAN nw ctrl

VAN nw ctrl

VAN

Problématique (1/4)

CSSEA - SI342b

slide19

Z

Engine ctrl

Y

X

M1

M11

M13

M14

Problématique (2/4)

T_Engine1

T_AGB2

AGB

ABS/VDC

Suspension

WAS/DHC

CAN nw ctrl

CAN nw ctrl

CAN nw ctrl

CAN nw ctrl

CAN nw ctrl

CAN

T_ISU2

T_Y2

T_ISU3

T_Y3

CAN nw ctrl

Intelligent Switching Unit

VAN nw ctrl

VAN nw ctrl

VAN nw ctrl

VAN nw ctrl

VAN

CSSEA - SI342b

slide20

Problématique (3/4)

t

nœud sur CAN

réseau CAN

passerelle

réseau VAN

nœud sur VAN

Temps de réponse de bout en bout

Début de la chaîne

Terminaison de la chaîne

Contrainte :

Temps de réponse de bout en bout < Temps Maximum

CSSEA - SI342b

slide21

Problématique(4/4)

Période d'activation

Période d'activation

Période d'activation

t

Période de terminaison i

Période de terminaison i+1

Contrainte :

Gigue sur la période de terminaison < 50% de la période d'activation

CSSEA - SI342b

slide22

Une instance doit s’exécuter dans chaque période

Une instance doit démarrer au début de chaque période

Typologie des tâches (1/3)

Une application A est modélisée par un nombre fini de tâches : A = {T1, T2, …,Tn}

  • Tâche / Instance de tâche
  • Modes d’activation

Tâches réactivées à intervalle de temps régulier

PERIODIQUE

Tâches activées aléatoirement - sur événement

L’intervalle de temps entre deux occurrences de l’événement est borné

SPORADIQUE

L’intervalle de temps entre deux occurrences de l’événement n’est pas borné

APERIODIQUE

CSSEA - SI342b

slide23

Typologie des tâches (2/3)

  • Résultats d ’une tâche

La tâche doit terminer son exécution pour fournir le résultat

A RESULTAT UNIQUE

La tâche peut fournir un résultat à tout moment

INCREMENTALE

La tâche peut fournir un résultat

1) à partir d’un certain point de son exécution (mandatory),

2) puis à tout moment (parties optionnelles)

A RESULTATS IMPRECIS

CSSEA - SI342b

slide24

Typologie des tâches (3/3)

  • Relation avec les autres tâches de l’application

- La tâche n’interagit pas avec les autres tâches de l’application

INDEPENDANTE

- La tâche Ti ne peut pas commencer avant la fin de Tj

A CONTRAINTE

DE PRECEDENCE

Graphe orienté (sans cycle) : nœud = tâche / arc = relation de précédence

Cas particulier : une seule contrainte de précédence par nœud (arbre)

- La tâche peut utiliser des ressources critiques (exclusion mutuelle)

A CONTRAINTE

DE RESSOURCES

Soit l’ensemble {R1, R2,…, Rl} des ressources du systèmes

La tâche spécifie les ressources qu’elle utilise (vecteur des ressources)

CSSEA - SI342b

slide25

Caractéristiques des tâches

Liu & Layland

Ii

di,n

Mi,n

mi,n

Li,n

a

b

c

Ai,n

Fi,n

Date d’arrivée de l’instance

Date de fin de l’instance

Ci,n = a + b + c durée d’utilisation du processeur par l’instance n de la tâche Ti

exécution de l’instance n de la tâche Ti

Interarrivée entre deux instances : Ii,n (=Pi pour les tâches périodiques)

Tâche à échéance sur requête : di,n= Ii,n

CSSEA - SI342b

slide26

Caractérisation d’un ordonnancement

Problème :

Étant donné un ensemble de tâches A = {T1, T2, …,Tn},

trouver une

séquence de ces tâches qui respecte la spécification du problème

(contraintes de précédence, de ressources, d’échéances)

Problème d’optimisation :

- contraintes * échéances sur les tâches

- critères * maximiser l’utilisation des ressources

* minimiser le temps de réponse des tâches apériodiques

sans contraintes d’échéances

* …

CSSEA - SI342b

slide27

Caractérisation d’un ordonnancement

structure

  • Mode de décision
  • caractérise l ’instant où les priorités sont évaluées et où le choix de
  • la (ou des) tâches en cours est faite
  • Fonction de priorité
  • fonction de détermination des priorités des tâches ou instances
  • de tâches
  • Règle d’arbitrage
    • utilisée en cas d’égalité de priorité de plusieurs tâches ou
  • instances de tâches

CSSEA - SI342b

slide28

préemptible

  • non préemptible
  • préemptif tâche
  • non préemptif

Caractérisation d’un ordonnancement

classification

  • Local / global
  • Processeur
  • Connaissances nécessaires pour la « décision » :
  • dynamique : prise de décision au vu de l’état courant
  • (pas de connaissance du futur)
  • statique (hors ligne) : connaissance initiale de tous les paramètres des
  • tâches et instances de tâches, la séquence est
  • construite hors ligne
  • semi dynamique (périodique / apériodique)

CSSEA - SI342b

slide29

Caractérisation d’un ordonnancement

classification

  • Qualité du résultat
  • exact : l’algorithme fournit une séquence qui est la meilleure possible
  • et garantit le respect des contraintes
  • approché : l’algorithme fournit une séquence qui garantit le respect des
  • contraintes
  • Algorithme optimal :un algorithme dont on peut prouver que,
  • s’il échoue, tous les autres algorithmes échoueront ;
  • s’il réussit, il ne donne pas forcément la séquence optimale
  • Algorithme efficace :un algorithme qui permet de trouver une solution en un temps
  • borné par une fonction polynomiale
  • Fonction de garantie :une fonction, peu coûteuse en temps de calcul, qui dépend
  • des paramètres des tâches (Ti) de l'ensemble et
  • calcule son ordonnançabilité

CSSEA - SI342b

slide30

Caractérisation d’un ordonnancement

classification

  • Les problèmes d'ordonnancement sont NP-Complets
  • exemple (MC Portmann)
      • - Monoprocesseur - N tâches
      • - Chaque tâche est caractérisée par sa durée d'exécution et son échéance
  • Algorithme minimisant la somme des retards : toute solution est une permutation dans l'ensemble des N tâches, soit N! cas possibles
  • n durée des calculs
  • 10 3 ms
  • 11 40 ms
  • 12 0,5 s
  • 13 6 s
  • 14 1,5 m
  • 15 20 m
  • 16 6 h
  • 17 4 jours
  • 18 2,5 mois
  • 19 4 années
  • 20 77 années
  • 21 16 siècles

Le calcul et la comparaison d'une solution dure 10 -9s

CSSEA - SI342b

slide31

Ordonnançabilité d’un ensemble de tâches

  • Soit un ensemble de tâches A = {T1, T2, …, Tn} caractérisées (= une configuration)
  • Un algorithme d'ordonnancement est un algorithme qui produit une séquence des instances de tâches de A dans le temps
  • Une séquence estvalide si les contraintes de la configuration A donnée sont respectées
  • Un algorithme est fiable pour la configuration A s'il produit une séquence valide sur une durée infinie

Une configuration A est ORDONNANÇABLE (faisable) si il existe un algorithme d'ordonnancement fiable pour A

CSSEA - SI342b

slide32

Ordonnançabilité d’un ensemble de tâches

En général, on ne connaît pas de conditions nécessaires et suffisantes pour l'ordonnançabilité

Hypothèses sous lesquelles des résultats sont obtenus :

- ensemble constant et prédéfini de tâches (pas de création dynamique de tâches)

- pas d'allocation dynamique de mémoire (problème de « garbage collector)

- pas de récursivité / boucles bornées

- chiens de garde sur les coopérations entre la tâche et son environnement

CSSEA - SI342b

slide33

Ordonnançabilité versus performances (1/2)

Soient deux processeurs Lièvre et Tortue, tels que

vitesse de Lièvre = 10 * vitesse de Tortue

Deux tâches

CSSEA - SI342b

slide34

Ordonnançabilité versus performances (2/2)

t1

  • Ordonnancement FIFO sur Lièvre
  • Ordonnancement EDF sur Tortue

t2

Activation de t1

Activation de t2

Échéance de t1

Échéance de t2

15

220

0

2

20

21

Activation de t1

Activation de t2

Échéance de t1

220

Échéance de t2

15

212

0

2

12

CSSEA - SI342b

slide35

Commentez cette évolution

Ordonnançabilité d’un ensemble de tâches (1/4)

Fonction d’ordonnancement de l’instance n de la tâche k (Tk,n)

pk,n(t)

Ck,n

Ak,n

u

v

Fk,n

t

CSSEA - SI342b

slide36

Commentez cette évolution

Ordonnançabilité d’un ensemble de tâches (2/4)

Fonction d’arrivée de travail de Tk,n

Sk,n(t)

Ck,n

Ak,n

t

CSSEA - SI342b

slide37

Tracez la fonction d’arrivée de travail de C

Ordonnançabilité d’un ensemble de tâches (3/4)

Soit une configuration C

Tâche CiPi

1 7 20

2 5 20

3 8 30

4 3 100

5 2 100

CSSEA - SI342b

slide38

Commentez cette évolution – valeurs de pk,n(t) ?

Ordonnançabilité d’un ensemble de tâches (4/4)

Fonction de charge de Tk,n

Wk,n(t)

Ck,n

Ak,n

Fk,n

t

CSSEA - SI342b

slide39

Montrez que le temps d’oisiveté (temps creux) du processeur est (1-U)P

Ordonnançement de tâches périodiques

  • Facteur d'utilisation d'une tâche périodique :
  • ui = Ci / Piui < 1
  •  Charge du processeur pour A :
  • condition nécessaire d'acceptation : U < 1
  • P = ppcm(T1, T2, …, Tn ) (1-U)P temps creux

CSSEA - SI342b

slide40

Ordonnançement de tâches périodiques

Tâches indépendantes - Algorithmes à priorité statique

  • Priorité statique
    • attribuées hors ligne avant le début d’exécution
    • non modifiées pendant l’exécution

CSSEA - SI342b

slide41

Ordonnançement de tâches périodiques

Tâches indépendantes - Algorithmes à priorité statique

Comment affecter les priorités (1/2) ?

Un seul processeur préemptif / Seules contraintes di (deadlines) - échéances sur requête

Rate Monotonic(Liu & Layland - 1973) - Deadline Monotonic

Priorités inversement proportionnelles

aux périodes des tâches

aux échéances des tâches (di,n < Pi)

Choix arbitraire en cas de conflit (FIFO, par exemple)

Condition suffisante d’ordonnançabilité :

RM - DM : Algorithme optimal pour les configurations à tâches indépendantes,

à échéances sur requêtes, périodiques et à départ simultané

CSSEA - SI342b

slide42

Ordonnançement de tâches périodiques

Tâches indépendantes - Algorithmes à priorité statique

Comment affecter les priorités (2/2) ?

Intérêt de ces politiques ?

  • On considère Ci,n identique pour toute instance
  • di,n identique pour toute instance
  • Shortest Maximum Processing Time First (SMPTF)
  • Shortest Slack Time First (SSTF)

CSSEA - SI342b

slide43

préemption

idle

0

1

6

2

3

4

5

7

9

10

8

Ordonnançement de tâches périodiques

Rate Monotonic - exemple

La priorité d'une tâche est 1/Pi

Tâches Période Occupation Facteur d'utilisation

Ti Pi Ci ui

1 2 1 50%

2 5 2 40%

CSSEA - SI342b

slide44

Tâches Période Occupation Facteur d'utilisation Délai critique

Ti Pi Ci ui di

1 2 1 50% 2

2 3 1 33% 1

Rate

Monotonic

0

0

1

1

2

2

3

3

4

4

5

5

6

6

Deadline

Monotonic

Rate Monotonic vs Deadline Monotonic - exemple

CSSEA - SI342b

slide45

Ordonnancement de tâches (périodiques)

Tâches indépendantes - Algorithmes à priorité dynamique

Les priorités se calculent dynamiquement au cours du temps

Algorithmes plus coûteux en temps de calcul

ordonnancent plus de configurations que les algorihmes à priorité statique

FIFO – First In First Served

la tâche la plus prioritaire est celle dont la date d’arrivée est la plus ancienne

EDF - Earliest Deadline First

la tâche la plus prioritaire est celle disposant de l’échéance la plus proche

EDF est optimal pour les systèmes de tâches périodiques, indépendantes

Une configuration de tâches indépendantes, périodiques, à échéance sur requête est ordonnançable par ED ssi U <= 1

CSSEA - SI342b

slide46

Ordonnancement de tâches (périodiques)

Tâches indépendantes - Algorithmes à priorité dynamique

Tracer le diagramme d’évolution du processeur pour le cas suivant et les politiques FIFO et EDF :

CSSEA - SI342b

slide47

Ordonnancement de tâches périodiques

Tâches indépendantes - Algorithmes à priorité dynamique

Least Laxity First (LLF)

la tâche la plus prioritaire est, à tout instant celle disposant de

la plus petite marge de manœuvre

Exemple : Ci = 6 u. ; di = 15 u.

Temps restant au temps t

Activation

de Ti

Charge restant au temps t

t

di = 15 u.

marge de manœuvre

à l’instant t

laxité (t, Ti)

CSSEA - SI342b

slide48

Ordonnancement de tâches (périodiques)

Tâches indépendantes - Algorithmes à priorité dynamique

Tracer le diagramme d’évolution du processeur pour le cas suivant et la politique LLF :

CSSEA - SI342b

slide49

Ti

Tj

Décomposition en forme normale

Réception m1

S1

Graphe de précédence

nœud = Si

arc(Si, Sj) si fin de Si précède

début de Sj

S4

Émission m1

Émission m2

S2

S1

Réception m2

S3

S2

S4

S3

Ordonnancement de tâches périodiques

Tâches à contraintes de précédence

Exemple

CSSEA - SI342b

slide50

Ordonnancement de tâches périodiques

Tâches à contraintes de précédence

Remarque : mêmes lois d’activation périodiques

(mêmes périodes entre les tâches dépendantes)

Rate Monotonic + relations de précédence

A- Réajuster la date de première activation

Pour chaque tâche Ti, date de première activation prévue

date de première activation calculée

B- Réajuster les délais critiques délai critique donné

délai critique calculé

CSSEA - SI342b

slide51

Ordonnancement de tâches (périodiques)

Tâches indépendantes - Algorithmes à priorité dynamique

Tracer le diagramme d’évolution du processeur pour le cas suivant et la politique RM :

S1

S3

S2

S6

S5

S4

T1

T2

T3

CSSEA - SI342b

slide52

Ordonnancement de tâches périodiques

Tâches à contraintes de ressources

Problème : inversion de priorité

Exemple : ordonnancement par priorité classique

A = {T1, T2, T3}

T1 et T2 en exclusion mutuelle sur une ressource R

priorité(T1) > priorité (T2) > priorité (T3)

activation

P(R)

T1

activation

T2

P(R)

V(R)

T3

CSSEA - SI342b

slide53

Ordonnancement de tâches périodiques

Tâches à contraintes de ressources

Solution : protocole à héritage de priorité

Toute tâche en section critique hérite de la priorité la plus haute des tâches en attente de la ressource

A = {T1, T2, T3}

T1 et T2 en exclusion mutuelle sur une ressource R

priorité(T1) > priorité (T2) > priorité (T3)

activation

P(R)

T1

activation

T2

P(R)

V(R)

T3

Minimise le retard de T1 - mais ne résout pas l’interblocage

CSSEA - SI342b

slide54

Ordonnancement de tâches périodiques

Tâches à contraintes de ressources

Solution à l’interblocage :

protocole à priorité plafond (Priority Ceiling Protocol)

Configuration C = {Ti} Ressources = {Rj}

Règles: - priorité(Rj) = max (priorité(Ti) accèdant à Rj)

- priorité(Tk possédant Rj) = priorité(Rj)

- une tâche Ti ne peut prendre Rj que si

priorité(Ti) > max(priorité (Rk occupée))

CSSEA - SI342b

slide55

Ordonnancement de tâches périodiques

Gigues observables

Gigues sur le début d’exécution

par exemple : algorithme d’échantillonnage

répéter tous les dt

donnée = lire();

res=calculer(donnée);

Gigues sur la fin d’exécution

par exemple : multimédia

répéter tous les dt

résultat = calculer();

écrire (résultat);

Gigues sur le début d’exécution et la fin d’exécution

par exemple : un algorithme de régulation (PI, PID)

répéter tous les dt

donnée = lire();

résultat = calculer(donnée);

écrire (résultat);

CSSEA - SI342b

slide56

Ordonnancement de tâches apériodiques

Tâches indépendantes

  • Temps réel mou - contraintes relatives
      • minimiser le temps de réponse des tâches

apériodiques à contraintes relatives

      • politique du « best effort »
  • Temps réel dur - contraintes strictes
      • garantir le temps de réponse d’un maximum

de tâches apériodiques à contraintes strictes

CSSEA - SI342b

slide57

Ordonnancement de tâches apériodiques

indépendantes à contraintes relatives

Algorithme « Background Processing »

Tâches Ti Période Pi Occupation Ci

1 5 2

2 10 2

  • Traitement des tâches apériodiques dans les temps creux laissés par les tâches périodiques (ordre de réveil)

- Première activation de Ti : 0

- Ti à échéance sur requête

- Rate Monotonic

0

5

10

15

20

Tâches Tap1

r=4, C=2

Tâches Tap2

r=10, C=1

Tâches Tap3

r=11, C=2

Temps creux

CSSEA - SI342b

slide58

Ordonnancement de tâches apériodiques

indépendantes à contraintes relatives

Serveur de tâches par scrutation (1/2)

  • tâche serveur *caractérisée par - une période d ’activation
  • - une capacité (durée d’éxécution)
  • * ordonnancée avec les tâches périodiques applicatives
  • * ordonnance les tâches apériodiques suivant une politique
  • (FIFO, durée, échéance)

Tâches Ti Période Pi Occupation Ci Echéance di

1 20 3 20

2 10 2 10

serveur 5 2

- Première activation de Ti et

du serveur : 0

- Rate Monotonic pour les 3 tâches

CSSEA - SI342b

slide59

Ordonnancement de tâches apériodiques

indépendantes à contraintes relatives

Serveur de tâches par scrutation (2/2)

0

5

10

15

20

2

capacité

1

0

Tâches Tap1

r=4, C=2

Tâches Tap2

r=10, C=1

Tâches Tap3

r=11, C=2

Capacité perdue (scrutation classique)

Capacité conservée (ajournable)

CSSEA - SI342b

slide60

Ordonnancement de tâches apériodiques

indépendantes à contraintes relatives

Serveur sporadique

  • tâche serveur *même principe que serveur à scrutation
  • *amélioration des temps de réponse
  • Exemple p.57

0

5

10

15

20

5

5

5

2

capacité

1

0

Tâches Tap1

r=4, C=2

Tâches Tap2

r=10, C=1

Tâches Tap3

r=11, C=2

CSSEA - SI342b

slide61

Ordonnancement de tâches apériodiques

indépendantes à contraintes relatives

Algorithme « Slack Stealer »

Tâches Ti Période Pi Occupation Ci

1 5 2

2 10 2

amélioration des temps de réponse des tâches apériodiques

respect des contraintes des tâches périodiques

Lors de l ’arrivée d ’une tâche apériodique, reculer au maximum l’exécution des tâches périodiques

- Première activation de Ti : 0

- Ti à échéance sur requête

- Rate Monotonic

0

5

10

15

20

Tâches Tap1

r=4, C=2

Tâches Tap2

r=10, C=1

Tâches Tap3

r=11, C=2

CSSEA - SI342b

slide62

Ordonnancement de tâches apériodiques

indépendantes à contraintes strictes

  • Pseudo-période
      • Intervalle minimum entre deux activations successives d ’une tâche apériodique
      • Rate Monotonic
      • Temps perdu - difficultés de spécifier la pseudo-période
  • Politique d’acceptation
      • Acceptation / rejet d ’une demande d’activation de tâche apériodique (routine de garantie)
      • EDF
      • Favorise l’ordonnancement des tâches périodiques
      • Nécessite un mécanisme de partage de charge / un système réparti

CSSEA - SI342b

slide63

Ordonnancement de tâches apériodiques

indépendantes à contraintes strictes

Politique d’acceptation

Utilisation des temps creux dans une séquence fixe

de tâches périodiques (1/2)

ordonnancement EDF des tâches périodiques

cf. ordonnancement en « background » des tâches apériodiques

prise en compte des contraintes d’échéances des tâches apériodiques

début Ci Pi di

T1 0 3 20 7

T2 0 2 5 4

T3 0 1 10 8

Tap1 4 2 - 10

Tap2 10 1 - 16

Tap3 11 2 - 18

Tâches périodiques

Tâches apériodiques

CSSEA - SI342b

slide64

Ordonnancement de tâches apériodiques

indépendantes à contraintes strictes

Politique d’acceptation

Utilisation des temps creux dans une séquence

fixe de tâches périodiques (2/2)

T1

T3

T2

0

5

10

15

20

10

16

18

Tâches Tap1

r=4, C=2, d=10

Tâches Tap2

r=10, C=1, d=16

Tâches Tap3

r=11, C=2, d=18

Temps creux

CSSEA - SI342b

slide65

Ordonnancement de tâches apériodiques

indépendantes à contraintes strictes

Politique d’acceptation

Ordonnancement conjoint

de tâches périodiques et apériodiques (2/2)

  • ordonnancement EDF des tâches périodiques
  • remise en cause de la séquence de tâches lors de l’arrivée d’une tâche apériodique
  • prise en compte des contraintes d’échéances des tâches apériodiques

CSSEA - SI342b