平成28年度 秋期 午前 問18
ソフトウェア
マルチプログラミングに関する問題
マルチプログラミングにおけるプロセスの切替え手順を示した図において,OS の処理 a〜c として,適切な組合せはどれか。
図:
プロセスA … 実行状態 → (割込み)→ 実行可能状態
↓ 割込みを受けて OS へ
OS の処理 a → b → c
↓ OS からプロセスBへ
プロセスB … 実行可能状態 → 実行状態
選択肢(原典は表。1行ずつの箇条書きにたたんだ):
- アa=実行状態の回復,b=プロセスの選択,c=実行状態の退避
- イa=実行状態の退避,b=実行状態の回復,c=プロセスの選択
- ウa=実行状態の退避,b=プロセスの選択,c=実行状態の回復
- エa=プロセスの選択,b=実行状態の回復,c=実行状態の退避
答えと解説を見る
✓ これが正解ウa=実行状態の退避,b=プロセスの選択,c=実行状態の回復
解説
退避してから選び、選んだ側の状態を回復します。
実行中のプロセスが割込みで中断されると、処理装置の中身はやがて次に動くプロセスのもので上書きされます。ですから、中断される側がどこまで進んでいたかを先に控えておかないと、あとで続きから再開できません。したがって最初に行うのは、いま実行していたプロセスの状態を保存することです。次に、実行可能な状態にあるものの中から、どれを次に動かすかを決めます。最後に、選ばれたプロセスについて、前回中断したときに控えてあった状態を処理装置へ戻します。この三つは順序を入れ替えられません。控える前に上書きすれば中断時点の情報は失われますし、どれを動かすかが決まっていない段では、戻すべき中身そのものが特定できないからです。図の流れも、中断された側から入り、選ばれた側へ抜けていく形になっています。
ほかの選択肢はなぜ違うのか
- アa=実行状態の回復,b=プロセスの選択,…:最初に実行状態の回復を置き、最後に退避を置いています。どのプロセスを動かすかが決まっていない段で状態を戻すことになり、しかも中断された側の状態を控えるのが最後なので、その中身は先に上書きされてしまいます。
- イa=実行状態の退避,b=実行状態の回復,…:退避を最初に置く点は合っていますが、その次に回復を、最後にプロセスの選択を置いています。どれを動かすか決まる前に状態を戻すことはできないので、二つ目と三つ目が入れ替わった並びになっています。
- エa=プロセスの選択,b=実行状態の回復,…:最初にプロセスの選択を置き、退避を最後に置いています。中断された側の状態を控えるのが一番あとになるため、その手前の回復の段で処理装置の中身が置き換わってしまい、控えるべき内容がもう残っていません。
この問題の用語
- ログいつ誰が何をしたかを、機器やソフトウェアが自動で残していく記録です。あとから出来事をたどれるので、事故の調査や不正の発見に使われます。
出典:平成28年度 秋期 基本情報技術者試験 午前 問18
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)