令和元年秋期試験問題 午前問18
問18解説へ
優先度に基づくプリエンプティブなスケジューリングを行うリアルタイムOSで,二つのタスクA,Bをスケジューリングする。Aの方がBより優先度が高い場合にリアルタイムOSが行う動作のうち,適切なものはどれか。
- Aの実行中にBに起動がかかると,Aを実行可能状態にしてBを実行する。
- Aの実行中にBに起動がかかると,Aを待ち状態にしてBを実行する。
- Bの実行中にAに起動がかかると,Bを実行可能状態にしてAを実行する。
- Bの実行中にAに起動がかかると,Bを待ち状態にしてAを実行する。
正解 ウ問題へ
広告
解説
プリエンプティブなタスクスケジューリングでは、CPU資源の使用をOSが管理し、タスクを動的に切り替えながら実行していきます。OSの動作は、A・Bの優先度及びA・Bの状態によって変わります。[Aの実行中にBに起動がかかる]
タスクの優先度は「A>B」なので、Bは実行可能状態となり、Aの実行が継続されます。待ち状態は、入出力待ちなどですぐにCPU処理に移れないタスクが遷移する状態なので、Bは待ち状態ではなく実行可能状態に移されます。
[Bの実行中にAに起動がかかる]
タスクの優先度は「A>B」なので、Bは実行可能状態に移され、AにCPU使用権が与えられます。
タスクの優先度は「A>B」なので、Bは実行可能状態となり、Aの実行が継続されます。待ち状態は、入出力待ちなどですぐにCPU処理に移れないタスクが遷移する状態なので、Bは待ち状態ではなく実行可能状態に移されます。
[Bの実行中にAに起動がかかる]
タスクの優先度は「A>B」なので、Bは実行可能状態に移され、AにCPU使用権が与えられます。
- Aの実行が継続されます。
- Aの実行が継続されます。
- 正しい。
- Bは実行可能状態に移されます。
広告