Rechercher : dans
Par :

Semaphores entre 2 processus

Dernière réponse le 26 mai 2004 à 14:08:57 brice, le 25 mai 2004 à 22:48:44 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « semaphores entre 2 processus » dans :
Télécharger Microsoft .NET Framework 2.0 (x86) VoirLe package redistribuable de Microsoft .NET Framework 2.0 installe le runtime .NET Framework et les fichiers associés requis pour l'exécution d'applications développées pour le .NET Framework 2.0. Le .NET Framework 2.0 fournit une évolutivité et...
Qualité - Management par les processus VoirNotion de processus Le modèle de processus consiste à concevoir l'objectif de l'entreprise comme étant la fourniture de produits et/ou services conformes aux attentes des clients. Ainsi, l'entreprise est modélisée comme un ensemble de processus...
Processus inactif du système VoirProcessus inactif du système Le processus inactif du système (en anglais systeme idle process) n'est pas un processus à proprement parler, il correspond aux ressources disponibles du système. Ainsi son taux d'utilisation du processeur est en en...
Processus Windows - Introduction VoirIntroduction aux processus Dans un souci de modularité Microsoft Windows est architecturé en services (processus) fonctionnant en arrière-plan. Il est possible d'afficher la liste des processus en cours dans le gestionnaire des tâches en appuyant...

1

AnaGraM, le 25 mai 2004 à 23:13:54

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é)

Répondre à AnaGraM

2

thenice, le 25 mai 2004 à 23:42:01

Je ne sais pas ce que veut dire ADA mais je veux bien voir tes sources stp.

Répondre à thenice

3

AnaGraM, le 26 mai 2004 à 13:32:39

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.

@+

Répondre à AnaGraM

4

 thenice, le 26 mai 2004 à 14:08:57

Merci AnaGraM

Répondre à thenice