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