平成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:実行可能状態
解答・解説を見る
正解:エ
AI解説
プリエンプティブなマルチタスクOSでは、待ち状態が解消されたプロセスの優先度が現在実行中のプロセスより高い場合、OSは実行中のプロセスからCPUを取り上げて優先度の高いプロセスに切り替える(プリエンプション)。ここではAが最優先なので、待ち解消後Aは直ちに実行状態になり、それまで実行状態だったBは実行可能状態に降格する。Cはもともと実行可能状態のままで変化しない(優先度がBより低くCPUを得られないため)。 ア: Aが実行可能状態のままでBが実行状態を維持するのは誤り。Aは最優先なので待ちが解消されれば直ちに実行状態になるはずである。 イ: Bが待ち状態になる理由がなく、また実行可能状態のCが実行可能状態のままである点は正しいが、Aが実行可能状態にとどまるとした点が誤りである。 ウ: Cが休止状態になる根拠がない。Cはもともと実行可能状態であり、Aの待ち解消によってCの状態が変化する理由はない。 エ: 正しい。最優先のAが実行状態になり、それまで実行状態だったBは実行可能状態に降格し、Cはもともとの実行可能状態のまま変化しない。 💡 プリエンプティブOSでは「より優先度の高いプロセスが実行可能になった瞬間に、実行中のプロセスからCPUを奪う」という原則を押さえておくと、この種の状態遷移問題を素早く解ける。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。