Vous êtes sur la page 1sur 88

Qu’est ce qu’un système temps réel :

Définition : Systèmes dont la correction ne dépend pas


seulement des valeurs des résultats produits mais
également

des délais dans lesquels les résultats sont produits

•le système doit répondre a des stimuli externes sous un


délai spécifié,

•l’absence de réponse est aussi grave qu’une réponse


erronée,
C’est un système qui interagit avec un environnement
externe qui lui-même évolue avec le temps,

•qui réalise certaines fonctionnalités en relation avec cet


environnement,
•Et qui exploite des ressources limitées
Qu’est ce qu’un système temps réel :

système temps réel: qui doit fournir un service dans un


contexte où le temps intervient
évolution du système (système réactif)
contraintes de temps (échéances)

 systèmes embarqués:

autonomes, avec un fort couplage entre le matériel et le logiciel


utilisation dans un but très précis
souvent inclus dans un système plus vaste
~ 90% du marché des processeurs
•Un système embarqué (embedded system ou système
enfoui) est un système informatique dans lequel le
processeur/calculateur est englobé dans un système plus
large et où le logiciel est entièrement dédié à une
application donnée.
Ex. sonde spatiale, terminal GSM, carte à puce
• Les ressources utilisées pour mener à bien les calculs
sont en nombre limité (contraintes matérielles).
•Intervention humaine directe difficile voire impossible.
Qu’est ce qu’un système temps réel) :

Non seulement des résultats exacts

mais aussi fournis dans un temps donné, compatible avec


l'évolution du système :
l'échelle de temps dépend du système :
de quelques millisecondes pour un système de navigation
aérienne
à plusieurs minutes ou heures pour contrôle d'un réacteur
chimique

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
Plusieurs contraintes à vérifier pour qu ’un système
temps réel soit fonctionnel :

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 aux données communiquées,

Exactitude temporelle(timeliness) : respect des contraintes


temporelles (ex : échéance). Les sorties sont présentées au bon
moment,

Déterminisme logique: les mêmes entrées appliquées au


système produisent les mêmes résultats,
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.
Échelle de temps et temps de réponse :

Le rythme d’évolution de l’environnement détermine l’échelle


de temps relative à une contrainte temps réel.

Le temps de réponse d’un système en temps réel est la durée


entre la présentation des entrées à un système et l’apparition des
sorties suite aux traitements effectués sur ces entrées par le
système.

Le temps de réponse permet d’exprimer la contrainte et est lié à


l’échelle de temps d’évolution de l’environnement.
Exemples de grandeurs

La milliseconde pour les systèmes radar.


La secondepour les systèmes de visualisation humain.
Quelques heurespour le contrôle de production
impliquant des réactions chimiques.
24 heurespour les prévisions météo.
Plusieurs mois ou années pour les systèmes de navigation
de sonde spatiale.
Quelques exemples de STR :

Transports : métro, aéronautique (avions, satellites, spatial),


contrôle de véhicules (automobiles, trains, …),

Robotique ,

systèmes militaires de contrôle / commande,

Contrôle de processus industriels, Système de production


industriel : centrale nucléaire, chaîne de montage, usine chimique,
Supervision médicale, écologique.

Services téléphoniques : téléphone mobile,


autocommutateur.

Multimédias : décodeurs numériques openTV,


décodeurs TNT, MPEG, jeux vidéo. films
d’animation.

……etc.
Système de contrôle de débit
Système de contrôle de production
Définition :On appelle échéance une contrainte temps à laquelle doit
au plus tard se produire un événement.

Les systèmes sont classifiés par rapport à la tolérance aux échéances.


On peut noter deux types d’échéance

Échéance dure(hard deadline) : dans ce cas l’arrivée après


échéance d’un événement attendu déclenchera une exception
(gestion d’erreurs)

Échéance lâche(molle) (soft deadline), dans ce cas l’arrivée après


