Vous êtes sur la page 1sur 38

Chapitre1 : Introduction

Aujourd’hui, les applications temps réel sont de plus en plus variées et elles prendront de plus en
plus de place dans notre vie quotidienne . Réservés, il y a quelques années, aux applications
industrielles, les systèmes temps réel font leur apparition dans beaucoup d’autres secteurs tels
que le transport, le multimédia, les consoles de jeux, ...
Définition
• Un système temps réel est un système (application ou ensemble d’applications) informatique
dont le fonctionnement est assujetti à l’évolution dynamique d’un procédé extérieur qui lui est
connecté et dont il doit contrôler le comportement.

• Un système temps réel n’est pas un système « qui va vite / rapide» mais un système qui
satisfait des contraintes temporelles (les contraintes de temps dépendent de l’application et de
l’environnement alors que la rapidité dépend de la technologie utilisée, celle du processeur par
exemple).

• Un système temps réel est un système qui peut répondre à son environnement dans le temps
le plus court possible. Ceci ne veut pas dire nécessairement que le microcontrôleurs μC devrait
opérer à haute vitesse. .
Un Système Temps Réel, c’est quoi ?
En informatique temps réel, le comportement correct d’un système dépend, non seulement des
résultats logiques des traitements, mais aussi du temps auquel les résultats sont produits" [STA
88].
Objectifs :

 Déterminisme logique : les mêmes entrées appliquées au système produisent les mêmes
résultats.

 Déterminisme temporel : respect des contraintes temporelles (ex : échéance).

 Fiabilité : le système répond à des contraintes de disponibilité (fiabilité du logiciel et du


matériel).

Système prédictible : on cherche à déterminer a priori si le système va répondre aux


exigences temporelles.

 Un système temps réel n’est pas un système "qui va vite" mais un système qui satisfait à
des contraintes temporelles.
Domaines d’applications
Les applications temps réel sont présentes aujourd’hui dans des domaines très variés comme
le montre la liste suivante :

 Télécommunications (transport de la parole, systèmes de commutation, …),

 Domaine médical (assistance et supervision de malades, …),

 Contrôle de différents équipements dans les voitures, bus, trains, avions, …,

 Contrôle et régulation de trafic en milieu urbain,

 Guidage de véhicules en milieu urbain,

 Industrie (contrôle/commande de procédés manufacturiers ou continus, …),

 Domaine militaire (suivi de trajectoires de missiles, …)


 Aérospatial (suivi de satellites, simulation de vols, pilotage automatique, …),

 Multimédia (transport d’images et de voie, téléconférences, …),

 Finance (suivi du cours des devises et actions, ...),

 Loisirs (consoles de jeu, ...),

 Domotique (sécurité d’habitations, …),

 Contrôle/commande d’appareils électroménagers.


Exemples de grandeur des contraintes temporelles
- La milliseconde pour les systèmes de radar

-La seconde pour les systèmes de visualisation humaine

-Quelques heures pour le contrôle de production impliquant des réactions chimiques

-24 heures pour les prévisions météo.

-Plusieurs mois ou années pour les systèmes de navigation de sonde spatiale.


Classification
1. Classement des systèmes temps réel selon le respect des contraintes temporelles :
Respect des contraintes déterministes, probabilistes ou best effort.

• Temps réel dur ou critique (hard real-time): le non respect des contraintes temporelles
entraîne la faute du système.
Ex.: contrôle de trafic aérien, système de conduite de missile, etc.

• Temps réel souple (soft real-time): le respect des échéances est important mais le non
respect des échéances ne peut occasionner de graves conséquences.
Ex.: projection vidéo (décalage entre le son et l’image).
Ex.: un robot qui capte des infos sur des objets défilant sur un convoyeur [Duvallet et al. 1999].

• Temps réel ferme (firm real-time): temps réel souple avec le manquement occasionnel des
échéances.
Ex.: projection vidéo (perte de quelques trames d’images).
2. Classement des systèmes temps réel selon leur environnement:

 Systèmes embarqués, ou Embedded systems, ou systèmes enfouis : systèmes


informatiques dans lequel le processeur/calculateur est englobé dans un système plus large
et/ou que le logiciel est entièrement dédié à une application donnée.
(ex : une sonde spatiale, un téléphone mobile).

 Systèmes répartis : "Un système réparti est un ensemble de machines autonomes


connectées par un réseau, et équipées d un logiciel dédié à la coordination des activités du
système ainsi qu au partage de ses ressources." Coulouris et al. [COU 94].

 Système réparti temps réel pour des raisons de :

oFiabilité (redondance).
o Contraintes physiques.
o Partage des données,
opériphériques,...
Par ailleurs, toute application temps réel est en interaction (forte ou faible selon les cas) avec
son environnement. Lequel environnement peut être un procédé industriel, un moteur
d’avion, une ville (si on s’intéresse à la pollution, par exemple), un malade, un groupe de
participants à une téléconférence, un enfant devant sa console de jeu, etc.

