Apa arti spool untuk mencetak?

18

Mark menulis komentar untuk saya

Saya tidak tahu bagaimana cara membuat cangkir tidak menggulung, yaitu, bagaimana membuat perintah lpr hanya keluar setelah driver printer dijalankan.

Apa arti "gulungan" untuk pencetakan?

Google mengatakan itu adalah kata kerja yang berarti "kirim (data yang dimaksudkan untuk dicetak atau diproses pada perangkat periferal) ke toko perantara." Apa yang dimaksud dengan toko perantara yang mewakili gulungan pencetakan, misalnya, saat mencetak dengan lprperintah

Mark sepertinya menghubungkan arti spool dengan blocking. Tapi saya tidak bisa mengetahuinya dengan melihat definisi yang diberikan oleh Google.

Terima kasih.

Tim
sumber

Jawaban:

12

Sebuah spool cetak secara efektif buffer, dikelola per pekerjaan, dengan program (spooler) bertanggung jawab untuk menerima pekerjaan dari mengirimkan program dan memberi mereka makan untuk satu atau lebih printer. Maksud spool adalah untuk menangani komunikasi antara dua sistem dengan kecepatan yang berbeda, dan untuk mengontrol akses ke perangkat bersama. Yang pertama berarti program dapat mengirimkan pekerjaan cetak secepat yang mereka inginkan, dan pekerjaan itu ditangani secepat (atau lambat) seperti yang dapat ditangani oleh printer. Yang terakhir (seperti yang ditunjukkan oleh RonJohn ) memastikan bahwa pekerjaan ditangani secara koheren: sehingga saat mencetak, pekerjaan tidak tercampur.

Printer jaringan menyediakan gulungan sendiri, dan server cetak (CUPS, lpddll.) Juga menerapkan gulungan. Sebagian besar sistem cetak juga menangani kontrol akses, kuota, spanduk, opsi cetak, dll. Kumparan digunakan dalam konteks lain; misalnya, server cadangan berbasis tape sekarang menggulung data cadangan dari host jaringan pada sistem penyimpanan berbasis disk yang cepat, sehingga mereka dapat memberi makan tape drive modern pada kecepatan luar biasa yang mereka butuhkan untuk menghindari penyemiran sepatu tape.

Dalam konteks komentar, relevansi kumparan adalah bahwa ia berhubungan dengan pengajuan pekerjaan cetak dari pemenuhannya. Tidak menggulung akan berarti bahwa pengiriman hanya akan selesai dengan pekerjaan cetak, dan dengan demikian lprperintah Anda hanya akan selesai setelah pekerjaan selesai. Menghapus spool pada komputer Anda mungkin tidak memiliki hasil yang diinginkan karena printer itu sendiri dapat spool juga!

Stephen Kitt
sumber
1
Bagian mana dari arti "spool" yang membuatnya tidak berlaku untuk buffer IO dari kernel Linux?
Tim
3
Sistem surat sering menggunakan gulungan surat di bawah /var/spool/mailatau lokasi yang serupa. Ini juga merupakan "buffer" untuk memungkinkan pengiriman pesan email yang hampir tidak sinkron. Pesan email spooled / antri dan klien email tidak harus menunggu surat untuk benar-benar meninggalkan sistem. Sangat mirip pekerjaan pencetakan.
Kusalananda
1
@Tim itu bukan pertanyaan apakah itu berlaku atau tidak, itu hanya tidak disebut spool. Buffer pada umumnya menghasilkan operasi yang memasukkan buffer menjadi nonblocking: writeselesai segera setelah data ditulis ke buffer apa pun yang digunakan (di Linux, cache halaman), tidak begitu data benar-benar sampai di tujuannya. readjuga tidak harus non-blocking, dan dapat mengembalikan lebih sedikit data dari yang diminta
Stephen Kitt
1
Perhatikan juga bahwa - selain menangani "komunikasi antara dua sistem dengan kecepatan berbeda" - spools membuat serialisasi akses ke perangkat yang lebih lambat itu. (Anda dapat membayangkan betapa buruknya bagi beberapa pekerjaan untuk semua menulis ke printer atau modem pada saat yang sama ...)
RonJohn
1
Gulungan cetak biasanya disimpan pada disk, di mana pun server cetak dihosting. Ketika saya mengatakan printer juga dapat memiliki gulungan sendiri, ini biasanya merupakan kasus untuk printer "berjaringan" (yang terhubung ke jaringan, bukan ke komputer tertentu); mereka meng-host server cetak mereka sendiri dan harus mengelola beberapa pekerjaan masuk (yang mereka lakukan dengan memiliki gulungan sendiri). Ketika printer memiliki gulungan sendiri, printer dapat menerima pekerjaan cetak lebih cepat daripada yang bisa dicetak, jadi meskipun lprmenunggu printer selesai menerima pekerjaan, masih ada kelambatan sebelum diproses sepenuhnya.
Stephen Kitt
36

