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++Builder Discussion :

Utilisation des Mutex


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    28
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 28
    Par d�faut
    salut ... quelqu'un pourrait m'�clairer sur ce qu'est un mutex et sur comment les utiliser ( cr�er ) ...
    Etant d�butant en programmation c++ , je suis actuellement occup� de d�velopper un programme de facturation ...
    Au d�but je n'avais aucun probl�me au niveau de mes variables .. etc ...
    mais je commence a avoir plein d'access violation lors de l'ex�cution du programme .( lors d'un clic sur un dbedit dans mon cas)

    Si qq1 pouvait m'aider ce serait trop sympa de votre part

    ps : Suis sour C++ builder 6

  2. #2
    Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    4
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 4
    Par d�faut Sujet Mutrex
    La programmation de base de donnees en C++ est tres interessante.
    Les Mutex sont tres utilisees en OS .
    le Mutex est define par deux elements :
    -Un entier non negaif au depart.
    -Une file d'attente
    -Deux procedures indivisibles.

    Alors je te conseille de faire une recherche sur les mutex ,Si je te donne
    ici les codes sources des deux procedures tu n'avancerai pas .
    Au revoir
    "Lire impeu ,puis essayer "

  3. #3
    Membre exp�riment�
    Profil pro
    Enculeur de mouches
    Inscrit en
    Septembre 2003
    Messages
    133
    D�tails du profil
    Informations personnelles :
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activit� : Enculeur de mouches

    Informations forums :
    Inscription : Septembre 2003
    Messages : 133
    Par d�faut
    Pour l'utilisation pr�cise (code et autre) je te laisse chercher...
    Voici quelque principe g�n�raux (et th�orique).

    Lorsqu'on cr�e un programme multi-thread par exemple, ou en g�n�ral, lorsqu'une ressource peut �tre utilis�e par plusieurs utilisateurs simultan�ments, il peut y avoir des probl�mes de conflits.

    Exemple : un document word est partag�, via le Net, entre plusieurs utilisateurs qui le modifient simultan�ment. Immaginons que deux utilisateurs remarque ensemble, mais sans communiquer entre eux, qu'un mot du texte est incorrect, et se mettent � le corriger en m�me temps... Ce la peut cr�er un beau bordel !!!

    Toute ressource partag�e poss�de donc un indicateur, disons un drapeau (bool�en) un peu comme -c'est une image- celui qui existe sur les boites aux lettres de nos -hum...- amis les 'Ricains... Tant que les diff�rents acteurs du syst�me acc�de la ressource en lecture, il n'y a de soucis.
    Par contre, d�s qu'un des acteurs cherche � modifier la ressource, il doit indiquer qu'elle est temporairement inacc�ssible (m�me en lecture, car en cours de modification l'�tat est inconstistant). Il l�ve alors le drapeau, et tout autre acteur cherchant � acc�der la ressource devra attendre qu'il soit revenu en position basse pour faire ce qu'il a faire, et patiente bien sagement dans la file d'attente.

    La modification d'une ressource partag�e s'appelle section critique d'un programme. Elle est �tre la plus courte possible (effectuer tout les traitement de pr�paration avant v�rouillage) et id�alement, ne modifier qu'une seule ressource � la fois. Elle est incluse entre le v�rouillage et le d�verouillage du mutex (MUTual EXclusion - s�maphore en fran�ais)
    En clair cela s'�crit (en pseudo-code) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    MUTEX_LOCK(ressource_mutex);
      // code la section critique
    MUTEX_UNLOCK(ressource_mutex);
    Pourquoi une seule ressource � la fois ? Pour �viter les INTER-BLOCAGE.
    L'exemple suivant doit �tre assez parlant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
           ACTEUR 1                            |             ACTEUR 2
    LOCK(A)                                    |    LOCK(B)
      // section critique 1_A                  |     // section critique 2_B
                                               |
      // ici attente de B                      |    // ici attente de A
    LOCK(B)                                    |    LOCK(A)
      // section critique 1_B                  |     // section critique 2_A
    UNLOCK(B)                                  |    UNLOCK(A)
                                               |
    UNLOCK(A)                                  |    UNLOCK(B)
    On peut voir que a l'interieur de sa section critique, qui verouille le mutex de la ressource A (disons qui verouille A) l'acteur 1 � besoin de B, et reciproquement pour l'acteur 2.
    Chaque acteur passera donc son premier LOCK avec succ�s, puis buttera sur le second, attendant chacun que l'autre le d�verouille. Et par cons�quent ne peut d�verouiller la ressource initialement r�serv�. La situation, dite d'inter-blocage, n'a pas de solution, se perdurera ind�finiment...

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    28
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2002
    Messages : 28
    Par d�faut
    merci de ton aide skz81 ... je commence d�j� � y voir plus clair ...
    Vraiment trop g�nial ce forum de d�veloppeur ...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Dans quels cas est-on oblig�s d'utiliser des mutex ?
    Par kidpaddle2 dans le forum Threads & Processus
    R�ponses: 3
    Dernier message: 18/07/2010, 20h05
  2. Utilisation des mutex
    Par Athel dans le forum C
    R�ponses: 15
    Dernier message: 17/02/2010, 21h11
  3. R�ponses: 4
    Dernier message: 21/08/2009, 10h48
  4. Pratique d'utilisation des mutexes
    Par FabaCoeur dans le forum C
    R�ponses: 4
    Dernier message: 29/01/2009, 15h08
  5. Utilisation des mutex et des threads
    Par Chen norris dans le forum SDL
    R�ponses: 4
    Dernier message: 31/08/2007, 00h00

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