平成28年度 秋期 基本情報技術者試験 午前 問18
テクノロジ/ソフトウェアマルチプログラミングにおけるプロセスの切替え手順を示した図において,OSの処理a~cとして,適切な組合せはどれか。 (注:本サイトでは原問題の表を文字表記に変換しています)

出典:平成28年度 秋期 基本情報技術者試験 午前 問18
- アa:実行状態の回復,b:プロセスの選択,c:実行状態の退避
- イa:実行状態の退避,b:実行状態の回復,c:プロセスの選択
- ウa:実行状態の退避,b:プロセスの選択,c:実行状態の回復
- エa:プロセスの選択,b:実行状態の回復,c:実行状態の退避
正解:ウ
解説
マルチプログラミングでは,割込みが発生すると,OSはまず実行中のプロセスAの状態(レジスタの内容など)を退避し(実行状態の退避),次に実行可能状態にあるプロセスの中から次に実行するプロセスを選択し(プロセスの選択),最後に選ばれたプロセスBの状態を復元して実行状態に遷移させます(実行状態の回復)。
選択肢ごとの解説
- ア誤り。実行状態の回復を最初に行うと,まだ退避されていないプロセスAの状態を上書きしてしまい,Aの実行状態を保存できません。
- イ誤り。プロセスの選択より先に実行状態の回復を行うと,どのプロセスの状態を回復すればよいかが決まっていないため処理が成り立ちません。
- ウ正しい。割込み発生時にまず実行中プロセスの状態を退避し,次に実行するプロセスを選択し,最後にそのプロセスの状態を回復して実行状態に遷移させる順序です。
- エ誤り。プロセスの選択を最初に行うと,選択の前提となる実行中プロセスの状態がまだ退避されておらず,選択したプロセスの状態回復後に元のプロセスの情報が失われてしまいます。