Vous êtes sur la page 1sur 4

Chapitre 3 : Les systèmes Temps Réel III.

Caractéristiques d’un système temps réel


1. La prévisibilité d’un STR : est un aspect important. Un STR doit être conçu tel
que ses performances soient définies dans le pire cas (alors que dans les
I. Définition
systèmes classiques, les performances sont définies en termes de moyenne).
En informatique, on parle d'un système temps réel lorsque ce système est capable de
2. La prévisibilité est le fait de savoir à l’avance si un système va respecter ses
contrôler ou piloter un procédé physique à une vitesse adaptée à l'évolution du procédé
contraintes temporelles (C.T.). Pour cela, il est nécessaire de connaître avec
contrôlé.
précision les paramètres des tâches : temps global de calcul de chaque activité,
Les systèmes informatiques temps réel se différencient des autres systèmes informatiques par
périodicité, date de réveil, etc.
la prise en compte de contraintes temporelles dont le respect est aussi important que
3. Le déterminisme d’un STR : est le but à atteindre pour assurer la prévisibilité :
l'exactitude du résultat, autrement dit le système ne doit pas simplement délivrer des résultats
Pour qu’un système soit prévisible, il faut qu’il soit déterministe. Donc enlever
exacts, il doit les délivrer dans des délais imposés.
toute incertitude sur le comportement des activités (individuelles et mises
ensemble)
Les systèmes informatiques temps réel sont aujourd'hui présents dans de nombreux secteurs
4. Découpage en taches
d'activités :
5. Utilisation du temps concret : Le temps réel (ou temps concret) sera utilisé de
1. dans l'industrie de production par exemple, au travers des systèmes de contrôle de
plusieurs façons :
procédé (usines, centrales nucléaires) ;
– Soit en définissant la date à laquelle une action doit être commencée
2. dans l’économie au travers du traitement des données boursières en « temps réel » ;
– Soit en définissant la date à laquelle une action doit être finie
3. télécommunications (transport de la parole, systèmes de commutation, …),
– Il peut être nécessaire de pouvoir modifier ces paramètres en cours
4. domaine médical (assistance et supervision de malades, …),
d'exécution et de pouvoir préciser les actions à prendre en cas de
5. contrôle de différents équipements dans les voitures, bus, trains, avions, …,
faute temporelle
6. contrôle et régulation de trafic en milieu urbain,
6. Ordonnancement
7. guidage de véhicules en milieu urbain,
7. Respect des contraintes temporelles
8. domaine militaire (suivi de trajectoires de missiles, …)
8. La fiabilité
9. aérospatial (suivi de satellites, simulation de vols, pilotage automatique, …),
10. multimédia (transport d’images et de voie, téléconférences, …),
11. finance (suivi du cours des devises et actions, ...), IV. Ordre de grandeur de temps
12. loisirs (consoles de jeu, ...), − nanosecond - O(ns) : Temps d’accès à une RAM (5-80ns), Durée entre deux ticks
13. domotique (sécurité d’habitations, …), d’horloge d’un processeur Pentium (1GHz) Fréquence de 1GHz (109Hz)
14. contrôle/commande d’appareils électroménagers. − microseconde - O(μs) : Traitement dans un noyau de système d’exploitation
(changement de contexte, interruption matérielle), Systèmes utilisant des radars
Un système temps réel n’est pas un système "qui va vite" mais un système qui satisfait à des (navigation, détection de mouvement, etc.), Transmission sur des bus de terrain,
contraintes temporelles. transmission radio, Fréquence de 1 MHz (106 Hz)
− milliseconde - O(ms) : Temps d’accès à un disque dur SCSI ou IDE (5-20 ms), La
Le développement de systèmes temps réel nécessite donc que chacun des éléments du durée d’échantillonnage du son, protocoles de télécommunication, Fréquence de 1
système soit lui-même temps réel, c’est-à-dire permettre de prendre en compte des contraintes KHz (103 Hz)
temporelles. Un système d'exploitation conçu pour prendre en compte ces contraintes est − seconde (s) - O(s) : Systèmes de visualisation humain (temps durant lequel l’œil
appelé système d'exploitation temps réel. peut "intégrer" 25 images au plus), Applications multimédia, Temps de réponse
des applications informatiques (accès DB, compilation, etc.), Fréquence de 1 Hz
II. Spécificités − L’heure (h) - O(h) : Applications de surveillance de réactions chimiques,
Pour garantir le respect de limites ou contraintes temporelles, il est nécessaire que : surveillance de données météorologiques
1. les différents services et algorithmes utilisés s'exécutent en temps borné mais peut être − Le mois, l’année - O(m, a) : Systèmes de navigation de sonde spatiale
interrompus par un processus plus prioritaire ;
2. Un système d'exploitation temps réel doit ainsi être conçu de manière à ce que les
services qu'il propose (accès hardware, etc.) répondent en un temps borné ; V. Classement des systèmes temps réel
3. les différents enchaînements possibles des traitements garantissent que chacun de Les systèmes temps réel sont classés selon le respect des contraintes temporelles :
ceux-ci ne dépassent pas leurs limites temporelles. Ceci est vérifié à l'aide du « test − Temps réel dur ou critique (hard real-time) : le non respect des contraintes
d'acceptabilité ». 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

