スピンロック
Spinlock
すぴんろっく
ロックの取得をビジーウェイト(ループ)で待つ同期機構。ロック保持時間が非常に短い場合に有効で、コンテキストスイッチのオーバーヘッドを回避できる。マルチコアプロセッサのコア間排他制御やOS内部の短時間の排他処理に使用される。
ソフトウェア設計 > タスク間通信と同期・排他制御
関連キーワードの用語
ESセマフォ
共有資源へのアクセスを制御するための同期機構。カウンティングセマフォ(カウンタで管理)とバイナリセマフォ(0/1で管理)がある。P操作(取得/Wait)とV操作(解放/Signal)で資源の排他制御を行う。
ESミューテックス
相互排他(Mutual Exclusion)のための同期機構。バイナリセマフォと似ているが、所有権の概念を持ち、ロックしたタスクのみがアンロックできる。優先度逆転問題への対策として優先度継承プロトコルをサポートするものが多い。
ES優先度逆転
低優先度タスクが共有資源をロック中に、高優先度タスクがその資源を待つことで、実質的に低優先度タスクが高優先度タスクより先に実行される現象。中優先度タスクによるプリエンプションにより待ち時間が無限に延びる可能性がある(無限優先度逆転)。
ES優先度継承プロトコル
優先度逆転問題の対策手法。低優先度タスクが共有資源をロック中に高優先度タスクがブロックされた場合、低優先度タスクの優先度を高優先度タスクと同じレベルに一時的に引き上げる。これにより中優先度タスクによるプリエンプションを防止する。
ESイベントフラグ
ビットパターンによって複数のイベントの発生を管理するタスク間同期機構。各ビットが異なるイベントに対応し、AND条件(全イベント発生待ち)やOR条件(いずれかのイベント発生待ち)で待ち合わせが可能。RTOSの基本的な同期機能の一つ。
ESデッドロック
複数のタスクが互いに相手の保持する資源の解放を待ち合い、どのタスクも処理を進められなくなる状態。相互排他、保持と待ち、非プリエンプション、循環待ちの4条件が全て揃うと発生する。資源の獲得順序の統一などで予防する。