Systèmes temps réel – Concepts de base
Transcription
Systèmes temps réel – Concepts de base
Systèmes temps réel – Concepts de base Richard Grisel – Professeur des Universités Université de Rouen 1 Systèmes temps réel - Choix • Gestion des ressources – Ordonnancement (“Scheduling”), Tolérance aux fautes (“Fault-tolerance”), Accès et partage des ressources, Communication. • Architectures – Système (sous-système) de calcul, Système (sous-système de communication, I/O. • Logiciels – Cahier des charges, spécifications,vérification, langages temps réel, bases de données temps réel. 2 Plan général • Introduction: Tâches temps réel, Propriétés, problèmes de conception. • Système monoprocesseur : Ordonnancement des tâches, protocole de contrôle des ressources, gestion des “surcharges”, gestion du contrôle des tâches. • Système Multiprocesseur : Ordonnancement des tâches, tolérance aux fautes, gestion des ressources. • Système distribué : Ordonnancement des tâches locales et ordonnancement global. • Système d’exploitation temps réel (RTOS): Etude de cas, exemple d’un RTOS 3 Notion de “prédictabilité” • Le dénominateur commun aux systèmes temps réel est la prédictabilité : – Le comportement du système doit être prédictif (déterministe), ce qui veut dire que en fonction de certaines contraintes et suppositions concernant la charge et les défauts, il doit être possible à la conception de définir toutes lecs contraintes temporelles du système. • • • Pour les systèmes statiques, 100% peut être prévu à la conception.. • Pour les systèmes dynamiques, la prédictabilité signifie qu’une fois une tâche admise dans le système, son succès ne doit jamais être mis en cause aussi longtemps que les paramètres (et hypothèses) ayant conduit à son admission restent vrais. Pour les systèmes dynamiques, 100% ne peut pâs être connu dans la mesure où les caractéristiques des tâches ne sont pas connues apriori. 4 Problèmes de (mauvaise) compréhension généraux • Le calcul “temps réel” est équivalent au calcul rapide. • La programmation “temps-réel” concerne le langage assembleur, la programmation d ela priorité des interruptions, et l’écriture des “drivers”. • Les systèmes “temps-réel” opèrent dans un environnement statique. • Les problèmes liés aux systèmes temps réel sont déjà résolus dans les autres domaines des sciences informatiques. 5 Le paradigme de l’ordonnancement temps réel • • • • Allouer des intervalles de temps 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 “deadlines” que vont renconter les tâches. (tests d’ordonnancement, construction de l’ordonnancement) 6 Ordonnancement Préemptif ou Non-préemptif • Ordonnancement Préemptif – L’exécution d’une tâche peut être interrompue (préemptée) et reprise plus tard. – La préemption concerne une tâche de plus haute priorité. – Offre une plus grande souplesse d’ordonnancement. – Implique une gestion des ordonnancements par rapport au changement de contexte. • Ordonnancement Non-Préemptif – Une fois qu’une tâche est démarrée, elle se termine. – Offre moins de souplesse. – Moins de problème de gestion des ordonnancements car moins de changement de contexte. 7 Ordonnancement optimal -- définition • Un algorithme d’ordonnancement statique est optimal si, pour chaque ensemble de tâches, il produit toujours un résultat qui satisfait aux contraintes des tâches (ordonnancement réalisable) alors que tout autre algorithme puisse le faire. • Un algorithme d’ordonnancement dynamique est dit optimal si il produit un ordonnancement réalisable quand un algorithme statique avec connaissance a-priori de toutes les tâches possibles peut le faire aussi. 8 Autres problèmes • Partage et ré-affectation des ressources – Se réfère aux problèmes d’utilisation des ressources libérées par une tâche. • Tolérance aux fautes – La définition informelle concerne la capacité d’un système à fournir le service prévu même en présence de fautes. • Communication – Toute forme de communication qui implique des contraintes temporelles. 9 Problèmes d’architecture • • • • • • • Prédiction pour : Temps d’exécution des instructions, Accès mémoire, Changement de contexte, Gestion des interruptions. Les systèmes temps réel évitent généralement les cahces et les architectures super-scalaires. Support pour les circuits de gestion des erreurs, Support pour des communications rapides et fiables Support pour les algorithmes d’ordonnancement (préemption rapide, queues pour les priorités). Support pour les RTOS (contextes multiples, gestion de la mémoire, gestion des interruptions, synchronisation des horloges). Support pour les caractéristiques des langages RT (estimation du plus mauvais temps d’exécution pour une tâche). 10 Caractéristiques, Spécification, Vérification • Caractéristiques fonctionnelles: Fonctions du système et ses effets. • • Caractéristiques non-fonctionnelles : par ex., contraintes de temps. CF & CNF doivent être précisément définies et utilisées pour construire les spécifications du système. • Une spécification est un critère mathématique des propriétés développées par un système. Elle est de telle sorte que : – Elle peut être testée pour sa conformité par rapport aux caractéristiques. – Ses propriétés peuvent être examinées indépendament de la manière don’t elle est implémentée. • L’approche classique de spécification du comportement d’un système informatique consiste en l’énumération des évènements ou actions auxquels le système participe et en la description de l’ordre dans lequel ces évènements peuvent arriver. Il n’est pas trivial d’étendre ce genre d’approche aux systèmes temps réel. 11 Langages pour le temps réel • Support pour la gestion du temps – Des constuctions spécifiques permettent d’exprimer les contraintes de temps, en prenant en compte (et en pistant) l’utilisation des ressources. • Analyse de l’ordonnancement en terme de faisabilité – Aide au test de l’ordonnancement à la compilation. • Modules logiciels réutilisables – Methodologie orientée objet. • Support pour la programmation distribuée et la tolérance aux fautes 12 Bases de données • La plupart des bases de données systèmes sont sur disque. • Elles utilisent des transactions et des protocoles particuliers. • Ces caractéristiques préservent l’intégrité des données, mais conduisent à des temps de réponse lents et non prévisibles (temps d’accès moyen). • Dans une base de données pour système temps réel, il est important de prévoir : – Une gestion des trasactions pour respecter les “deadlines” – Une sémantique explicite pour spécifier les emps et les différentes contraintes. – La possibilité de tester la capacité du système de base de données à respecter les “deadlines” de transaction pendant l’intitialisation de l’application. 13 Introduction: Résumé • Les systèmes temps réel nécessitent rigueur (logique) et prise en compte du temps. • Ils sont constitués d’un système de 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 de “prédictabilité” est très importante. • Il faut se méfier des a-priori (venant des systèmes non temps réel). • Les clés de la conception sont : – ordonnancement, (ré)affectation des ressources, tolérance aux fautes, communication, choix de l’architecture, spécification et vérification du système, langages de programmation et bases de données. 14