Programmation Concurrente et Repartie

Licence 3 Informatique -- UNS, Option Semestre 6

Objectif/Contenu :


Livres plus ou moins generaux sur le sujet, certains disponibles sur le site de  la BU de l'UFR Sciences, et sites web :

 Concepts des systemes d'exploitation. Systemes centralises; Systemes distribues.
     A. Tanenbaum. Intereditions, 1994 (ou bien, la 2nd edition 2001 en anglais "Modern Operating Systems" de A. Tanenbaum)
 Systemes d'exploitation.,
      J. Beauquier; B. Berard. Mc Graw Hill, 1990
 Advanced Linux Programming.
      Mark Mitchell, Jeffrey Oldham, and Alex Samuel, 2001
 Foundations of Multithreaded, Parallel, and Distributed Programming
      G. R. Andrews, Addison Wesley, 1999
 Concurrent Programming in Java: Design Principles and Patterns
     Doug Lea, Addison Wesley 1999
 Java concurrency in practice
     Brian Goetz, with Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, Doug Lea, Addison Wesley 2006
 Tutorial Java en ligne :
     Tutorial Java Concurrency; voir aussi ce rapide resume
 Cours en ligne, ENST-Bretagne :
     Multithreading and Synchronisation in Java
 Cours en ligne, Master Ingenierie Informatique Paris 7 :
     Theorie et Pratique de la concurrence (un peu difficile sur certaines parties "theoriques")
 Cours en ligne, Michigan Technological University :
     Introduction to Operating Systems
 Cours en ligne Threads Java, Universite Nice Sophia-Antipolis :
     Supports de Cours / Programmation objet en Java


Cours 1: Introduction generale aux notions de processus legers, threads

 Pour completer le large mais bref panorama donne en cours :

TP 1: Des petits programmes multi-thread en Java, pour "toucher" du doigt ce que c'est !


En preambule du cours 2: preparer cet exercice, pour lequel voici une correction .

Cours 2: Probleme de l'exclusion mutuelle et outils pour la gerer

TP 2: De l'entrelacement de threads et des manieres de resoudre ceci

TD 2: Un ensemble d'exercices impliquant TAS, semaphores, moniteurs, dont voici la correction de l'exo 2 (en word pour cause de car. speciaux qui ne passent pas bien du tout sinon)

 Autres ressources:


Cours 3: D'autres outils de gestion de la concurrence - Resolution de quelques problemes types

 Autres ressources:

TP 3: Utilisation de semaphores, moniteurs, ...

TD 3 sur producteurs consommateurs

Petite interro, et sa correction

TP 4: Encore un peu d'entrainement sur l'utilisation de ces outils semaphores, moniteurs, ...


Cours 4: Difficultes liees a l'utilisation d'outils de synchronisation - blocage

 Autres ressources:

TP 5: Comment gerer les problemes dus a l'interblocage, et mieux (!), faire en sorte qu'ils n'adviennent pas.

TD 4 sur l'interblocage, plus d'autres problemes type de synchronisation.
Correction de l'ensemble des exercices


Cours 5: Multi-taches sur Multi-Threads, Asynchronisme

Petite Introduction a la programmation Sockets en Java

TP 6: Comment utiliser les Executor en Java, ainsi que les Future (illustration sur la programmation sockets).


Dernier TP: Introduction aux algorithmes non-bloquants - Utilisation des AtomicVariables


Des annales de sujets d'examen de ce module

Des annales de sujets d'examen dans des enseignements proches, mais, dont le programme n'etait pas forcement strictement identique



Page maintenue par Francoise Baude @2009-2010