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

Bibliothèques, systèmes et outils C Discussion :

Problème synchronisation thread


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Problème synchronisation thread
    Bonjour,

    Voici la première fois que je viens sur ce site et je me suis dit que ce serait un bon endroit pour y soumettre mon problème; le voici donc. J'ai un soft qui tourne à la base sur deux processeurs distincts (CPU A, CPU B) que je dois simuler. L'idée est d'utiliser deux threads pour simuler chaque processeur. La difficulté est que je dois caler des écritures/lectures entre les CPU et j'ai donc des temps d'attente sur chaque threads pour que la lecture se fasse à condition que l'autre CPU ait bien écrit.

    Le programme tourne bien, compile, s'exécute mais le souci est qu'il est bien trop lent... J'ai donc regardé le temps que mettait chaque thread pour faire ses lectures/écritures et il se trouve que le thread B met à peu près 50 fois plus de temps que le thread A pour faire la même opération à cause des temps d'attente entre les threads.

    Voici donc le souci: en tentant de débugger mon prog, je me suis rendu compte que l'ajout de printf dans mes threads résolvait le problème (des printf qui n'influence pas l'exécution, juste du débuggage). Je ne sais pas du tout la cause de cette amélioration mais il semblerait que les printf aide les threads a prendre la main au bon moment. J'aurais aimé une solution plus nette qui me permettrait de retrouver ce résultat à l'exécution. Je me demande aussi si j'arriverai à avoir un bon résultat sachant que le programme tourne sur un machine classique ou un tas d'autre processus tournent en même temps et je me demande si je peux avoir une gestion des threads indépendante de l'état courant de ma machine.

    En espérant ne pas trop avoir été brouillon dans mon explication... merci d'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Tinkh Voir le message
    Je me demande aussi si j'arriverai à avoir un bon résultat sachant que le programme tourne sur un machine classique ou un tas d'autre processus tournent en même temps et je me demande si je peux avoir une gestion des threads indépendante de l'état courant de ma machine.
    Je ne suis pas spécialiste des threads et donc ne peut t'aider sur le problème initial, mais seulement une remarque là-dessus...

    Cela me semble au contraire une excellente simulation...

    Si je suis ce que tu veux faire, tu veux simuler un programme tournant ur 2 CPU...

    Ne serait-ce pas plus représnetatif de la réalité qu'il y aie plusieurs processus tournant sur chaque CPU que de simuler que tes CPU sont dédiées à 100% à ton programme ??

    Et dans ce cas, tu peux avoir un CPU occupé par un autre processus.. Et par conséquent avoir une simulation avec l'état corant de la machine est préférable et plus réel qu'une simulaton hypothétique dans laquelle tu supposes être seul...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Désolé pour cette réponse tardive mais finallement, j'ai opté pour une solution consistant à créer une tâche master qui gère la synchro de mes deux tâches, permettant ainsi un séquencement plus maitrisé.

Discussions similaires

  1. problème Synchronisation Threads
    Par leconteconte dans le forum Général Java
    Réponses: 2
    Dernier message: 01/01/2013, 16h47
  2. Problème synchronisation Thread()
    Par Anduriel dans le forum Android
    Réponses: 2
    Dernier message: 21/05/2012, 17h15
  3. [WPF] Circular ProgressBar, problème synchronisation des threads
    Par Babas007 dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 20/12/2010, 19h44
  4. [THREAD] Problème synchronisation
    Par goddet dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 25/10/2006, 09h16
  5. Problème synchronisation threads
    Par Linio dans le forum Concurrence et multi-thread
    Réponses: 19
    Dernier message: 11/01/2006, 16h57

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