|
|
|
|
| Premier jour |
| Introduction au temps réel |
 |
Les concepts de base du temps réel |
 |
Les contraintes du temps réel et de l'embarqué |
 |
Multi-tâches et temps-réel |
| Exercice : |
Installation de l'environnement de développement sur le système hôte (si nécessaire) |
| Exercice : |
Installation de l'environnement d'exécution sur la cible |
| Exercice : |
Création d'une routine de changement de contexte |
| Structures de données et parallélisme |
 |
Nécessité des structures de données |
 |
Structures de données et multi-tâches |
|
 |
Les listes (simple ou double liens) |
|
 |
Listes circulaires |
|
 |
FIFOs |
|
 |
Piles |
|
 |
Preuves d'intégrité des structures de données |
|
 |
Assertions |
|
 |
Pré et post-conditions |
| Exercice : |
Construction d'un gestionnaire de listes chaînées génériques utilisable en environnement parallèle |
| Second jour |
| Gestion mémoire |
 |
Les algorithmes de gestion mémoire |
|
 |
Buddy system |
| Exercice : |
Écriture d'un gestionnaire de mémoire système simple utilisant l'algorithme "buddy" |
|
 |
Best fit |
|
 |
First fit |
|
 |
Gestion de pools |
| Exercice : |
Écriture d'un gestionnaire de mémoire générique, multi-niveau |
|
 |
Les erreurs mémoire |
|
 |
Fuites mémoire |
|
 |
Accès à de la mémoire non allouée ou déjà libérée |
| Exercice : |
Amélioration du gestionnaire de mémoire pour la détection d'erreurs mémoire |
|
 |
Surveillance des piles |
| Exercice : |
Amélioration de la commutation de contexte pour surveiller l'utilisation de la pile |
| Les composants d'un système temps réel |
 |
Les tâches et les descripteurs de tâches |
|
 |
Contenu du descripteur de tâche |
|
 |
Listes de descripteurs de tâches |
|
 |
Changement de contexte |
 |
Mécanismes d'ordonnancement et de préemption |
|
 |
Ordonnancement avec ou sans tic d'horloge |
|
 |
Modes d'ordonnancement et preuves d'ordonnançabilité |
|
 |
Ordonnancement à priorités fixes |
|
 |
Ordonnancement RMA et EDF |
|
 |
Ordonnancements adaptatifs |
| Exercice : |
Écriture d'un ordonnanceur simple, à priorités fixes |
| Troisième jour |
| Gestion d'interruptions dans les systèmes temps-réel |
 |
Besoin d'interruptions dans un système temps réel |
|
 |
Interruptions de timer |
|
 |
Interruptions de périphériques |
|
 |
Notion d'interruption sur niveau ou sur front |
 |
Acquittement matériel et logiciel |
 |
Vectorisation des interruptions |
| Exercice : |
Écriture d'un gestionnaire d'interruption simple |
|
 |
Interruption et ordonnancement |
| Exercice : |
Extension de l'ordonnanceur pour supporter un ordonnancement en ronde (round-robin) |
| Les primitives de synchronisation |
 |
Mise en attente et réveil des tâches |
 |
Sémaphores |
| Exercice : |
Mise en œuvre des sémaphores par interaction directe avec l'ordonnanceur |