Multicœur et synchronisation

Quelle description d’une instruction atomique (instruction indivisible) est correcte ?

  1. AInstruction qui effectue la lecture et l’écriture en mémoire comme une seule opération que les autres cœurs ne peuvent pas interrompre
  2. BInstruction de calcul physique servant à compter les atomes
  3. CInstruction la plus rapide, qui s’exécute toujours en 1 cycle d’horloge
Afficher la réponse et l'explication

Réponse : A. Instruction qui effectue la lecture et l’écriture en mémoire comme une seule opération que les autres cœurs ne peuvent pas interrompre

Une instruction atomique effectue la séquence lecture, calcul, écriture sans qu’une lecture ou écriture d’un autre cœur puisse s’intercaler. Les autres cœurs ne voient que l’état d’avant ou d’après l’opération. Parmi elles figurent CAS (compare-and-swap), fetch-and-add, ainsi que LR/SC et les instructions AMO de RISC-V ; elles servent de base à la construction des verrous et des structures de données sans verrou.

S'entraîner sur ce thème Retour au thème

Autres questions sur Multicœur et synchronisation

  1. Quel est le fonctionnement de l’instruction atomique CAS (compare-and-swap) ?
  2. Le code ci-dessus double la variable partagée counter au moyen de CAS(&p, valeur attendue, nouvelle valeur). Dans quel cas le CAS échoue-t-il et la boucle recommence-t-elle ?
  3. Avec une paire d’instructions comme LR/SC (load-reserved/store-conditional) de RISC-V, dans quel cas le SC (store-conditional) échoue-t-il ?
  4. Quelle description du problème ABA, qui affecte les structures de données sans verrou utilisant CAS, est correcte ?
  5. Quel est le fonctionnement d’une instruction fetch-and-add, comme amoadd.w de RISC-V ou lock xadd de x86 ?

Comparatifs sur ce thème