Vous êtes sur la page 1sur 32

Systèmes embarqués temps réel :

Définition : (CNRS 1988) :


Peut être qualifiée de "temps-réel" (ou "temps contraint", ou encore
"réactif") toute application mettant en vue un système informatique dont le
fonctionnement est assujetti à l'évolution dynamique de l'environnement qui lui
est connecté et dont il doit contrôler le comportement.

Système Temps réel:


C’est un système réactif devant fournir des sorties fonctionnellement correctes
tout en respectant des contraintes temporelles explicites
Systèmes embarqués temps réel :
Systèmes embarqués temps réel :
Système d'exploitation Temps réel (RTOS)
Caractéristiques:

Prédictibilité :
–Les performances de l’application doivent être définies dans tous les cas
possibles de façon à assurer le respect des contraintes de temps. On parle de
pire cas.

Déterminisme :
–Il n’y a aucune incertitude sur le comportement du système: pour un
contexte donné le comportement est toujours le même.

Fiabilité :
–Capacité d’un système à réaliser et maintenir ses fonctionnalités dans des
conditions normales d’utilisation. En temps réel, la fiabilité concerne le
respect des contraintes temps réel. On peut également vouloir que le système
reste fiable même si certaines pannes sont apparues, on parle alors de
tolérance aux fautes.

26
Types Systèmes embarqués temps réel :
Ce sont des systèmes liés au contrôle de procédés et l'exécution de programmes
dans ces systèmes doit terminer avant une date appelée échéance au-delà de
laquelle les résultats ne sont plus valides.

On distingue deux types de systèmes embarqués temps-réel :


Système temps-réel dur/stricte ou critique (hard real-time)
Le non-respect des échéances peut avoir des conséquences graves sur le
fonctionnement du système ou sur son environnement Les échéances ne doivent
jamais être dépassées.
Exemple : le contrôleur de frein d'une voiture, autopilotage, assistance
médicalisée.

Système temps-réel mou ou souple (soft real-time)


Le non-respect des échéances ralentit le système sans conséquences graves . Le
système doit répondre au mieux, le plus rapidement possible.
Exemple : billetterie automatique, système multimédia et télécommunication
Système d'exploitation - Temps réel
Qu'est-ce que le temps réel ?
● Fournir des résultats exacts mais aussi dans un temps donné.
● 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

Deux contraintes sont à vérifier :


exactitude logique (logical correctness) : sorties adéquates en fonction des
entrées, assurant le comportement désiré pour le système suite à des
événements et à des données communiquées (correction fonctionnelle )

exactitude temporelle (timeliness) : rencontre des contraintes temporelles.


Les sorties sont présentées au bon moment (respect des contraintes
temporelles).
Système d'exploitation Temps réel (RTOS)

Def 1: Un Système d'Exploitation Temps Réel (ou Real Time Operating


System (RTOS)) est utilisé quand il y a des exigences temporelles fixe sur les
opérations d’un processeur ou sur le flux de données: le traitement doit être
effectué dans la contrainte de temps sinon le système échoue.

Def 2: système (matériel et logiciel) qui satisfait aux contraintes fonctionnelles


et temporelles qui lui sont imposées.

La gestion d’un airbag est temps réelle : quand un capteur détecte une
déformation de la carrosserie suffisamment importante, il envoie un signal au
contrôleur qui doit avoir gonflé les airbags dans les 10 ms sous peine d’arriver
trop tard ce qui aurait des conséquences désastreuses pour les occupants de
la voiture. 29
Système d'exploitation Temps réel (RTOS)

services attendus d’un RTOS

● ordonnanceur (scheduler)
● notifications asynchrones
➢ signaux, événements
● gestion des activités (threads)
● gestion de la mémoire
➢ création
➢ mémoire virtuelle
➢ suspension
➢ verrouillage de la mémoire
➢ destruction
➢ protection de la mémoire
● gestion du temps
● entrées-sorties directs ou asynchrones
➢ horloges
➢ open
➢ timers
➢ read
● communication et synchronisation
➢ write
➢ files de messages
● gestion du réseau
➢ mémoire partagée
➢ sémaphores, moniteurs,
variables conditionnelles

30
Système d'exploitation Temps réel (RTOS)

Un système d'exploitation avec des propriétés particulières liées à la


