Vous êtes sur la page 1sur 60

Systmes temps rel: Caractristiques, classification et anomalies

Abdelouahed Gherbi MGL810 - Hiver 2013

Plan
Exemples de STR Modle gnrique dun STR

Notions de temps et ordre


Caractristiques des STR Classification des STR

Types de contraintes sur les taches temps rel


Ordonnancement et anomalies

MGL810 - Programmation temps rel sur des architectures parallles

Exemples et modle gnrique dun STR

MGL810 - Programmation temps rel sur des architectures parallles

Exemples de STR
Exemple 1 (source [2]) Systme de contrle du flux dun liquide dans un pipe

Un niveau de flux dtermin par lutilisateur doit tre maintenu malgr le changement de la condition environnementale Le systme informatique temps rel (contrleur) interagit avec lobjet contrl via une valve de contrle Le systme observe la raction de lobjet contrl en lisant le senseur de flux F

La dynamique du systme est dtermine par la vitesse de la

valve de contrle

Si la valve prend 10 s pour ouvrir/fermer de 0% 100% Le senseur de flux une prcision de 1% Avec un intervalle de sondage (sampling) est 100ms, le changement de la position de la valve est 1% = prcision de du senseur. Cette vitesse finie de la valve impose une contrainte de temps sur la tache effectue par lordinateur

MGL810 - Programmation temps rel sur des architectures parallles

Exemples de STR

Exemple 2 (source [2]) Contrleur de moteur (Engine Control - EC)

La tache dun EC dans un moteur dauto est le calcul de la quantit Q approprie du fuel et le moment T exact quand le fuel doit tre inject dans la chambre de combustion de chaque cylindre. Q et T dpendent de plusieurs paramtres : position du pdale dacclration la charge actuelle du moteur la temprature du moteur, etc. Un EC moderne est trs complexe : jusqu 100 taches logicielles temps rel et concurrentes et qui cooprent en stricte synchronisation.

La dynamique du systme

La position du piston dans le cylindre est dtermine par la position angulaire (mesure par des senseurs digitaux) du Crankshaft Le point de dbut de linjection du fuel est relatif la position du piston dans le cylindre Exigence : Ce point doit avoir une prcision de 0.1 de la position angulaire mesure du crankshaft On considre un moteur avec vitesse de rotation : 6000 RPM Translater cette prcision exige dans le domaine temporel ? MGL810 - Programmation temps rel sur des architectures parallles

Modle gnrique dun STR


Architecture type dun systme

temps rel qui contrle un environnement


Il est en gnral compos de : Lenvironnement : cest lobjet contrl Le systme informatique temps rel : le systme de control Linterface : les sondes et actuateurs Lenvironnement peut inclure : Le phnomne, processus ou dispositif physique Loprateur (linterface dans ce cas est les dispositifs dE/S)

MGL810 - Programmation temps rel sur des architectures parallles

Notion de temps et ordres

MGL810 - Programmation temps rel sur des architectures parallles

Notions du temps et ordre


La notion de temps est importante pour programmer des STR Le temps peut tre considr selon les niveau suivants :
Niveau Une interface avec le temps (accder une horloge) programmation Pour mesurer le passage du temps Retarder une tche Programmer des timeout (reconnaitre la non occurrence de certaines vnements et les traiter)

Reprsenter les exigences et contraintes de temps Frquence dexcution et deadline

Niveau Modlisation et spcification

Satisfaire des exigences de temps

Niveau analyse et vrification

MGL810 - Programmation temps rel sur des architectures parallles

Notions du temps et ordre


Cest quoi le temps ?

MGL810 - Programmation temps rel sur des architectures parallles

Notions du temps et ordre


En ingnierie : le temps est une variable indpendante qui dtermine la squence dtats dun systme

En gnral, le temps dans un systme temps rel doit tre

mesur en utilisant mtrique de la seconde physique.

MGL810 - Programmation temps rel sur des architectures parallles

10

Notions du temps, ordres et mesure


Ordre temporel : Le continuum du temps rel peut tre modlis par un

ensemble infini dinstants (points dans le temps)

{T} est un ensemble ordonn


Proprits de {} , :

{T} est un ensemble dense


! | < r < q ssi p n est pas le mme instant que q
MGL810 - Programmation temps rel sur des architectures parallles

11

Notions du temps et ordre


Une section dans la ligne du temps est appele une dure Un vnement arrive un instant du temps et na pas de dure Si deux vnements arrivent au mme instant sont donc simultans

