12.07.2015 Views

Systèmes temps réel – Concepts de base

Systèmes temps réel – Concepts de base

Systèmes temps réel – Concepts de base

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Systèmes</strong> <strong>temps</strong> <strong>réel</strong> <strong>–</strong> <strong>Concepts</strong> <strong>de</strong> <strong>base</strong>Richard Grisel <strong>–</strong> Professeur <strong>de</strong>s UniversitésUniversité <strong>de</strong> Rouen1


<strong>Systèmes</strong> <strong>temps</strong> <strong>réel</strong> - Choix• Gestion <strong>de</strong>s ressources<strong>–</strong> Ordonnancement (“Scheduling”), Tolérance aux fautes(“Fault-tolerance”), Accès et partage <strong>de</strong>s ressources,Communication.• Architectures<strong>–</strong> Système (sous-système) <strong>de</strong> calcul, Système (sous-système<strong>de</strong> communication, I/O.• Logiciels<strong>–</strong> Cahier <strong>de</strong>s charges, spécifications,vérification, langages<strong>temps</strong> <strong>réel</strong>, <strong>base</strong>s <strong>de</strong> données <strong>temps</strong> <strong>réel</strong>.2


Plan général• Introduction: Tâches <strong>temps</strong> <strong>réel</strong>, Propriétés, problèmes <strong>de</strong>conception.• Système monoprocesseur : Ordonnancement <strong>de</strong>s tâches,protocole <strong>de</strong> contrôle <strong>de</strong>s ressources, gestion <strong>de</strong>s“surcharges”, gestion du contrôle <strong>de</strong>s tâches.• Système Multiprocesseur : Ordonnancement <strong>de</strong>s tâches,tolérance aux fautes, gestion <strong>de</strong>s ressources.• Système distribué : Ordonnancement <strong>de</strong>s tâches locales etordonnancement global.• Système d’exploitation <strong>temps</strong> <strong>réel</strong> (RTOS): Etu<strong>de</strong> <strong>de</strong> cas,exemple d’un RTOS3


Notion <strong>de</strong> “prédictabilit锕 Le dénominateur commun aux systèmes <strong>temps</strong> <strong>réel</strong> est laprédictabilité :<strong>–</strong> Le comportement du système doit être prédictif(déterministe), ce qui veut dire que en fonction <strong>de</strong>certaines contraintes et suppositions concernant lacharge et les défauts, il doit être possible à laconception <strong>de</strong> définir toutes lecs contraintestemporelles du système.• Pour les systèmes statiques, 100% peut être prévu à la conception..•• Pour les systèmes dynamiques, 100% ne peut pâs être connu dans lamesure où les caractéristiques <strong>de</strong>s tâches ne sont pas connues a-priori.• Pour les systèmes dynamiques, la prédictabilité signifie qu’une foisune tâche admise dans le système, son succès ne doit jamais être misen cause aussi long<strong>temps</strong> que les paramètres (et hypothèses) ayantconduit à son admission restent vrais.4


Problèmes <strong>de</strong> (mauvaise) compréhension généraux• Le calcul “<strong>temps</strong> <strong>réel</strong>” est équivalent au calculrapi<strong>de</strong>.• La programmation “<strong>temps</strong>-<strong>réel</strong>” concerne le langageassembleur, la programmation d ela priorité <strong>de</strong>sinterruptions, et l’écriture <strong>de</strong>s “drivers”.• Les systèmes “<strong>temps</strong>-<strong>réel</strong>” opèrent dans unenvironnement statique.• Les problèmes liés aux systèmes <strong>temps</strong> <strong>réel</strong> sontdéjà résolus dans les autres domaines <strong>de</strong>s sciencesinformatiques.5


Le paradigme <strong>de</strong> l’ordonnancement <strong>temps</strong> <strong>réel</strong>• Allouer <strong>de</strong>s intervalles <strong>de</strong> <strong>temps</strong> pour les tâches sur le(s)processeur(s).• [i.e., Où et quand une tâche doit-elle s’exécuter?]• Objectifs: prévoir les “<strong>de</strong>adlines” que vont renconter les tâches.• (tests d’ordonnancement, construction <strong>de</strong> l’ordonnancement)6


Ordonnancement Préemptif ou Non-préemptif• Ordonnancement Préemptif<strong>–</strong> L’exécution d’une tâche peut être interrompue(préemptée) et reprise plus tard.<strong>–</strong> La préemption concerne une tâche <strong>de</strong> plus haute priorité.<strong>–</strong> Offre une plus gran<strong>de</strong> souplesse d’ordonnancement.<strong>–</strong> Implique une gestion <strong>de</strong>s ordonnancements par rapport auchangement <strong>de</strong> contexte.• Ordonnancement Non-Préemptif<strong>–</strong> Une fois qu’une tâche est démarrée, elle se termine.<strong>–</strong> Offre moins <strong>de</strong> souplesse.<strong>–</strong> Moins <strong>de</strong> problème <strong>de</strong> gestion <strong>de</strong>s ordonnancements carmoins <strong>de</strong> changement <strong>de</strong> contexte.7


Ordonnancement optimal -- définition• Un algorithme d’ordonnancement statique est optimal si, pourchaque ensemble <strong>de</strong> tâches, il produit toujours un résultat quisatisfait aux contraintes <strong>de</strong>s tâches (ordonnancementréalisable) alors que tout autre algorithme puisse le faire.• Un algorithme d’ordonnancement dynamique est dit optimal siil produit un ordonnancement réalisable quand un algorithmestatique avec connaissance a-priori <strong>de</strong> toutes les tâchespossibles peut le faire aussi.8


Autres problèmes• Partage et ré-affectation <strong>de</strong>s ressources<strong>–</strong> Se réfère aux problèmes d’utilisation <strong>de</strong>s ressources libérées parune tâche.• Tolérance aux fautes<strong>–</strong> La définition informelle concerne la capacité d’un système àfournir le service prévu même en présence <strong>de</strong> fautes.• Communication<strong>–</strong> Toute forme <strong>de</strong> communication qui implique <strong>de</strong>s contraintestemporelles.9


Problèmes d’architecture• Prédiction pour : Temps d’exécution <strong>de</strong>s instructions, Accès mémoire,Changement <strong>de</strong> contexte, Gestion <strong>de</strong>s interruptions.• Les systèmes <strong>temps</strong> <strong>réel</strong> évitent généralement les cahces et lesarchitectures super-scalaires.• Support pour les circuits <strong>de</strong> gestion <strong>de</strong>s erreurs,• Support pour <strong>de</strong>s communications rapi<strong>de</strong>s et fiables• Support pour les algorithmes d’ordonnancement (préemption rapi<strong>de</strong>,queues pour les priorités).• Support pour les RTOS (contextes multiples, gestion <strong>de</strong> la mémoire,gestion <strong>de</strong>s interruptions, synchronisation <strong>de</strong>s horloges).• Support pour les caractéristiques <strong>de</strong>s langages RT (estimation duplus mauvais <strong>temps</strong> d’exécution pour une tâche).10


Caractéristiques, Spécification, Vérification• Caractéristiques fonctionnelles: Fonctions du système et seseffets.• Caractéristiques non-fonctionnelles : par ex., contraintes <strong>de</strong> <strong>temps</strong>.• CF & CNF doivent être précisément définies et utilisées pourconstruire les spécifications du système.• Une spécification est un critère mathématique <strong>de</strong>s propriétésdéveloppées par un système. Elle est <strong>de</strong> telle sorte que :<strong>–</strong> Elle peut être testée pour sa conformité par rapport auxcaractéristiques.<strong>–</strong> Ses propriétés peuvent être examinées indépendament <strong>de</strong> la manièredon’t elle est implémentée.• L’approche classique <strong>de</strong> spécification du comportement d’un systèmeinformatique consiste en l’énumération <strong>de</strong>s évènements ou actionsauxquels le système participe et en la <strong>de</strong>scription <strong>de</strong> l’ordre danslequel ces évènements peuvent arriver. Il n’est pas trivial d’étendrece genre d’approche aux systèmes <strong>temps</strong> <strong>réel</strong>.11


Langages pour le <strong>temps</strong> <strong>réel</strong>• Support pour la gestion du <strong>temps</strong><strong>–</strong> Des constuctions spécifiques permettent d’exprimer lescontraintes <strong>de</strong> <strong>temps</strong>, en prenant en compte (et en pistant)l’utilisation <strong>de</strong>s ressources.• Analyse <strong>de</strong> l’ordonnancement en terme <strong>de</strong>faisabilité<strong>–</strong> Ai<strong>de</strong> au test <strong>de</strong> l’ordonnancement à la compilation.• Modules logiciels réutilisables<strong>–</strong> Methodologieorientéeobjet.• Support pour la programmation distribuée et latolérance aux fautes12


Bases <strong>de</strong> données• La plupart <strong>de</strong>s <strong>base</strong>s <strong>de</strong> données systèmes sont sur disque.• Elles utilisent <strong>de</strong>s transactions et <strong>de</strong>s protocoles particuliers.• Ces caractéristiques préservent l’intégrité <strong>de</strong>s données, maisconduisent à <strong>de</strong>s <strong>temps</strong> <strong>de</strong> réponse lents et non prévisibles(<strong>temps</strong> d’accès moyen).• Dans une <strong>base</strong> <strong>de</strong> données pour système <strong>temps</strong> <strong>réel</strong>, il estimportant <strong>de</strong> prévoir :<strong>–</strong> Une gestion <strong>de</strong>s trasactions pour respecter les “<strong>de</strong>adlines”<strong>–</strong> Une sémantique explicite pour spécifier les emps et lesdifférentes contraintes.<strong>–</strong> La possibilité <strong>de</strong> tester la capacité du système <strong>de</strong> <strong>base</strong> <strong>de</strong>données à respecter les “<strong>de</strong>adlines” <strong>de</strong> transaction pendantl’intitialisation <strong>de</strong> l’application.13


Introduction: Résumé• Les systèmes <strong>temps</strong> <strong>réel</strong> nécessitent rigueur (logique) et prise encompte du <strong>temps</strong>.• Ils sont constitués d’un système <strong>de</strong> contrôle, d’un système contrôléet d’un environnement.• On peut les classifier en “hard”, “firm”, et “soft”.• Les tâches sont : périodiques ou non périodiques(synchrones/asynchrones).• La notion <strong>de</strong> “prédictabilité” est très importante.• Il faut se méfier <strong>de</strong>s a-priori (venant <strong>de</strong>s systèmes non <strong>temps</strong> <strong>réel</strong>).• Les clés <strong>de</strong> la conception sont :<strong>–</strong> ordonnancement, (ré)affectation <strong>de</strong>s ressources, tolérance aux fautes,communication, choix <strong>de</strong> l’architecture, spécification et vérification dusystème, langages <strong>de</strong> programmation et <strong>base</strong>s <strong>de</strong> données.14

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!