印刷にとってスプールとはどういう意味ですか?


18

マークが私にコメントを書い

カップをスプールではなく、つまり、プリンタードライバーが実行された後にのみlprコマンドを終了させる方法を知らない。

印刷用の「スプール」とはどういう意味ですか?

Googleは、「中間ストアに送信する(周辺機器での印刷または処理を目的としたデータ)」という意味の動詞だと言います。lprコマンドで印刷する場合など、印刷スプールが表す中間ストアとは何ですか

マークは、スプールの意味とブロッキングを関連付けているようです。しかし、Googleが提供する定義を見てもわかりません。

ありがとう。

回答:


12

印刷スプールは、効果的にプログラムを提出し、1台以上のプリンタにそれらを供給するからジョブを受信するための責任を負うプログラム(スプーラ)とジョブごとに管理バッファ、です。スプールのポイントは、速度の異なる2つのシステム間の通信を処理し、共有デバイスへのアクセスを制御することです。前者は、プログラムが印刷ジョブを必要な速度で送信できることを意味し、それらのジョブはプリンターが処理できる速度で処理されます。後者(RonJohnが指摘しように)は、ジョブが一貫して処理されるようにします。したがって、印刷時にジョブが混同されることはありません。

ネットワークプリンタは独自のスプールを提供し、プリントサーバー(CUPS lpdなど)もスプールを実装します。ほとんどの印刷システムは、アクセス制御、クォータ、バナー、印刷オプションなども処理します。スプールは他のコンテキストで使用されます。たとえば、テープベースのバックアップサーバーは、高速なディスクベースのストレージシステム上のネットワークホストからバックアップデータをスプールするようになったため、テープシューシャインを回避するために必要な驚異的な速度で最新のテープドライブにフィードできます。

コメントのコンテキストでは、スプールの関連性は、フルフィルメントから印刷ジョブの送信を無相関にすることです。スプールしないということは、送信が印刷ジョブでlprのみ完了するため、ジョブが完了するとコマンドが完了することを意味します。プリンター自体もスプールする可能性があるため、コンピューターのスプールを削除しても期待した結果が得られない場合があります!


1
「スプール」の意味のどの部分がLinuxカーネルのIOバッファーに適用されないのですか?
ティム

3
メールシステムは、多くの場合、/var/spool/mail同様の場所の下でメールスプールを使用しています。これは、メールメッセージのほぼ非同期送信を可能にする「バッファ」でもあります。メールメッセージはスプール/キューに入れられ、メールクライアントはメールが実際にシステムを離れるのを待つ必要はありません。印刷ジョブに非常によく似ています。
クサラナナンダ

1
@Timそれは本当にそれが適用可能かどうかの問題ではなく、単にスプールと呼ばれていません。バッファは通常、バッファに供給される操作を非ブロッキングwriteにします。データが実際に宛先に到達した後ではなく、使用されているバッファ(Linuxではページキャッシュ)にデータが書き込まれるとすぐに完了します。readどちらも必ずしも非ブロッキングではなく、要求されたよりも少ないデータを返すことができます。
スティーブンキット

1
また、「速度の異なる2つのシステム間の通信」を処理することに加えて、スプールはこれらの低速デバイスへのアクセスをシリアル化します。(複数のジョブがすべて同時にプリンターまたはモデムに書き込むのがどれほど悪いか想像できます...)
RonJohn

1
通常、プリントスプールは、プリントサーバーがホストされている場所にあるディスクに保存されます。プリンターも独自のスプールを持つことができると言うとき、これは通常「ネットワーク化された」プリンター(特定のコンピューターではなくネットワークに接続されている)の場合です。独自のプリントサーバーをホストし、複数の受信ジョブを管理する必要があります(独自のスプールを使用して実行します)。プリンターに独自のスプールがある場合、印刷ジョブを印刷よりもはるかに速く受け入れることができるlprため、プリンターがジョブの受け入れを完了するまで待機しても、完全に処理されるまでに遅延があります。
スティーブンキット

36

一言で言えば、スプーラは次のもので構成されます。

  • バックグラウンドプログラム
  • プリンターごとのディレクトリ
  • 印刷ジョブごとのファイル

