0% ont trouvé ce document utile (0 vote)
218 vues74 pages

Cours Programmation Temps Reel

Transféré par

amelgleyallaoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
218 vues74 pages

Cours Programmation Temps Reel

Transféré par

amelgleyallaoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Université de Gafsa

Institut Supérieur des Sciences Appliquées et de Technologie de GAFSA


Département d’Automatiques des Systèmes Industriels
Mastère 2 SE

Programmation temps-reel
Cours
Mr. NASRI Hani
2024/2025

01/09/2024 Mr. NASRI ISSATGF 1


Environnements d’exécution

 Objectif d’un système multitâche


o Faire coexister plusieurs traitements (calculs) sur le même processeur
 Niveaux d’abstraction
o Système d’exploitation (exécutif)
o Environnement d’exécution d’un langage supportant les tâches (ex: Ada)

01/09/2024 Mr. NASRI ISSATGF 2


Applications temps-réel embarquées
 Systèmes en interaction avec l’environnement physique
 Contraintes de temps à satisfaire
o 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 (non généralistes)
o Matériel (processeur, DSP, FPGA, ASICs, capteurs, actionneurs)
o Logiciel
 Contraintes industrielles
o Systèmes embarqués : contraintes de poids, taille, consommation énergétiques, coût,
surface
o Time-to-market
o Sûreté de fonctionnement

01/09/2024 Mr. NASRI ISSATGF 3


 Un système temps réel est un système pour lequel le temps d’arrivée du résultat est aussi
important que le résultat lui-même

 Par opposition aux systèmes transformationnels

Notion de contraintes de temps

 Définition
o Limite quantifiée (en rapport avec le temps réel) sur le temps séparant deux événements
o Ex : échéance de terminaison au plus tard (deadline)
 Source des contraintes de temps
o Délai de réaction du système avant dysfonctionnement plus ou moins grave
o Stabilité du processus physique contrôlé (ex: pendule inversé)

01/09/2024 Mr. NASRI ISSATGF 4


Structure
typique:
Contrôle

01/09/2024 Mr. NASRI ISSATGF 5


Structure
typique:
Prédiction

01/09/2024 Mr. NASRI ISSATGF 6


Définition
 Abrial-Bourgne:
Un système fonctionne en temps réel s’il est capable d’absorber toutes les
informations d’entrée sans qu’elles soient trop vieilles pour l’intérêt qu’elles
représentent, et par ailleurs, de réagir à celles-ci suffisamment vite pour que cette
réaction ait un sens.
 Adage:
Un résultat juste mais hors délai est un résultat faux.

Exemple

01/09/2024 Mr. NASRI ISSATGF 7


Catégories de systèmes temps réel

Les contraintes de temps peuvent être de type:


 Temps réel strict (hard)
 Temps réel ferme (firm)
 Temps réel mou, ou souple (soft)
Un même système peut être soumis à des contraintes de différents types

Echéance stricte

01/09/2024 Mr. NASRI ISSATGF 8


Echéance
stricte:
Exemples

01/09/2024 Mr. NASRI ISSATGF 9


Echéance ferme

01/09/2024 Mr. NASRI ISSATGF 10


Echéance ferme:
Exemples

01/09/2024 Mr. NASRI ISSATGF 11


Echéance
molle

01/09/2024 Mr. NASRI ISSATGF 12


Echéance molle: Exemples

01/09/2024 Mr. NASRI ISSATGF 13


Ordres de
grandeur

01/09/2024 Mr. NASRI ISSATGF 14


Déterminisme

Les systèmes temps réel doivent posséder 3 caractéristiques fondamentales


 Déterminisme logique (aspect fonctionnel / spécification)
o Les mêmes entrées appliquées au système produisent les mêmes résultats.
 Déterminisme temporel (aspect dynamique / simulation)
o Respect des contraintes temporelles (échéances)
 Fiabilité (aspect matériel / datasheet)
o Le système répond à des contraintes de disponibilité
(matériel/logiciel).
Par conséquent, le comportement d’un système temps-réel doit être prédictible
 Maîtrise des temps de latence et de leurs variations (gigue)
Un système temps-réel n’est PAS un système "qui va vite", mais un système qui satisfait à des
contraintes temporelles.
Un système temps réel n’est pas forcément :
 Rapide (fast)
 Tolérant aux fautes (fault-tolerant)
 Sûr (safe)

01/09/2024 Mr. NASRI ISSATGF 15


Prédictibili

