基本情報技術者 2018年 秋期 午前(科目A) 問17
問題文
スプーリング機能の説明として、適切なものはどれか。
選択肢
ア:あるタスクを実行しているときに、入出力命令の実行によってCPUが遊休(アイドル)状態になると、他のタスクにCPUを割り当てる。
イ:実行中のプログラムを一時中断して、制御プログラムに制御を移す。
ウ:主記憶装置と低速の入出力装置との間のデータ転送を、補助記憶装置を介して行うことによって、システム全体の処理能力を高める。(正解)
エ:多数のバッファから成るバッファプールを用意し、主記憶装置にあるバッファにアクセスする確率を上げることによって、補助記憶装置のアクセス時間を短縮する。
スプーリング機能の説明【午前2 解説】
要点まとめ
- 結論: スプーリングは入出力要求を補助記憶装置上のスプール領域に蓄え、入出力を非同期化してCPUやシステム全体の処理能力を向上させる仕組みです。
- 根拠: 低速な入出力装置と高速なCPUの速度差を埋めるために、入出力を直接待たずに補助記憶を仲介して並行処理する点が本質です。
- 差がつくポイント: スプーリングは「補助記憶を介した非同期化(スプール=キュー)」であり、単なるバッファリングやキャッシュ、文脈切替とは目的と実装が異なる点を押さえてください。
正解の理由
正解は ウ です。選択肢ウは「主記憶と低速入出力装置間のデータ転送を補助記憶装置を介して行うことで処理能力を高める」と述べており、まさにスプーリングの定義に合致します。スプーリングでは入出力要求(例:印刷ジョブ、メール配信など)を一度補助記憶上のスプール領域に記録し、入出力装置が利用可能になった時点で順次転送するため、CPUや他のジョブが無駄に待たされることを防ぎます。
よくある誤解
- 誤解1: 「スプーリング=単なるバッファリング」
→ バッファは主に主記憶内での短期的データ保持で速度向上を狙いますが、スプーリングは補助記憶に一時保管して非同期処理を行う点が異なります。 - 誤解2: 「スプーリングはCPUのスケジューリング(文脈切替)と同じ」
→ CPU割り当てや文脈切替はマルチプログラミングの仕組みで、スプーリングは入出力処理の非同期化という別次元の技術です。
解法ステップ
- 問題文で「補助記憶装置を介して」「システム全体の処理能力を高める」とあるか確認する。
- 「補助記憶を介する」という語句があればスプーリングの可能性が高いと判断する。
- 各選択肢を「補助記憶の利用」「入出力の非同期化」「CPU待ちの回避」の観点で照らし合わせ、該当するものを選ぶ。
選択肢別の誤答解説
- ア: 「入出力命令でCPUが遊休なら他のタスクにCPUを割り当てる」→ これはマルチプログラミング/タイムシェアの説明で、スプーリングの説明ではありません。
- イ: 「実行中のプログラムを一時中断して制御プログラムへ移す」→ これは割り込みやトラップ、コンテキストスイッチの説明に近く、スプーリング固有の補助記憶経由の非同期化を含んでいません。
- ウ: ウ は正解。補助記憶を介して入出力を行い、システム全体のスループットを改善する点がスプーリングの本質です。
- エ: 「多数のバッファから成るバッファプールで補助記憶のアクセス時間を短縮」→ これはバッファプールやキャッシュの説明で、主に主記憶・バッファのヒット率向上を狙うものでスプーリングとは異なります。
補足コラム
スプーリングの代表例はプリントスプーラです。ユーザが印刷要求を出すと、ジョブはまずディスク上のスプール領域に書き込まれ、プリンタが空いたときに順序どおりにジョブが送信されます。Unix系では /var/spool が典型的なスプール領域です。スプーリングはバッチ処理やメール配信など「順序付けて遅延実行する」用途にも広く使われます。なお、DMA(ダイレクトメモリアクセス)やバッファリング、キャッシュは関連技術ですが、目的と実装がそれぞれ異なります。
FAQ
Q1: スプーリングとバッファリングの違いは?
A1: バッファリングは主に主記憶上での短期的データ保持による転送効率化、スプーリングは補助記憶に一時保存して入出力を非同期化する点が違います。
A1: バッファリングは主に主記憶上での短期的データ保持による転送効率化、スプーリングは補助記憶に一時保存して入出力を非同期化する点が違います。
Q2: スプーリングは必ず補助記憶を使いますか?
A2: はい。スプーリングの定義上、入出力要求を補助記憶(ディスクなど)上のスプール領域に蓄えて処理します。
A2: はい。スプーリングの定義上、入出力要求を補助記憶(ディスクなど)上のスプール領域に蓄えて処理します。
Q3: スプーリングはどのOS機能が担当しますか?
A3: 通常はOSの入出力サブシステムやスプール管理デーモン(例:プリントスプーラ)がスプーリング機能を担当します。
A3: 通常はOSの入出力サブシステムやスプール管理デーモン(例:プリントスプーラ)がスプーリング機能を担当します。
関連キーワード: スプーリング、スプール領域、入出力バッファ、補助記憶装置、プリントスプーラ、入出力待ち、デバイスドライバ

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

