Semaphores entre 2 processus

brice -  
 walid -
bonjour et merci d'avance a qui voudra bien m'aider

j'ai un probleme que voici :

je ne trouve aucune aide sur internet pour savoir comment creer et utiliser des semaphores entre 2 processus qui accedent a un meme fichier texte.
si quelqu'un pouvait m'envoyer un code permettant cela , j'en serais tres heureux.
et je travaille sous linux.
A voir également:

5 réponses

AnaGraM Messages postés 72 Statut Membre 50
 
Si tu veux, j'ai un tas de sources ADA pour lecteurs/1 redacteur avec les semaphores et moniteurs (priorité lecteurs / priorite redacteur / sans priorité)
1
thenice Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
je ne sais pas ce que veut dire ADA mais je veux bien voir tes sources stp.
0
AnaGraM Messages postés 72 Statut Membre 50
 
En fait, ADA c'est un langage de programmation. On utilise des tâches et il faut ensuite les synchroniser avec des sémaphores, moniteurs ou des RDV.

Avec des semaphores, sans priorité


   Nblect : Integer:=0;

   SR: Sem_Binaire;
   mutex: Sem_Binaire;
   sem: Sem_Binaire;

   -- tache type d'un lecteur
   task type Lecteur (P : integer);
   task body Lecteur is
   begin
      loop
         Mutex.P;
         Nblect:=Nblect+1;
         if Nblect=1 then
            SR.P;
         end if;
         mutex.V;

        --Mettre ton code pour lire un fichier ici

         mutex.P;
         Nblect:=Nblect-1;

         if Nblect=0 then
            SR.V;
         end if;
         mutex.V;

      end loop;
   end;

   -- tache type d'un redacteur
   task type Redacteur (P : integer);
   task body Redacteur is

   begin
      loop

         sem.P;
         SR.P;

    --mettre ton code pour ecire dans le fichier ici

         SR.V;
         sem.V;

      end loop;
   end;

   Lect1 : Lecteur (p => 1);
   Red1 : Redacteur (p => 1);
   Lect2 : Lecteur (p => 2);
   Lect3 : Lecteur (p => 3);
   Red2 : Redacteur (p => 2);




Ici, il y a 3 lecteurs et 2 rédacteurs mais on peut en mettre plus. Les lecteurs peuvent lire le fichier en même temps, pas de lecture et d'écriture simultanée et pas d'écriture simultanée.
Sans priorité c'est parce que lorsque un lecteur demande à écrire puis un rédacteur demande à écrire, le lecteur lira avant que le rédacteur écrive. Ils passent dans l'ordre de leur demande.

J'ai d'autres exemples avec priorité lecteur et priorité rédacteur. Par exemple, priorité lecteur permet de faire passer tous les lecteurs qui veulent lire le fichier avant que les redacteurs puissent écrire, etc ....

Dis-moi d'abord si c'est ce que tu cherches. Si oui, je te passerai le reste.

@+
0
thenice
 
merci AnaGraM
0
steveprog
 
Salut, moi aussi j'apprend pour l'instant les semaphores en C.
j'apprécie les indications que vous avez suggérez. si oui, j'aimerai bien avoir le reste des exemples sur les sémaphores.
Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
walid
 
donné le programe de sémaphore entre deux processeur
0