平成24年度 春期 午前 問22
ソフトウェア
プリエンプティブに関する問題
プロセスを,実行状態,実行可能状態,待ち状態,休止状態の四つの状態で管理するプリエンプティブなマルチタスクの OS 上で,A,B,C の三つのプロセスが動作している。各プロセスの現在の状態は,A が待ち状態,B が実行状態,C が実行可能状態である。プロセス A の待ちを解消する事象が発生すると,それぞれのプロセスの状態はどのようになるか。ここで,プロセス A の優先度が最も高く,C が最も低いものとし,CPU は 1 個とする。
| A | B | C | |
|---|---|---|---|
| ア | 実行可能状態 | 実行状態 | 待ち状態 |
| イ | 実行可能状態 | 待ち状態 | 実行可能状態 |
| ウ | 実行状態 | 実行可能状態 | 休止状態 |
| エ | 実行状態 | 実行可能状態 | 実行可能状態 |
- ア実行可能状態 実行状態 待ち状態
- イ実行可能状態 待ち状態 実行可能状態
- ウ実行状態 実行可能状態 休止状態
- エ実行状態 実行可能状態 実行可能状態
答えと解説を見る
✓ これが正解エ実行状態 実行可能状態 実行可能状態
解説
優先度が最も高いAが走り、Bは順番待ちに戻ります。
プリエンプティブなマルチタスクでは、オペレーティングシステムが実行中のプログラムから処理装置を取り上げてよいことになっています。ですから見分けの軸は、優先度の高いものが走れるようになったとき、いま処理装置を使っているものがどう扱われるか、という一点です。三つを一つずつ動かします。Aは待ちが解けたので走れる列に並び、しかも優先度が最も高いので、そのまま処理装置を受け取って実行状態になります。Bは使っていた処理装置を取り上げられますが、何かの完了を待っているわけではありませんので、実行可能状態に並び直すだけです。Cには何も起きていませんので、並んだままで変わりません。処理装置は一つですから、実行状態になれるのは同時に一つだけです。四つの状態は、走っている、順番を待っている、外の出来事を待っている、そもそも動いていない、と言い換えて区別してください。
ほかの選択肢はなぜ違うのか
- ア実行可能状態 実行状態 待ち状態:この組合せは、Aを列に並べただけで処理装置を渡さず、Bをそのまま走らせ続けています。取り上げてよい方式だと設問が断っている以上、優先度の最も高いものが待たされる形にはなりません。Cを外の出来事の完了待ちに置いている点も、何も起きていない状況と合いません。
- イ実行可能状態 待ち状態 実行可能状態:この組合せは、Bを外の出来事の完了待ちに置いています。取り上げられた側は、処理装置さえ空けばすぐ走れる立場のままですから、完了待ちに落ちるわけではありません。Aについても処理装置を受け取らない形になっています。
- ウ実行状態 実行可能状態 休止状態:この組合せは、AとBの扱いは合っていますが、Cをそもそも動いていない状態へ移しています。Cには何の事象も起きていませんので、順番が最後に回るだけで、消えてしまうわけではありません。
出典:平成24年度 春期 応用情報技術者試験 午前 問22
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)