応用情報技術者平成24年春期 午前問22

問22

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

分類

テクノロジ系 » ソフトウェア » オペレーティングシステム

正解

解説

4つのタスクの状態については次のとおりです。
実行状態(RUN)
CPUが割り当てられタスクを実行している状態
実行可能状態(READY)
実行可能待ち行列に並んで、CPUが割り当てられるのを待っている状態
待ち状態(WAIT)
入出力の完了、または他のタスクからの合図を待っている状態
休止状態(DORMANT)
タスクが起動されていない状態、もしくはタスクが終了した状態
最も優先度が高いプロセスAの待ち状態が解消されると、プロセスAは実行可能状態に遷移します。優先度はプロセスA>プロセスBなので、現在実行中のプロセスBに代わりプロセスAにCPUの使用権が与えられます(ディスパッチ)。この際、CPU使用権を奪われたプロセスBは実行可能状態に戻されます(プリエンプション)。プロセスCはもとの実行可能状態のままです。
  1. 現在の状態
    A-待ち、B-実行、C-実行可能
  2. プロセスAの待ちが解消
    A-実行可能、B-実行、C-実行可能
  3. 優先度が高いプロセスAにCPUの使用権が移る
    A-実行、B-実行可能、C-実行可能
最終的な状態は「A-実行、B-実行可能、C-実行可能」なので、正解は「エ」となります。
© 2010- 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop