第1種情報処理技術者試験 |
1999年度 = 平成11年度 |
午前 |
問98 |
タスクが実行状態(RUN)、実行可能状態(READY)、待ち状態(WAIT)の三つの状態で管理されるリアルタイムOSにおいて、タスクA、B、Cがプリエンプティブなスケジューリングによって、図に示すとおりに状態遷移した。各タスクの優先順位の関係のうち、正しいものはどれか。ここで、優先順位の関係は“高い>低い”で表す。
タスクA
| RUN
| WAIT
| READY
| RUN
| READY
|
タスクB
| WAIT
| RUN
| WAIT
| RUN
| WAIT
|
タスクC
| WAIT
| READY
| RUN
| WAIT
| RUN
|
ア A>B>C
| イ B>A>C
| ウ B>C>A
| エ C>B>A
|
ウ
タスク管理の主目的は、複数のプログラムに対してCPUを割り当てるマルチプログラミングを行うことによって、CPUを効率よく利用することです。
プロセスの状態および状態遷移は、以下のようになります。
■実行(running)
CPUを確保し、プログラムを実行している状態。
■実行可能(ready)
CPUが割り当てられればすぐプログラムを実行できる状態。
■待機(wait)
要求しているリソース、たとえば入出力機器が、空くのを待っているとか、メッセージが到達するのを待っているとか、何らかの待ち状態にあり、CPUを必要としていない状態。
①実行可能状態から実行状態へ
CPUスケジューラ(CPU scheduler)すなわちディスパッチャ(dispatcher)によって、CPUを割り当てられたとき
②実行状態から実行可能状態へ
より優先度の高いジョブに割り込まれたり、自分に割り当てられた時間すなわちクオンタム(quantum)が終了したとき
③実行状態から待機状態へ
プロセスが入出力動作を起動し、その完了を待たなくなければいけなくなったとき、何らかのリソースが必要となり、それが空くのを待たなければならなくなったとき
※他の遷移と異なり、プロセス自らの操作によって生じる
④待機状態から実行可能状態へ
入出力動作が完了したり、他のプロセスの命令により待ち状態が解除されたとき
以上から、最も優先順位の高いタスクは待機状態(READY)にならないことが分かります。本問の場合、タスクBがこれに相当します。
また、表の最後の部分では、タスクAが待機状態(READY)で、タスクCが実行状態(RUN)となっています。このことから、タスクCの方が優先順位が高いことが分かります。