Singkatnya, spooler terdiri dari:

  • program latar belakang
  • direktori per printer
  • file per pekerjaan cetak

Dalam kasus Anda, program latar depan ( lpr) mengirimkan tugas cetaknya cups, yang menyimpannya dan kemudian menggunakan komunikasi serial, paralel, USB, jaringan, ... untuk benar-benar memulai proses pencetakan.

Jadi itu sebabnya saat ini bahkan ketika printer kehabisan kertas Anda masih dapat terus menggunakan komputer Anda, sedangkan ketika saya masih kecil di CP / M, seluruh komputer terkunci sampai Anda menambahkan lebih banyak kertas ...

Mengapa disebut "spooling"?

Karena pada masa itu, komputer besar menggunakan tape untuk menyimpan file-file semacam ini karena disk terlalu mahal, jadi ketika Anda bekerja di dalam pusat data, hal pertama yang akan Anda dengar adalah kaset mulai berputar¹ dan hanya setelah satu detik atau 3-4 printer akan mulai mencetak (jika Anda beruntung). ;-)

Catatan 1: "spool" adalah kata benda yang berarti "perangkat silinder tempat pita magnetik dapat dililit", oleh karena itu "spooling" adalah perangkat silinder yang berputar dan melilitkan pita ...

Fabby
sumber
5
Lebih langsung, "spool" adalah kata benda yang berarti "alat silinder yang dapat dilipat dengan pita magnetik"
Stop Harming Monica
1
@OrangeDog: dimasukkan ke dalam jawaban, terima kasih! :-)
Fabby
2
+1 Tidak pernah tahu dari mana istilah "spool" berasal.
Joe
@Joe Alasan yang sama anak-anak saat ini tidak tahu apa arti tombol simpan karena mereka belum pernah melihat Disket / Floppy / Stiffy / ... > :-)
Fabby
5

Pertama, mari kita mulai dengan arti dari istilah "spooling": kadang-kadang ukuran dokumen lebih besar dari memori printer, jadi "spooling printer" memungkinkan pengiriman beberapa dokumen ke printer dan menempatkan semua dokumen tesis dalam antrian.

Sekarang, di bawah Unix ada dua sistem pencetakan:

  1. Sistem spooling BSD menggunakan lpddaemon untuk menjadwalkan pekerjaan cetak.
  2. Sistem spooling SVR4 digunakan lpschedsebagai penjadwal.

Jeff Lessem's USAIL: Pembelajaran mandiri administrasi sistem Unix memiliki bagian tentang Pencetakan di bawah Unix yang memberikan tinjauan yang baik tentang sistem BSD dan SVR4:

Sistem spooling BSD

meluas dengan baik ke jaringan besar, heterogen yang memungkinkan banyak komputer berbagi printer.

Di bawah sistem spooling BSD, akses ke printer dikendalikan oleh lpd daemon dan lprprogram. lpradalah satu-satunya program pada sistem BSD yang dapat mengantri file untuk dicetak.

lprmenerima data untuk dicetak, meletakkannya di direktori spooling, dan memberi tahu lpddaemon. Untuk setiap pekerjaan cetak, lprbuat dua file, file kontrol (cfxxx) dan file data (dfxxx) di direktori spool, xxx yang menunjukkan id pekerjaan yang unik. File kontrol berisi informasi untuk menangani pekerjaan cetak, termasuk identitas pemiliknya. File data berisi data aktual yang akan dicetak.

The lpddaemon memeriksa /etc/printcapberkas untuk mengidentifikasi printer tujuan. Jika printer tujuan adalah perangkat lokal, lpdpastikan salinan lpddaemon berjalan pada antrian cetak itu. Jika tidak, lpdbuka koneksi ke host jarak jauh yang terhubung dengan printer dan transfer file kontrol dan data ke sana.

Pekerjaan cetak dijadwalkan berdasarkan lpdFirst-In, First-Out (FIFO). Namun, administrator sistem dapat menggunakan perintah lpc untuk mengubah prioritas pekerjaan dalam antrian cetak.

Sistem spooling SVR4 digunakan oleh Solaris dan HP-UX. Ini menawarkan lebih banyak kontrol dan fleksibilitas tetapi tidak dirancang untuk pencetakan jaringan dan lebih rumit untuk diatur.

Di bawah sistem spooling SVR4, lpperintah menerima data yang akan dicetak, membuat salinannya di direktori spool yang terkait dengan tujuan. Tujuan terdiri dari nama printer dan spesifikasi opsional dari kelas tempat printer tersebut berada. Ketika printer yang ditentukan sibuk pekerjaan dikirim ke printer lain di kelas yang sama. Direktori spool biasanya /var/spool/lp/request/printer-namedan file cetak diberi nama unik untuk mengidentifikasi pekerjaan dan pengguna.

