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 :

[IPC & ITC] Semaphore Vs Mutex


Sujet :

C++

  1. #1
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut [IPC & ITC] Semaphore Vs Mutex
    Hello

    je me demandais dans le cadre d'une ITC (inter thread communication) les avantages a utiliser un semaphore plustot qu un mutex ou vive et versa.

    Evideamment je parle d'avantage en temps d'execution car les fonctionalité des deux mechanismes me sont connus.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Bon, en admettant qu'on parle bien d'un système Linux:
    - les sémaphores agissent au niveau du système, n'importe quel processus peut s'en servir si il a les droits sur le fichier (à part pour les sémaphores non nommés)
    - les mutex agissent pour un seul processus

    Pour ce qui est des performances, je m'en suis jamais soucié. Mais d'un autre coté si on considère qu'un mutex c'est comme un sémaphore mais avec moins de fonctionnalités ça peut difficilement être plus lent à moins d'avoir été codé avec les pieds.
    Après, les vrais gros avantages des mutex c'est avant tout la portabilité (n'espère pas trouver des IPC style linux sous windows) et la simplicité.

  3. #3
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    Citation Envoyé par zais_ethael
    Mais d'un autre coté si on considère qu'un mutex c'est comme un sémaphore mais avec moins de fonctionnalités ça peut difficilement être plus lent à moins d'avoir été codé avec les pieds.
    Pas d'accord, je pense que les semaphores, bien qu utiliser dans le cadre d'un processus, pourrait induire un switching context...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    A verifier,

    Les thread partageant le meme espace memoire, une communication est bien plus simple qu entre process. donc le mutex semble plus indique.

    Il me semble par ailleurs que les mutex sont lies a une instruction assembleur "compare-exchange". Le mecanisme parait encore donc plus simple.

    Quand au switching de contexte, que ce soit entre thread ou process il devra avoir lieu. En revanche le fait de rester dans le meme thread pourrait eventuellement faire gagner un peu sur le cache memoire.

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Moi je dirais plutôt que les sémaphores sont plus rapides...
    Tout simplement parce que c'est de plus haut niveau.

    Il me semble par ailleurs que les mutex sont lies a une instruction assembleur "compare-exchange".
    N'importe quoi. Ce serait plutôt "test and set".

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Par défaut
    Citation Envoyé par loufoque
    N'importe quoi. Ce serait plutôt "test and set".

    je veux bien croire que c est n importe quoi (comme je le dis dans mon preambule " averifier") , en revanche je vois pas bien la difference, entre

    -compare - exchange

    -test and set

  7. #7
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Citation Envoyé par loufoque
    Moi je dirais plutôt que les sémaphores sont plus rapides...
    Tout simplement parce que c'est de plus haut niveau.
    Pourquoi?
    Si on parle de sémaphores et mutex POSIX, il me semble que c'est de même niveau non?
    D'ailleurs tu ne voulais pas dire le contraire (car ils sont de plus bas niveau) ?

Discussions similaires

  1. semaphore et mutex
    Par kimcharlene dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 16/09/2009, 13h55
  2. semaphore ou mutex
    Par ikuzar dans le forum Débuter
    Réponses: 8
    Dernier message: 16/08/2009, 22h46
  3. [D7][IPC]Section critique ou Mutex ?
    Par jbat dans le forum Delphi
    Réponses: 5
    Dernier message: 28/06/2007, 21h49
  4. Semaphore et Mutex et performance
    Par Lsong dans le forum SDL
    Réponses: 29
    Dernier message: 10/04/2007, 13h12
  5. kesako: hook, semaphore, mutex
    Par gronaze dans le forum Linux
    Réponses: 1
    Dernier message: 15/02/2007, 17h17

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