1 2
vidéo (décalage entre le son et l’image), Un robot qui capte des infos sur des objets − non préemptible : une fois élue, la tâche ne doit plus être interrompue jusqu’à la fin de
défilant sur un convoyeur la requête (tâches atomiques, à exécution immédiate). Ex : tâche qui s’exécute sous le
− Temps réel ferme (firm real-time) : temps réel souple avec le manquement contrôle d’une interruption
occasionnel des échéances. Ex. : projection vidéo (perte de quelques trames d’images). − tâches indépendantes : lorsqu’elles n’ont pas de relations de précédence, ni ne
partagent des ressources critiques
− tâches dépendantes :
VI. Limites des systèmes classiques pour le temps réel o Par une relation de précédence statique : si elles agissent selon un ordre
− Reposent sur un OS qui offre des mécanismes mal adaptés au temps Réel prédéterminé, ou induit par la communication par messages ou par une relation
− politiques d’ordonnancement visent le partage équitable du temps d’exécution. Pas explicite de synchronisation. Elle est statique car connue a priori. On peut
adaptées à des tâches plus critiques que d’autres. construire le graphe de dépendance.
− les mécanismes d’accès aux ressources partagées sont à adapter pour éliminer les o Par une relation de précédence dynamique : si elles partagent des ressources
incertitudes temporelles critiques (accès en exclusion mutuelle). La relation est dynamique car
− la gestion des E/S engendre de longues attentes (parfois non bornées) l’utilisation de la ressource dépend de l’ordre d’exécution des tâches du Havre
− la gestion des interruptions n’est pas optimisée - UFR ST - LITIS - Équipe STI Sy
− les mécanismes de gestion de la mémoire virtuelle sont à revoir (swapping, ...)
− les temporisateurs qui organisent le temps n’ont pas une résolution assez fine (pour 2. Etats d’une tâche
beaucoup d’applications temps réel) − élue : un processeur est alloué à la tâche
− On ne dispose pas de moyens pour indiquer à l’OS le degré d’urgence d’une tâche − bloquée : la tâche attend une ressource, un message ou un signal de synchronisation
− le temps de réponse des événements externes n’est pas prévisible : le système − prête (éligible) : la tâche attend d’être élue
n’indique rien sur la durée de prise en compte d’une interruption − passive : la tâche n’a pas de requête en cours
− inexistante : la tâche n’est pas créée

