Chapitre 1ma

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 20

Implémentation d’une commande numérique en temps réel

Chapitre 1 : Description des Systèmes Temps Réel


Objectifs :
À la fin de cette leçon, l'étudiant sera capable de :
• Savoir ce qu’est un système temps réel
• Obtenir un aperçu des différentes applications des systèmes temps réel
• Visualiser le modèle de base d’un système temps réel
• Identifier les caractéristiques d’un système temps réel
• Comprendre les aspects de sécurité et de fiabilité d’un système temps réel
• Classer les tâches en temps réel dans différentes catégories
1. Introduction
 Le temps réel est une notion quantitative du temps. Le temps réel est mesuré à
l'aide d'une horloge physique (réelle).
 Chaque fois que nous quantifions l'heure à l'aide d'une horloge physique, nous
traitons avec le temps réel.
 Un exemple d'utilisation de cette notion quantitative du temps peut être observé
dans la description d'une installation chimique automatisée. Considérez ceci:
lorsque la température de la chambre de réaction chimique atteint une certaine
température prédéterminée, par exemple 250°C, le système éteint
automatiquement le chauffage dans un intervalle de temps prédéterminé, par
exemple dans les 30 millisecondes.
 Dans cette description d'une partie du comportement d'une usine chimique, la
valeur temporelle à laquelle il est fait référence correspond aux lectures d'une
horloge physique présente dans le système d'automatisation de l'usine.
2. Définition :
“Un système s'appelle un système temps réel(STR), lorsque nous avons besoin d'une
expression quantitative du temps (c'est-à-dire en temps réel) pour décrire le
comportement du système »
“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 :
Implémentation d’une commande numérique en temps réel

•le système doit répondre à des stimuli externes sous un délai spécifié,
•l’absence de réponse est aussi grave qu’une réponse erronée.

Fig.1.1. Block diagramme d’un STR

• C’est un système qui


 interagit avec un environnement externe qui lui-même évolue avec le temps,
 réalise certaines fonctionnalités en relation avec cet environnement,
 exploite des ressources limitées.
 doit fournir un service dans un contexte où le temps intervient
 doit évoluer (système réactif)
 soumis de contraintes de temps (échéances=deadline)
 un système embarqué (embedded) ;
 un système autonome, avec un fort couplage entre le matériel et le logiciel
 est utilisé dans un but très précis
 souvent inclus dans un système plus vaste
 occupe ~ 90% du marché des processeurs
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. L'échelle de temps
dépend du système :
Implémentation d’une commande numérique en temps réel

o de quelques millisecondes pour un système de navigation aérienne


o à plusieurs minutes ou heures pour contrôle d'un réacteur chimique
3. Fonctionnalité d’un système temps réel
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,
Déterminisme logique: les mêmes entrées appliquées au système produisent les
mêmes résultats,
Exactitude temporelle (timeliness) : respect des contraintes temporelles (ex :
échéance). Les sorties sont présentées au bon moment.
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 à 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 ».
4. É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.
5. Sévérité des contraintes et échelle de temps
 La sévérité et l’échelle de temps d’une contrainte ne sont pas nécessairement
liées.
 Combinaison possible de niveaux de sévérité et d’échelles de temps différentes
dans un même système.
Implémentation d’une commande numérique en temps réel

 La sévérité des contraintes est généralement une caractéristique prédominante


dans un système temps réel
 Le temps de réponse est plus souvent lié à la technologie et aux ressources
matérielles utilisées. Par exemples :
o La milliseconde pour les systèmes radar.
o La seconde pour les systèmes de visualisation humain.
o Quelques heures pour le contrôle de production impliquant des réactions
chimiques.
o 24 heures pour les prévisions météo.
o Plusieurs mois ou années pour les systèmes de navigation de sonde
spatiale.
6. Applications des systèmes temps réel.
Quelques exemples d’application du STR sont :
 Transports : métro, aéronautique (avions, satellites, spatial), contrôle de
véhicules (automobiles, trains, …),
 contrôle du trafic (aérien, terrestre),
 Robotique
 Sytè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,
 Multimédias : vedio Conferencing, décodeurs numériques, jeux vidéo.
 Services téléphoniques : téléphone mobile, autocommutateur.
 Supervision médicale, écologique.
7. Modèle de base d'un système temps réel :
Figure 1.2 montre un modèle simple d'un système temps réel en termes de blocs
fonctionnels importants. Notez que sur la figure 1.2, les capteurs (sensors) sont
interfacés avec le bloc de conditionnement d'entrée (input conditioning unit), lui-
même connecté à l'interface d'entrée (input interface). L'interface de sortie (output
Implémentation d’une commande numérique en temps réel

interface), le conditionnement de la sortie (output conditioning) et l'actionneur


(actuator) sont interfacés de manière complémentaire.

