マルチプロセッサ・システムでの排他制御

最前線UNIXのカーネル

最前線UNIXのカーネル

P.224

単一プロセッサ・システム上では同期の必要がなかったあらゆるデータに関しても、保護しないといけないからである。

リソースがロックされているので、スリープしようとしたその時にロックが解放され、まだスリープキューに追加されていないので覚醒されず、他のスレッドがそのリソースをロックするまで永久にスリープしてしまうウェイク・アップ喪失問題やthundering herd 問題などがある。

うまく排他制御を行うためのCPU命令やそれを使って排他制御を行うためのOSの機構などが用意されている。

参考