01/09/2024 Mr. NASRI ISSATGF 16


Prédictibilité - temps de
réponse

01/09/2024 Mr. NASRI ISSATGF 17


Prédictibilité - temps de
réponse
01/09/2024 Mr. NASRI ISSATGF 18
Prédictibilité - mémoire
01/09/2024 Mr. NASRI ISSATGF 19
Prédictibilité - Appels
système

01/09/2024 Mr. NASRI ISSATGF 20


Prédictibilité - mémoire

Gestion de la mémoire
• Problèmes avec mémoire
paginée/segmentée
• Lenteur de l’accès
• Défaut de page non prévisible
Verrous/Sémaphores
• Problème d’inversion de priorité
• Ce problème sera abordé durant le
cours

01/09/2024 Mr. NASRI ISSATGF 21


01/09/2024 Mr. NASRI ISSATGF 22
01/09/2024 Mr. NASRI ISSATGF 23
01/09/2024 Mr. NASRI ISSATGF 24
Prédictibilité - matériel
• Interruptions
• Générées par les périphériques
• Problème: non connaissance de leurs temps d’arrivée
Gestion possible:
• Masquage des interruptions
• Pas d’indéterminisme
• Mais: scrutation des périphériques
• Donc: consommation inutile de temps CPU
• Masquage, sauf le timer
• Une tâche périodique pour scruter les
périphériques
• Scrutation active uniquement par cette tâche
• Autorisation des interruptions
• Placer du code minimal dans les routines
d’interruption
• Attente passive des tâches de traitement
• Temps de traitement de la routine d’interruption
négligeable

01/09/2024 Mr. NASRI ISSATGF 25


Prédictibilité -
matériel

DMA
• Le processeur délègue au contrôleur
DMA des transferts mémoire
• Ils partagent le bus mémoire
• Problème: arbitrage, et délai potentiel

01/09/2024 Mr. NASRI ISSATGF 26


Prédictibilité - matériel

Mémoire cache
•Accélère les accès mémoire
•Mais: problème de la borne du temps
d’accès maximal
• Génère de l’imprédictibilité

01/09/2024 Mr. NASRI ISSATGF 27


Hiérarchie mémoire

01/09/2024 Mr. NASRI ISSATGF 28


Entrées-sorties

01/09/2024 Mr. NASRI ISSATGF 29


Entrées-sorties

01/09/2024 Mr. NASRI ISSATGF 30


Prédictibilité -
que faire?

Programmation: concepts à appliquer


• Absence de structures de données dynamiques
• Absence de récursion
• Boucles bornées en temps
• Connaissance du matériel
• Connaissance du système
Prendre des mesures (benchmarking)!
http://www.ptxdist.org/development/kernel/ arm-
benchmarks-20100729_en.html

01/09/2024 Mr. NASRI ISSATGF 31


01/09/2024 Mr. NASRI ISSATGF 32
Prédictibilit
é - évaluer
Images from http://uuu.enseirb.fr/~kadionik/embedded/ linux_realtime/linux_realtime2.html

01/09/2024 Mr. NASRI ISSATGF 33


Décomposition
Un système temps réel est souvent décomposé en tâches
 Séparation des traitements
 Meilleure utilisation du processeur
 Meilleure fiabilité en cas de surcharge

Système d’exploitation
Un système temps réel peut fonctionner avec ou sans système d’exploitation (OS)
 Sans
 Un exécutif temps réel fournit un micro-noyau pour
l’ordonnancement (si multi-tâche)
 Avec
 Possibilité d’avoir une interface graphique
 Gestion de fichiers

L’OS doit être temps réel ?

01/09/2024 Mr. NASRI ISSATGF 34


Langages pour le temps réel

 Principaux critères de choix:  Langages de haut niveau: Ada 95


 Déterminisme temporel et logique  Langage conçu, entre autre, pour le support des applications temps-réel
 Fiabilité  Abstraction temps-réel: tâche, interruption, ordonnancement (priorité fixe et
 Présence d’abstractions (temps-réel) dynamique), synchronisation par sémaphore, timer et gestion du temps, outils
 Tâches, synchronisation, horloges, etc. de communication basés sur les rendez-vous
 Accès aisé aux ressources de bas niveau  Interface et syntaxe normalisé par ISO
 Portabilité, normalisation  Langage très portable
 Compilation croisée (cross-compilation)  Adapté à la production de logiciels volumineux
 Performances  Langage complexe

 Deux approches: langages bas niveau ou haut niveau

