La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction aux Systèmes Temps Réels Polytech Marseille et CPPM

Présentations similaires


Présentation au sujet: "Introduction aux Systèmes Temps Réels Polytech Marseille et CPPM"— Transcription de la présentation:

1 Introduction aux Systèmes Temps Réels Polytech Marseille et CPPM
François TOUCHARD Polytech Marseille et CPPM ©GFGPL 2017

2 Présentation du cours Aperçu des systèmes temps réels Cours INFO4 :
qu’est-ce qu’un système temps réel ? comment vérifier a priori le comportement ordonnancement comment implémenter le comportement les outils de programmation dans l'espace utilisateur les outils de programmation dans le noyau (Linux) Cours INFO5 les méthodes et les langages de programmation temps réel Évaluation un examen en fin de module des compte-rendus de TD/TP notés (entre 1/4 et 1/3 de la note finale)

3 Introduction 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) par opposition aux systèmes interactifs ou transformationnels systèmes embarqués : autonomes, avec un fort couplage entre le matériel et le logiciel utilisation dans un but très précis très souvent des contraintes temporelles souvent inclus dans un système plus vaste ~ 90% du marché des processeurs

4 Quelques exemples (1) asservissement par contrôle numérique procédé
capteur actionneur mesure y(t) résultat u(t) A/D yk Loi de contrôle calcul Loi de contrôle calcul uk D/A rk A/D référence r(t)

5 Quelques exemples (2) soit e(t) = r(t) – y(t)
u(t) va dépendre de 3 termes : un terme proportionnel à e(t) un terme proportionnel à l'intégrale de e(t) un terme proportionnel à la dérivée de e(t) soit T la période d'échantillonnage du signal on approxime l'intégrale par la méthode du trapèze on approxime la dérivée pour l'intervalle [(k-1)T, kT ] par (ek-ek-1) / T alors : uk = uk-1 + α ek + β ek-1 + γ ek-2

6 Quelques exemples (3) pour programmer la boucle : créer un timer de période T à chaque interruption du timer faire les conversions analogique-numérique de y et r calculer u faire la conversion numérique-analogique de u fin de la boucle le choix de T est important il peut être souhaitable de pouvoir le modifier concepts mis en jeu gestion du temps gestion des interruptions interaction avec l'utilisateur

7 Quelques exemples (4) contrôleur de vol tous les 1/180 s faire
lecture/validation des capteurs sélectionnés chaque 6 cycles (30 Hz) : tâches avionique lecture claviers, sélection mode normalisation des données, transformation des coordonnées mise à jour des références de trajectoire chaque 6 cycles (30 Hz) : calculs loi de contrôle phase 2 pour la dérive loi de contrôle phase 2 du roulis loi de contrôle phase 2 du travers chaque 2 cycles (90 Hz) : en utilidant les résultats de 2 cycles loi de contrôle phase 1 pour la dérive loi de contrôle phase 1 du roulis et coordination des 2 axes calcul de la loi de contrôle globale sortie des commandes pour les actionneurs auto-test

8 Quelques exemples (5) modèle cyclique facile à implémenter
difficile de le faire évoluer très difficile à mettre en œuvre quand le système à contrôler se complexifie un peu

9 Quelques exemples (6) contrôle d'un groupe d'ascenseurs
4 ascenseurs dans la cage d'escalier d'un même bâtiment, desservant les mêmes étages deux boutons d'appel par palier, pour monter ou descendre 1 bouton par étage dans chaque ascenseur partage optimum des ressources par exemple, un ascenseur en marche s'arrêtera à un étage où l'appel a été demandé si et seulement si il va dans la bonne direction quand il passera à l'étage concerné et si il n'est pas en limite de surcharge recherche de l'équilibrage du service entre les différents ascenseurs contrôle des "périphériques" (portes palières, indicateurs sonores et visuels, etc...)

