Cyril Rabat


TP n°7 : les tableaux de sémaphores

 Télécharger en PDF

   Le but de ce TP est de manipuler les tableaux de sémaphores System V.

Premier pas avec les tableaux de sémaphores

   Dans cet exercice, nous souhaitons utiliser les sémaphores pour résoudre le diagramme de précédence suivant :


Diagramme de précédence

Questions

  1. Décrivez les sémaphores utilisés, leur initialisation, ainsi que les opérations nécessaires.
  2. Nous considérons le programme en C suivant :  question1.c. Modifiez-le en utilisant les sémaphores System V pour qu'il s'exécute suivant le diagramme de précédence précédent.

Questions subsidiaires

   Pour vérifier le bon déroulement de votre programme, nous souhaitons utiliser un tube anonyme : les fils envoient au père un message au début et à la fin de chacun de leur bloc. Le père peut ensuite vérifier si l'ordre est correct.

  1. Proposez une structure pour les messages échangés.
  2. Modifiez votre programme pour que le père affiche les messages reçus au fur-et-à-mesure.
  3. Sans le programmer, expliquez comment le père pourrait faire les vérifications.

Fichier binaire partagé

   Nous souhaitons utiliser un fichier binaire, partagé entre plusieurs processus. Un programme, que nous appellerons le coordinateur, va créer un fichier vide (s'il existe, il est "vidé"). Un second programme, nommé lecteur et qui sera exécuté plusieurs fois, prend en argument un message de longueur variable. Il va exécuter une boucle infinie dans laquelle il va soit afficher le contenu de tout le fichier, soit ajouter un message à la fin du fichier. Par exemple, s'il prend en argument le message "Bonjour", il placera dans le fichier des messages du type "Bonjour (PID=X, num=Y)", où X est son PID et Y le numéro du message écrit.

Questions

  1. Quels sont les problèmes de concurrence rencontrés ici ?
  2. Nous souhaitons autoriser les lectures concurrentes (en s'assurant qu'il n'y ait pas d'écriture en cours) et interdire les écritures concurrentes (tout en s'assurant qu'il n'y ait pas de lecture en cours). Proposez une solution en utilisant les sémaphores System V.
  3. Écrivez les deux programmes.
 

Nous avons vu en cours qu'il était possible de résoudre le problème des lectures/écritures en utilisant 3 sémaphores.

Outils


Version de cette page Vendredi 3 Mars 2017

© Cyril Rabat 2018

Connexion

Mot de passe perdu

Dernières nouvelles

16/11/2018 Les inscriptions pédagogiques pour le second semestre auront lieu à partir de la semaine prochaine. Vous serez prochainement contacté(e) par vos tuteurs.
16/11/2018 Du tutorat de consolidation pour MA0102 est prévu dans la semaine du 10/12. Les étudiants intéressés doivent contacter le responsable de la formation.
09/11/2018 Le planning des examens (EET) est disponible sur la page dédiée. Pour rappel : pas d'EET en L1 et semaine d'examens pour les L2 et L3 en semaine 51 (calendrier anticipé).
01/10/2018 Les emplois du temps sont maintenant accessibles depuis la page de la scolarité.

Contact

Courriel :
cyril.rabat [at] univ-reims.fr

Téléphone :
+33-326-91-33-81

Fax :
+33-326-91-33-97

Facebook :
lien Facebook direct