FE EXAM

スプーリング(印刷キュー)

処理待ちのデータを一時的にディスクへ蓄えて順番に処理する仕組み

INTERACTIVE VISUALIZATION
アプリ
スプール領域
プリンタ
完了
フェーズ
IDLE
待ち行列
0
印刷中
完了
0
シナリオ
ステップ1 / 10
印刷ジョブ
A会議資料.pdf佐藤
B請求書.xlsx鈴木
C報告書.docx高橋
STEP 1/101台のプリンタを複数人が使うオフィスでは1台のプリンタを3人で共有することがよくあります。もし全員が同時に直接プリンタへ送れたら、印刷内容が混ざってぐちゃぐちゃになってしまいます。そこでスプーリングの仕組みを使います。
アプリ(依頼者)A: 佐藤会議資料.pdfB: 鈴木請求書.xlsxC: 高橋報告書.docx書き出しスプール領域(ディスク)印刷キュー(先頭が上)(空)取り出しプリンタ待機中印刷完了
解説

📌
スプーリングとは

複数の依頼をディスクに溜めて順番に処理3人の依頼キューA→B→Cディスクプリンタ

スプーリング(spooling)とは、処理待ちのデータをいったんディスク(補助記憶)の専用領域にためておき、装置が空いた順に取り出して処理する仕組みのことです。この一時保管場所をスプール領域、並んだ処理待ちの列をキュー(待ち行列)と呼びます。

身近な例で考えると、銀行の番号札に似ています。窓口(=プリンタ)は1つしかありませんが、来た人は番号札を取れば、その場でずっと立って待たなくても座って別のことができます。窓口は番号順に1人ずつ呼んで対応します。番号札の列がスプールのキューにあたります。

上のツールで▶ボタンを押すと、3人がそれぞれ印刷を依頼し、ジョブがディスク上のキューに並び、プリンタが先頭から1つずつ取り出して印刷していく流れが見られます。依頼した人は待たずに作業へ戻れる点に注目してください。

📌
バッファリングとの違い

スプーリングは「いったんデータをためる」点でバッファリングとよく似ており、混同しやすい用語です。バッファリングとは、速度の違う2つの装置の間にメモリ上のバッファを置き、速度差を吸収する仕組みでした。両者の違いを整理します。

項目スプーリングバッファリング
置き場所補助記憶(ディスク)主記憶(メモリ)
扱う対象複数のジョブ1対1のデータの流れ
主な目的装置の共有・順次処理速度差の吸収
代表例プリンタの印刷キューCPUとプリンタ間の出力バッファ

違いを3点でまとめると次の通りです。
置き場所:スプーリングはディスク、バッファリングはメモリを使う
扱う対象:スプーリングは複数のジョブ(依頼)、バッファリングは1対1のデータの流れ
主な目的:スプーリングは装置の共有と順次処理、バッファリングは速度差の吸収

なぜスプーリングはディスクを使うのでしょうか。印刷データは大きく、しかも複数人ぶんが同時にたまる可能性があります。容量の小さいメモリでは溢れてしまうため、大容量のディスクに保存するのです。さらにディスクに保存しておけば、依頼した人がパソコンを閉じても印刷を続けられるという利点もあります。

📌
用途(印刷キュー等)

印刷キュー:先入れ先出し(FIFO)ABC先に処理後で処理

スプーリングの最も代表的な用途が印刷キュー(プリントスプーラ)です。1台のプリンタを複数の人やアプリで共有するとき、それぞれの印刷データをスプール領域に並べ、依頼した順(先入れ先出し)に印刷します。これにより、印刷内容が混ざることなく、誰も長時間待たされずに済みます。

スプーリングが活躍する場面には次のようなものがあります。
印刷キュー:複数のジョブを並べて1台のプリンタで順次印刷する
バッチ処理のジョブ管理:夜間にまとめて実行する処理を順番待ちさせる
メールの送信待ち:送るメールをいったんためて、サーバが順に送信する

スプーリングの大きな利点は、依頼した側が処理の完了を待たずにすぐ次の作業へ移れることです。印刷ボタンを押した瞬間にデータがスプール領域へ書き出されるので、プリンタが遅くても、依頼した人のパソコンは止まりません。遅い装置に速い装置の足を引っ張らせないという考え方は、バッファリングと共通する大切な発想です。

関連コンテンツ