November 2023
Intermediate to advanced
236 pages
3h 24m
Japanese
正しい並行コードを書くには「2章 アトミック操作」と「3章 メモリオーダリング」で学んだ理論だけで十分ではあるのだが、プロセッサレベルで実際に何が起こっているのかを大まかに理解しておくことも大いに役に立つはずだ。本章では、アトミック操作がコンパイルされるターゲットとなる、機械語命令を説明する。プロセッサによる相違や、なぜcompare_exchangeにはweak版があるのか、個々の命令という最も低いレベルでメモリオーダリングはどのような意味を持つのか、これらすべてにキャッシュがどう関連するのか、などを解説する。
本書の目的は、すべてのプロセッサアーキテクチャに対して関連する詳細をすべて理解することではない。そうするには、まだ書かれていない本や一般には発売されていないような本を含めて、本棚いっぱいの本が必要になるだろう。本章では、アトミックが関連するコードを実装し最適化する際によい判断ができるように、プロセッサレベルでアトミックがどのように機能するかを大まかに理解することを目的とする。もちろん、抽象的な理論を離れて、舞台裏で何が起こっているのかを知りたい、という単純に好奇心を満足させることも目的だ。
議論を可能な限り具体的にするために、2つのプロセッサアーキテクチャに焦点を当てる。
Read now
Unlock full access