échéance d’un événement attendu ne déclenchera pas une exception
(gestion d’erreurs)
Les systèmes temps réel peuvent se classer, selon le respect des
contraintes temporelles, en trois catégories :

Temps réel dur ou critique (hard real time) : lorsqu’un


résultat arrivant en retard provoque un accident fatal au
système (génération d'une exception).
C’est aussi un système dans lequel certaines échéances ne
doivent en aucun cas être dépassées.
Temps réel ferme(firm real time): lorsqu’un résultat arrivant en
retard n’a plus d’importance pour le système. C’est aussi un système
dans lequel le dépassement occasionnel des échéances ne met pas le
système en difficulté.
Temps réel mouou souple(soft real time) : réduction
progressive de l’intérêt d’un résultat arrivant en retard pour le
système. l’arrivée exceptionnelle après échéance d’un
événement attendu ne mettra pas le système en danger (erreur)
Temps réel dur :La réponse du système dans les délais est
vitale L’absence de réponse est catastrophique (plus qu’une
réponse incorrecte)
Temps réel ferme :La réponse du système dans les délais
est essentielle. Le résultat ne sert plus a rien une fois le
deadline passe.
Temps réel mou : La réponse du système après les délais réduit
progressivement sont intérêt. Les pénalités ne sont pas
catastrophiques
Terminologie de fonctionnement d’un STR
La prévisibilité
La prévisibilité est ce que qui permet de déterminer à l’avance si
un systèmes temps réel va respecter ses contraintes temporelles.

Le déterminisme

Le déterminisme est le but que l’on cherche à atteindre afin de


prédire le comportement temporel d’un système temps réel : il
s’agit d’enlever toute incertitude sur le comportement des activités
individuelles et sur leurs comportements quand elles sont mises
ensemble dans le contexte d’exécution du système.
La source de non déterminisme :
charge de calcul,
entrées/sorties,
Interruptions,
fautes et exceptions matérielle ou
logicielles

la fiabilité

la fiabilité est la capacité d'un système qui exécute et maintient


ses fonctions dans des environnements normaux, aussi bien que
des environnements hostiles ou inattendus.
Structures générales d’un STR:

Boucle ouverte :
Boucle fermée
Structures générales d’un STR

Un système temps réel est une association logiciel-matériel


où le logiciel permet, entre autre, une gestion adéquate des
ressources matérielles en vue de remplir certaines tâches ou
fonctions dans des limites temporelles bien précises,
La partie du logiciel qui réalise cette gestion est le système
d'exploitation ou noyau temps réel,

Ce noyau temps réel va offrir des services au(x) logiciel(s)


d'application; ces services seront basés sur les ressources disponibles
au niveau du matériel.
L’architecture d'un système informatique temps réel est
la suivante :
Système temps réel et son 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. (exemple : 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."
Exemple : le contrôleur
Les systèmes temps réel sont souvent embarques dans un
équipement spécialisé, leur but étant de contrôler
l’équipement et/ou son environnement

Environ 99% des processeurs produits dans le monde sont


dédiés aux systèmes embarques
Système réparti temps réel pour des raisons de :
Contraintes physiques.
Fiabilité (redondance).
Partage des données, périphériques, ...

Problèmes liés aux systèmes embarqués :


Intervention humaine directe difficile voire impossible.

Problèmes liés aux systèmes répartis :


Hétérogénéité (matériel et logiciel).
Localisation des ressources (programmes, périphériques,
processeurs, ...).
Performance (recouvrement des communications,
prédictibilité).
Conception d’un système temps réel :

Description et expression des contraintes temps réel,

Représentation simultanée de l’évolution logique et


temporelle du système,

Prédiction et estimation des temps de réponse,

Sélection de l’architecture, du matériel et du logiciel,

 Le matériel conditionne les coûts de production,

Le logiciel conditionne les coûts de développement

Compromis et équilibre matériel-logiciel.


Le système est une collection de tâches
autonomes, s’exécutant en parallèle (parallélisme
logique)

Une tâche :
statiquement) est décrite par un programme
séquentiel,
(à l’exécution) a son propre fil de contrôle,

peut communique ret partager des ressourcesavec


d’autres tâches.
Concept de taches

l’interprétation varie au cours du cycle de


développement :
analyse / conception : tâche = une série d’actions
déclanchée par un stimulus venant d’un capteur ou par
l’arrivée d’une échéance temporelle
implémentation : tâche = processus ou thread (Suite de
messages diffusés dans un forum par exemple)ou objet
actif ou …
Tâches temps réel soumises à des contraintes
de temps, plus ou moins strictes :

instant de démarrage,
instant de fin,

absolus ou relatifs à d'autres tâches.


Il y a trois types de taches :
Tâches périodiques :

Déclanchées par le temps. Caractéristiques connues à


l’avance.

La tache Ti est caractérisée par :


Pi –période d’arrivée
Ci –temps de calcul au pire cas (WCET : Worst
Case

Execution Time : Pire Temps d'Exécution)


Di –échéance relative à l’arrivée
Tâches apériodiques

Déclanchées par un événement extérieur. Caractéristiques


partiellement non-connues.

La tache Ti est caractérisée par :

Ci –temps de calcul au pire cas (WCET)

Di –échéance relative à l’arrivée

(éventuellement)Ai–temps d’arrivée/contraintes
Tâches sporadiques :

tâches apériodiques avec temps minimum


entre arrivées connu.

Exemple : Séparation des étages dans un


lanceur (Ariane 5)
Concept de taches :
Au niveau de l’interaction entre tâches, on peut distinguer:

Les tâches indépendantes, dont l’ordre d’exécution peut être


quelconque.
Les tâches dépendantes, pour lesquelles il existe des contraintes
de précédence. Il s’agit du cas où une tâche doit attendre qu’une
autre ait terminé son traitement pour pouvoir commencer le sien.

Au niveau des politiques d’ordonnancement, il est clair


que les dépendances entre tâches auront un rôle crucial
et devront être prises en compte de manière judicieuse.
Tâches dans un contexte temps réel :
Lors de son exécution, un processus est caractérisé
par un état :
lorsque le processus obtient le processeur et
s'exécute, il est dans l'état élu.

… L'état élu est l'état d'exécution du processus.

lors l’exécution, le processus peut demander à


accéder à une ressource importante non disponible, le
processus quitte alors le processeur et passe dans
l'état bloqué.

….L'état bloqué est l'état d'attente d'une ressource


autre que le processeur.
lorsque le processus obtient la ressource qu'il attendait,
celui-ci peut reprendre son exécution. Mais le processeur
peut être alloué à un autre processus (système
multiprogrammes). Le processus passe alors dans l'état prêt.

L'état Prêt est l'état d'attente du processeur


Le passage de l'état prêt vers l'état élu constitue

l'opération d'élection,

Le passage de l'état élu vers l'état bloqué est

l'opération de blocage,

Le passage de l'état bloqué vers l'état prêt est

l'opération de déblocage.
Un processus est toujours crée dans l'état prêt,
Un processus se termine toujours à partir de l'état élu.

Le graphe des états du processus est le suivant :


Modèle général d’une tache :
Contraintes sur les tâches:
échéance (deadline)
contraintes de ressources partagées :
- ressource en lecture : accès partagé
-ressource en écriture : accès exclusif

contraintes de précédence :
T1 …..T2 : T2 ne peut commencer que si T1 a déjà terminé

contraintes de criticité :
redondance pour la tolérance aux fautes

o… etc.
l’ordonnancement :

Les tâches temps réel soumises à des contraintes de temps, plus


ou moins strictes
il doit permettre de borner les effets d'incidents ou de surcharges
Politique d’ordonnancement : politique d’allocation des tranches
de temps processeur (les moments où une tache est livrée au
processeur / suspendue )
L’ordonnancement a pour but de répartir l’utilisation du
processeur entre les différentes tâches demandeuses. Plusieurs
solutions classées selon différents paramètres.
le but de l'ordonnancement est de permettre le respect de ces
contraintes, lorsque l'exécution se produit dans un mode
courant
Qu'est-ce que l'ordonnancement de processus ?
Objectif de l’ordonnancement :

assurer le respect des échéances de manière prouvable

Une méthode d’ordonnancement est caractérisée par :

la méthode effective de construction de l’emploi du temps


(schedule) du processeur (online ou offline)

le critère de test d’ordonnancabilite (offline) –prédiction du


comportement « au pire cas »
Modèle d’étude d’ordonnancement : Hypothèses
:

Les systèmes que nous allons étudiés :

Consiste d’un ensemble fixe de taches,

Toutes les taches sont périodiques,

les taches sont indépendantes,


(pas de communication/synchronisation)

on suppose un temps de changement de contexte zero.


Caractéristiques de taches :
La figure suivante illustre le diagramme temporels utilisé
pour représenter les taches :

Conventions sur la représentation des taches :


On note l’occurrence d’un réveil de tâche à l’aide d’une
flèche pointant vers le haut,

l’échéance de la tâche étant représentée par une flèche


pointant vers le bas.
r : date de réveil : moment du déclenchement de la 1ère
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 : période (si tâche périodique)
d = r+D : échéance (si tâche à contraintes strictes)
Tâche périodique : rk= r0+ k*P
si D = P, tâche à échéance sur requête
La figure suivante illustre les caractéristiques d’une
tâche périodique à échéance sur requête (D = P), où la
période est égale au délai critique.
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 de la tache


f : date de la fin de l'exécution de la tache
D(t) = d-t : délai critique résiduel à la date t (0 ≤ D(t) ≤ D)
C(t) : durée d'exécution résiduelle à la date t (0 ≤ C(t) ≤ C)
L = D-C : laxité nominale de la tâche : retard maximum pour
son début d'exécution s (si elle est seule)
L(t) = D(t) -C(t) : laxité nominale résiduelle : retard maximum
pour reprendre l'exécution
TR = f -r : temps de réponse de la tâche
CH(t) = C(t)/D(t) : charge résiduelle (0 ≤ CH(t) ≤ C/P)
Caractéristiques de taches
préemptibles ou non
dépendance ou indépendance
ordre partiel prédéterminé ou induit
partage de ressources
priorité externe ordonnancement hors ligne
déterminé à la conception
gigue maximale
variation entre la requête et le début de l'exécution
urgence ↔ échéance
importance
Quelques définitions

Configuration : ensemble de n tâches mises en jeu par


l'application :

facteur d'utilisation du processeur

CH = C/D : facteur de charge du processeur

intervalle d'étude : intervalle de temps minimum pour


prouver l'ordonnançabilité d'une configuration

 le PPCM des périodes dans le cas d'une configuration de


tâches périodiques
Types d’algorithmes

Les algorithmes d’ordonnancement peuvent être catégorisés


selon les critères suivants :

Monoprocesseur/multiprocesseur :

L’architecture physique du système a une influence sur la


manière d’agencer les tâches.

Certains algorithmes ne peuvent être appliqués qu’à des


systèmes monoprocesseur (ordonnancement monoprocesseur),

D’autres se destinent à des systèmes multiprocesseur


(ordonnancement multiprocesseur)
Algorithme préemptif ou non préemptif:

Une tâche peut être interrompue à son insu pour céder le


processeur à une autre tâche plus prioritaire

Les algorithmes préemptifs traitent les systèmes dans lesquels


les tâches peuvent être préemptées:

Les algorithmes non-préemptifs traitent les systèmes dans


lesquels une tâche ayant commencé son traitement doit
obligatoirement le terminer avant qu’une autre ne s’exécute :
Algorithme non préemptif :
 Algorithme préemptif :
La possibilité de préemption permet d’éviter que le
processeur ne soit occupé trop longtemps par une tâche,
ce qui pourrait empêcher une autre tâche de se terminer à
temps.

Cette flexibilité a un coût lié au temps nécessaire pour le


changement de contexte d’une tâche à l’autre.
Ce coût peut être intolérable suivant l’application.

… donc un choix doit être fait, pour un système


particulier, de partir sur une solution avec ou sans
préemption.
Algorithme en ligne ou hors ligne :

 Un ordonnancement hors-ligne est effectué avant le


lancement du système. Tous les paramètres de tâches
sont connus a priori, et notamment les dates d’activation.

 Un Ordonnancement en-ligne est effectué durant le


fonctionnement du système.
L’Ordonnanceur recalcule un nouvel ordonnancement à
chaque fois qu’une nouvelle tâche est activée.
Statique / dynamique:

 Un ordonnancement est dit statique s’il est uniquement


basé sur les propriétés des tâches avant le lancement du
système.

 Un ordonnancement est dynamique s’il est capable de


réagir à la modification des propriétés des tâches durant le
fonctionnement du système (typiquement un changement
de priorité).
Optimal / non optimal :

 Un ordonnancement est dit optimal s’il est capable de


fournir un ordonnancement qui respecte toutes les
contraintes de temps si un tel ordonnancement existe.

Un algorithme non optimal (ou best effort) n’a pas la


prétention d’être optimal, mais doit faire de son mieux pour
fournir un ordonnancement le plus proche possible de
l’optimal.
Ordonnancements classiques :

Dans un système classique, l’Ordonnanceur réparti


le temps CPU entre les différentes tâches présentes
dans le système.

Dans une première partie, nous présentons quelques


algorithmes d’ordonnancement classiques,

Dans une seconde partie, nous présentons des


algorithmes spécifiques au temps réel.
Algorithmes non préemptifs
… appliqués lorsque les tâches ne peuvent être préemptées,
c’est-à-dire où une tâche ayant commencé son exécution doit
forcément la terminer avant qu’une autre tâche ne puisse
débuter.

Premier arrivé premier servi :


Cet algorithme fonctionne de la manière plus simple
Les tâches sont stockées dans une structure de type
FIFO (First In First Out)
la première tâche est exécutée et lorsqu’elle termine, la
suivante est lancée.
Les tâches nouvellement activées sont stockées à la fin de
la file d’attente.
Dans l’exemple suivant, nous pouvons noter que les
tâches T1et T2doivent attendre un temps important jusqu’à
ce que la tâche T0se termine.
Plus court d’abord :
Éviter que des tâches courtes ne doivent attendre trop
longtemps sur des tâches longues,
il est possible d’appliquer un algorithme où la tâche la plus
courte est servie en premier.
les tâches courtes sont favorisées
le temps d’attente moyen est minimisé
Un des problèmes de cette approche est le risque de trop de
retard pour les tâches longues
Si de nouvelles tâches courtes sont régulièrement
réveillées, il se peut qu’elles passent toujours devant une
tâche longue, empêchant ainsi celle-ci de s’exécuter
Exemple d’algorithme : Plus court d’abord:
Algorithmes préemptifs :

Algorithme du tourniquet :

L’algorithme du tourniquet (round robin en anglais) vise à


traiter les tâches avec le plus d’équité possible, en allouant un
quantum de temps identique à toutes les tâches et à les traiter
dans un ordre FIFO.

Les tâches sont placées dans une file d’attente et la


première de la file est exécutée pendant un quantum de temps
A la fin de ce quantum, si la tâche n’est pas terminée, elle
est replacée à la fin de la file et une nouvelle tâche est
sélectionnée de puis le début de la file.

Si la file est vide, la tâche peut continuer son exécution.


La figure suivante illustre cet algorithme avec un quantum
de 2 unités de temps
Exemple d’algorithme : Tourniquet:
D’après la figure on remarque que la tâche T0garde l’accès au
processeur lorsqu’elle se retrouve être la seule en cours
d’exécution.

Il n’y a donc pas de changement de contexte si ceci n’est pas


nécessaire

Cette technique de tourniquet correspond à la politique


standard observée dans les systèmes d’exploitation, car elle
permet à toutes les tâches de s’exécuter sans risque de retard

Nous pouvons toute fois noter qu’il s’agira d’une variante


avec priorité.
Algorithme à priorité fixe :

L’algorithme du tourniquet traite toutes les tâches sur le même


pied d’égalité
Il est souvent nécessaire de définir des priorités entre tâches,
afin, par exemple, de garantir que la lecture d’un fichier audio se
fasse de manière fluide, même lorsqu’une compilation est en
cours.

L’algorithme à priorité fixefonctionne comme celui du


tourniquet à l’intérieur d’une priorité et les priorités sont
traitées dans l’ordre.
Les tâches d’une priorité particulière y sont traitées selon un
tourniquet, pour autant qu’aucune tâche de plus haute
priorité ne soit prête à être exécutée.

La figure suivante illustre cet algorithme, avec un


quantum égal à 2 unités de temps
Exemple d’algorithme : à priorité fixe:
Remarques :

D’après la figure on peut noter que la tâche T1, la plus


prioritaire, est exécutée au départ, puis un tourniquet
est effectué pour les deux autres tâches.

Cette technique de tourniquet à priorité correspond à


la politique standard observée dans les systèmes
d’exploitation, car elle permet à toutes les tâches de
s’exécuter sans risque de retard.
Algorithme Earliest deadline first(EDF):
(premier délai)

L’algorithme Earliest Deadline First (EDF) donne la


priorité à la tâche ayant l’échéance la 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..

La figure suivante illustre le principe de cet algorithme.


Exemple d’algorithme : (EDF):

Tâche Coût Priorité Arrivée


T0 6 12 0
T1 4 8 2
T2 2 5 3
Ordonnancement des tâches périodiques
Le problème fondamental est de garantir le respect des
échéances des différentes tâches constituant un système.

Il existe un grand nombre de manière d’ordonnancer un


ensemble de tâches et ce notamment en fonction des
caractéristiques de celles-ci.

Elles peuvent être indépendantes, dépendantes,


périodiques, apériodiques, elles peuvent partager ou non
des ressources, changer ou non des informations.

Dans nombre de systèmes temps réel, certaines tâches


doivent s’exécuter de manière répétée, à intervalles
réguliers.
Il pourra par exemple s’agir d’une tâche chargée d’aller
vérifier la valeur d’un capteur tous les dixièmes de
seconde.

Ces tâches sont appelées tâches périodiques,


puisqu’elles doivent s’exécuter régulièrement, en suivant
une période fixe.
La priorité des tâches est fixée en fonction de leur
période d’activation.

Plus une tâche a une petite période d’activation, plus sa


priorité sera haute

Cet algorithme est optimal dans le cas des priorités


fixes.
algorithme à priorité constante
Test d'acceptabilité ou Critère statique d’ordonnançabilité
RMA (condition suffisante)

Théorème : Un ensemble de n tâches périodiques


indépendantes est ordonnançable par RMA indifféremment de
l’ordre d’arrivée si :

la condition est restrictive: U(1) = 1 U(2) ~ 0.828 U(3) ~


0.779 U(4) ~ 0.756 U(5) ~ 0.743 U(6) ~ 0.734 pour n très
grand, U tend vers ln 2 ~ 0.69 = 69%
dans la pratique, on peut rencontrer des ordonnancements
valides qui vont jusqu'à 88%
Algorithme Rate Monotonic Analysis (RMA):

Application 1 du critère :
Tache P C
A 10 5
B 20 6
Application 2 du critère :

P C
A 10 5
B 20 6
C 50 7
Théorème : Si un ensemble de n tâches indépendantes
avec priorités fixes affectées par RMA respecte la 1ère
échéance de chaque tâche quand toutes les tâches sont
démarrées en même temps (à T0), alors l’ensemble est
toujours ordonnançable.

Vous aimerez peut-être aussi