Les vnements sont partiellement ordonns vnements simultans ne sont pas ordonns dans le temps Les vnements peuvent tre totalement ordonns si on utilise un

autre critre
Dans un systme distribu, le numro du nud o lvnement est arriv

peut tre utilis pour ordonner les vnements simultans

MGL810 - Programmation temps rel sur des architectures parallles

12

Notions du temps et ordre


Ordre de causalit (causal order) Dans plusieurs application temps rel, les dpendances de causalit entre

vnements sont importants


Le systme informatique doit assister loprateur identifier l vnement

primaire dans un alarm shower


Lordre temporel peut aider identifier lvnement primaire Si un vnement e1 arrive aprs e2 alors e1 ne peut pas avoir caus e2 Si e1 arrive avant e2 : e1 peut avoir caus e2 (pas certainement) Lordre temporel est ncessaire mais pas suffisant pour tablir lordre de

causalit
Lautre de causalit est plus quun ordre temporel

MGL810 - Programmation temps rel sur des architectures parallles

13

Notions du temps et ordre


Mesure du temps La progression du temps est mesure par des horloges

physiques (digitales)
Lhorloge physique contient : un compteur mcanisme doscillation physique : gnrer priodiquement un vnement (microtick) qui incrmente le compteur Granularit de lhorloge : la dure entre deux ticks

successives est le granule


MGL810 - Programmation temps rel sur des architectures parallles

14

Notions du temps et ordre


Standards de temps Des standards de temps ont t proposs pour mesurer

le temps entre vnements ou dater un vnement (le positionner par rapport une origine de temps poque)
Deux standards sont particulirement convenable pour

les systmes temps rel (distribus)


Temps Atromique International (TAI)

Universal Time Coordonated (UTC)

MGL810 - Programmation temps rel sur des architectures parallles

15

Caractristiques des STR

MGL810 - Programmation temps rel sur des architectures parallles

16

Caractristiques des STR

Constraints de temps

Concurrence

Caractristiques des STR

Distribution Fiabilit

MGL810 - Programmation temps rel sur des architectures parallles

17

Caractristiques des STR


Les STR sont des systmes concurrents

MGL810 - Programmation temps rel sur des architectures parallles

18

Caractristiques des STR


Les STR sont souvent des systmes distribus Compos dun ensemble de nuds connects via un rseau de

communication
Le rseau de communication est temps rel
Ethernet original bas sur CSMA/CD: le protocole le plus utilis nest pas prdictible

AFDX (standard ARINC 664 avionique) Extension de Switched Ethernet Airbus A 380 et Boeing Dreamliner B787.
MGL810 - Programmation temps rel sur des architectures parallles

Extention de Switched Ethernet (standard IEEE 802.3): TTEthernet prdictible NASA Orion Program
19

Classification des STR

MGL810 - Programmation temps rel sur des architectures parallles

20

Classification des STR


Les STR peuvent tre classifis selon diffrentes perspectives On considre deux classifications
Systmes temps rel Hard vs Soft Systme temps rel Time-Triggered vs Event-Triggered

MGL810 - Programmation temps rel sur des architectures parallles

21

Classification des STR


STR hard vs STR soft Dans des applications critiques, un rsultat produit aprs le

deadline nest pas seulement en retard mais faux! STR peut tre classifi comme

En fonction des consquences dun deadline non rencontr, un

STR Hard : Si le rsultat produit plus tard que le deadline a une

consquence catastrophique sur le systme contrl.


STR Soft : Si le rsultat produit aprs le deadline a encore une certaine

utilit mais avec une performance dgrade Dans la littrature on distingue une autre classe de STR
STR Firm : Si le rsultat produit plus tard que le deadline est inutile mais ne cause pas

de dommage.

MGL810 - Programmation temps rel sur des architectures parallles

22

Classification des STR


v

STR hard vs STR firm vs.

STR soft
Diffrence entre Hard, Soft

et Firm STR selon la valeur (utilit) du rsultat obtenu par rapport au deadline

MGL810 - Programmation temps rel sur des architectures parallles

23

Classification des STR


Time-Triggered vs Event-Triggered STR Un trigger (dclencheur) est un vnement qui cause le

dbut dune action dans le systme informatique :


Excution dune tche Transmission dun message

On distingue deux classes dapplication temps rel selon le

type de dclencheur
STR event-triggered

STR Time-Triggered

MGL810 - Programmation temps rel sur des architectures parallles

24

Classification des STR


Time-Triggered STR Toutes les activits (tches/communication) sont inities par la progression du

temps
Le systme informatique utilise interruption horloge temps rel qui est

priodique
Chaque activits est initie un tick de lhorloge priodique prdtermin Dans un STR distribu (plusieurs nuds) TT : Les horloges de tous les nuds sont synchroniss avec un temps global implment au niveau de chaque nud Chaque observation de lobjet contrl est date (time-stamp) avec ce temps global La granularit de ce temps global est choisi de faon que lordre de nimporte quelle deux observations dans nImporte quel nud du SRT TT peut tre tabli

MGL810 - Programmation temps rel sur des architectures parallles

25

Classification des STR


Event-Triggered STR (STR ET) Toute activit (traitement ou communication) est initie par un

vnement significatif autre que le tick rgulier de lhorloge


Dans un STR ET, le signalement des vnements significatifs

au CPU se fait via le mcanisme des interruptions


UN STR ET exige donc une stratgie dordonnancement

dynamique pour activer la tache approprie pour servir un vnement

MGL810 - Programmation temps rel sur des architectures parallles

26

Types de contraintes sur les tches temps rel

MGL810 - Programmation temps rel sur des architectures parallles

27

Types de contraintes sur les tches temps rel : Contraintes de temps


Les STR sont composs de tches (de calcul) ayant des

contraintes de temps afin de raliser le but du systme


Une contrainte de temps type : le deadline (chance) Instant avant lequel un processus doit complter son excution

MGL810 - Programmation temps rel sur des architectures parallles

28

Types de contraintes sur les tches temps rel : Contraintes de temps


Temps darrive (release) : ou bien ( ) Temps dexcution (calcul) :

Deadline absolu : et le deadline relatif = -

Une tache

Temps de dbut : et le temps de fin : Temps de rponse : = ? Lateness (le dlai entre la fin de la tache et le deadline): = Tardiness (temps o la tache reste active aprs la deadline) : = max(0, ) Laxity (Slack Time) : =

MGL810 - Programmation temps rel sur des architectures parallles

29

Types de contraintes sur les tches temps rel : Contraintes de temps


Une autre caractristique temporelle dune tche temps

rel concerne la rgularit/le pattern de son arrive :


Une squence infinie dinstances/jobs actives rgulirement un taux

constant

Une tache priodique

Une tache priodique est note :


Linstance

dune tache priodique

est note ,

La priode de la tache est :

Linstant (temps) dactivation de la premire instance ,1 est appele phase

note Le temps dactivation de la Kime instance donc : + ( 1)

de la tache priodique

est

MGL810 - Programmation temps rel sur des architectures parallles

30

Types de contraintes sur les tches temps rel : Contraintes de temps


Une tache apriodique
Une squence infinie dinstances/jobs dont les intervalles entre les diffrentes

activations ne sont pas rguliers


Une tache apriodique (job) est not :

Une tche apriodique dont les jobs conscutifs sont spars par un intervalle

inter-arrive minimum est dit sporadique

MGL810 - Programmation temps rel sur des architectures parallles

31

Types de contraintes sur les tches temps rel : Contraintes de prcdence


Les tches dun STR ne peuvent toujours tre excutes

dans un ordre arbitraire


Certaines tches doivent respecter des relations de prcdence

dfinies dans la phase de conception

Ces relations de prcdences sont souvent reprsentes par

des graphes orients acyclique :


Les tches sont le nuds Les arcs sont les relations de prcdence Le graphe de prcdence dfinit un ordre partiel sur les tches

MGL810 - Programmation temps rel sur des architectures parallles

32

Types de contraintes sur les tches temps rel : Contraintes de prcdence


La notation < signifie que est un prdcesseur de La notation signifie que est un prdcesseur

immdiat de

Exemple : Faites exercices #01

MGL810 - Programmation temps rel sur des architectures parallles

33

Types de contraintes sur les tches temps rel : Contraintes de prcdence


Exercice #01

MGL810 - Programmation temps rel sur des architectures parallles

34

Types de contraintes sur les tches temps rel : Contraintes de prcdence


Exercice #01

MGL810 - Programmation temps rel sur des architectures parallles

35

Types de contraintes sur les tches temps rel : Contraintes de prcdence


Exercice #02

MGL810 - Programmation temps rel sur des architectures parallles

36

Types de contraintes sur les tches temps rel : Contraintes de prcdence


Exercice #02 : Produit dune matrice A dense avec un vecteur b (rsultat vecteur y)

