メインコンテンツへ
ソフトウェアOS応用

スプーリング(spooling)の説明として、最も適切なものはどれか。

ア.プロセスのコンテキスト情報をスタックに保存し、関数呼び出し時に復帰先アドレスを管理する仕組みである。
イ.複数CPUが共有メモリを介して並列処理を行うために、メモリのコヒーレンシを保つ通信プロトコルである。
ウ.ファイルシステムにおいて、ファイル断片化を防ぐためにディスク上のブロックを再配置するデフラグ処理である。
エ.プリンタなど低速な入出力装置への出力を一旦補助記憶上のキューに蓄積し、CPU処理とI/O処理を並行実行させて全体スループットを向上させる仕組み。正解

解説

スプーリングは「料理を作りながら洗い物を別の人に任せる分業」。プリンタが遅くてもCPUは次の仕事へ進める。SPOOL=Simultaneous Peripheral Operations On-Line(同時並行周辺操作)の頭字語です。

なぜ エ が正解か

エが正解。スプーリングはプリンタなどの低速装置への出力データを、いったんディスク上のスプールキューに格納し、装置側が自分のペースで読み出して処理する方式。CPUは出力完了を待たずに次の処理を進められるため、CPUとI/Oを並行動作させてスループットを大きく向上できる。

なぜ ア は間違いか

関数呼び出しのスタックフレーム管理の説明であり、スプーリングとは別の概念。OSのプロセス管理や関数呼び出し規約に関する話。

なぜ イ は間違いか

マルチプロセッサのキャッシュコヒーレンシ(MESIプロトコルなど)の説明で、スプーリングとは無関係。スプーリングはあくまでI/O効率化の手法。

なぜ ウ は間違いか

デフラグの説明であり、スプーリングではない。デフラグはディスク内の断片化したブロックを連続配置に並べ替えることで、入出力の高速化を狙う別技術。

出典: AI生成問題(学習用)