Programmation Parallele TD1

  1. Quelques threads.
    1. Récupérez le fichier PingPong.java, compilez et exécutez le, puis expliquez le résultat.
    2. Récupérez les fichiers Compte.java, Mouvement.java, compilez et exécutez les, (mettez et/ou enlever les commentaires qui modifient la priorité du thread "courant") puis expliquez les résultats.
  2. Le problème de la section critique : une solution logicielle
    1. Récupérez les fichiers SectionCritique.java, Idee1.java, compilez et exécutez les, puis expliquez le résultat.
    2. Créez un fichier Idee2.java, afin que l'exécution montre que la famine genéralisée est possible avec cette solution.
    3. Créez un fichier Peterson.java, qui implémente l'algorithme de Peterson pour deux processus.
  3. Le problème de la section critique : une esquisse de solution matérielle
    1. Récupérez le fichier Verrou.java, compilez le et expliquez les méthodes qu'il contient.
    2. Créez un fichier TestAndSet2.java, qui utilise un verrou pour résoudre le problème de l'exclusion mutuelle pour deux processus.
    3. Créez un fichier TestAndSet.java, qui utilise un verrou pour résoudre le problème de l'exclusion mutuelle pour un nombre quelconque de processus passé en paramètre.
    4. Créez simplement (en ajoutant dans Verrou.java une méthode modifiant l'atomicité des actions) le fichier VerrouNonAtomique.java, et créez un fichier TestAndSetNonAtomique.java, afin que les solutions précédentes soient fausses.