Programmation Parallele TD2

  1. Moniteurs et synchronisations.
    1. Créez simplement (en modifiant Verrou.java et TestAndSet.java) les fichiers VerrouAtomique.java, TestAndSetAtomique.java, afin d'avoir une solution correcte au problème de la section critique. Vous modifierez également la méthode main afin que le programme ne s'arrête que lorsque tous les threads sont terminés.
    2. Créez simplement (en modifiant Verrou.java, SectionCritique.java et TestAndSet.java) les fichiers VerrousAtomiques.java, SectionsCritiques.java, TestAndSetsAtomiques.java, afin d'avoir une solution correcte au problème ou chacun des processus possède deux sections critiques distinctes.
  2. Le problème des Producteurs/Consommateurs avec un buffer borné.
    1. Complétez la méthode retirer() du fichier TamponV1.java, qui modélise un buffer de taille quelconque, dont les accès sont gérés par un moniteur, qui garantit l'exécution des méthodes synchronized en section critique.
    2. Complétez les méthodes run() du fichier ProdConsV1.java, afin que le producteur transmette via le media des entiers au consommateur.
    3. Ajoutez un parametre afin que le programme principal arrete le producteur et le comsommateur au bout d'un certain temps.
    4. Ajoutez deux parametres afin qu'un nombre quelconque de producteurs et de consommateurs utilisent le même tampon.
    5. Ajoutez une méthode vider() à l'objet tampon qui affiche le contenu restant du buffer en le vidant.
    6. Modifiez votre solution afin que le programme s'arrête de la façon suivante : le programme principal arrête les producteurs au bout d'un certain temps. Lorsque le buffer est vide (du fait des consommateurs), le programme arrête les consommateurs, puis termine. Tampon.java, ProdCons.java,