Akses ke printer dikendalikan oleh lpscheddaemon. Itu mengambil pekerjaan dari direktori spool dan mengirimkannya ke tujuan yang tepat ketika tersedia. lpsched juga menyimpan log, biasanya di /usr/spool/lp/log. File log akan menunjukkan kesalahan dalam memproses pekerjaan cetak, serta nama pengguna,

Lihat juga: Printer dan spooler printer - lp, lpstat dan batalkan perintah | Tip & Trik untuk Blog IT

Anthony G - keadilan untuk Monica
sumber
3
Senang menyebutkan sumber Anda ...
Stephen Kitt
Saya belum selesai ;-)
3
Saya sarankan menggunakan format Markdown untuk memperjelas teks mana yang milik Anda dan mana yang dikutip. Anda juga harus menghargai penulis asli, Jeff Lessem seperti yang dijelaskan di unix.stackexchange.com/help/referencing
Anthony G - justice for Monica
4

Jangan pernah lupa bahwa spool adalah singkatan S imultaneous P eripheral O perations O n L ine. Sejak awal (tetapi bukan yang paling awal) komputasi, prosesor menghasilkan hasil yang lebih cepat daripada yang dapat dicetak oleh printer. Tanpa spooling, prosesor tidak dapat menyelesaikan "pekerjaan cetak" sampai pencetakan itu sendiri selesai. Ini sering menghasilkan prosesor yang tidak digunakan, menunggu printer.

Sebuah lompatan besar ke depan dalam spooling terjadi selama program luar angkasa Amerika. Komputer menghasilkan hasil terlalu lambat, sehingga sistem spooling baru ditulis hanya untuk NASA (meskipun itu dan penerusnya memperoleh popularitas sampai semua sistem IBM memilikinya). Itu disebut H ouston A utogram S pooling P utomatic , menjadikan HASP sebagai singkatan pertama.

Analogi yang baik untuk spooling adalah pabrik thread - thread berputar dengan kecepatan tinggi, dan disimpan - di mana lagi - ke spool. Kemudian gulungan benang pada akhirnya dijahitkan pada mesin jahit atau mesin lain, yang beroperasi pada kecepatan yang jauh lebih lambat, di mana ia digunakan untuk membuat produk jadi.

Jennifer
sumber
17
Perhatikan bahwa derivasi "spool" secara luas dianggap sebagai backronym , dan "PDQ" pasti .
chrylis -on strike-
6
Ini jelas sebuah backronym yang dibangun setelah fakta. Menjadi mode untuk menyebarkan desas-desus semacam itu. Banyak dari mereka terdaftar di sini , mungkin sudah waktunya untuk menambahkan "spool" ke dalamnya!
pipa
4
@Jennifer Meskipun IBM tentu saja memiliki program yang disebut SPOOL, dugaan tersebut secara luas, seperti pada tautan Jargon File di atas, bahwa mereka memilih nama itu sebagai semacam permainan kata, atau mengambilnya dari istilah yang ada. Either way, itu mungkin merujuk memuat pekerjaan ke gulungan pita dan kemudian memutarnya kembali. Dalam penggunaan modern, ini tidak mengacu pada produk IBM yang usang atau gulungan rekaman, sehingga seluruh perdebatan agak bersifat akademis dan tangensial untuk pertanyaan tentang apa artinya hari ini.
IMSoP
3
@ Jennifer Yah, saya tidak salah bahwa itu banyak dugaan, bahkan jika orang salah menebaknya. Dan meskipun benar bahwa IBM yang menciptakan istilah tersebut, mengapa mereka memilih kata-kata itu? Apakah mereka menulis nama itu dengan tangan dan kemudian berkata "oh, itu kebetulan, itu mengeja kata bahasa Inggris" - atau lebih mungkin mereka mencari istilah yang tampaknya sesuai untuk fungsi, dan berpikir bahwa "menggabungkan pekerjaan ke rekaman itu "adalah gambar yang bagus?
IMSoP
4
Posting ini akan mendapat manfaat besar dari kutipan, khususnya untuk klaim etimologisnya.
TemporalWolf
3

Spooling adalah istilah sekolah yang cukup lama. Saat ini Anda akan melihat "Cetak Antrian" lebih sering digunakan.

To Queue adalah pepatah Inggris untuk "mengantri". Jadi pekerjaan cetak "antri", yaitu menunggu dalam antrean untuk mencetak.

Setelah pekerjaan selesai spooling (mungkin ada waktu "berpikir" lama di antara garis-garis cetak), kemudian dicetak, umumnya dalam basis FIFO tetapi prioritas Pekerjaan Cetak dapat menimpanya.

Kumparan dan antrian cetak dapat dijeda untuk Operator untuk mengganti kertas. Ini juga dapat dimulai kembali jika beberapa halaman rusak.

WinEunuuchs2Unix
sumber