Systèmes temps réel et embarqués GIN4001
Enseignant:
Email:
Durée totale du cours: 45 H
Semestre : 4
Option Ingénierie systèmes et réseaux
Nombre de crédits : 2
| Modules
spécialisés |
Modules de
base |
Sciences et techniques de
l’ingénierie |
Préparation à la carrière professionnelle |
| X |
| Nombre d’heures | Activités hors classe |
| 45 | 38 |
Code : GIN4001 Systèmes temps réel et embarqués
Description du cours
Introduction aux systèmes en temps réel ; C pour les systèmes en temps réel ; Synchronisation et communication ; Systèmes de planification en temps réel ; Planification avancée ; Simulation d’un système temps réel.
Formes d’enseignement
Conférences
Les cours sont organisés en deux blocs : le premier bloc comprend des cours et un examen intermédiaire, tandis que le second comprend des cours et un examen final.
Missions indépendantes
Les étudiants doivent résoudre indépendamment 2 tâches pratiques (devoirs à la maison).
Laboratoire
Les étudiants résolvent indépendamment des tâches pratiques grâce à des exercices de laboratoire.
Contenu :
- SUJET 1 : Introduction aux systèmes temps réel
Introduction Conception et modélisation de systèmes temps réel Alternatives de mise en œuvre Tests et fiabilité Sécurité et certification Tendances et orientations futures
- SUJET 2 : Le langage C pour les systèmes temps réel, 2 exercice sur ordinateur)
- SUJET 3 : Synchronisation, communication et planification
VxWorks : un système d’exploitation en temps réel utilisant des sémaphores VxWorks Synchronisation et inversion de priorité Synchronisation et communication Blocage des files d’attente de messages
SUJET 4 : Ordonnancement avancé (conférences, 1 tutoriel) Ordonnancement dynamique Gestion des tâches apériodiques Modélisation de tâches apériodiques Ordonnancement avancé Ordonnancement avec des systèmes multiprocesseurs bloquants
- SUJET 5 : Communication de processus séquentiels ( conférences, 1 exercice de laboratoire informatique étendu)
Expérience découverte en petit groupe :
L’exercice informatique permet aux étudiants de travailler en laboratoire en petits groupes avec les enseignants.
Tutoriel : ( exercice informatique) Modélisation Tâches Périodiques Cadres Cycliques Taux de Round Robin Ordonnancement Monotone Ordonnancement Systèmes Temps Réel Taux Analyse Monotone Délai Tâches Contraintes
Méthodes d’enseignement et d’apprentissage
Ce cours s’appuie sur des cours magistraux comme principal mécanisme de diffusion du matériel. Des tutoriels complètent les cours magistraux en fournissant des exercices et des exemples de problèmes pour améliorer la compréhension obtenue grâce aux conférences. Des exercices informatiques sont utilisés pour fournir une expérience pratique aux étudiants afin de renforcer les concepts théoriques rencontrés dans les cours magistraux.
Les activités d’évaluation continue offrent aux étudiants des opportunités d’évaluation formative pour évaluer leurs progrès et leur compréhension.
Tutoriels : ils donneront aux étudiants l’occasion de s’exercer à travers la résolution d’un ensemble de problèmes.
Les problèmes seront disponibles avant le didacticiel et les étudiants devront se préparer en répondant à tous les problèmes possibles et en formulant des questions pour les aider à résoudre les problèmes restants.
Pendant le tutorat, les étudiants travailleront ensemble et avec l’aide de tuteurs pour résoudre les problèmes restants.
Exercices informatiques : ceux-ci seront entrepris individuellement dans une suite informatique.
Une feuille de travail d’exercices initiera les étudiants au langage de programmation C.
Celles-ci seront fortement structurées.
Exercice informatique étendu : le dernier sujet, Filtres adaptatifs en temps réel, est présenté comme un exercice basé sur un projet dans lequel les étudiants développent un logiciel pour résoudre un problème en temps réel à l’aide du langage de programmation C. Le problème sera spécifié en termes de fonction requise. Certaines plages horaires de cours consacrées à ce sujet serviront de forums de discussion dans lesquels les étudiants peuvent poser des questions et demander conseil au conférencier.
- Enseignement frontal (magistral) avec des exemples à résoudre en
- Exercices théoriques et études de cas (présentation et discussion).
- Travaux à faire à domicile (mini-projet, exposé, compte-rendu, …)
Références bibliographiques
- Un polycopié (Notes du cours) de l’enseignant sera disponible.
Ouvrages de référence recommandés :
Burns et Wellings, « Real-Time Systems and Programming Languages : Ada, Real-Time Java and C/Real-Time POSIX », 4e édition, Addison Wesley, 2009 Laplante et Ovasaka, « Real-Time Systems Design and Analysis: Tools for the Practitioner » (4e édition)
Posix Threads (Pthreads) Application Programming Interface-Appendix B, Linux for Embedded and Real-time Applications, Chapter Appendix B, pp.275-286 (disponible dans la bibliothèque Barr-Smith)
Kernighan et Ritchie, « The C Programming Language », 2e édition, Prentice Hall, 1988
Tanenbaum « Modern Operating Systems » 2e éd., 2001
Blum « Exploring Arduino : Tools and techniques for Engineering Wizardry » Wiley, 2013.
Modalité d’évaluation
- 40% Contrôle continu (Test + Travail individuel avec présentation orale, Devoir surveillé, …)
- 60% Examen semestriel
Résultats d’apprentissage :
A l’issue de ce cours, les étudiants seront capables de :
| 1 | appliquer correctement la terminologie et lister les applications des systèmes temps réel |
| 2 | traduire les exigences des systèmes en temps réel sous des formes qui peuvent être encodées. |
| 3 | travailler dans les limites imposées par les aspects temps réel des systèmes |
| 4 | reformuler des problèmes de conception pratiques en modèles de tâches en temps réel à des fins d’analyse, d’évaluation ou de mise en œuvre |
| 5 | évaluer les implications des choix de conception sur la mise en œuvre du système en temps réel |
| 6 | être capable d’expliquer le but et la structure d’un système d’exploitation en temps réel |
| 7 | mettre en œuvre des fonctions temps réel simples à l’aide d’un système d’exploitation temps réel et d’un langage de programmation adapté aux systèmes temps réel embarqués |
| 8 | analysez et planifiez des ensembles de tâches en temps réel sur un seul processeur |
| 9 | appliquer la méthodologie temps réel aux systèmes multiprocesseurs et distribués |