VII. Tâche
Un processus correspond à un fichier exécutable en cours d’exécution sur un processeur. Il est VIII. Ordonnancements classiques des tâches
entre autre caractérisé par un code (le programme à exécuter), une pile et un tas qui Il s’agit de déterminer quelle tâche prête doit être élue :
permettent de stocker les données nécessaires à son bon fonctionnement, un identifiant 1. Premier arrivé, premier servi (les tâches de faible temps d’exécution sont
unique, et une priorité. La priorité permet au système d’exploitation de gérer plusieurs pénalisées si elles sont précédées dans la file par une tâche de longue durée)
processus en cours d’exécution sur un processeur, un processus à plus haute priorité se voyant
attribuer un temps d’utilisation processeur plus important. 2. Plus court d’abord : remédie à l’inconvénient précédent. Minimise le temps de
Un processus peut également être décomposé en tâches (threads ou fils d’exécution), chaque réponse moyen. Pénalise les travaux longs. Elle impose d’estimer les durées d’exécution des
tâche étant une sorte de processus léger. Dans ce cours, nous utiliserons le terme de tâche tâches (connues difficilement).
pour désigner une suite d’instructions séquentielles correspondant à une tâche.
3. Temps restant le plus court d’abord : la tâche en exécution restitue le processeur
Les tâches sont divisées en deux grandes catégories, en fonction de leur périodicité. lorsqu’une nouvelle tâche ayant un temps d’exécution inférieur à son temps d’exécution
− Les tâches périodiques (ou cycliques) sont des tâches qui sont exécutées à intervalles restant devient prête.
réguliers. Elles sont entre autre définies par la période avec laquelle elles sont censées
s’exécuter, ce qui est géré par l’ordonnanceur. 4. Tourniquet (RoundRobin) : on définit un quantum de temps (10ms à
Une tâche périodique peut par exemple être responsable de l’observation d’un capteur 100ms). Chaque tâche de la file acquiert le processeur pendant au maximum un quantum de
à intervalles réguliers, de la régulation de moteurs, de monitoring, etc. temps, puis le cède à sa suivante dans la file, etc. ! Utilisée souvent dans les systèmes à temps
− Les tâches apériodiques sont, quant à elles, exécutées à intervalles irréguliers, et partagé. Ses performances dépendent du quantum de temps. Si trop grand : augmente les
peuvent donc survenir à n’importe quel instant. Il s’agira typiquement de tâches de temps de réponse, si trop petit : multiplication des commutations de contextes.
configuration, et de tâches activées par une alarme, ou par une entrée de l’utilisateur.
Les interruptions jouent un rôle important, étant le principal vecteur d’activation. 5. Priorités constantes : des priorités sont affectées aux tâches et à un instant donné, la
− Une tâche est dite sporadique si elle est apériodique et que l’intervalle minimal entre tâche élue est celle qui a la plus forte priorité. Les tâches de faible priorité peuvent ne pas
deux activations est connu. disposer du processeur (famine). Solution : faire “vieillir” la priorité des tâches en attente
(augmenter en fonction du temps d’attente). La priorité devient ainsi variable (et donc non
constante !)
1. Caractéristiques d’une tâche
− préemptible : tâche élue qui peut être arrêtée et remise à l’état prêt, pour allouer le
processeur à une autre tâche

3 4
Remarques − dk : échéance de la kème requête de la tâche.
Aucune des politiques présentées ne permet de remplir les 2 objectifs d’un ordonnancement − dk = rk + D, représentée par ↓
temps réel. − tâche à échéance sur requête quand D = P, représentée par |
Notamment : pas de prise en compte de l’urgence des tâches (délai critique)

 Ordonnancement spécifique aux tâches temps réel X. Algorithmes d’ordonnancement temps réel pour tâches périodiques
