1 / 65

Systèmes & Programmations Temps Réelle

Systèmes & Programmations Temps Réelle. Master MSRS kafdel@ymail.com. Programmations temps Réelle. Problématique des RTOS Quelqu'un pose des questions concernant la température extérieure actuelle. Laquelle est la meilleure réponse ?

marcie
Télécharger la présentation

Systèmes & Programmations Temps Réelle

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systèmes & Programmations Temps Réelle Master MSRS kafdel@ymail.com

  2. Programmations temps Réelle Problématique des RTOS Quelqu'un pose des questions concernant la température extérieure actuelle. Laquelle est la meilleureréponse? • Une réponse correcte de 20 ° C mais livré 12 heures plus tard; • ou Une lecture erronée de 10 ° C livré immédiatement; Dans un système temps réel, une réponse tardive est tout aussi mauvais qu'une réponse fausse Objectifs Dans ce cours, nous allons introduire des méthodes et des modèles pour contrôler le comportement temporel des programmes, en outre leur fonctionnalité

  3. Définition • Les systèmes informatiques temps réel se différencient des autres systèmes informatiques par la prise en compte de contraintes temporelles dont le respect est aussi important que l'exactitude du résultat système TR ne doit pas simplement délivrer des résultats exacts, il doit les délivrer dans des délais imposés.

  4. Domaine d'utilisation • Les systèmes informatiques temps réel sont aujourd'hui présents dans de nombreux secteurs d'activités  • Industrie de production par exemple, au travers des systèmes de contrôle de procédé (usines, centrales nucléaires), • Marché Boursier au travers du traitement des données boursières en « temps réel » • Aéronautique au travers des systèmes de pilotage embarqués (avions, satellites), • Médecine -- Robots

  5. RTOS • Le développement de systèmes temps réel nécessite donc que chacun des éléments du système soit lui-même temps réel (prendre en compte des contraintes temporelles) • système d'exploitation conçu pour prendre en compte ces contraintes est appelé système d'exploitation temps réel « RTOS »

  6. Exemple : Impact du temps réel sur les systèmes • Le but de l'expérience est de générer un signal périodique sortant du port parallèle du PC. • Le temps qui sépare deux émissions du signal sera mesuré à l'aide d'un compteur. • Le but est de visualiser l'évolution de ce délai en fonction de la charge du système. • La fréquence initiale du signal est de 25 Hz (Hertz) ce qui donne une demi-période T/2 de 20 ms.

  7. Sur un système classique, cette demi-période varie de 17 à 23 ms, ce qui donne une variation de fréquence entre 22 Hz et 29 Hz. La figure ci-dessous donne la représentation graphique de la mesure sur un système non chargé puis à pleine charge

  8. Sur un système temps réel, la demi-période varie entre 19,990 ms et 20,015 ms, ce qui donne une variation de fréquence de 24,98 Hz à 25,01 Hz. La variation est donc beaucoup plus faible. La figure donne la représentation graphique de la mesure Lorsque la charge est maximale, le système temps réel assure donc une variation de +/- 0,2 Hz alors que la variation est de +/- 4 Hz dans le cas d'un système classique.

  9. Rappel OS

  10. Système d'exploitation se présente donc comme une couche logicielle placée entre la machine matérielle et les applications • OS s'interface avec la couche matérielle, notamment par le biais du mécanisme des interruptions • OS peut être découpé en plusieurs grandes fonctions

  11. Gestion du processeur • algorithme d'ordonnancement qui planifie l'exécution des programmes. • Gestion de la mémoire • Allocation de mémoire • Gestion des entrées/sorties • Gestion de la concurrence • synchroniser l'accès aux données partagées afin de maintenir leur cohérence • Gestion des objets externes • Système de gestion de fichiers (SGF) • Gestion de la protection

  12. RTOS

  13. RTOS1- Task management and scheduling • Gestionnaire des Taches est la tâche principale du système d'exploitation • les tâches doivent être créés et supprimés alors que le système est en cours d'exécution; • les tâches peuvent modifier leurs niveaux de priorité, leurs contraintes de temps, leurs besoins en mémoire; etc

  14. RTOS  Gestion des tâche est plus dangereuse que pour un usage général OS Exemple : Si une tâche temps réel est créée, il doit obtenir la mémoire dont il a besoin sans délai, et que la mémoire doit être verrouillée pour éviter: • les temps d'accès en raison de permutation, • l'évolution des priorités d'exécution influe sur le comportement à l'exécution de l'ensemble du système la prévisibilité qui est très important pour RTOS

  15. 2- Services des Interruptions • Un système d'exploitation ne doit pas seulement être en mesure de planifier des tâches selon un algorithme déterministe, mais elle a aussi la tache de servir le matériel périphérique via interruption

  16. 3- Communication & synchronisation • IPC (Inter-Process Communication )recueille un grand nombre de primitives de programmation que l’OS met à la disposition des tâches qui ont besoin d'échanger des informations avec d'autres tâches, ou de synchroniser leurs actions; • RTOS doit s'assurer que cette communication et la synchronisation se déroulent de manière déterministe; • Cette communication peut être effectuer avec d'autres ordinateurs, ou avec le matériel périphérique.

  17. 4- Gestion mémoire • Donner à chacun la tâche de la mémoire dont il a besoin (allocation de mémoire) • Prendre les « mesures appropriées » lorsqu'une tâche utilise la mémoire qu’elle ne lui a pas été attribué. • Exemple : pointeurs non connecté et d'indexation de tableau au-delà des limites du tableau "mesures appropriées« : dépend de l'application, souvent cela se résume à la solution la plus simple: tuer la tâche et avertir l'utilisateur

  18. Trade-offs (compromis) Espace noyau vis-à-vis espace utilisateur

  19. Un noyau monolithique possède tous les services de l'OS (y compris les pilotes de périphérique, piles de réseau, les systèmes de fichiers, etc) en cours d'exécution en mode privilégié du processeur. • Un micro-noyau, d'autre part, utilise le mode privilégié uniquement pour les services vraiment de base (gestion des tâches et ordonnancement, communication inter-processus, la gestion des interruptions, et de la mémoire gestion), et possède la plupart des pilotes de périphériques et de services de l'OS en tant que des tâches «normales»

  20. Noyau préemptif ou non • Linux a été initialement un noyau non-préemptif • une tâche "espace noyau" ne peut pas être interrompu par d'autres tâches de "l'espace noyau", ou par des tâches de « l'espace utilisateur » • Le noyau est "verrouillé " tant qu’il est en exécution. • Utilisation de serrures permet la conception de la plus simple du noyau • Inconvénient : il introduit des latences déterministes qui ne sont pas tolérables dans un RTOS.

  21. Contrainte de temps • " Un système d'exploitation temps réel est capable d'exécuter toutes ses tâches sans violer les contraintes de temps spécifié « • « Temps au cours de laquelle les tâches exécutera peut être prédit de façon déterministe sur la base des connaissances sur le coté matériel et logiciel du système « • On distingue le temps réel strict ou dur (de l'anglais hard real-time) et le temps réel souple ou mou (soft real-time) suivant l'importance accordée aux contraintes temporelles. • Le temps réel strict ne tolère aucun dépassement de ces contraintes, • tels dépassements peuvent conduire à des situations critiques, voire catastrophiques : • Exemple : pilote automatique d'avion, système de surveillance de centrale nucléaire, etc. • À l'inverse le temps réel souple s'accommode de dépassements des contraintes temporelles dans certaines limites au-delà desquelles le système devient inutilisable : visioconférence, jeux en réseau, etc.

  22. Le temps de latence • Le temps de latence (ou retard) d'une tâche = différence entre l'instant de temps sur laquelle la tâche doit commencer (ou terminer) et l'instant à laquelle il est effectivement en exécution • le temps écoulé entre la génération d'un événement, et sa perception r : date de réveil c'est le moment du déclenchement de la 1ere requête d'exécution C : durée d'exécution maximale (capacité) D : délai critique c'est le délai maximum acceptable pour son exécution P : période si la tâche est périodique

  23. Le temps de latenceest du à plusieurs facteurs: (i) les propriétés de synchronisation du processeur, bus, la mémoire (mémoire cache, RAM hors puce et ROM) et périphérique dispositifs; (ii) les propriétés de la programmation du système d'exploitation; (iii) le caractère préemptif ou non du noyau; (iv) la charge sur le système ( le nombre de tâches qui veulent être programmées en même temps); (v) le temps du au changement de contexte. Ce dernier est le temps nécessaire que le processeur a besoin pour sauvegarder les données de la tâche en cours d'exécution (par exemple, les registres, la pile et pointeur d'instruction), et de le remplacer par les données locales de la tâche nouvellement prévue. Conséquence: • Ces facteurs ne sont pas constants au fil du temps et introduisent l'indéterminisme dans le comportement temporel du système

  24. Ordonnancement temps-réel Problème • Calculs à exécuter + contraintes de temps = dans quel ordre exécuter ? Définition Ensemble des règles définissant l’ordre d’exécution des calculs sur le processeur Pourquoi ordonnancer? Parce que ça a un impact sur le respect des contraintes de temps Exemple • Tâche T1 : arrivée en r=0, durée C=4, échéance D=7 • Tâche T2 : arrivée en r=2, durée C=2, échéance D=5 • Ordonnancement O1: premier arrivé, premier servi, on n’interrompt jamais une tâche • Ordonnancement O2: priorité, T2 plus prioritaire que T1

  25. C’est quoi une Thread ? • Une thread peut être vue comme étant la plus petite unité d'exécution. • Chaque thread a : • sa pile, • son pointeur de programme • ses registres. • Processus définit le contexte • dans lequel les threads s'exécuteront. • Le contexte contient • les threads, • le code exécutable, les données, • les descripteurs de fichiers, • les outils de synchronisation, etc. • Processus = conteneur de threads(processus est décomposé en tâches ). • tâche est une sorte de processus léger plus ou moins indépendamment des autres

  26. Classification des ordonnancements • Instant ou l’ordre d’exécution est décidé : hors-ligne /en-ligne • Possibilité d’interruption d’une tâche par une autre: préemptif / non préemptif • Optimalité : quel est le « meilleur » ordonnancement

  27. Buts de l'ordonnancement Piloter l'application avec 2 objectifs majeurs : ➢ en fonctionnement nominal : respect des contraintes temporelles ➢ en fonctionnement anormal (par exemple pannes matérielles) : atténuer les effets des surcharges et maintenir un état cohérent et sécuritaire ordonnancer = planifier l'exécution des requêtes de façon à respecter les contraintes de temps ➢ de toutes les requêtes en fonctionnement nominal ➢ d'au moins les requêtes les plus importantes (c'est-a-dire celles nécessaires a la sécurité du procède) en fonctionnement anormal (RT dure)

  28. Ordonnancement « hors-ligne » / « enligne" Ordonnancements "en-ligne " • Les décisions d’ordonnancement sont prise au cours de l’exécution • A l’exécution, l’ordonnanceur implante un algorithme d’ordonnancement permettant de savoir à tout instant quel tâche exécuter : besoin d’un exécutif multitâche • Généralement, ordonnancements conduits par la priorité

  29. Ordonnancement non préemptif / préeemptif • Non préemptif: On n’interrompt jamais l’exécution d’une tâche en cours au profit d’une autre tâche • Préemptif: La tâche en cours peut perdre involontairement le processeur au profit d’une autre tâche (jugée plus urgente) Remarques : orthogonal par rapport à la classification en-ligne / hors-ligne

  30. Exemple d’ordonnancement préemptif : conduit par la priorité • Algorithme d’ordonnancement : sélectionner la tâche la plus prioritaire • priorité(T3) > priorité(T2) > priorité(T1) (ici, priorités fixes)T1, T2 et T3 arrivent respectivement aux dates 1, 2,et 3

  31. Caractéristiques des tâches • r : date de réveil c'est le moment du déclenchement de la 1ere requête d'exécution • C : durée d'exécution maximale (capacité) • D : délai critique c'est le délai maximum acceptable pour son exécution • P : période si la tâche est périodique • d = r+D : échéance (si tâche a contraintes strictes) • Pour les tâches périodiques : rk = r0 + k*P • Si D = P, tâche est une tâche à échéance sur requête

  32. paramètres statiques ➢ Ui = Ci/Pi : facteur d'utilisation du processeur c-à-d pourcentage de l’activité du processeur dédiée à la tâche Ti ➢ CH = C/D : facteur de charge du processeur paramètres dynamiques ➢ s : date du début de l'exécution ➢ e : date de la fin de l'exécution ➢ D(t) = d-t : délai critique résiduel a la date t (0 ≤ D(t) ≤ D) ➢ C(t) : durée d'exécution résiduelle a 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 = e - r : temps de réponse de la tâche • ➢ CH(t) = C(t)/D(t) : charge résiduelle (0 ≤ CH(t) ≤ C/P)

  33. Etat d'une tâche Les diverses états d’une tâche: • Prêtes (ready) : la tâche n'a pas encore commencé à s'exécuter ou à être interrompue par préemption • en cours d'exécution (running) : la tâche est en cours d'exécution et utilise le processeur • bloquées (blocked) : de manière générale, la tâche est en attente de la ressource • endormie (sleeping) : la tâche n'est pas encore terminée et est en attente d'un réveil.

  34. Définition configuration : ensemble de n taches mises en jeu par l'application ➢ Facteur d'utilisation du processeur  ➢ Facteur de charge Pour tout système de n tâches, la condition suivante est nécessaire mais pas suffisante à sa faisabilité : U<1 Avec Ci le temps de calcul de la tâche n° i et Pi sa période. Une valeur supérieure à 1 signifierait que le système nécessite plus de temps d'exécution que le processeur ne peut en fournir. Intervalle d'etude: intervalle de temps minimum pour prouver l'ordonnançabilite d'une configuration ➢ Le PPCM des périodes dans le cas d'une configuration de tâches périodiques laxité du processeur LP(t) = intervalle de temps pendant lequel le processeur peut rester inactif tout en respectant les échéances • ✔ laxité conditionnelle: (somme sur les taches déclenchées a la date t et qui sont devant i du point de vue de l'ordonnancement) • ✔ LP(t) = min(LCi(t))

  35. Ordonnancement des tâches independents tâchespériodiques • A priorités statiques • Rate monotonic : fondé sur les périodes • Deadline monotonic : fondé sur les délais critiques 2 A priorités dynamiques • Earliest deadline : fondé sur les échéances • Least laxity : fondé sur la marge de manœuvre restante

  36. Rate Monotonic Analysis (RMA) • Algorithme a priorité constante • Condition d’ordonnançabilité (pour Pi = Di) • se base sur la période (taches à échéance sur requête) : la tâche de plus petite période est la plus prioritaire • test d'acceptabilités (condition suffisante) : théoriquement, le concepteur d'un système temps réel prétendu strict devrait être capable de prouver que les limites temporelles ne seront jamais dépassées quelle que soit la situation. Cette vérification est appelée "test d'acceptabilité", "analyse de faisabilité" ou encore "contrôle d'admission. • Elle dépend de l'ordonnanceur utilisé et des caractéristiques des tâches du système. • quand n est très grand : n (21/n – 1) ~ ln 2 = 0,69

  37. Exemple : T1 (r0=0, C=3, P=20), T2 (r0=0, C=2, P=5), T3 (r0=0, C=2, P=10) ΣCi/Pi = 3/20+2/5+2/10 = 0,75 n(21/n−1) =3(21/2−1)= 0,77  Le test d'acceptabilités est validé Priorité2 > Priorité3 > Priorité1 (le classement s'effectue sur la période la plus petite)

  38. Deadline Monotonic Analysis (DMA) • Algorithme a priorité constante • base sur le délai critique D: • ➢ La tâche de plus petit délai critique est la plus prioritaire • test d'acceptabilités (condition suffisante) • Équivalent à RMA dans le cas des taches à échéance sur requête, meilleur dans les autres cas

  39. Exemple: T1(r0 = 0, C=3, D=7, P=20), T2 (r0 = 0, C=2, D=4, P=5),T3 (r0 = 0, C=2, D=9, P=10) ΣCi/Pi= 3/7+ 2/4+ 2/9 = 1,14 ≥ n(21/n−1) = 0,77 Priorité2 > Priorité1 > Priorité3 (le classement s'effectue sur le plus petit délai critique D)

  40. Tâches apériodiques Tâches apériodiques : elles correspondent aux événements; elles se réveillent de manière aléatoire. • Apériodiques strictes : contraintes temporelles dures à respecter absolument. • Apériodiques relatives : contraintes temporelles molles qui peuvent être ou non respectées de temps à autre (sans échéance).

  41. Model Tâche apériodique Stricte r: date aléatoire de réveil de la tâche C: durée d ’exécution maximale D : délai critique dk : échéance = rk + R R(t): délai critique dynamique (temps restant à t jusqu’à d) Tap( r, C, R) Tap (t, C(t), R(t)) Diagramme temporel d ’exécution Modèle canonique d'une tâche apériodique temps réel Tap (t, C(t), Dt)) C(t): temps d’exécution restant à t

  42. Traitement d'arrière-plan • taches apériodiques ordonnancées quand le processeur est oisif • ➢ les tâches périodiques restent les plus prioritaires • ordonnancement relatif des taches apériodiques en mode FIFO • traitement le plus simple, mais le moins performant

  43. exemple • Tp1 (r0=0, C=2, P=5), Tp2 (r0=0, C=2, P=10) • Ta3 (r=3, C=2), Ta4 (r=10, C=1), Ta5 (r=11, C=2) • ➢ ordonnancement RMA des tachesperiodiques

  44. Serveur des Tâches apériodique •Serveur de scrutation : • A chacun de ses réveils, le serveur sert les tâches apériodiques en attente depuis son réveil précédent - jusqu’à épuisement des tâches apériodiques - jusqu’à épuisement de sa capacité • L’ordre de service des tâches apériodiques est quelconque • La capacité non utilisée est perdue

  45. Exemple de tâche Serveur Scrutation

  46. Thread POSIX : Pthread Qu'est ce qu'est un thread? • Techniquement, un thread est défini comme un flux d'instructions indépendant qui peut être programmé pour s'exécuter en tant que tels par le système d'exploitation. Mais qu'est-ce que cela signifie? •    Pour le développeur du logiciel, le concept d'une «procédure» qui s'exécute indépendamment de son programme principal peut le mieux décrire un thread.

More Related