v2.3.2 (2860)

Cours scientifique - ROB305 : Conception multitâche et OS Temps Réel

Domaine > Sciences et technologies de l'information et de la communication.

Descriptif

L’objectif de ce cours est de familiariser les élèves aux concepts spécifiques au développement logiciel dans le contexte d’un système embarqué et/ou temps réel. Il s’agit d’un cours très orienté sur la pratique concrète de la programmation multitâches abordant des problématiques temps réel et/ou embarquées ainsi que les questions liées à l’interaction entre matériel et logiciel. Le cours comprends un 1er volet introduisant les notions fondamentales mapping mémoire, de tâche, de mutex et de condition et leur implémentation sous la forme de l’API Posix au sein d’un Linux embarqué à noyau préemptible. Un 2e  volet étend ces notions au contexte de la programmation orientée objets. Des objets de plus haut niveau tels que les sémaphores, les conteneurs thread-safe et les objets actifs sont également traités dans la partie finale du cours.

 

Les séances sont des cours magistraux très interactifs émaillés d’exercices pratiques permettant un apprentissage concret. Les travaux de programmation en C sont tous basés sur l’API Posix.

 

Objectifs pédagogiques

 1)      Savoir utiliser un environnement de développement croisé C/C++ pour une cible embarquée.

2)      Être capable d’écrire en C un programme comportant plusieurs tâches simples effectuant des accès concurrents à des structures de données partagées.

3)      Savoir programmer en C les problématiques de gestion du temps dans une cible embarquée et/ou temps-réelle.

4)      Savoir comment implémenter en C++ des classes de haut niveau encapsulant les concepts fondamentaux de la programmation multitâches.

5)      Pouvoir concevoir une architecture multitâches orientée objets en C++ en réponse à un problème faisant intervenir des objets concrets en interaction.

nombre d'heure en présentiel

28

nombre de blocs

8

Volume horaire par type d'activité pédagogique : types d'activité

  • Cours d'improvisation et théatre : 28

effectifs minimal / maximal

10/30

Diplôme(s) concerné(s)

Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées

1. Voie SIS

2. Programmation C, Notions d'électronique numérique, Notions de
programmation orientée objet (C++, Java)

Applications & débouchés:
==========================

Bureaux d'étude et développement de systèmes
embarqués, Génie logiciel appliqué aux développements de systèmes temps réel
/ embarqués, Conception d'architecture de systèmes matériels/logiciels
(aéronautique, automobile)

Format des notes

Numérique sur 20

Littérale/grade européen

Pour les étudiants du diplôme Diplôme d'Ingénieur de l'Ecole Nationale Supérieure de Techniques Avancées

Vos modalités d'acquisition :

 Exercices sur machine et QCM

Le rattrapage est autorisé (Max entre les deux notes écrêté à une note seuil)
  • le rattrapage est obligatoire si :
    Note initiale < 6
  • le rattrapage peut être demandé par l'étudiant si :
    6 ≤ note initiale < 10
L'UE est acquise si Note finale >= 10
  • Crédits ECTS acquis : 1.5 ECTS

Le coefficient de l'UE est : 1

La note obtenue rentre dans le calcul de votre GPA.

L'UE est évaluée par les étudiants.

Programme détaillé

Séance 1/8 : Familiarisation avec les concepts fondamentaux associés à l’interaction entre matériel et logiciel : mapping mémoire, interruption matérielle, représentations et opérations binaires, endianité, principes de contrôle/commande.

 

Séance 2/8 : Architecture électronique d’un CPU, principes d’un OS multitâches préemptif, OS temps réel, représentation, analyse et programmation des problématiques temporelles dans les séquences d’exécution multitâches.

 

Séance 3/8 : Programmation multitâches de base en C avec pthreads et mutex de l’API Posix. Spécificités de l’ordonnancement de tâches temps réel et problématiques spécifiques aux contraintes temporelles.

 

Séance 4/8 : Types de tâches dans un système « réactif », liens avec les notions de « condition » et d’appel bloquant.

 

Séance 5/8 : Principes de bases d’une architecture multitâches orientée objets. Mise en œuvres en C++ des concepts de base.

 

Séance 6/8 : Programmation de sémaphores et de conteneurs orientés objets en environnement multitâches.

 

Séance 7/8 : Programmation d’un objet actif et conception d’une architecture logicielle à base d’objets actifs.

 

Séance 8/8 : Contrôle QCM + exercices sur station de travail.

Mots clés

SYSTEME D'EXPLOITATION, OS, MULTITACHE, TEMPS REEL,EMBARQUE, DRIVER, CONCEPTION ORIENTEE OBJET, DESIGN PATTERN, MOTIF DE CONCEPTION
Veuillez patienter