基本情報 平成26年度 春期 問18:テクノロジ系に関する問題
スプーリング機能の説明として, 適切なものはどれか。
- aあるタスクを実行しているときに, 入出力命令の実行によって CPU が遊休 (アイ ドル) 状態になると, 他のタスクにCPU を割り当てる。
- b実行中のプログラムを一時中断して, 制御プログラムに制御を移す。
- c主記憶装置と低速の入出力装置との間のデータ転送を, 補助記憶装置を介して行 うことによって, システム全体の処理能力を高める。正答
- d多数のバッファから成るバッファブールを用意し, 主記憶装置にあるバッファに アクセスする確率を上げることによって, 補助記憶装置のアクセス時間を短縮する。
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは c です。
「スプーリング」は、遅いプリンタを待たずに済むよう、印刷データを一旦ハードディスクに溜めて順番に処理する仕組み。
例えば「印刷ボタンを押すと、すぐに『印刷中』と消えるけど、実は裏で順番待ち」というあの仕組み。CPUは次の仕事ができるので全体が速くなります。
👉 覚え方:「スプール=糸巻き。いったん巻き取ってから出す」。
ほかの選択肢:a マルチタスク/b 割込み処理/d バッファプール(キャッシング)。どれもCPU・メモリの話で、印刷ではない。
なぜこれが正解か
正解は c。スプーリング(Spooling: Simultaneous Peripheral Operations On-Line)は、CPUと低速入出力装置(特にプリンタ)の処理速度差を補うため、入出力データを補助記憶装置(HDD/SSD)に一時保存し、CPUは速度差を意識せず次の処理に進める機能。これによりCPUが入出力待ちで遊休することを防ぎ、システム全体のスループットを向上させる。
各選択肢の解説
- a:CPU遊休時に他タスクへ切替=マルチタスク/マルチプログラミング。
- b:実行中プログラムを中断し制御プログラムへ=割込み(interrupt)処理。
- c:低速入出力装置と主記憶の間に補助記憶を介在=スプーリング(正解)。
- d:バッファプールで主記憶アクセス確率を上げる=バッファキャッシュ/ディスクキャッシュ。
覚え方・ひっかけ注意
「スプーリング=印刷ジョブをHDDに溜めて順次処理」。プリンタ/プロッタ/パンチカードリーダなど低速デバイス用。「バッファ」と「スプール」の違い: バッファはメモリ上の一時領域、スプールは補助記憶(HDD)に保存して順序管理(プリントキュー)も行う。スプーラ(spooler)がOSコンポーネントとして実装される。
理論的背景
スプーリング(Spooling)は1950-60年代のメインフレーム時代に開発された技術で、当初は「Simultaneous Peripheral Operations On-Line」の頭字語。CPU・入出力装置間の処理速度差(CPUがns単位、プリンタがms-s単位、約10⁶倍の差)を吸収し、CPU資源の有効活用を実現する。
アーキテクチャ上は3層構成: ①アプリケーション層がデータを生成、②スプーラ層が補助記憶装置のスプールファイルに書き出し(CPU視点で印刷完了)、③スプーラ層が背景でジョブをキューから順次取り出し低速デバイスへ送信。プリントキューにより複数ジョブの順序制御・優先度・ユーザー識別を統合管理。
類似概念: ①バッファリングは主記憶上の一時領域で速度差吸収(粒度は小)、②キャッシングはアクセス頻度の高いデータを高速層に保持、③プリフェッチは将来必要なデータを先読み。
実務での使われ方
Windowsの「印刷スプーラサービス(Spooler Service)」、Unixの「lpd(Line Printer Daemon)」、CUPSが代表実装。ネットワーク印刷では各クライアントの印刷ジョブをサーバ側スプールに集約し、優先度・課金・部数制御を行う。クラウド印刷(Google Cloud Print終了後はSaaS印刷サービス、PaperCut等)も同じ原理を応用。
バッチ処理(メインフレーム JCL の SYSOUT、UnixのcronジョブログのHDD保存等)もスプーリングの一形態。メッセージキュー(Kafka、RabbitMQ、AWS SQS)・タスクキュー(Celery、Sidekiq、AWS SNS+Lambda)も「処理速度差吸収+順序保証+永続化」という観点で広義のスプーリング概念を引き継ぐ。
印刷スプーラはセキュリティリスクの温床でもあり、PrintNightmare脆弱性(CVE-2021-34527、Windows Print Spooler権限昇格)は2021年に大規模に悪用された。
試験での位置づけ
FE/APのテクノロジ系(OS)で頻出。①スプーリングの定義・目的、②バッファリングとの違い、③マルチプログラミング/マルチタスクとの関係、④割込み処理・DMA転送、⑤プリントキューと優先度制御、が主要論点。本batchの別問(スループット問題)でもスプーリングが正答となるため必修。
選択肢の発展補足
DMA(Direct Memory Access)はCPUを介さず周辺機器が直接主記憶にアクセスする機構で、スプーリングと相補的にCPU負荷を下げる。現代のNVMe SSD・GPUDirect Storageは更に進化し、ストレージ→GPU直接転送でCPUバイパスを実現。バッファとキャッシュの違いは試験頻出: バッファ=速度差吸収、キャッシュ=アクセス頻度差吸収(一時保管で再利用)。スプール領域は永続化されるため停電時にもジョブが保持される利点があり、現代のメッセージブローカ(Kafka)も同じ「永続化+順序保証」の系譜にある。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成26年度 春期 問18/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。