Les sémaphores

Bonjour.
Je cherche a comprendre comment modéliser le probléme du "coiffeur endormi" avec les sémaphores ,je ne veut pas la solution car elle éxiste sur le net je veut juste comprendre le probléme voici l'énencé:
Soit un salon de coiffure avec un coiffeur, un fauteuil de coiffure et n chaises pour les clients qui attendent. En l'absence de clients, le coiffeur s'asseoir dans le fauteuil et s'endort. Le premier client qui arrive réveille le coiffeur. Les clients suivants doivent s'asseoir sur une chaise (s'il y en a de libres) ou partir (si toutes les chaises sont occupées).
J'ai pas compris pourquoi on doit métre 2 fonctions (une pour le coiffeur et l'autre pour le client)au lieu d'une seul .
Je vous remerci d'avence.

2 réponses

  1. Contributeur
    Bonjour,

    Plutôt que de te donner l'explication, je te retourne une question :
    Et comment voudrais-tu le faire avec seulement une seule fonction ?

    0
    1. En utilisant deux sémaphores coiffeure et mutex:
      #define chaise 5
      sémaphores coiffeur=1,mutex=1;
      int nbrclients=0;
      void fonction()
      {wait(mutex)
      nbrclients++;
      if(nbrclients<=chaise) signal(mutex)
      wait(coiffeur)
      coupper-les-cheveau();
      nbrclients--;
      signal(coiffeur)
      signal(mutex)}
      0