nature des applications qu'il contribue à mettre en œuvre
➢ mécanismes « standards » pour la gestion des ressources
(CPU , mémoire, etc...)
➢ mécanismes et outils spécifiques pour assurer
✔ la prédictibilité du comportement
✔ le respect des échéances
✘ ordonnancement
✘ gestion du temps avec une précision compatible
avec l'échelle de temps de l'application

31
Système d'exploitation Temps réel (RTOS)
L’ordonnanceur

● l'ordonnancement des activités est la base du travail du noyau


➢ mis en œuvre périodiquement et dès qu'une tâche se termine
● l'activation périodique de l'ordonnanceur est provoquée par une horloge
dédiée (pas celle de la CPU)
➢ génère une interruption à chaque tick (~ milliseconde)
● à chaque interruption, le noyau
➢ gère tous les timers, en déclenchant éventuellement les
actions liées aux timers qui viennent d'expirer
➢ gère les budgets de temps d'exécution des tâches
➢ met à jour la liste des tâches prêtes et invoque l'ordonnanceur

32
Système d'exploitation Temps réel (RTOS)
L’ordonnanceur

● implémentation d'algorithmes d'ordonnancement


➢ algorithmes à priorités fixes
✔ SCHED_FIFO
✔ SCHED_RR
✔ SCHED_RM
✔…
➢ algorithme à priorités variables
✔ EDF
➢ gestion des serveurs de tâches apériodiques

33
les RTOS du marché

● Il existe de nombreux systèmes d'exploitation ayant des propriétés conformes


à la liste des fonctionnalités précédentes.
● deux grandes catégories
➢ RTOS généralistes
✔ VxWorks
✔ Xenomai (Linux)
✔ QNX
✔ LynxOS
➢ RTOS spécialisés, développés dans le cadre d'un secteur d'activité
déterminé (télécommunications, avionique, automobile, défense...)
✔ OSEK/VDX
✔ iOS
✔ Android
● ils peuvent être ouverts ou propriétaires

34
les RTOS du marché

35
VxWorks
● RTOS propriétaire produit par Wind River (filiale de Intel)
➢ le plus utilisé dans le monde de l'embarqué
➢ rendu célèbre par la mission Pathfinder sur Mars
➢ équipe la plupart des missions NASA (Curiosity)
➢ dernière version : VxWorks 7 (2014) et VxWorks 7 pour IoT en 2016
● Peu d'informations sur l'architecture de l'OS
➢ Non UNIX, mais interface conforme à POSIX
➢ Construit autour d'un micronoyau (WIND)
➢ Les applications, les protocoles de communication sont complètement séparés
du noyau
➢ Depuis la version 6.0, l'environnement de développement officiel de
VxWorks est Workbench
➢ The ASIMO Robot uses VxWorks
36
VxWorks

37
Linux Temps réel

● Linux n'est pas un RTOS


● points forts
➢ fiable
➢ bon marché
➢ performant
➢ portable (conforme à POSIX)
➢ ouvert aux autres systèmes
● il existe des solutions pour faire de Linux un RTOS :
➢ modifier Linux pour avoir un noyau entièrement préemptible
➢ adjonction d’un co-noyau temps réel

38
Linux Temps réel

● approche « noyau entièrement préemptible »: modifier le noyau pour


que les tâches non temps réel et dont les temps d’exécutions ne sont pas
connus n’interfèrent pas avec les tâches temps réel.
➢ complexe (le noyau est gros)
➢ patch PREEMPT_RT
➢ approche généralement suffisante pour le temps réel mou ou ferme

39
Linux Temps réel

● approche « co-noyau »
Solution « classique » (a existé même pour Windows : RTX)
✔ délègue ceux-ci à un noyau spécialisé
✔ le noyau Linux continue à servir les tâches classiques
➢ le noyau temps réel intercepte toutes les interruptions matérielles et les
traite avant de les passer éventuellement au noyau Linux
➢ Linux fonctionne avec une priorité inférieure à celle du noyau temps réel
➢ mais nécessité de porter sur le noyau temps réel tous les pilotes dont on
attend une réponse temps réel
➢ Linux Xenomai et RTA

40
Algorithmes d'ordonnancement
● Configuration : ensemble de N tâches qui vont s'exécuter concurremment pour
réaliser les objectif de l'application .

● Algorithme d'ordonnancement : mécanisme qui va attribuer a chaque tâche une


