Teaching at University Grenoble Alpes
UGA Master1 / Master2, Polytech Info3 / Info4, Others (Ensimag 3A, CNAM)
Concurrent Programming
Cours en français
Le cours de Programmation Concurrente permet d'acquérir les bases théoriques et pratiques de la mise
en oeuvre d'applications concurrentes. Ce cours développe les notions de processus, thread, et
outils de synchronisation. Parmi les outils étudiés et pratiqués, on met l'accent sur les moniteurs
et les sémaphores.
D'un point de vue pédagogique, le cours est organisé sous la forme de transparents
visant à expliquer les notions de base, et d'une série de mini-projets mettant en pratique
ces notions sur des cas d'usage donnés. Les mises en pratique se font en C et principalement en Java.
Un des points importants du cours est l'apprentissage d'une méthodologie,
basée sur la définition de tableaux de gardes/actions, pour élaborer des solutions concurrentes correctes.
1- Notion de processus
Lecture slides
TD
2- Notion de thread
Lecture slides
Mini-projet - Manipulation de threads
3- Exclusion mutuelle
Lecture slides
TD
4- Moniteurs
Lecture slides
Mini-projet - manipulation de moniteurs
5- Sémaphores
Lecture slides
Mini-projet - manipulation de sémaphores
6- Construction de Solutions Directes à base de Moniteurs
Lecture slides
Mini-projet - allocation de ressources
7- Construction de Solutions FIFO
Lecture slides
Mini-projet - allocation de ressources FIFO
8- Construction de Solutions avec Priorités
Lecture slides
Mini-projet - lecteurs-redacteurs
9- Cas du Producteur-Consommateur
Lecture slides
Projet
10- Gestion des Interblocages
Lecture slides
Mini-projet - philosophes
11- Notion d'exécuteur
Lecture slides
Mini-projet - manipulation d'executeurs
12- Bilan / Wrap Up
Lecture slides
Examens: 20-21
-- 18-19
Basics of Distributed Programming
This lecture focuses on the basics concepts and programming models for developing distributed systems,
especially those based on Client-Server architectures. Five main distributed programming models are considered:
message-based and stream-based (Socket), event-based (NIO), object-based (Java RMI), and Web-based (HTTP/Servlets).
1- Introduction to Distributed Systems
Lecture slides
2- Sockets-based distributed systems
Lecture slides
Projet - Remote File Server with Java Sockets
3- NIO-based distributed systems
Lecture slides
Projet - Remote File Server with Java NIO
4- RMI-based distributed systems
Lecture Slides
Projet - Chat Server with Java RMI
5- Web-based distributed systems
Lecture Slides
TP Launching & managing an Apache Server
Projet - Building an HTTP/Servlets Server
Examens:11-12
12-13
18-19
Advanced Distributed Programming
- Javanaise Project
Design and implementation of a Distributed Object Cache layer, ensuring an entry-consistency model for shared objects. The project is developped on top of Java.
Project presentation & supports - JEE Lecture
Principles of Java Enterprise Edition platforms
Lecture slides
- JEE ECOM Project
Developping an e-commerce applications on top of JEE
Slides & supports
- GICOM Project
Developping an advanced middleware for e-commerce applications
Slides & supports
- CORBA Project
Building distributed applications based on Object Request Brokers
Slides & supports
Operating Systems
- Operating Systems Lecture
Design Principles of Operating Systems
Lecture slides - Thread kernel Project
Implementing a basic multi-threaded kernel
Project slides & supports - Unix commands
Practical session on Unix commands
Session slides
Others
- C Programming
Lecture slides - Bib-CCI Project
Implementing an electronic library in C and Tcl/TK
Project slides - McKoi DB
Notes on how to install & use
Slides
© Fabienne Boyer - Generated by webgen