エンベデッドシステムスペシャリスト 2015年 午前2 問07
問題文
優先度に基づくスケジューリングを行うリアルタイムOSを用いたシステムで、タスクの状態遷移を計測したところ、図の結果を得た。タスクが待ち、実行可能、実行の三つの状態をもつとき、(A)、(B)、(C)に当てはまるタスクの状態の組合せとして、適切なものはどれか。


選択肢
ア:
イ:
ウ:
エ:(正解)
🔒 解説は解答すると表示されます
優先度スケジューリングの状態遷移【午前2解説】
正解の理由
正しい組合せは、エの「(A) 待ち、(B) 待ち、(C) 実行」です。
優先度が高いタスク1は、最初の時間区間で実行されています。その後、タスク1は何らかのイベントや入力を待つ状態に移ったため、(A)は「待ち」です。
タスク1が実行を終えて待ち状態になると、実行可能なタスクの中で優先度が最も高いタスク2が実行されます。タスク2は次の区切りで実行を終え、その後は待ち状態に移るため、(B)も「待ち」です。
続いて、実行可能だったタスク3が実行を開始します。したがって、(C)は「実行」です。
解法ステップ
-
タスク1の最初の区間を確認します。
タスク1は優先度が高く、最初の区間で実行されています。 -
タスク2が実行を開始するタイミングを見ます。
最初の区切り以降、タスク2が実行されています。優先度が高いタスク1が実行可能なままなら、タスク2より優先して実行されるはずです。したがって、タスク1は実行可能ではなく、待ち状態に移ったと分かります。 -
タスク3が実行を開始するタイミングを見ます。
2つ目の区切り以降、タスク3が実行されています。優先度が中のタスク2が実行可能なままなら、タスク3より先に実行されるはずです。したがって、タスク2も待ち状態に移っています。 -
残る状態を対応付けます。
タスク1とタスク2が待ち状態になり、タスク3が実行状態になります。これはエの組合せです。
選択肢別の誤答解説
-
ア:実行可能、実行、待ち
タスク1が実行可能なままなのに、優先度が低いタスク2が実行されていることになります。優先度に基づくスケジューリングと矛盾します。 -
イ:実行可能、待ち、実行
タスク1が実行可能なままなのに、タスク3が実行されていることになります。優先度の高いタスク1が先に実行されるはずなので、誤りです。 -
ウ:待ち、実行可能、実行
タスク2が実行可能なままなのに、優先度の低いタスク3が実行されていることになります。タスク2が待ち状態に移ったと考える必要があります。 -
エ:待ち、待ち、実行
タスク1、タスク2の順に待ち状態へ移り、その後にタスク3が実行されます。図の実行順序と優先度の関係に合致します。
よくある誤解
-
実行が終わったタスクは、必ず実行可能状態になると思い込むこと
入力やイベントの発生を待つ必要があるタスクは、実行後に「待ち」状態へ移ります。 -
実行可能状態と待ち状態を混同すること
実行可能状態は「CPUが割り当てられれば実行できる状態」です。待ち状態は「イベントなどが発生するまで実行できない状態」です。 -
優先度が低いタスクは実行されないと思い込むこと
より高い優先度のタスクが待ち状態になるなど、実行可能なタスクがなくなれば、優先度の低いタスクも実行されます。
補足コラム
タスクの基本的な状態は、次のように整理できます。
- 実行:CPUを使用して処理している状態
- 実行可能:処理を実行できるが、CPUの割当てを待っている状態
- 待ち:入出力やイベントなど、特定の条件が満たされるのを待っている状態
優先度に基づくスケジューリングでは、通常、実行可能状態のタスクの中から優先度が最も高いものが実行されます。そのため、図で低優先度のタスクが実行されている場合、それより高優先度のタスクは待ち状態だと推測できます。
FAQ
Q. タスク1が実行から待ちに移った理由は何ですか?
A. 図に待ち状態へ移る具体的な原因は示されていません。入出力の完了やイベントの発生などを待つために、実行を中断したと考えます。
A. 図に待ち状態へ移る具体的な原因は示されていません。入出力の完了やイベントの発生などを待つために、実行を中断したと考えます。
Q. タスク3の実行可能状態が続いていたのに、なぜすぐ実行されなかったのですか?
A. タスク1やタスク2が実行可能な間は、タスク3より優先度が高いためです。高優先度のタスクが待ち状態になった後に、タスク3が実行されます。
A. タスク1やタスク2が実行可能な間は、タスク3より優先度が高いためです。高優先度のタスクが待ち状態になった後に、タスク3が実行されます。
Q. 待ち状態のタスクは、待っている条件が満たされるとどうなりますか?
A. 通常は実行可能状態に移ります。その後、優先度やスケジューリング規則に従ってCPUが割り当てられます。
A. 通常は実行可能状態に移ります。その後、優先度やスケジューリング規則に従ってCPUが割り当てられます。
関連キーワード: リアルタイムOS、タスク状態、優先度スケジューリング、実行可能状態、待ち状態

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

