応用情報技術者 2009年 秋期 午前2 問19
問題文
リアルタイムOSのマルチタスク管理機能において、タスクAが実行状態から実行可能状態へ遷移するのはどの場合か。
選択肢
ア:タスクAが入出力要求のシステムコールを発行した。
イ:タスクAが優先度の低いタスク B に対して、メッセージ送信を行った。
ウ:タスクAより優先度の高いタスク B が実行状態となった。(正解)
エ:タスクAより優先度の高いタスクBが待ち状態となった。
リアルタイムOSのマルチタスク管理機能におけるタスク状態遷移【午前2 解説】
要点まとめ
- 結論:タスクAが実行状態から実行可能状態へ遷移するのは、より優先度の高いタスクBが実行状態になった場合です。
- 根拠:リアルタイムOSでは優先度ベースのプリエンプティブスケジューリングが一般的で、優先度の高いタスクが実行されるため、低いタスクは実行可能状態に戻ります。
- 差がつくポイント:タスクの状態遷移(実行状態→実行可能状態)と優先度の関係を正確に理解し、システムコールやメッセージ送信の影響と区別できることが重要です。
正解の理由
ウの「タスクAより優先度の高いタスクBが実行状態となった」場合、タスクAはCPUを明け渡し、実行状態から実行可能状態へ遷移します。これはプリエンプティブスケジューリングの基本動作であり、優先度の高いタスクが実行されるため、優先度の低いタスクは実行可能状態に戻るのです。
よくある誤解
タスクが入出力要求を出したりメッセージ送信を行った場合に、必ず実行可能状態に戻ると誤解しがちですが、これらは待ち状態や実行状態のまま変わらないこともあります。
解法ステップ
- タスクの状態遷移(実行状態、実行可能状態、待ち状態)を確認する。
- プリエンプティブスケジューリングの動作を理解する。
- 優先度の高いタスクが実行状態になると、優先度の低いタスクは実行可能状態に遷移することを知る。
- 各選択肢の動作がタスク状態にどう影響するかを検討する。
- 優先度の高いタスクが実行状態になるケースを正解と判断する。
選択肢別の誤答解説
- ア: 入出力要求のシステムコールは通常、タスクを待ち状態にするため、実行可能状態への遷移とは異なります。
- イ: メッセージ送信はタスクの状態を変えない場合が多く、優先度の低いタスクが実行状態から実行可能状態に遷移する理由にはなりません。
- ウ: 優先度の高いタスクBが実行状態になることで、タスクAは実行可能状態に遷移します。
- エ: 優先度の高いタスクBが待ち状態になる場合、タスクAは実行状態のまま継続する可能性が高いです。
補足コラム
リアルタイムOSのマルチタスク管理では、プリエンプティブスケジューリングが多用されます。これはCPUを優先度の高いタスクに即座に割り当てる方式で、タスクの応答性を高めるために重要です。タスク状態は「実行状態」「実行可能状態」「待ち状態」に分類され、状態遷移の理解はリアルタイムシステム設計の基礎となります。
FAQ
Q: 実行可能状態と待ち状態の違いは何ですか?
A: 実行可能状態はCPU割り当てを待っている状態で、待ち状態は入出力などのイベント待ちでCPUを使わない状態です。
A: 実行可能状態はCPU割り当てを待っている状態で、待ち状態は入出力などのイベント待ちでCPUを使わない状態です。
Q: メッセージ送信はなぜタスク状態を変えないことが多いのですか?
A: メッセージ送信は非同期通信が多く、送信側タスクは通常実行状態のまま継続できるためです。
A: メッセージ送信は非同期通信が多く、送信側タスクは通常実行状態のまま継続できるためです。
関連キーワード: リアルタイムOS, マルチタスク、プリエンプティブスケジューリング、タスク状態遷移、優先度スケジューリング

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