Figure 1.2 : Simple model d’un system temps réel

Figure 1.3 : Output Processor

Figure 1.4 : Voltage analogique convertie en forme discrète

8. Catégories des tâches en temps réel


Une tâche en temps réel peut être classée en tâche dure (hard), en temps réel mou
(soft) ou ferme (firm), en fonction des conséquences d'une tâche manquant dans ses
délais.
Implémentation d’une commande numérique en temps réel

Il n'est pas nécessaire que toutes les tâches d'une application temps réel appartiennent
à la même catégorie. Il est possible que différentes tâches d’un système temps réel
puissent appartenir à différentes catégories.
8.1. Tache dure
Une tâche dure en temps réel est une tâche qui est contrainte de produire son
résultat dans des délais prédéfinis. Le système est considéré comme ayant
échoué chaque fois que l'une de ses tâches temps réel dure ne produit pas les
résultats requis avant le deadline spécifiée.

Figure 1.5 : Réponse d’une tache en temps réel dur

Pour des tâches en temps réel dur dans des systèmes pratiques, les limites de
temps vont généralement de quelques micro secondes à quelques millisecondes.
Exemples : contrôle aérien, contrôle d'une centrale nucléaire.
8.2. Tâche ferme
Même lorsqu'une tâche en temps réel ferme ne se termine pas dans les délais
impartis, le système n'échoue pas. Les résultats tardifs sont simplement ignorés.

Figure 1.6 : Réponse d’une tache en temps réel ferme


Implémentation d’une commande numérique en temps réel

Les limites de temps associées vont généralement de quelques millisecondes à


plusieurs centaines de millisecondes.
Exemples : Video Conferencing ; Suivi par satellite des mouvements ennemis.

8.3. Tâche mou


Les contraintes sont exprimées en termes de temps de réponse moyen requis.

Figure 1.7 : Réponse d’une tache en temps réel mou

Pour les tâches en temps réel mou qui se produisent généralement dans des
applications pratiques, les délais varient généralement d'une fraction de seconde à
quelques secondes.
Exemples : Web browsing, logiciel embarque de votre téléphone, iPod, etc.
 Dans un système donné, des tâches temps réel dures et lâches peuvent cohabiter,
éventuellement avec des tâches sans contraintes temporelles. La fermeté est une
caractéristique de chaque échéance (deadline).
 Un même système peut avoir des sous-systemes TR dur, TR-ferme ou TR-mou.
 Les critères de respect des contraintes temporelles :
o booléen pour le temps réel dur : vrai/faux; ça passe ou ça casse !
o complexe, doit être défini pour chaque tâche dans le cas d'une application
temps réel lâche. On parle de Qds (Qualité de service, de seuil
d’acceptabilité, …)
Implémentation d’une commande numérique en temps réel

9. Terminologie de fonctionnement d’un STR


9.1. Prévisibilité
La prévisibilité est ce que qui permet de déterminer à l’avance si un STR va
respecter ses contraintes temporelles.
9.2. 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.
Les sources de non déterminisme :
 charge de calcul,
 entrées/sorties,
 Interruptions,
 fautes et exceptions matérielle ou logicielles
9.3. 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.
10. Structures générales d’un STR
Boucle ouverte :

Figure 1.8 : Structure BO d’un STR


Implémentation d’une commande numérique en temps réel

Boucle fermée:

Figure 1.9 : Structure BF 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 :

Figure 1.10 : L’architecture d'un système informatique temps réel


Implémentation d’une commande numérique en temps réel

11. 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).
--- Intervention humaine directe difficile voire impossible.
 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."
---Localisation des ressources (programmes, périphériques, processeurs, ...).
---Performance (recouvrement des communications, prédictibilité).
---Hétérogénéité (matériel et logiciel).
 STR piloté par les événements : le STR réagit en fonction d’états préétablis et
atteints (temps, température,…)
 STR piloté par le temps : le STR réagit sur des échéances régulières définis par
un temps interne au système,
 Il sera qualifié de réactif, s’il doit réagir à un événement en temps imparti.
 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

Figure 1.11 : L’environnement logic du STR


Implémentation d’une commande numérique en temps réel

12. 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,
 Compromis et équilibre matériel-logiciel.
 Le matériel conditionne les coûts de production,
 Le logiciel conditionne les coûts de développement,

13. Ordonnancement (Scheduling) Temps Réel


 Les tâches temps réel soumises à des contraintes de temps, plus ou moins
strictes. Le but de l'ordonnancement est de permettre le respect de ces
contraintes, lorsque l'exécution se produit dans un mode courant.
 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 ;
o Il doit permettre de limiter les effets d'incidents ou de surcharges
o Politique d’ordonnancement : politique d’allocation des tranches de
temps processeur (les moments où une tache est livrée au processeur /
suspendue ).
L’objectif de l’ordonnancement est d’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 »
Implémentation d’une commande numérique en temps réel

