Multicœur et synchronisation
Quel est le rôle d’une instruction de barrière mémoire (fence) ?
- AGarantir que les opérations mémoire antérieures à la barrière sont vues des autres cœurs avant celles qui la suivent
- BCloisonner physiquement la mémoire et en interdire l’accès
- CArrêter l’exécution du programme jusqu’à ce que tous les threads soient arrivés
Afficher la réponse et l'explication
Réponse : A. Garantir que les opérations mémoire antérieures à la barrière sont vues des autres cœurs avant celles qui la suivent
Le CPU pouvant réordonner les opérations mémoire, échanger des données avec d’autres cœurs dans un ordre défini exige une instruction qui empêche ce réordonnancement. La barrière mémoire fait terminer (rendre visibles aux autres cœurs) toutes les lectures et écritures précédentes avant d’effectuer les suivantes. La prise et la libération d’un verrou incluent aussi un effet de barrière, ce qui assure la transmission correcte des variables protégées par le verrou.
Continuer : 9 autres questions sur Multicœur et synchronisation