La nature de l’environnement à une incidence directe sur la criticité des actions entreprises dans
une application temps réel.
Pour résumé :
Notion de criticité et d’importance des opérations:

La notion de “criticité” (ou criticality en anglais) a été introduite comme critère pour
pouvoir classer les applications temps réel selon la sévérité, en terme de coût engendré par le
non-respect des contraintes temporelles. On parle de faute temporelle, quand les contraintes
de temps ne sont pas respectées.

on a coutume de classer les systèmes temps réel en trois familles :

• Systèmes à contraintes temporelles critiques


• Systèmes à contraintes temporelles souples
• Systèmes à contraintes temporelles strictes (firm real-time systems)
EXEMPLES.

1. Les systèmes d’interception de missiles ou de contrôle d’atterrissage d’avions sont


considérés comme étant des systèmes à contraintes temporelles critiques. En effet, dans un
système d’interception de missiles, si un missile n’est pas intercepté à temps, cela peut
conduire à des conséquences graves. Si une opération d’atterrissage d’un avion commencée
n’est pas achevée au bout d’un délai borné, un accident grave peut survenir.

2. Les systèmes de téléconférences et les systèmes de réservation des compagnies aériennes


sont considérés comme étant des systèmes à contraintes temporelles souples. Dans un
système de téléconférence, son et image doivent être synchronisés, mais des dérives de
synchronisation (dues à des messages tardifs) sont souvent tolérées. Pour les systèmes de
réservation des compagnies aériennes, si une requête de réservation dure un peu plus
longtemps que prévu, la seule conséquence regrettable peut être la perte d’un client qui
quitte l’agence, car il ne souhaite plus attendre davantage.
3. Certains systèmes de supervision d’installations industrielles sont considérés comme des
systèmes à contraintes strictes. Par exemple, des pièces fabriquées sur une chaîne de
production sont déposées sur un convoyeur et passent devant une caméra qui doit détecter
certaines anomalies de fabrication. En fonction des anomalies détectées par le système de
reconnaissance, les pièces sont dirigées vers la cellule de fabrication appropriée. La détection
des anomalies doit se faire pendant que la pièce est en mouvement. Si la détection d’anomalie
ne s’est pas faite dans les temps, la pièce est recyclée sur le convoyeur pour une deuxième
analyse. On accepte que le système recycle une pièce sur dix car s’il recycle trop de pièces la
chaîne de production s’en trouve ralentie.
Exemple 4: multimédia sur le Web
Architecture matérielle d’un système temps réel
La plupart des systèmes complexes peuvent avoir plusieurs tâches (Tasks) complexes.

Dans un système multitâche, plusieurs tâches nécessitent le CPU au même temps.


Cependant, on ne dispose que d’un seul CPU : on aura besoin à quelques formes
d’organisation et de coordination qui permettent à chaque tâche d’avoir le temps CPU
qu’elle a besoin.

Dans la pratique, chaque tâche prend un temps très bref, il paraît donc comme si toutes
les tâches sont exécutées en parallèle et simultanément.
La majorité des systèmes à microcontrôleurs (μC) fonctionnent en temps réel.

Exemple : Un système à base de μC exécute plus qu’une activité pour contrôler une
température, il est composé de 3 tâches qui se répètent après un court délai :

• Tâche 1 ; Lire la température

• Tâche 2 : Changer le format de la température.

• Tâche3 : Affichage de la température.


Un système d’exploitation temps réel (RTOS : Real Time Operating System) est un code
qui contrôle l’allocation des tâches quand le μC opère dans un environnement
multitâche.

• Exemple : Un STR décide quelle est la tâche suivante qui sera exécutée ou comment
ordonner la priorité des tâches et comment passer les données et les messages entre les
tâches.

Il y a plusieurs STR de haut niveau disponibles sur le marché pour les μC PIC : Salvo
utilisé à partir d’un compilateur C de PIC : High-tech et CCS qui intègrent des systèmes
RTOS.
Les machines d’états

Ce sont des constructions simples utilisées pour exécuter plusieurs activités en suivant
une séquence.