=
=1

, . []

Le calcul de chaque est une tache


Observations:
Les taches ont la mme taille (nombre

doprations) Les taches partagent des donnes (vecteur b) Les taches ici sont indpendantes.

Task1

Task2

Taski Task3

Taskn

MGL810 - Programmation temps rel sur des architectures parallles

37

Types de contraintes sur les tches temps rel : Contraintes de prcdence


Exercice #03

MGL810 - Programmation temps rel sur des architectures parallles

38

Types de contraintes sur les tches temps rel : Contraintes de prcdence


Exercice #03 On considre la requte suivante sur la BD relationnelle qui suit :
MODEL = ``CIVIC'' AND YEAR = 2001 AND (COLOR = ``GREEN'' OR COLOR = ``WHITE)

ID# 4523 3476 7623 9834 6734 5342 3845 8354 4395 7352

Model Civic Corolla Camry Prius Civic Altima Maxima Accord Civic Civic

Year 2002 1999 2001 2001 2001 2001 2001 2000 2001 2002

Color Blue White Green Green White Green Blue Green Red Red

Dealer MN IL NY CA OR FL NY VT CA WA

Price $18,000 $15,000 $21,000 $18,000 $17,000 $19,000 $22,000 $18,000 $17,000 $18,000
39

MGL810 - Programmation temps rel sur des architectures parallles

Types de contraintes sur les tches temps rel : Contraintes de prcdence


Lexcution de la requte peut tre divise en quelques taches. Chaque tache gnre une table intermdiaire pour satisfaire une

clause de la requte

MODEL = ``CIVIC'' AND YEAR = 2001 AND (COLOR = ``GREEN'' OR COLOR = ``WHITE)

Graph de dpendance de taches : Les arcs du graph reprsentent le fait que la sortie dune tache est ncessaire pour accomplir la tache suivante
MGL810 - Programmation temps rel sur des architectures parallles

40

Types de contraintes sur les tches temps rel : Contraintes de prcdence


Le mme problme peut tre dcompos en taches de

plusieurs faons diffrentes.

Une dcomposition alternative du problme en taches et leurs dpendances


MGL810 - Programmation temps rel sur des architectures parallles

41

Types de contraintes sur les tches temps rel : Contraintes de ressources


Pour un processus, une ressource est toute entit matrielle/logicielle dont il a besoin pour

complter son excution


Structure de donnes, mmoire, fichier, registres , etc.

Prive : ddie un seul processus


Ressource

Partage : Utilisable par plus dun processus

Pour maintenir la cohrence des donnes Les ressources partageables ne sont pas utilisables simultanment par plusieurs taches : exclusion mutuelle.

Afin dassurer un accs correct des ressources partage en exclusion mutuelle, Des mcanismes de synchronisation doivent tre utiliss

Quand des tches temps rel partagent des ressources accessibles via des mcanismes

de synchronisation,
Ces tches ont des contraintes de ressources

MGL810 - Programmation temps rel sur des architectures parallles

42

Mtriques de performance pour des STR


Les mtriques suivantes peuvent tre utilises pour valuer

les algorithmes dordonnancement et qui ont un impact sur la performance dun STR
lapplication dvelopper

Doivent tre choisies avec prudence en fonction de

Temps de rponse moyen : peu intressant pour les STR

car pas de prise en compte des caractristiques temporelles individuelles des taches (deadline, priode)
La somme pondre des temps dexcution : Appropri pour les systmes compos de taches de diffrentes valeurs Maximum lateness : il peut tre important de minimiser ce

facteur dans la phase de conception en ajoutant des ressources jusqu ce que ce facteur devient < 0.
Cependant, minimiser ce facteur ne veut pas dire minimiser

le nombre de tches qui ratent leurs deadlines

MGL810 - Programmation temps rel sur des architectures parallles

43

Types de contraintes sur les tches temps rel : Contraintes de prcdence


Exercice #04

MGL810 - Programmation temps rel sur des architectures parallles

44

Mtriques de performance pour des STR


Exercice 04: Le schedule (chancier) (a)

minimise le maximum lateness = 3


Cependant, toutes les tches ratent

leurs deadlines
Le schedule (b) a un maximum

lateness plus grand = 23

Cependant, 4 tches parmi 5

rencontrent leur deadline


MGL810 - Programmation temps rel sur des architectures parallles

45

Quelques anomalies des STR


Encore une fois, un STR nest pas ncessairement rapide Autrement dit un traitement temps rel nest pas du calcul de