priorité de façon à ce que l'ensemble des tâches de la configuration soit exécutée en
respectant les contraintes temporelles
➢ utilise les caractéristiques temporelles des tâches
➢ fournit généralement un critère d'ordonnançabilité.

● Ordonnancement préemptif : à chaque instant, la CPU est attribuée à la tâche de


plus haute priorité.

41
Algorithmes d'ordonnancement

● Le but de l'ordonnancement des tâches temps réel soumises à des

contraintes de temps est de :

➢ valider à priori la possibilité d'exécuter l'application en

respectant ces contraintes

➢ permettre le respect de ces contraintes, lorsque l'exécution

se produit dans un mode courant (réel)

➢ permettre de borner les effets d'incidents ou de surcharges

42
Algorithmes d'ordonnancement
Quelques définitions

● r : date de réveil ➢moment du déclenchement de la 1ere 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 : periode (si tâche periodique)
● d = r+D : échéance (si tâche a contraintes strictes)
● tâche periodique : rk = r0 + k*P
➢ si D = P, tâche a échéance sur requête

43
Algorithmes d'ordonnancement
Comment évaluer le WCET ?

Mesures
sur matériel
sur simulateur
Analyse statique

44
Algorithmes d'ordonnancement
Quelques définitions
● 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 a la date t (0 ≤ D(t) ≤ D)

45
Algorithmes d'ordonnancement
Quelques définitions
● 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 a la date t (0 ≤ D(t) ≤ D)

➢ C(t) : durée d'exécution résiduelle a la date t (0 ≤ C(t) ≤ C)

46
Algorithmes d'ordonnancement
Quelques définitions
● 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 a la date t (0 ≤ D(t) ≤ D)
➢ C(t) : durée d'exécution résiduelle a la date t (0 ≤ C(t) ≤ C)
➢ L(t) = D(t)-C(t) : laxité nominale résiduelle

47
Algorithmes d'ordonnancement
Tâches indépendantes périodiques

● l'ordre dans lequel les tâches de la configuration sont exécutées est sans
importance
● les tâches ne partagent aucune ressource
● algorithmes a priorités fixes
➢ RMA
➢ DMA
● algorithmes a priorités variables
➢ EDF

48
Algorithmes d'ordonnancement
Rate Monotonic Analysis

● 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 mais non nécessaire)

● quand n est très grand : n(21/n – 1) ~ ln 2 = 0,69

49
Algorithmes d'ordonnancement
Rate Monotonic Analysis - Exemple

T1 (r0=0, C=3, P=20), T2 (r0=0, C=2, P=5), T3 (r0=0, C=2, P=10)

∑ Ci/Pi= 3/20+2/5+2/10 = 0,75 <n(21/n-1) = 0,77

Prio2 > Prio3 > Prio1

Intervalle d'étude = ppcm (Pi)=20

50
Algorithmes d'ordonnancement
Earliest Deadline First
● algorithme à priorité variable ou dynamique
● 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

Si le résultat du test est positif, les tâches peuvent ne pas être ordonnançable. s’il
est négatif, les tâches sont non ordonnançables

➢ condition suffisante

Si le test est positif alors les tâches sont ordonnançables. Dans le cas
contraire elles peuvent être ordonnançables ou non
51
Algorithmes d'ordonnancement
Earliest Deadline First

-Avantages :

Ordonnancement optimal en ce qui concerne l'utilisation du processeur

(utilisation à 100%)

Peut traiter des tâches apériodiques

-Désavantages :

Implémentation difficile, il faut réajuster les priorités au fil du temps en testant les

différentes échéances.

Le temps de réponse ne se calcule pas facilement

52
Algorithmes d'ordonnancement
Earliest Deadline First - 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)

∑ Ci/Pi= 3/20+2/5+2/10 = 0,75 < 1


∑ Ci/Di= 3/7+2/4+2/8 = 1,18 > 1

Intervalle d'étude = ppcm (Pi)=20


53
Algorithmes d'ordonnancement
Exercice

● soit une configuration avec 2 tâches à échéance sur requête :


T1 : (r0 = 0, C1 = 2, P1 = 5)
T2 : (r0 = 0, C2 = 4, P2 = 7)
● quel est l’intervalle d'étude ?
● la configuration est-elle ordonnançable avec RMA ? Justifiez votre réponse.
● même question avec EDF
● tracer les chronogrammes en indiquant les éventuelles fautes temporelles

54

Vous aimerez peut-être aussi