Langages de bas niveau: C/C++, assembleur


 Largement diffusés et utilisés à ce jour
 Accès direct aux ressources de bas niveau Idéal pour les I/O
(entrées/sorties)
 Pas vraiment normalisé, donc peu portable
 Effort de standardisation par POSIX
 Doit être couplé avec les services du système
(synchronisation,ordonnancement)
 Recours aux librairies
Langage généralement restreint
 Comportement temporel déterministe facile à évaluer
 Peu adapté aux logiciels complexes et/ou volumineux

01/09/2024 Mr. NASRI ISSATGF 35


Lois de Murphy relatives aux
systèmes temps-réel (1)

01/09/2024 Mr. NASRI ISSATGF 36


•Programmation Temps Réel Ordonnancement de
tâches périodiques/Ordonnancement non temps
réel

01/09/2024 Mr. NASRI ISSATGF 37


•Programmation Temps Réel Ordonnancement de
tâches périodiques/Taxonomie des
ordonnancements

01/09/2024 Mr. NASRI ISSATGF 38


•Programmation Temps Réel Ordonnancement de
tâches périodiques Taxonomie des
ordonnancements

01/09/2024 Mr. NASRI ISSATGF 39


•Algorithmes non préemptifs

01/09/2024 Mr. NASRI ISSATGF 40


•Algorithmes non préemptifs

01/09/2024 Mr. NASRI ISSATGF 41


•Algorithmes
préemptifs

01/09/2024 Mr. NASRI ISSATGF 42


•Algorithmes
préemptifs

01/09/2024 Mr. NASRI ISSATGF 43


•Ordonnancement temps réel

01/09/2024 Mr. NASRI ISSATGF 44


•Ordonnancement temps réel

01/09/2024 Mr. NASRI ISSATGF 45


•Tâches périodiques

01/09/2024 Mr. NASRI ISSATGF 46


•Paramètres d’une tâche

01/09/2024 Mr. NASRI ISSATGF 47


•Paramètres d’une tâche périodique

01/09/2024 Mr. NASRI ISSATGF 48


•Paramètres d’une tâche périodique à
échéance sur requête

01/09/2024 Mr. NASRI ISSATGF 49


•Autres paramètres

01/09/2024 Mr. NASRI ISSATGF 50


•Tâches périodiques

01/09/2024 Mr. NASRI ISSATGF 51


•Définitions

01/09/2024 Mr. NASRI ISSATGF 52


•Hypothèses

01/09/2024 Mr. NASRI ISSATGF 53


•Taux d’utilisation du processeur

01/09/2024 Mr. NASRI ISSATGF 54


•U - Least Upper Bound

01/09/2024 Mr. NASRI ISSATGF 55


•U - Least Upper Bound

01/09/2024 Mr. NASRI ISSATGF 56


•Least Upper Bound

01/09/2024 Mr. NASRI ISSATGF 57


•Cyclic scheduling:
Introduction

01/09/2024 Mr. NASRI ISSATGF 58


•Cyclic scheduling

01/09/2024 Mr. NASRI ISSATGF 59


•Cyclic scheduling

01/09/2024 Mr. NASRI ISSATGF 60


•Exemple

01/09/2024 Mr. NASRI ISSATGF 61


•Cyclic scheduling

01/09/2024 Mr. NASRI ISSATGF 62


•Taux d’utilisation du
processeur

01/09/2024 Mr. NASRI ISSATGF 63


•Problèmes

01/09/2024 Mr. NASRI ISSATGF 64


•Implémentation (1)

01/09/2024 Mr. NASRI ISSATGF 65


•Implémentation (2)

01/09/2024 Mr. NASRI ISSATGF 66


•Implémentation (3)

01/09/2024 Mr. NASRI ISSATGF 67


Conclusion sur Cyclic
scheduling

01/09/2024 Mr. NASRI ISSATGF 68


Algorithmes

01/09/2024 Mr. NASRI ISSATGF 69


•Rate Monotonic

01/09/2024 Mr. NASRI ISSATGF 70


Rate
Monotonic:
Exemple

01/09/2024 Mr. NASRI ISSATGF 71


•Rate Monotonic:
ordonnançabilité

01/09/2024 Mr. NASRI ISSATGF 72


•Rate Monotonic:
ordonnançabilité

01/09/2024 Mr. NASRI ISSATGF 73


•Rate Monotonic:
ordonnançabilité

01/09/2024 Mr. NASRI ISSATGF 74

Vous aimerez peut-être aussi