10 Quelques exemples (7) le modèle du générateur cyclique ne fonctionne plus contrôleur centralisé avec activation de tâches par événements décentralisation de tâches sur des processeurs annexes système multi-processeur et multi-tâches synchronisation et communication entre les tâches modèle asynchrone

11 contrôleur de traffic aérien
Quelques exemples (8) contrôle aérien hiérarchie des contrôles contrôleur de trafic aérien gestionnaire de vol contrôleur de vol calculs complexes (optimisation) fiabilité respect des échéances temporelles réponses commandes données locales (météo...) contrôleur de traffic aérien calculateur navigation gestionnaire de vol calculateur calculateur contrôleur de vol données locales de vol

12 Quelques exemples (9) contrôleur de trafic aérien CPU CPU CPU
base de données des éléments de vol réseau de communication réseau de communication processeur de surveillance des trajectoires processeur de visualisation

13 Quelques exemples (10) beaucoup d'autres systèmes ont des contraintes temporelles bases de données contrôle de vols salles de marché multimédia compression/décompression transmission

14 Qu'est-ce que le 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 le 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

15 Temps réel dur et temps réel mou
si un résultat arrivant en retard provoque un accident fatal au système (génération d'une exception) : temps réel dur sinon : temps réel mou, ou lâche la distinction entre les deux est une notion assez floue 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 critère de respect des contraintes temporelles booléen pour le temps réel dur doit être défini pour chaque tâche dans le cas d'une application temps réel lâche

16 Caractéristiques importantes (1)
Prévisibilité pour déterminer à l'avance si un système va respecter ses contraintes temporelles connaissance des paramètres liés aux calculs des activités temps global de calcul de chaque activité périodicité et gigue préemptivité évaluation des performances dans le pire des cas pour définir le meilleur algorithme d'ordonnancement

17 Caractéristiques importantes (2)
Déterminisme but à atteindre pour prédire le comportement temporel du système temps réel dur : chercher à savoir si toutes les échéances de toutes les activités seront respectées temps réel lâche : par exemple savoir quels seront les retards moyens Fiabilité du matériel tolérance aux fautes systèmes embarqués

18 Caractéristiques importantes (3)
en résumé, le langage et l'environnement de développement doivent permettre de spécifier le moment où une tâche doit démarrer de spécifier le moment où la tâche doit être terminée de gérer les situations où toutes les contraintes temporelles ne peuvent pas être satisfaites de gérer des situations où les contraintes temporelles sont susceptibles d'évoluer dynamiquement

19 Plan du cours (1) Ordonnancement des tâches tâches indépendantes
tâches avec des contraintes de dépendance gestion des situations de surcharge Systèmes d'exploitation pour le temps réel services attendus systèmes existants VxWorks (le système généraliste le plus employé) OSEK/VDX (un système spécialisé) Xenomai (basé sur Linux) aperçu des bus de communication

20 Plan du cours (2) Programmation système pour le temps réel (POSIX) dans l'espace utilisateur gestion des tâches communication et synchronisation gestion des interruptions gestion du temps Programmation dans le noyau (Linux) modules pilotes de périphériques Xenomai (RTDM)

21 La norme POSIX Portable Operating System Interface
pour aider à produire des codes portables sans trop d'efforts initié par l'IEEE et organisé par l'ISO à partir d'UNIX, pour le C ANSI différents standards pour différents problèmes POSIX.1b (ou POSIX.4) : extensions temps réel POSIX.1c : extensions pour les threads important : l'interface POSIX ne fournit pas un environnement temps réel, mais uniquement des interfaces qui peuvent être utilisées dans le cadre d'un OS Temps Réel

22 La norme POSIX POSIX a été remplacé récemment par SUSV4 (Single Unix Specification Version 4) SUSV4 inclut les différentes versions de POSIX extensions Temps Réel : option RTS je garderai les références à POSIX.1 et 4 pour bien différencier les extensions temps réel

23 ORDONNANCEMENT


Télécharger ppt "Introduction aux Systèmes Temps Réels Polytech Marseille et CPPM"

Présentations similaires


Annonces Google