あなたの場合、フォアグラウンドプログラム(lpr)は印刷ジョブをに送信します。印刷ジョブcupsはそれを保存し、シリアル、パラレル、USB、ネットワークなどの通信を使用して実際に印刷プロセスを開始します。

だから、今日プリンターが紙切れになったとしてもコンピューターを使い続けることができるのに対し、私がCP / Mの子供だった頃は、さらに紙を追加するまでコンピューター全体がロックしていたのです...

なぜ「スプール」と呼ばれるのですか?

当時、大規模なコンピューターはテープを使用してこれらの種類のファイルを保存するため、ディスクが高価すぎるため、データセンター内で作業しているときに最初に耳にしたのはテープが回転し始めた1 3-4プリンターが印刷を開始します(運がよければ)。;-)

注1:「スプール」とは、「磁気テープを巻き付けることができる円筒状のデバイス」を意味する名詞です。したがって、「スプール」とは、テープを回転させて巻き取る円筒状のデバイスのことです。


5
より直接的に、「スプール」を「磁気テープが巻か可能な円筒形の装置」という意味の名詞である
ストップハニングモニカ

1
@OrangeDog:回答に組み込まれました、ありがとう! :
Fabby

2
+1「スプール」という用語がどこから来たのか知らなかった。
ジョー

彼らは見たことがないよう@Joe同じ理由の子供たちは、今日保存ボタン何実際に意味を知らないディスケット/フロッピー/ Stiffy / ... > :-)
Fabby

5

まず、「スプーリング」という用語の意味から始めましょう。ドキュメントのサイズがプリンターのメモリよりも大きい場合があります。そのため、「プリンタースプーリング」では、複数のドキュメントをプリンターに送信し、これらすべてのドキュメントをキューに入れることができます。

現在、Unixには2つの印刷システムがあります。

  1. BSDスプーリングシステムは、lpdデーモンを使用して印刷ジョブをスケジュールします。
  2. SVR4スプーリングシステムはlpsched、スケジューラとして使用します。

Jeff LessemのUSAIL:Unixシステム管理独立学習には、Unixでの印刷に関するセクションがあり、BSDシステムとSVR4システムの両方の概要を説明しています。

BSDスプーリングシステム

多くのコンピューターがプリンターを共有できるようにする大規模な異種ネットワークにも拡張されます。

BSDスプーリングシステムでは、プリンターへのアクセスはlpd デーモンとlprプログラムによって制御されます。lprは、印刷用にファイルをキューに入れることができるBSDシステム上の唯一のプログラムです。

lpr印刷するデータを受け取り、それをスプールディレクトリに入れて、lpdデーモンに通知します。各印刷ジョブに対してlpr、スプールディレクトリに2つのファイル、制御ファイル(cfxxx)とデータファイル(dfxxx)を作成します。xxxは一意のジョブIDを示します。制御ファイルには、所有者のIDなど、印刷ジョブを処理するための情報が含まれています。データファイルには、印刷する実際のデータが含まれています。

lpdデーモンは、チェック/etc/printcap先のプリンタを識別するためのファイルを。宛先プリンタがローカルデバイスの場合、 その印刷キューでデーモンのlpdコピーlpdが実行されていることを確認します。それ以外の場合lpdは、プリンタが接続されているリモートホストへの接続を開き、制御ファイルとデータファイルの両方をそこに転送します。

印刷ジョブはlpd、先入れ先出し(FIFO)ベースでスケジュールされます。ただし、システム管理者はlpcコマンドを使用して、印刷キュー内のジョブの優先度を変更できます。

SVR4スプーリングシステムは、SolarisおよびHP-UXで使用されます。制御性と柔軟性が向上しますが、ネットワーク印刷用に設計されたものではなく、セットアップがより複雑です。

SVR4スプーリングシステムでは、lpコマンドは印刷するデータを受け入れ、宛先に関連付けられたスプールディレクトリにそのコピーを作成します。宛先は、プリンター名と、プリンターが属するクラスのオプションの指定で構成されます。指定されたプリンターがビジーの場合、ジョブは同じクラスの別のプリンターに送信されます。スプールディレクトリは通常/var/spool/lp/request/printer-name、印刷ファイルにはジョブとユーザーの両方を識別するための一意の名前が付けられます。

