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 :

Problème lecteur/rédacteur sur de la mémoire partagée [Débutant(e)]


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Par défaut Problème lecteur/rédacteur sur de la mémoire partagée
    Bonjours,
    Je dois faire un programme sur le pb lecteur/redacteur en favorisant les redacteurs.Je dois rentrer le nombre de redacteur et lecteur en ligne de commande.Le pgm est le suivant:
    Les redacteurs écrivent 100 flottant aleatoires ds le segment partagé. Les lecteurs,enfin chaque lecteur en execution ,apres avoir tiré au sort un indice entre 0 et 99, cherche le chiffre correspondant à l indice ds le segment partagé puis l affiche.
    Apres, tt devrait se terminer lorsqu on envoie au pere le signal SIGUSR1.

    Quelqu un pourrait m expliquer les details de programmation a faire, car je maîtrise mal les semaphores et l acces a un segment partagé.Aussi je vois pas comment faire si un lecteur en execution ne trouve pas l entier correspondant a son indice.
    Merci de votre aide.

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Voici un très bon cours sur les Threads, cela devrait te mettre un peu sur la voie, le reste devrait suivre normalement

    http://emmanuel-delahaye.developpez.com/pthreads.htm
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Par défaut
    Merci pour ton lien ,je vais le regarder ,ca va bien m aider je pense.Sinon a ce pb ,y a quelques trucs qui me bloquent :
    Est ce qu un lecteur peut rentrer ds le segment avt que tt les nombres aient été créés?Car en favorisant les redacteurs, ils st en permanence prioritaire et ne laisse donc pas la place au lecteur (qui ne peuvent alors intervenir qu a la fin)?? !!

  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par Lanfeust30
    Merci pour ton lien ,je vais le regarder ,ca va bien m aider je pense.Sinon a ce pb ,y a quelques trucs qui me bloquent :
    Est ce qu un lecteur peut rentrer ds le segment avt que tt les nombres aient été créés?Car en favorisant les redacteurs, ils st en permanence prioritaire et ne laisse donc pas la place au lecteur (qui ne peuvent alors intervenir qu a la fin)?? !!
    C'est à cela que te servira un mutex... Pour bloquer les lecteurs avant la fin de l'écriture...

    Jc

  5. #5
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par Lanfeust30
    Merci pour ton lien ,je vais le regarder ,ca va bien m aider je pense.Sinon a ce pb ,y a quelques trucs qui me bloquent :
    Est ce qu un lecteur peut rentrer ds le segment avt que tt les nombres aient été créés?Car en favorisant les redacteurs, ils st en permanence prioritaire et ne laisse donc pas la place au lecteur (qui ne peuvent alors intervenir qu a la fin)?? !!
    A partir du moment ou le segment est créée tu peux y accéder, cependant si tu veux avoir de la cohérence(dans l'affichage par exemple) il faut que tu synchronises cela en bloquant le lecteur tant que l'ecrivain n'a pas fini.

    Normalement on n'a pas toujours besoin de bloquer le lecteur s'il s'agit de recuperer des données uniquement pour les afficher (surtout si c'est un affichage périodique car les données sont rafraichit réguliérement) pour du traitement sur les données là ce serait deja plus obligatoire.

    Sinon pour favoriser ton redacteur/ecrivain, normalement chaque thread a un quantum de temps qu'il lui est alloué en fonction de sa priorité donc il n'y a aucune raison que le lecteur reste toujours bloqué.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5
    Par défaut
    Es tu surs que je dois utiliser les quantum pr ce pb?
    Aussi, on m a dit que les lecteurs ne pouvait pas lire avt que les redacteurs aient fini d ecrire.C est bien ca?
    Sinon quelle est la difference entre les shmget et les thread? C est la meme chose non?
    J ai essaye pendant cette semaine, mais j ai trop d erreur.On m a juste montré un programme en exemple sur les semaphores,c est pour ca que j y connais rien

  7. #7
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par Lanfeust30
    Es tu surs que je dois utiliser les quantum pr ce pb?
    Les quantum de temps ce sont les temps alloués par le CPU à tes différents threads, basta.

    Citation Envoyé par Lanfeust30
    Aussi, on m a dit que les lecteurs ne pouvait pas lire avt que les redacteurs aient fini d ecrire.C est bien ca?
    Ca dépend. Cependant si cela ne te pose pas de probléme alors tu peux poser ton verrou dans le lecteur et dans le redacteur.

    Citation Envoyé par Lanfeust30
    Sinon quelle est la difference entre les shmget et les thread? C est la meme chose non?
    shmget est une fonction système qui permet de créer une mémoire partagée donc une ressource. Un thread est une tâche executée avec un certain parallélisme.

    Citation Envoyé par Lanfeust30
    J ai essaye pendant cette semaine, mais j ai trop d erreur.On m a juste montré un programme en exemple sur les semaphores,c est pour ca que j y connais rien
    Que veux-tu qu'on te réponde ? Pose la partie minimale qui cause probléme on essaiera de répondre comme on peux

Discussions similaires

  1. Problème lecteur réseau sur ubuntu 13.04
    Par dinier dans le forum Ubuntu
    Réponses: 1
    Dernier message: 20/05/2013, 10h05
  2. Problème sur mémoire partagée et mutex
    Par Masmeta dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/02/2009, 17h24
  3. Problème lecteur cartes mémoire
    Par Chauvel dans le forum Matériel
    Réponses: 2
    Dernier message: 14/08/2006, 18h05
  4. problème d'accés sur des fichiers partagés
    Par prefna dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 06/08/2006, 16h05

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