マルチコアと同期
アトミック命令(不可分命令)の説明として正しいものはどれか。
- Aメモリの読み出しと書き込みを、途中でほかのコアに割り込まれない1つの操作として行う命令
- B原子の数を数えるための、物理の計算用の命令
- C必ず1クロックで終わる、最も速い命令
答えと解説を見る
正解:A. メモリの読み出しと書き込みを、途中でほかのコアに割り込まれない1つの操作として行う命令
アトミック命令は、読んで、計算して、書き込むという一連の処理を、ほかのコアの読み書きが間に入らない形で行います。ほかのコアからは、操作の前か後の状態しか見えません。CAS(コンペア・アンド・スワップ)やフェッチ・アンド・アッド、RISC-VのLR/SCやAMO命令などがあり、ロックやロックフリーのデータ構造を作る土台になります。
- A. 正しい。ほかのコアからは一瞬で起きたように見えます。
- B. アトミックは「分けられない」という意味です。
- C. 速さではなく、分けられないことが特徴です。