STM-GE-15-Systèmes multi-tâches
- ue-gec-stm-ge-15
- Génie Electrique
Semestre : 9
Responsable(s) du contenu pédagogique
- François DE BEUVRON
- Ahmed SAMET
| Total coefficients : 3,5 |
| Total heures : 30 (12 cours, 18 projet) |
| Total heures travail personnel : 30 |
Prérequis
- Connaissance en programmation orientée objet
Objectif
Module d'initiation à la programmation concurrente.
Compétences attendues
Axe A2 : ANALYSE TECHNIQUE
Capacité à mobiliser les ressources dans le domaine de la spécialité. Mettre en œuvre des connaissances techniques multidisciplinaires pour résoudre des problèmes d'ingénierie.
- Identifier un problème, le reformuler
Axe A3 : CONCEPTION TECHNIQUE
Capacité à mobiliser ou à développer des nouvelles méthodes de conception afin de concevoir des produits, des processus et des systèmes en tenant compte des dernières avancées techniques dans le domaine tout en prenant en compte les enjeux environnementaux et énergétiques.
- Définir les solutions techniques répondant au besoin
- Établir les modèles en vue de la prévision du comportement du produit ou du système
Axe A4 : PRATIQUE DE L’INGÉNIERIE
Aptitude à consulter et appliquer les codes de bonnes pratiques, sur la base d'études scientifiques et techniques, piloter et mettre en œuvre de manière structurée un projet ou un processus en organisant le travail des collaborateurs de l'entreprises dans le respect de la réglementation en matière de sécurité et dans le respect des valeurs sociétales et éthiques.
- Mener une réalisation conformément aux besoins exprimés
- Mettre en œuvre une démarche de vérification systématique
Programme
La première et principale partie du cours est dédiée à la programmation concurrente ou multi-taches.
Les concepts seront mis en application en Java : Java dispose d'un mécanisme natif de creation/synchronisation de processus légers (threads) qui s'exécutent en parallèle dans un même programme (au sein de la machine virtuelle java JVM), ce qui permet de tester facilement les mécanismes de base (sleep, interrupt, wait/notify). Ensuite, des bibliothèques de plus haut niveau ont été développées pour mettre en œuvre facilement et efficacement les cas d'utilisation les plus courants : opérations atomiques, collections spécifiquement adaptées à une utlisation en multi-tâche.
La deuxième partie du cours est une introduction à la programmation distribuée : Les étudiants apprendront à créer des applications réseau échangeant des données au travers de sockets TCP/IP, et en utilisant en particulier une architecture client-serveur.
Mode d'évaluation
Examen final sous forme de projet (6-8 semaines) avec une soutenance: coeff 1
Les étudiants sont évalués à la suite d'une soutenance sur plusieurs critères:
-La résolution du problème du projet avec les connaissances acquises en cours.
-La qualité du rapport et présentation le jour de la soutenance
Bibliographie
Scott Oaks, Henry Wong, "Java Threads, 3rd Edition", September 2004, O'Reilly. ISBN: 9780596007829
Brian Goetz et al. "Java Concurrency in Practice",
biblio Web
https://docs.oracle.com/javase/tutorial/essential/concurrency/
http://deptinfo.unice.fr/~grin/messupports/java/Thread1.pdf