IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Sémaphores pour lire une information simultanément


Sujet :

C

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 14
    Points
    14
    Par défaut Sémaphores pour lire une information simultanément
    Bonsoir, je rencontre quelques difficultés avec les sémaphores.

    J'ai ce cas : nous avons N émetteurs, M récepteurs et une case pour déposer de l'information qui sera lue par les récepteurs simultanément.

    J'ai le programme suivant mais qui ne fait pas de la lecture simultanée (d'après mes tests sur feuille) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    /* fonction EMETTEUR */
    void ecrivain()
    {
    P(SEMPROD);
    printf("Mwahahahahahahhah\n");
    sp->a ++;
    V(SEMCONS);
    }
    /************************************************************/
    /* fonction RECEPTEUR */
    void lecteur ()
    {
    P(SEMCOUNT);
    sp->access_count ++;
    if(sp->access_count == 1) P(SEMCONS);
    V(SEMCOUNT);
    printf("%d valeur a: %d \n",sp-> access_count, sp->a);
    P(SEMCOUNT);
    if(sp->access_count == NR){
    sp-> access_count = 0;
    V(SEMPROD);
    }
    V(SEMCOUNT);
    }
    Créer un tableau de sémaphores qui bloquent les récepteurs s'il n'y a rien à recevoir permet-il de faire de la lecture simultanée ? Si oui, comment mettre mon tableau dans la fonction sémaphore ? Un tant que toutes les cases sont différentes de 0 suffit ? Merci de m'éclairer

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Qu'est-ce que tu appelles "lecture simultanée"? Car le principe d'un modèle producteur(s)/consommateur(s) c'est que chaque consommateur consomme une ressource et est le seul à la lire...

    Si tu veux que tous les consommateurs puissent lire la même instance, il te faudra un consommateur unique qui lit la donnée et l'envoie à tous les autres... ou un autre modèle que producteur(s)/consommateur(s).

    PS: Ce modèle n'a que peu d'intérêt si la file de données ne peut contenir qu'un seul élément à la fois. Surtout que l'un des sémaphores est censé compter les "places libres" dans la file...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 9
    Points : 14
    Points
    14
    Par défaut
    Je parle plus du cas lecteur, écrivain. Tous les lecteurs peuvent lire ce que l'écrivain a écrit dans une case au même moment.

Discussions similaires

  1. sizeof dans une fonction pour lire une chaine
    Par Haze. dans le forum Débuter
    Réponses: 11
    Dernier message: 06/11/2007, 12h07
  2. Problème pour lire une datatable
    Par kikitx dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/08/2007, 20h19
  3. Gros problème pour lire une vidéo
    Par zoidy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 06/06/2006, 12h35
  4. [XHTML] Balise OBJECT pour lire une vidéo...
    Par zoidy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/06/2006, 10h21
  5. Pb pour lire une video
    Par polevault dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 09/01/2006, 00h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo