Discussion:Programmation concurrente

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

Verrouillage et synchronisation[modifier le code]

Bonjour, j'aurais aimé approfondir avec vous la notion de verrou suite à l'annulation de ma modification sur cet article.

Il me semble que l'utilisation de ce terme pose plus de problème qu'il ne résout, notamment car il est souvent utilisé dans la littérature comme équivalent de mutex ou alors comme terme plus général situé au dessus de mutex, sémaphore et moniteur.

Pourriez vous préciser la définition de verrou de manière à le distinguer clairement de mutex, moniteur et sémaphore ? En effet, vous indiquez dans le diff que "moniteurs et sémaphores ne sont pas des verrous", cela signifie t'il que les verrous sont des mutex ? Si c'est le cas, n'oublions pas que les sémaphores ne sont que des mutex généralisés (non-binaires) et que Hoare a démontré l'equivalence sémantique entre moniteurs et sémaphores. En suivant ce raisonnement, il semble raisonnable de considérer que les sémaphores et les moniteurs sont eux aussi des verrous !

Il existe effectivement des technos (Java pour ne citer qu'elle) qui possèdent des entités de synchronisation Lock (verrous) distinctes du reste, mais il ne faut pas mélanger le niveau concept (sujet de cet article) et le niveau techno qui se rend souvent coupable de nommages peut judicieux.

Du reste, et comme dans ma modif, il me semble que l'utilisation du terme verrou peut être avantageusement remplacé par "verrouillage" dans la mesure où mutex, semaphores et moniteurs implémentent tous à leur manière une forme ou une autre de verouillage. Je precise qu'il n'existe d'ailleurs pas de page wikipedia sur la notion de Verrou en informatique.

Pour finir, je suis tout à fait enclin à réviser ma position si l'on me présente des définitions claires et distinctes des 4 concepts, notamment entre verrou et mutex.

Merci d'éclairer ma lanterne. Chatelp

Bonjour, tout d'abord je ne prétends pas avoir la science infuse et j'admets que ma position puisse être discutable (notamment le fait que j'aie révoqué au lieu de reformuler). Ce n'est pas parce que deux choses sont équivalentes qu'elles sont identiques. Sémaphores, messages et moniteurs sont équivalents pour la synchronisation des processus, mais ce sont des choses différentes (comme le lambda-calcul et les machines de Turing sont des modèles équivalents, mais non identiques). Je tiens à préciser que je sèche, de tête, sur les moniteurs, alors je m'en tiendrai aux sémaphores et aux mutex. Je suis d'accord pour dire que le mutex est un verrou, je suis d'accord pour dire que le sémaphore est une version (très) améliorée du mutex, mais mon problème c'est que dire que le sémaphore est un verrou, je trouve ça beaucoup trop réducteur. Je pense que c'est le terme "verrou", mal défini en effet, qui pose problème, et que si on le remplace par "système de synchronisation" ou un truc dans le genre, ça me rendrait plus heureux... De plus ça permettrait de préciser que ces systèmes ne servent pas qu'à gérer le partage d'une ressource. On peut tomber d'accord sur un truc dans le genre ? - Eusebius [causons] 21 août 2007 à 11:55 (CEST)[répondre]
Je parle effectivement d'équivalence et non d'identité. C'est bien le terme "verrou" qui pose problème et je suis tout à fait d'accord pour qu'on le supprime et pour que l'on parle uniquement de "système de synchronisation" dans le cadre des mutex, semaphores et moniteurs. "primitive de synchronisation" est peut être même encore plus adapté. D'ailleurs ma précédente modification consistait à ne plus mentionner le verrou. Par contre, je pense que le fait de parler de "verouillage" dans le cadre des mutex, sémaphores et moniteurs est difficilement discutable: ils implémentent tous une forme plus ou moins évoluée de verrouillage qui sert à mettre en place la synchronisation (sur une ressource ou plus généralement une section critique).Chatelp
OK, bah modifie comme tu penses que c'est mieux. Je déplace la conversation dans la page de discussion de l'article. - Eusebius [causons] 21 août 2007 à 13:25 (CEST)[répondre]