プリンタへのアクセスはlpschedデーモンによって制御されます。スプールディレクトリからジョブを取得し、使用可能になったときに適切な宛先に送信します。lpschedは、通常はにもログを保持します/usr/spool/lp/log。ログファイルには、印刷ジョブの処理中にエラーが発生したことが示され、ユーザー名、

関連項目:プリンターとプリンタースプーラー– lp、lpstat、キャンセルコマンド| ITのブログのヒントとコツ


3
あなたの情報源に言及するのは良いことです...
スティーブンキット

私はまだ終わっていません

3
Markdownフォーマットを使用して、どのテキストが自分のもので、どのテキストが引用されているかを明確にすることをお勧めします。で説明したように、あなたはまた、原作者、ジェフLessemに入金する必要がありunix.stackexchange.com/help/referencing
アンソニー・G -モニカのための正義の

4

ことを決して忘れないスプールの頭字語であるS imultaneous P eripheral O perations O N Lの INE。コンピューティングの初期(ただし、最古ではない)日以来、プロセッサーはプリンターが印刷できるよりも速く結果を生成しました。スプーリングがなければ、プロセッサーは印刷自体が完了するまで「印刷ジョブ」を完了できませんでした。これにより、多くの場合、プリンタを待機するアイドルプロセッサが発生しました。

スプーリングの大きな飛躍は、アメリカの宇宙プログラム中に起こりました。コンピューターの結果の生成が遅すぎたため、NASA専用の新しいスプーリングシステムが作成されました(ただし、すべてのIBMシステムに導入されるまで、その後継機は人気を博しました)。それは呼ばれていたH ouston A utomatic SプーリングP作り、rogram HASP最初のネストされた頭字語。

スプールによく似ているのは、スレッドファクトリです。スレッドは高速でスピンされ、他の場所ではスプールに格納されます。その後、糸のスプールは最終的に縫製または他の機械に置かれ、非常に遅い速度で実行され、最終製品の作成に使用されます。


17
「スプール」の派生物は、一般的にはバックロニムと見なされており、「PDQ」は間違いなくそうであることに注意してください。
クリリス

6
それは明らかに、事実の後に構築された背辞です。そのような噂を広めることは流行になりつつあります。それらの多くはここにリストされています、多分それはそれに「スプール」を追加する時です!
パイプ

4
@Jennifer IBMには確かにSPOOLというプログラムがありましたが、上のJargon Fileリンクのように、その名前をしゃれの一種として選択したか、既存の用語から派生したかのいずれかであると広く推測されています。いずれにせよ、それはおそらくテープのスプールにジョブをロードしてから再生することを指します。現代の使用法では、これは古いIBM製品やテープのスプールを指すものではないため、議論全体はかなり学術的であり、今日の意味の問題に正接しています。
IMSoP

3
@ジェニファーまあ、人々がそれを推測するのが間違っていても、私はそれが広く推測されていることは間違っていません。そして、たとえIBMがこの用語を発明したのが本当だとしても、なぜそれらの言葉を選んだのですか?彼らは名前を長文で書き、「ああ、それは偶然だ、それは英語の単語を綴る」と言ったのか、それとも彼らは機能にふさわしいと思われる用語を探していて、「仕事をスプールする」テープ」は良いイメージでしたか?
IMSoP

4
この投稿は、特にその語源的な主張のために、引用から大いに恩恵を受けるでしょう。
TemporalWolf

3

スプールはかなり古い学期です。最近では、より頻繁に使用される「印刷キュー」が表示されます。

キューに入れることは、「列に並んで待つ」という英国の格言です。したがって、印刷ジョブは「キュー」に入れられます。つまり、印刷するために並んで待機します。

ジョブがスプーリングを完了した後(印刷行間で長い「思考」時間が発生する可能性があります)、それは一般にFIFOベースで印刷されますが、印刷ジョブの優先順位はそれを上書きできます。

オペレーターが用紙を交換できるように、印刷スプールとキューを一時停止できます。一部のページが破損した場合は、再起動することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.