haute performance (parallle)


Ajouter de la puissance de calcul la plateforme dexcution

naugmente pas ncessairement la performance dun STR.


Ces anomalies doivent tre considr par le concepteur dun

STR

MGL810 - Programmation temps rel sur des architectures parallles

46

Quelques anomalies des STR


Dans les exercices / exemples qui suivent : On considre un ensemble de tches

= 1 , 2 , , 9

Ces tches sont ordonnes par des priorits

dcroissantes : > <


Les tches sont sujettes des contraintes de

prcdence reprsentes dans la graphe de prcdence ci-contre


Les temps dexcution sont indiqus entre

parenthses
MGL810 - Programmation temps rel sur des architectures parallles

47

Quelques anomalies des STR


Exercice #05

MGL810 - Programmation temps rel sur des architectures parallles

48

Quelques anomalies des STR


Exercice #05: Le schedule est reprsent par le diagramme suivant :

Longueur du schedule : 12 unit de temps

MGL810 - Programmation temps rel sur des architectures parallles

49

Quelques anomalies des STR


Exercice #06

MGL810 - Programmation temps rel sur des architectures parallles

50

Quelques anomalies des STR


Exercice #06: Si on excute le mme ensemble de tache sur un ordinateur ayant 4

processeur on obtient le schedule suivant :

Longueur du schedule : 15 unit de temps (plus long!)

Anomalie : Augmentation de la puissance de la plateforme

dexcution

MGL810 - Programmation temps rel sur des architectures parallles

51

Quelques anomalies des STR


Exercice #07

MGL810 - Programmation temps rel sur des architectures parallles

52

Quelques anomalies des STR


Excercice #7: Si on rduit le temps dexcution de chacune des tches dune unit de

temps et on excute lensemble de taches sur un ordinateur ayant 3 processeur on obtient le schedule suivant :

Longueur du schedule : 13 unit de temps (plus long!)


Anomalie : Temps dexcution des tches rduit

MGL810 - Programmation temps rel sur des architectures parallles

53

Quelques anomalies des STR


Exercice #08

MGL810 - Programmation temps rel sur des architectures parallles

54

Quelques anomalies des STR


Exercice #8: Si on relaxe les contraintes de prcdence sur lensemble des taches

Le nouveau graphe de prcdence est donn par le graphe suivant

MGL810 - Programmation temps rel sur des architectures parallles

55

Quelques anomalies des STR


Exercice #8: On excute lensemble de taches sur un ordinateur ayant 3 processeur on

obtient le schedule suivant :

Longueur du schedule : 16 units de temps (plus long!)

Anomalie : relaxation des contraintes de prcdence.

MGL810 - Programmation temps rel sur des architectures parallles

56

Quelques anomalies des STR


Anomalie dordonnancement non premptive On considre un ensemble de trois tches

temps rel { 1 ,

2, 3}

Ces tches sexcutent sans premption Les priorit des tches sont fixes et sont

assign selon leur deadline relatif : 1 > 2 > ( 3 )


Excution des tche sur un monoprocesseur

avec une vitesse S1 :

1a

un temps dexcution 1 = 2et termine t=6

Excution des tches avec une

vitesse S2=2S1
1 a un temps dexcution 1 = 1 mais termine t=8 et rate son deadline Quant la tache 1 arrive la tache 3 a dj commenc lexcution et ne peut pas tre interrompue

MGL810 - Programmation temps rel sur des architectures parallles

57

Quelques anomalies des STR


Les anomalies les plus import antes sont formules dans le

thorme de Graham [1]


Si un ensemble de tches est ordonnanc dune faon optimale sur

un multiprocesseur
Avec une certaine attribution des priorits Un nombre fixe de processeurs Des temps dexcution fixes

Des contraintes de prcdence

Alors Laugmentation du nombre de processeurs La relaxation des contraintes de prcdence La rduction des temps dexcution Peut croitre la longueur de lchancier produit.
MGL810 - Programmation temps rel sur des architectures parallles

58

Rfrences
[1] Giorgio C. Buttazzo (2011) HARD REAL-TIME COMPUTING

SYSTEMS: Predictable Scheduling Algorithms and Applications, Third Edition, Springer.


[2] Hermann Kopetz, (2011) Real-Time Systems 2nd edition,

Springer, ISBN 978-1-4419-8236-0

MGL810 - Programmation temps rel sur des architectures parallles

59

Merci!

MGL810 - Programmation temps rel sur des architectures parallles

60