13.1. Concept de tache


Le système est une collection de tâches autonomes, s’exécutant en parallèle
(parallélisme logique)
Une tache : est décrite par un programme séquentiel, (à l’exécution) elle a son propre
fil de contrôle, peut communiquer et partager des ressources avec d’autres tâches.
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.
Les types de taches sont :
a. Tâches périodiques :
 Déclenchées par le temps. Caractéristiques connues à l’avance.
 La tache Ti est caractérisée par :
o Pi –période d’arrivée
o Ci –temps de calcul au pire cas (WCET : Worst Case Execution Time :
Pire Temps d'Exécution)
o Di –échéance relative à l’arrivée
 Exemple : lecture une valeur d’un capteur.
b. Tâches apériodiques :
 Déclenchées par un événement extérieur. Caractéristiques partiellement non-
connues.
 La tache Ti est caractérisée par :
o Ci –temps de calcul au pire cas (WCET)
o Di –échéance relative à l’arrivée
o (éventuellement) Ai–temps d’arrivée/contraintes
Exemple : réception d’une Alarm.
Implémentation d’une commande numérique en temps réel

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.
13.2. Caractéristiques de taches :
La figure suivante illustre le diagramme temporel utilisé pour représenter les taches :

Figure 1.11 : diagramme temporel d’une tache TR

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.
r0 : 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)
Tâche périodique : rk= r0+ k*P
si D = P, tâche à échéance sur requête(task due on request)

Fig.1.12 : les paramètres d’une tâche périodique


Implémentation d’une commande numérique en temps réel

Fig.1.13. : les caractéristiques d’une tâche périodique à échéance sur requête (D = P),

Paramètres statiques d’une tache :


U = C/P : facteur d'utilisation du processeur
CH = C/D : facteur de charge du processeur
Les taches sont caractérisées comme suit:
 Une tâche apériodique est représentée par le truple T(r, C, D),
 Une tâche périodique est représentée par le truple T (r0,C,D), r0 étant la date de
réveil de la première occurrence
 Préemptible ou non
 Dépendance ou indépendance
 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
13.2. Quelques définitions :
Configuration : ensemble de n tâches mises en jeu par l'application :
n
Ci
 Facteur d'utilisation du processeur : U =∑
i=1 Pi
n
C
 Facteur de charge du processeur : CH =∑ D
i

i=1 i
Implémentation d’une commande numérique en temps réel

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
Faisabilité ; Un ensemble des tâches est dit faisable s’il est possible d’en proposer un
ordonnancement respectant l’ensemble des contraintes de temps imposées.
13.3. Types d’algorithmes d’ordonnancement
Les algorithmes d’ordonnancement peuvent être catégorisés selon les critères suivants:
a. 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)
b. 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 :
Implémentation d’une commande numérique en temps réel

c. Algorithme en ligne ou hors ligne (online / offline) :


 Le choix est dynamique ou prédéfini à la conception
 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.
 L’implémentation du système est alors très simple : il suffit de stocker
l’identifiant de la tâche à effectuer à chaque moment d’ordonnancement dans
une table, l’Ordonnanceur exploitant ensuite cette information pour sélectionner
la tâche à exécuter. Le désavantage de cette approche est la grande dépendance
au système cible.
 L’analyse hors-ligne permet une meilleure prédiction de la satisfaction ou non
des contraintes temporelles.
 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.
 L’avantage de l’approche est la flexibilité, l’adaptabilité à l’environnement que
procure le calcul en-ligne.
 Par contre, ce calcul devant être exécuté par le système, qui est temps réel, doit
être le plus simple et plus rapide possible, rendant impossible une solution dite
optimale.
d. 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.
Implémentation d’une commande numérique en temps réel

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é).

e. 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.
Si un algorithme optimal n’est pas capable de trouver un ordonnancement correct,
aucun autre algorithme ne le pourra.
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.
f. Stratégie du meilleur effort ou inclémence
En TR mou, meilleur effort = faire au mieux avec les processeurs disponibles
En TR dur, obligation des respecter les contraintes temporelles : inclémence aux fautes
temporelles.

13.4. 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.
a. 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.
1. 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.
Implémentation d’une commande numérique en temps réel

Dans l’exemple suivant, nous pouvons noter que les tâches T1et T2 doivent attendre un
temps important jusqu’à ce que la tâche T0se termine.

2. 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
Implémentation d’une commande numérique en temps réel

Fig.1.15. Exemple d’algorithme : Plus court d’abord

b.Algorithmes préemptifs
1. 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.
Implémentation d’une commande numérique en temps réel

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.

Fig.1.16. Exemple d’Algorithm tourniquet


 D’après la figure on remarque que la tâche T0 garde 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é.

Vous aimerez peut-être aussi