1. Introduction (3 heures[1])
- Définition des concepts de base
- Exemples de systèmes ordinés en temps réel
- Notion du temps dans les systèmes informatiques.
2. Organisation des ordinateurs : La vision des programmeurs (3 heures)
- Revue des composantes matérielles et leurs caractéristiques
- Interfaces internes et externes
- Jeux d’instructions et temps d’exécution
3. Méthodologies de développement logiciel (6 heures)
- Cycles de développement d’un projet informatique
- Modélisation des besoins
- Spécification des contraintes temporelles
- Méthodologies de spécification et de conception des systèmes ordinés en temps réel
4. Langages de programmation pour le temps réel (6 heures)
- Revue des éléments du langage C et de leur impact sur la performance d’un système
- Introduction au langage assembleur d’Intel et des microprocesseurs AVR
- Techniques de programmation des périphériques
- Optimisation du code
5. Analyse de performance (6 heures)
- Aspects matériels et logiciels du traitement des interruptions
- Méthodes de traitements des interruptions
- Calcul du temps de réponse
6. Étude des systèmes d’exploitation pour le temps réel (6 heures)
- Systèmes avec et sans interruptions
- Éléments fondamentaux des systèmes multitâches
- Services et configuration du noyau
7. Ordonnancement (3 heures)
- Méthodes pour l’ordonnancement de tâches indépendantes et dépendantes.
- Calcul du temps d’exécution
- Problème d’inter blocage et solutions possibles
8. Communication inter-tâches et synchronisation (6 heures)
- Tampons de données
- Messages, sémaphores, queues, drapeaux et signaux
[1] Ces heures sont des heures approximatives d’enseignements pour chaque sujet et incluent le temps alloué à l’examen intra-trimestriel.