平成31年度 春期 午前Ⅱ 問7
オペレーティングシステム
優先度逆転の原因となるもの
RTOSを用いたシステムにおいて,優先度逆転の原因となるものはどれか。
- ア優先度の高いタスクAが優先度の低いタスクBの実行に必要なリソースを占有しているが,タスクBはタスクAに必要なリソースを占有していない。
- イ優先度の低いタスクBが優先度の高いタスクAの実行に必要なリソースを占有しているが,タスクAはタスクBに必要なリソースを占有していない。
- ウ優先度の低いタスクBと優先度の高いタスクAが,互いに他タスクが必要なリソースを占有し合いデッドロックとなっている。
- エ優先度の低いタスクBのクリティカルセクション実行中は,他の処理に対して割込み禁止の排他制御を行う。
答えと解説を見る
✓ これが正解イ優先度の低いタスクBが優先度の高いタスクAの実行に必要なリソースを占有しているが,タスクAはタスクBに必要なリソースを占有していない。
解説
低い優先度のタスクが、高いタスクに必要なリソースを握ると起こります。
優先度逆転は、優先度の高いタスクが、優先度の低いタスクのせいで待たされ続ける現象です。原因は、優先度の低いタスクBが、優先度の高いタスクAの実行に必要なリソースを先に占有していることです。Aはリソースが空くまで待つしかありませんが、そこへ中くらいの優先度のタスクが動き出すとBは後回しにされ、結果としてAがその中くらいのタスクより遅れてしまいます。AはBの必要なリソースを持っていないので、互いに待ち合うデッドロックとは別です。誰が誰の必要なリソースを握っているか、その向きで見分けます。
ほかの選択肢はなぜ違うのか
- ア優先度の高いタスクAが優先度の低いタスク…:優先度の高いタスクAがリソースを握り、低いタスクBがそれを待つのは、優先度どおりに処理が進んでいる状態です。高い方が低い方に待たされるという逆転とは、待つ側と待たせる側が反対です。
- ウ優先度の低いタスクBと優先度の高いタスク…:互いに相手が必要とするリソースを占有して両方とも止まってしまうのはデッドロックです。待ちの関係が循環している点が特徴で、片方だけが待たされ続ける優先度逆転とは別の現象です。
- エ優先度の低いタスクBのクリティカルセクシ…:クリティカルセクションの実行中に割込みを禁止するのは、排他制御を実現する手段の一つです。リソースを握った低いタスクが中くらいのタスクに追い越され、高いタスクを待たせるという構図を説明したものではありません。
この問題の用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。先の処理が終わるまで、後の処理を待たせて防ぎます。
出典:平成31年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問6:デッドロックに関する問題(排他制御)
- 令和5年度 秋期 午前Ⅱ 問8:スタベーションに関する記述(排他制御)
- 平成31年度 春期 午前Ⅱ 問8:セマフォに関する問題(排他制御)
- 平成30年度 春期 午前Ⅱ 問10:優先度逆転に関する問題(排他制御)
- 平成30年度 春期 午前Ⅱ 問8:セマフォに関する記述(排他制御)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)