平成24年度 春期 応用情報技術者試験 午前 問22
テクノロジ/ソフトウェアプロセスを,実行状態,実行可能状態,待ち状態,休止状態の四つの状態で管理するプリエンプティブなマルチタスクのOS上で,A,B,Cの三つのプロセスが動作している。各プロセスの現在の状態は,Aが待ち状態,Bが実行状態,Cが実行可能状態である。プロセスAの待ちを解消する事象が発生すると,それぞれのプロセスの状態はどのようになるか。ここで,プロセスAの優先度が最も高く,Cが最も低いものとし,CPUは1個とする。 ア:A=実行可能状態,B=実行状態,C=待ち状態 イ:A=実行可能状態,B=待ち状態,C=実行可能状態 ウ:A=実行状態,B=実行可能状態,C=休止状態 エ:A=実行状態,B=実行可能状態,C=実行可能状態 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成24年度 春期 応用情報技術者試験 午前 問22
- アA=実行可能状態,B=実行状態,C=待ち状態
- イA=実行可能状態,B=待ち状態,C=実行可能状態
- ウA=実行状態,B=実行可能状態,C=休止状態
- エA=実行状態,B=実行可能状態,C=実行可能状態
正解:エ
解説
プロセスAは最も優先度が高いため,待ちが解消されると実行可能状態を経ずに直ちにCPUを獲得して実行状態になります(プリエンプティブなOSでは,より優先度の高いプロセスが実行可能になると,現在実行中の低優先度プロセスからCPUを奪います)。これによりAが実行状態になり,元々実行状態だったBはCPUを奪われて実行可能状態に移ります。実行可能状態だったCは,休止状態になるわけではなく,そのまま実行可能状態を維持します。
選択肢ごとの解説
- ア誤り。Aは最優先のため直ちに実行状態になるはずで,実行可能状態にとどまることはありません。
- イ誤り。Aが実行可能状態のままで待ちを解消しても実行状態にならない点,およびBが待ち状態になる点が誤りです。
- ウ誤り。Cは休止状態にはならず,優先度が下がっただけで引き続き実行可能状態です。
- エ正しい。Aは直ちに実行状態,元実行中のBは実行可能状態,Cはそのまま実行可能状態を維持します。