1. Rate Monotonic
IX. Terminologie pour l’ordonnancement des tâches temps réel L’algorithme Rate Monotonic est un algorithme statique, applicable à un ensemble de tâches à
Une tâche possède des paramètres chronologiques (délais) et chronométriques (dates). Les échéance sur requête (l’échéance d’une tâche est égale à sa période), où les priorités des
paramètres de base d’une tâche sont : tâches sont fixes et décidée avant le lancement du système.
− r : sa date de réveil, moment de déclenchement de la 1ere requête d’exécution La priorité des tâches est fixée en fonction de leur période d’activation. Plus une tâche a une
− C : sa durée maximale d’exécution (si elle dispose du processeur à elle seule) petite période d’activation, plus sa priorité sera haute. Il s’agit d’un algorithme préemptif,
− D : son délai critique (délai maximal acceptable pour son exécution) l’activation d’une tâche de petite période devant permettre la préemption d’une tâche de
− P : sa période (si tâche périodique) période plus grande. Cet algorithme est optimal dans le cas des priorités fixes
− Si tâche à contraintes strictes : l’échéance d = r + D, est la date dont le dépassement
entraîne une faute temporelle. 2. Deadline Monotonic
− s : date de début d’exécution de la tâche L’algorithme Rate Monotonic est basé sur l’hypothèse que les tâches sont à échéance sur
− f : date de fin d’exécution de la tâche requête, c’est-à-dire que l’échéance d’une tâche est égale à sa période. Dans certains systèmes
− u = C/P : son facteur d’utilisation du processeur cette hypothèse ne pourra s’avérer exacte, et les échéances pourront être plus petites que les
− ch = C/D : son facteur de charge du processeur périodes. Dans ce cas, l’algorithme Deadline Monotonic est un algorithme optimal dans le cas
des algorithmes à priorité statique avec échéances plus petites que les périodes. Comme RM,
− L = D − C : sa laxité nominal. Indique le retard maximum que peut prendre la tâche
sans dépasser son échéance il est préemptif. La priorité d’une tâche est fixée par son échéance. Plus son échéance est
petite, plus sa priorité est grande.
− D(t) = d − t : son délais critique résiduel au temps t
− C(t) : sa durée d’exécution résiduelle au temps t
3. Earliest Deadline First
− L(t) = D(t) − C(t) : sa laxité résiduelle au temps t L’algorithme Earliest Deadline First (EDF) donne la priorité à la tâche ayant l’échéance la
− TR = f − r : son temps de réponse. L’échéance est respectée si tr <= D plus proche. A chaque fois qu’une tâche est réveillée, l’ordonnanceur réévalue les tâches
prêtes et sélectionne celle ayant l’échéance la plus courte. Cet algorithme est appliqué, ici, à
des tâches périodiques à échéance sur requête où la préemption est autorisée.

4. Least Laxity First


L’algorithme Least Laxity First (LLF) est, à l’instar d’EDF, un algorithme à priorité
dynamique. Il traite des tâches périodiques pour lesquelles la préemption est autorisée.
La règle décrivant l’algorithme est simplement que la tâche dont la laxité est la plus faible est
la plus prioritaire.
Les définitions suivantes permettent d’aborder la notion de laxité :
• L = D − C : sa laxité nominal. Indique le retard maximum que peut prendre la tâche sans
dépasser son échéance
• D(t) = d − t : son délais critique résiduel au temps t
• C(t) : sa durée d’exécution résiduelle au temps t
• L(t) = D(t) − C(t) : sa laxité résiduelle au temps t

Remarques XI. Système d’exploitation


− T (r0, C, D, P) avec 0 ≤ C ≤ D ≤P Un système temps réel peut être mis en place via un système d’exploitation ou non. Sans
− r0 : date de réveil, C : durée max d’exécution, D : délai critique, P : période système d’exploitation, il est possible de disposer d’un exécutif (ou moniteur) temps réel, qui
− rk : date de réveil de la kème requête de la tâche. est une sorte de micro-noyau. Cet exécutif est responsable de l’ordonnancement des tâches
− rk = r0 + k*P, représenté par ↑ (ordre dans lequel elles s’exécutent), les tâches s’occupant de leur traitement propre. Cette

5 6
solution peut être adaptée à des systèmes embarqués dont la fonctionnalité est très spécifique Un Exécutif temps réel est un moniteur temps réel (par exemple, RTEMS ou eCos) :
et peu soumise à modification. − Il est recompilé avec l'application, se présente sous forme d’une bibliothèque, « linkée
Dans des systèmes plus importants, il est agréable de disposer des facilités proposées par un » avec l'application. On recharge l’ensemble [application + système] à chaque fois
système d’exploitation, tels qu’une interface utilisateur ou la gestion de fichiers, par exemple. qu’on relance l’application.
Un système d’exploitation doit par contre être spécifiquement conçu pour le temps réel. Il est − Il est de très petite taille, parce que modulable en fonction de l’application.
en effet impossible de faire fonctionner une application temps réel strict sur un système − gestion mémoire très simple donc efficace en termes de temps.
d’exploitation standard. Ceci est notamment en partie dû aux facteurs d’imprédictibilité cités − pas d'interface utilisateur, le couple écran/clavier n’est plus le périphérique privilégié.
précédemment. Il existe plusieurs systèmes d’exploitation temps réel, propriétaires ou open
source. Services d’un ETR:
− un service de gestion des taches qui assure l’ordonnancement sur le processeur et
Quelques de systèmes d’exploitation Temps réel (RTOS) également toutes les opérations de création, activation, suspension, terminaison des
tâches.
− un service de gestion des interruptions,
− un service de gestion des entrées-sorties
− un service de gestion des exceptions et de reprise d’erreurs
− un service d’outils de communication entre les taches et de synchronisation pour
l’accès aux ressources.
− un service de gestion du temps dont la précision soit compatible avec les exigences
temporelles des applications temps réel.

Exemples
Les exécutifs temps réel du marché peuvent être classés en deux catégories :
− les exécutifs temps réel dérivés du système Unix. Ce sont des exécutifs qui ont été
réalisés par le biais d’une adaptation du système classique Unix et offrent une
interface POSIX. Citons par exemple QNX de QNX Software Systems, LynxOS de
LynuxWorks et bien sûr RTLinux et les autres Linux temps réel ;
− les exécutifs temps réels natifs. Ce sont des exécutifs qui ont été conçus dès le départ
spécifiquement pour le temps réel. Citons par exemple VxWorks de Wind River
Systems.
− Par ailleurs, certains exécutifs présentent des versions dites embarquées. Le noyau est
alors réduit à un ensemble de services minimum de manière à être suffisamment
La norme POSIX (Portable Operating System Interface) définit l’ensemble des services et des
compact pour être chargé dans une mémoire de petite capacité.
primitives que doit offrir un système d’exploitation dit ouvert pour permettre l’écriture
d’applications portables entre systèmes Unix et même entre des systèmes Unix et d’autres
systèmes.
XIII. Langages de programmation utilisés en TR
Plusieurs langages de programmation sont TR natif. Comme par exemple :
− Ada (choix par le gouvernement Américain)
XII. Exécutifs temps-réel (ETR)
L’exécutif temps réel constitue le support d’exécution des taches de l’application temps réel. − Pearl (Process and Experiment Automation Real-time Language)
Un exécutif temps réel est l'extension d'un noyau de base. Ce noyau temps réel est la base − Occam (transputers)
minimale du système d'exploitation et gère les tâches et l'interconnexion de ces tâches (multi- − Euclid (expérimental)
tâches). Cependant d’autres langages nécessitent un certain additif pour qu’ils puissent traiter le temps
Bien que la taille du noyau varie selon les systèmes, souvent celle-ci est réduite à une dizaine réel. Par exemple : C, C++, Java
de kilo-octets.
Ainsi, l'exécutif est appelé lors d'un événement, en fonction de l'évolution du temps, ou
encore par des tâches nécessitant un service de l'exécutif.

7 8

Vous aimerez peut-être aussi