問題 No.4047
オペレーティングシステムのプロセス管理において、プロセスの状態遷移およびスケジューリングに関する記述として不適切なものはどれか。
【正解の解説】
実行状態にあるプロセスは、プロセッサの割り当て時間が終了すると、自発的に待ち状態(ブロック状態)へ遷移する。
プロセスの持ち時間が切れた場合、実行状態から直接待ち状態に行くのではなく、次に順番を待つ『実行可能状態』に戻ります。レストランで料理の順番待ちをしている人が、時間が来たからといって自ら席を立ってお店の外の待合室に戻るわけではなく、もう一度列の最後尾に並び直すのと同じです。
スポンサーリンク
【その他の選択肢の解説】
実行可能状態にあるプロセスは、スケジューラのディスパッチによってプロセッサの割り当てを受け、実行状態へ遷移する。
遊園地のアトラクションで、待ち列の先頭にいる人が案内されていよいよ乗り物に乗る瞬間に似ています。OSのスケジューラという係員が、実行可能状態のプロセスを選んでCPUという座席に座らせることで、プロセスは晴れて実行状態へと進むことができます。
入出力処理の完了を待っているプロセスは、イベントの発生を待ち受ける待ち状態(ブロック状態)から実行可能状態へ遷移する。
プリンターでの印刷が終わるのを待っていた状態から、印刷完了の通知を受け取って「よし、次の仕事ができるぞ」とスタンバイ状態に戻る動きを表しています。宅急便の荷物が届くのを待っていて、インターホンが鳴ったので玄関に向かうようなイメージで捉えると非常にわかりやすいです。
生成されたばかりの新規プロセスは、初期化処理が完了すると直ちに実行状態へ遷移し、プロセッサの処理を開始する。
新入社員が入社した直後に、いきなり会社のトップとして全権を握って仕事を始めるわけがないのと同じです。まずは研修を受けて仕事をこなせる状態(実行可能状態)になり、そこから先輩(スケジューラ)に順番を指名されて初めて実際の業務(実行状態)をスタートできます。