La méthode la plus simple pour coder des machines d’état en C est d’utiliser une
instruction switch-case.
Dans plusieurs applications, les états n’ont pas besoin d’être exécutés en séquence (le
prochain état est sélectionné par l’état présent soit d’une façon directe soit suivant des
conditions.
Système d’exploitation temps réel (RTOS : Real Time
Operating System)

Les RTOS sont construits autour d’un noyau multitâche qui contrôle l’allocation des laps
du temps des tâches. Un laps du temps est la période de temps pour l’exécution d’une
tâche donnée avant qu’elle sera arrêtée et remplacée par une autre tâche.

Ce processus est connu par le changement du contexte, qui se répète de façon continue.
Quand le changement de contexte se produit, la tâche est stoppée, les registres du CPU
sont sauvegardés dans la mémoire, les registres de la prochaine tâche disponible sont
chargés dans le CPU et la nouvelle tâche commence son exécution..
Un RTOS fournit aussi les messages qui passent entre les tâches, synchronisation des
tâches et allocation de ressources partagées des tâches.

Les parties de base d’un RTOS sont :

•L’ordonnanceur (Scheduler).

•Services RTOS.

•Synchronisation et outils de messageries.


Chapitre 2 : L’ordonnanceur (Scheduler)
I. Introduction

Dans les applications temps-réel embarquées, les systèmes sont en interaction avec
l’environnement physique. Il y aura des c Contraintes de temps à satisfaire :

•La date de livraison d’un résultat est un critère de correction autant que la valeur du
résultat elle-même

•Systèmes dédiés : matériel (processeur, DSP, FPGA, ASICs, capteurs, actionneurs) et


logiciel.

•Sûreté de fonctionnement
II. Notion de contraintes de temps
C’est une limite quantifiée (en rapport avec le temps réel) sur le temps séparant deux
événements.
III. Contraintes pour la réalisation d’applications
temps-réel

III.1 Contraintes de temps

•Choix de l’ordre d’exécution des fonctions important : Ordonnancement des calculs

•Déterminisme d’exécution (predictability) : On doit connaître pour tous les calculs


effectués (application, OS) leur temps de calcul de manière sûre (non sous-estimée)

•Validation des contraintes de temps à partir de la charge de travail : Tests pas toujours
suffisants (exhaustivité), Modèle du système et de la charge : analyse d’ordonnançabilité
III.2 Contraintes pour la réalisation d’applications temps-réel

•Sûreté de fonctionnement : qualité des développements (lisibilité, maintenabilité)

•Environnement de conception et Langage de programmation adapté : langage de haut


niveau

• Assembleur rapide, mais non portable, difficile de vérifier les contraintes de temps (pas
assez structuré) d’où le recours à des langages de plus haut niveau (ex: Ada).
IV. Ordonnancement temps réel

IV.1 Problème

Calculs à exécuter + contraintes de temps = dans quel ordre exécuter ?

IV.2 Définition

C’est l’ensemble des règles définissant l’ordre d’exécution des calculs sur le processeur
L’ordonnancement a un impact sur le respect des contraintes de temps.
Exemple :

Tâche T1 : arrivée en 0, durée 4, échéance 7

Tâche T2 : arrivée en 2, durée 2, échéance 5

Ordonnancement O1: premier arrivé, premier servi, Ordonnancement O2: priorité, T2 plus
on n’interrompt jamais une tâche prioritaire que T2.
V. Classification des ordonnancements

V.1 Critères de classification

• Instant ou l’ordre d’exécution est décidé : hors-ligne / enligne

• Possibilité d’interruption d’une tâche par une autre : préemptif / non


préemptif

• Optimalité : quel est le « meilleur » ordonnancement


V.2 Ordonnancement « hors-ligne » / « en-ligne

Hors-ligne :

•La séquence d’ordonnancement est pré-calculée avant l’exécution effective (on dit aussi
« time driven» scheduling)

• À l’exécution, l’ordonnanceur est un simple séquenceur (« cyclic scheduler »)


En-ligne :

•Les décisions d’ordonnancement sont prises au cours de l’exécution.

• À l’exécution, l’ordonnanceur implante un algorithme d’ordonnancement permettant


de savoir à tout instant quel tâche exécuter : besoin d’un exécutif multitâche.

• Généralement, ordonnancements conduits par la priorité.


V.3 Ordonnancement non préemptif / préeemptif

Non préemptif :
On n’interrompt jamais l’exécution d’une tâche en cours au profit d’une autre tâche

Préemptif :
La tâche en cours peut perdre involontairement le processeur au profit d’une autre
tâche (jugée plus urgente)
Remarque : orthogonal par rapport à la classification en-ligne / hors-ligne
Exemple d’ordonnancement préemptif : conduit par la priorité
Algorithme d’ordonnancement :
Sélectionner la tâche la plus prioritaire
• prio(T3) > prio(T2) > prio(T1) (ici, priorités fixes)
• T1, T2 et T3 arrivent respectivement aux dates 1, 2,et 3
V.4 Optimalité

Optimal vs heuristique :

Optimal : si ne trouve pas de solution au problème d'ordonnancement posé, alors


aucun autre algorithme de la même classe ne peut en trouver.

Heuristique : pas de garantie d’optimalité.

Remarque : Cette notion d’optimalité ne permet pas de déterminer la meilleure classe


d’algorithme pour un problème donné.

Vous aimerez peut-être aussi