マルチコアと同期
スピンロックの説明として正しいものはどれか。
- Aロックが空くまで、スレッドを眠らせてOSに起こしてもらう方式のロック
- Bロックが空くまで、ループでロックの変数を調べ続けて待つ方式のロック
- Cディスクを回転させてデータを守る仕組み
答えと解説を見る
正解:B. ロックが空くまで、ループでロックの変数を調べ続けて待つ方式のロック
スピンロックは、アトミック命令でロックを取ろうとし、取れなければすぐにもう一度試すことを繰り返します。OSを呼んで眠ったり起きたりする手間がないので、ロックを持つ時間がごく短い場合に速く動きます。OSのカーネルの中や、割り込みハンドラとの排他などでよく使われます。一方で、待っている間もCPUを使い続けるという欠点があります。
- A. 眠って待つのはミューテックスなどです。
- B. 正しい。ぐるぐる回って(spin)待ちます。
- C. ディスクとは関係ありません。