Pour prendre une analogie de la vie de tous les jours, prenons le cas de la bouteille de lait dans le frigo. Tu rentres à la maison, ouvres le frigo, constate qu'il n'y a plus de lait et tu décides d'aller en acheter. Pendant ce temps ta femme rentre, vois qu'il n'y a plus de lait et va en acheter aussi. Accès concurrent au frigo.
La solution bourine est de mettre un cadenas sur le frigo. Ca marche pas trop mal pour un couple (tes deux fils concurrents) et ça éviter un tâche inutile. Maintenant imaginons une collocation de 50 personnes (oui, ça commence à faire). Si quelqu'un met un cadenas sur le frigo pour être sûr d'éviter les accès concurrents, il emmerdera probablement certains parmi les 49 autres pour un cas qui peut se produire (mais pas sûr). Si au lieu de ça on laisse chacun libre d'accéder au frigo, il se peut que de temps en temps deux personnes aillent acheter du lait. Au pire en revenant, le dernier arrivé constate qu'il y a déjà du lait et qu'il est allé faire les courses pour rien.
On risque de laisser des agents effectuer parfois un travail inutile mais on sait qu'on va vers des architectures de plus en plus parallèles avec des coeurs qu'on a du mal à occuper efficacement. Dans certains cas, certains bossent pour rien mais dans l'ensemble ils arrivent à eux tous à faire plus de boulot utile que si on avait bloqué la terre entière au cas où.
[^] # Re: Exemple de gain avec la mémoire transactionnelle ?
Posté par Croconux . En réponse à la dépêche Sortie de la version 4.7 du compilateur GCC. Évalué à 10.
Pour prendre une analogie de la vie de tous les jours, prenons le cas de la bouteille de lait dans le frigo. Tu rentres à la maison, ouvres le frigo, constate qu'il n'y a plus de lait et tu décides d'aller en acheter. Pendant ce temps ta femme rentre, vois qu'il n'y a plus de lait et va en acheter aussi. Accès concurrent au frigo.
La solution bourine est de mettre un cadenas sur le frigo. Ca marche pas trop mal pour un couple (tes deux fils concurrents) et ça éviter un tâche inutile. Maintenant imaginons une collocation de 50 personnes (oui, ça commence à faire). Si quelqu'un met un cadenas sur le frigo pour être sûr d'éviter les accès concurrents, il emmerdera probablement certains parmi les 49 autres pour un cas qui peut se produire (mais pas sûr). Si au lieu de ça on laisse chacun libre d'accéder au frigo, il se peut que de temps en temps deux personnes aillent acheter du lait. Au pire en revenant, le dernier arrivé constate qu'il y a déjà du lait et qu'il est allé faire les courses pour rien.
On risque de laisser des agents effectuer parfois un travail inutile mais on sait qu'on va vers des architectures de plus en plus parallèles avec des coeurs qu'on a du mal à occuper efficacement. Dans certains cas, certains bossent pour rien mais dans l'ensemble ils arrivent à eux tous à faire plus de boulot utile que si on avait bloqué la terre entière au cas où.