優先度逆転とは?
優先度逆転とは、低優先度タスクが排他制御下の共有資源を占有している間、その資源を要求した高優先度タスクが待たされる現象。さらに中優先度のタスクが低優先度タスクをプリエンプトすると、高優先度タスクの待ち時間が無制限に延びる(無制限優先度逆転)。
エンベデッドシステムスペシャリスト試験の過去問では2回出題されています(2018年度〜2019年度)。
ゆうせんどぎゃくてん
優先度逆転の意味
低優先度タスクが排他制御下の共有資源を占有している間、その資源を要求した高優先度タスクが待たされる現象。さらに中優先度のタスクが低優先度タスクをプリエンプトすると、高優先度タスクの待ち時間が無制限に延びる(無制限優先度逆転)。
優先度逆転の具体例
低優先度の通信タスクがミューテックスを保持したままプリエンプトされ、その資源を必要とする最高優先度の制御タスクが締切を破る。
優先度逆転は試験でどう引っ掛けられる?
原因は「排他制御による資源待ち」であって、スケジューラの不具合ではない。対策は優先度継承や優先度上限(天井)プロトコル。
優先度逆転と関連する用語
優先度逆転が出た過去問
優先度に基づくプリエンプティブなスケジューリングを行うリアルタイムOSにおいて、タスクの優先度逆転が発生する可能性があるのはどれか。
正解:排他制御
要点:優先度逆転は排他制御による資源待ちで発生する
優先度逆転は、低優先度タスクが共有資源のロック(排他制御)を保持したまま中優先度タスクにプリエンプトされ、その資源を待つ高優先度タスクが長時間ブロックされる現象である。つまり資源の排他制御がある場面でのみ起こる。対策としては優先度継承や優先度上限(プライオリティシーリング)プロトコルが使われる。
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 am2 問10(IPA)RTOSを用いたシステムにおいて、優先度逆転の原因となるものはどれか。
正解:優先度の低いタスクBが優先度の高いタスクAの実行に必要なリソースを占有しているが、タスクAはタスクBに必要なリソースを占有していない。
要点:優先度逆転は低優先度タスクの資源占有が高優先度を待たせる
優先度逆転は、高優先度タスクが必要とする資源を低優先度タスクが占有しているために、高優先度タスクが待たされる状況で起きる。さらに中間の優先度をもつタスクが低優先度タスクをプリエンプトすると、待ち時間が際限なく延びる無制限優先度逆転となる。相互に資源を奪い合うデッドロックとは別の現象である点に注意したい。
出典:令和1年度 春期 エンベデッドシステムスペシャリスト試験 am2 問7(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。