メインコンテンツへ
ソフトウェアコンピュータシステム

OSの機能であるスプーリングの説明として適切なものはどれか。

ア.複数のプログラムを同時に実行する機能
イ.低速な入出力装置への出力を一時的にディスクに書き出し、CPUを解放する機能正解
ウ.プログラムが使用するメモリ領域を動的に確保する機能
エ.実行中のプログラムの状態を保存し、別のプログラムに切り替える機能

解説

プリンターみたいな「のろのろ装置」にCPUが付き合わされるのは時間の無駄——だからディスクを「中継所」にして、CPUをさっさと次の仕事へ解放する仕組みがスプーリング。

なぜ イ が正解か

プリンターへ印刷データを送るとき、CPUが「1枚印刷終わるまで待機」してたら超非効率ですよね。スプーリングは「とりあえず全データをディスクに書き出す→あとはプリンターが自分のペースで読み出す」という分業体制を作ります。CPUは書き出した瞬間に解放されるので、その間にガンガン別の処理ができる——まるで飲食店の伝票システムで、店員(CPU)が厨房(低速装置)でずっと立ち続けず次のテーブルへ向かえる構造です。

なぜ ア は間違いか

複数プログラムを同時実行するのはマルチプログラミングやマルチタスクの仕事です。スプーリングは「同時実行」ではなく「遅い装置への出力を代わりに預かる」役割——全然別の係です。

なぜ ウ は間違いか

メモリを動的に確保するのはメモリ管理(malloc的なアレ)の話。スプーリングはメモリではなく「ディスク」を中継所に使う点が核心で、メモリの割り当てとは無関係です。

なぜ エ は間違いか

実行中プログラムの状態保存&切り替えはコンテキストスイッチです。スプーリングは「装置が遅い問題」を解決する技術で、プログラムの切り替えとは目的が違います——両方「CPUを遊ばせない」仲間なのに混同しやすいので要注意。

出典: 基本情報技術者試験 令和5年 サンプル問題