応用情報技術者試験 2012年度 = 平成24年度・春期 午前 問22

 プロセスを、実行状態、実行可能状態、待ち状態、休止状態の四つの状態で管理するプリエンプティブなマルチタスクのOS上で、A、B、Cの三つのプロセスが動作している。各プロセスの現在の状態は、Aが待ち状態、Bが実行状態、Cが実行可能状態である。プロセスAの待ちを解消する事象が発生すると、それぞれのプロセスの状態はどのようになるか。ここで、プロセスAの優先度が最も高く、Cが最も低いものとし、CPUは1個とする。

A B C
実行可能状態 実行状態 待ち状態
実行可能状態 待ち状態 実行可能状態
実行状態 実行可能状態 休止状態
実行状態 実行可能状態 実行可能状態

解答



解説

 タスク管理の主目的は、複数のプログラムに対してCPUを割り当てるマルチプログラミングを行うことによって、CPUを効率よく利用することです。

 プロセスの状態および状態遷移は、以下のようになります。

実行(running)
 CPUを確保し、プログラムを実行している状態。

実行可能(ready)
 CPUが割り当てられればすぐプログラムを実行できる状態。

待機(wait)
 要求しているリソース、たとえば入出力機器が、空くのを待っているとか、メッセージが到達するのを待っているとか、何らかの待ち状態にあり、CPUを必要としていない状態。

プロセスA
 最も優先度の高いプロセスAの待ちが解消されると、プロセスAは『待機→④→実行可能→②→実行』と遷移して、実行状態となります。
プロセスB
本問の場合、CPUは1個であり、実行状態となるプロセスは1個に限られます。そのため、プロセスBは『実行→①→実行可能』と遷移して、実行可能状態となります。
プロセスC
プロセスCは実行可能状態を維持します(実行可能状態にあるがプロセス1個に限られることはないため、遷移する必要がありません)。


BohYoh.comトップページへ