ระวิงหมายถึงอะไรสำหรับการพิมพ์?


18

มาร์คเขียนความคิดเห็นสำหรับฉัน

ฉันไม่รู้ว่าจะทำอย่างไรให้ถ้วยไม่ใช่สปูลนั่นคือวิธีทำให้คำสั่ง lpr จบการทำงานหลังจากที่ไดรเวอร์เครื่องพิมพ์ทำงานเท่านั้น

"สปูล" สำหรับการพิมพ์หมายถึงอะไร

Google บอกว่ามันเป็นคำกริยาหมายถึง "ส่ง (ข้อมูลที่มีไว้สำหรับการพิมพ์หรือการประมวลผลบนอุปกรณ์ต่อพ่วง) ไปยังร้านค้าระดับกลาง" อะไรคือร้านค้าระดับกลางที่สปูลการพิมพ์แสดงให้เห็นเช่นเมื่อพิมพ์โดยlprคำสั่ง

ดูเหมือนว่ามาร์คจะเกี่ยวข้องกับความหมายของสปูลด้วยการบล็อก แต่ฉันไม่สามารถหาคำตอบได้จากการดูคำจำกัดความของ Google

ขอบคุณ

คำตอบ:


12

ระวิงพิมพ์ได้อย่างมีประสิทธิภาพบัฟเฟอร์จัดการต่องานด้วยโปรแกรม (ตัวจัดคิว) รับผิดชอบในการรับงานจากการส่งโปรแกรมและให้อาหารพวกเขาไปยังเครื่องพิมพ์หนึ่งหรือมากกว่า จุดเก็บพักคือการจัดการการสื่อสารระหว่างสองระบบด้วยความเร็วที่แตกต่างกันและเพื่อควบคุมการเข้าถึงอุปกรณ์ที่ใช้ร่วมกัน โปรแกรมก่อนหน้านี้หมายถึงสามารถส่งงานพิมพ์ได้เร็วเท่าที่ต้องการและงานเหล่านั้นจะได้รับการจัดการอย่างรวดเร็ว (หรือช้า) ตามที่เครื่องพิมพ์สามารถจัดการได้ หลัง (ตามที่ชี้ให้เห็นโดยRonJohn ) เพื่อให้แน่ใจว่างานจะถูกจัดการเป็นตุเป็นตะ: ดังนั้นเมื่อพิมพ์งานไม่ได้ผสมขึ้น

เครื่องพิมพ์เครือข่ายจะมีสปูลของตนเองและเซิร์ฟเวอร์การพิมพ์ (CUPS และlpdอื่น ๆ ) ก็ใช้สปูลด้วยเช่นกัน ระบบการพิมพ์ส่วนใหญ่จัดการกับการควบคุมการเข้าถึงโควต้าแบนเนอร์ตัวเลือกการพิมพ์ ฯลฯ สิ่งของที่ใช้ในบริบทอื่น ๆ ; ตัวอย่างเช่นเซิร์ฟเวอร์สำรองที่ใช้เทปในขณะนี้สปูลข้อมูลสำรองจากโฮสต์ในเครือข่ายบนระบบจัดเก็บข้อมูลบนดิสก์ที่รวดเร็วดังนั้นพวกเขาจึงสามารถป้อนเทปไดรฟ์ที่ทันสมัยด้วยความเร็วมหาศาลที่พวกเขาต้องการเพื่อหลีกเลี่ยงเทปขัดรองเท้า

ในบริบทของความคิดเห็นความเกี่ยวข้องของสปูลคือมันสัมพันธ์กับการส่งงานพิมพ์จากการเติมเต็ม การสพูลไม่ใช่หมายความว่าการส่งจะเสร็จสมบูรณ์กับงานพิมพ์เท่านั้นและlprคำสั่งของคุณจะเสร็จสมบูรณ์เมื่องานเสร็จสมบูรณ์เท่านั้น การลบสปูลออกจากคอมพิวเตอร์ของคุณอาจไม่ได้ผลลัพธ์ตามที่ต้องการเนื่องจากเครื่องพิมพ์นั้นอาจสปูลด้วยเช่นกัน!


1
ส่วนใดของความหมายของ "สปูล" ที่ทำให้มันใช้ไม่ได้กับบัฟเฟอร์ IO ของเคอร์เนล Linux
ทิม

3
ระบบอีเมลมักจะใช้สปูลจดหมายภายใต้/var/spool/mailหรือตำแหน่งที่คล้ายกัน นอกจากนี้ยังเป็น "บัฟเฟอร์" เพื่ออนุญาตให้ใกล้ถึงการส่งข้อความอีเมลแบบอะซิงโครนัส ข้อความเมลถูกสพูล / เข้าคิวและเมลไคลเอ็นต์ไม่ต้องรอให้เมลออกจากระบบจริง เหมือนงานพิมพ์มาก ๆ
Kusalananda

1
@ มันไม่ใช่คำถามที่ว่ามันใช้งานได้จริงหรือเปล่า แต่มันก็ไม่ได้เรียกว่าสปูล โดยทั่วไปแล้วบัฟเฟอร์ส่งผลให้การดำเนินการป้อนเข้าสู่บัฟเฟอร์เป็น nonblocking: writeเสร็จสิ้นทันทีที่ข้อมูลถูกเขียนลงในบัฟเฟอร์ใดก็ตามที่ใช้ (ใน Linux, แคชหน้า) ไม่ใช่เมื่อข้อมูลอยู่ที่ปลายทางจริงๆ readไม่จำเป็นต้องไม่ปิดกั้นเช่นกันและสามารถส่งคืนข้อมูลน้อยกว่าที่ร้องขอ
Stephen Kitt

1
โปรดทราบว่า - นอกเหนือจากการจัดการ "การสื่อสารระหว่างสองระบบด้วยความเร็วที่แตกต่างกัน" - สิ่งของจะทำให้การเข้าถึงอุปกรณ์เหล่านั้นช้าลง (คุณสามารถจินตนาการได้ว่ามันจะแย่แค่ไหนสำหรับหลาย ๆ งานที่ต้องเขียนไปยังเครื่องพิมพ์หรือโมเด็มในเวลาเดียวกัน ... )
RonJohn

1
โดยทั่วไปจะมีการจัดเก็บสปูลบนดิสก์ทุกที่ที่เซิร์ฟเวอร์การพิมพ์โฮสต์อยู่ เมื่อฉันบอกว่าเครื่องพิมพ์ยังสามารถมีสปูลของตัวเองได้ตามปกติจะเป็นกรณีของเครื่องพิมพ์“ เครือข่าย” (ซึ่งเชื่อมต่อกับเครือข่ายมากกว่าไปยังคอมพิวเตอร์เฉพาะ) พวกเขาโฮสต์เซิร์ฟเวอร์การพิมพ์ของตัวเองและต้องจัดการงานที่เข้ามาหลายงาน (ซึ่งพวกเขาทำโดยมีสปูลของตัวเอง) เมื่อเครื่องพิมพ์มีสปูลของตัวเองก็สามารถรับงานพิมพ์ได้เร็วกว่าที่จะพิมพ์ดังนั้นแม้ว่าจะlprรอให้เครื่องพิมพ์รองานพิมพ์จนเสร็จสิ้น
Stephen Kitt

36

สรุปตัวจัดคิวประกอบด้วย:

  • โปรแกรมพื้นหลัง
  • ไดเรกทอรีต่อเครื่องพิมพ์
  • ไฟล์ต่องานพิมพ์

ในกรณีของคุณโปรแกรมโฟร์กราวน์ ( lpr) จะส่งงานพิมพ์ไปcupsที่ซึ่งจัดเก็บและใช้การสื่อสารแบบอนุกรม, ขนาน, USB, เครือข่าย, ... เพื่อเริ่มกระบวนการพิมพ์จริง

นั่นคือเหตุผลที่ทุกวันนี้แม้ว่าเครื่องพิมพ์จะหมดกระดาษคุณยังสามารถใช้คอมพิวเตอร์ของคุณต่อไปได้ แต่เมื่อฉันยังเป็นเด็กใน CP / M คอมพิวเตอร์ทั้งหมดจะถูกล็อกจนกว่าคุณจะเพิ่มกระดาษอีก ...

เหตุใดจึงเรียกว่า "การสปูลลิ่ง"

เพราะในสมัยนั้นคอมพิวเตอร์ขนาดใหญ่ใช้เทปในการจัดเก็บไฟล์ประเภทนี้เนื่องจากดิสก์มีราคาแพงเกินไปดังนั้นเมื่อคุณทำงานในศูนย์ข้อมูลสิ่งแรกที่คุณจะได้ยินคือเทปเริ่มหมุนและหลังจากนั้นไม่นาน 3-4 เครื่องพิมพ์จะเริ่มพิมพ์ (ถ้าคุณโชคดี) ;-)

หมายเหตุ 1: "สปูล" เป็นคำนามความหมาย "อุปกรณ์รูปทรงกระบอกที่เทปแม่เหล็กสามารถบาดแผล" ดังนั้น "สปูล" จึงเป็นอุปกรณ์รูปทรงกระบอกที่หมุนและม้วนเทป ...


5
โดยตรง "spool" เป็นคำนามความหมาย "อุปกรณ์รูปทรงกระบอกที่เทปแม่เหล็กสามารถบาดแผล"
Stop Harming Monica

1
@OrangeDog: รวมเป็นคำตอบขอบคุณ! :-)
Fabby

2
+1 ไม่เคยรู้ว่าคำว่า "สปูล" มาจากที่ใด
Joe

@Joe เหตุผลเดียวกันที่เด็ก ๆ ทุกวันนี้ไม่รู้ว่าปุ่มบันทึกนั้นหมายถึงอะไรจริง ๆ เพราะพวกเขาไม่เคยเห็น Diskette / Floppy / Stiffy / ... > :-)
Fabby

5

อันดับแรกให้เริ่มด้วยความหมายของคำว่า“ การสปูลลิ่ง”: บางครั้งขนาดของเอกสารมีขนาดใหญ่กว่าหน่วยความจำของเครื่องพิมพ์ดังนั้น“ การสพูลเครื่องพิมพ์” ช่วยให้สามารถส่งเอกสารหลายฉบับไปยังเครื่องพิมพ์และวางเอกสารทั้งหมดในคิว

ตอนนี้ภายใต้ระบบปฏิบัติการ Unix มีสองระบบการพิมพ์:

  1. ระบบการสพูล BSD ใช้lpddaemon เพื่อกำหนดเวลางานพิมพ์
  2. ระบบการสพูล SVR4 ใช้lpschedเป็นตัวกำหนดตารางเวลา

USAILของ Jeff Lessem : การเรียนรู้แบบอิสระเกี่ยวกับการบริหารระบบ Unixมีหัวข้อการพิมพ์ภายใต้ Unixซึ่งให้ภาพรวมที่ดีของทั้งระบบ BSD และ SVR4:

ระบบ BSD แกน

ขยายไปถึงเครือข่ายขนาดใหญ่ที่แตกต่างกันทำให้คอมพิวเตอร์หลายเครื่องใช้เครื่องพิมพ์ร่วมกัน

ภายใต้ระบบการสพูล BSD การเข้าถึงเครื่องพิมพ์ถูกควบคุมโดยlpd daemon และlprโปรแกรม lprเป็นโปรแกรมเดียวในระบบ BSD ที่สามารถจัดคิวไฟล์สำหรับการพิมพ์

lprยอมรับข้อมูลที่จะพิมพ์วางไว้ในไดเร็กทอรีการสพูลและแจ้งlpddaemon สำหรับงานพิมพ์แต่ละงานlprสร้างสองไฟล์ไฟล์ควบคุม (cfxxx) และไฟล์ข้อมูล (dfxxx) ในไดเรกทอรีสปูล xxx แสดงถึง job-id ที่ไม่ซ้ำกัน ไฟล์ควบคุมประกอบด้วยข้อมูลสำหรับการจัดการงานพิมพ์รวมถึงข้อมูลประจำตัวของเจ้าของ ไฟล์ข้อมูลมีข้อมูลจริงที่จะพิมพ์

lpdภูตตรวจสอบ/etc/printcapไฟล์เพื่อระบุเครื่องพิมพ์ปลายทาง หากเครื่องพิมพ์ปลายทางเป็นอุปกรณ์ท้องถิ่น lpdให้ตรวจสอบว่าสำเนาlpddaemon ทำงานบนคิวการพิมพ์นั้น มิฉะนั้นจะlpdเปิดการเชื่อมต่อไปยังรีโมตโฮสต์ที่เครื่องพิมพ์เชื่อมต่ออยู่และถ่ายโอนทั้งไฟล์ควบคุมและไฟล์ข้อมูลไปยังเครื่องพิมพ์

งานพิมพ์ถูกกำหนดเวลาโดยlpdใช้พื้นฐานแบบเข้าก่อนออกก่อน (FIFO) อย่างไรก็ตามผู้ดูแลระบบอาจใช้คำสั่ง lpc เพื่อเปลี่ยนลำดับความสำคัญของงานในคิวการพิมพ์

ระบบสปูล SVR4นั้นใช้โดย Solaris และ HP-UX ให้การควบคุมและความยืดหยุ่นที่มากขึ้น แต่ไม่ได้ออกแบบมาสำหรับการพิมพ์ผ่านเครือข่ายและมีความซับซ้อนในการติดตั้ง

ภายใต้ระบบการจัดเก็บ SVR4 lpคำสั่งยอมรับข้อมูลที่จะพิมพ์ทำสำเนาของมันในไดเรกทอรีเก็บพักที่เกี่ยวข้องกับปลายทาง ปลายทางประกอบด้วยชื่อเครื่องพิมพ์และข้อกำหนดทางเลือกของคลาสที่เป็นเจ้าของเครื่องพิมพ์ เมื่อเครื่องพิมพ์ที่ระบุไม่ว่างงานจะถูกส่งไปยังเครื่องพิมพ์อื่นในระดับเดียวกัน ไดเร็กทอรีสพูลปกติแล้ว/var/spool/lp/request/printer-nameและไฟล์การพิมพ์จะได้รับชื่อเฉพาะเพื่อระบุทั้งงานและผู้ใช้

การเข้าถึงเครื่องพิมพ์ถูกควบคุมโดยlpscheddaemon มันรับงานจากไดเรกทอรี spool และส่งไปยังปลายทางที่เหมาะสมเมื่อมันพร้อมใช้งาน lpsched ยังเก็บบันทึกโดยปกติ/usr/spool/lp/logเป็น ไฟล์บันทึกจะระบุข้อผิดพลาดใด ๆ ในการประมวลผลงานพิมพ์รวมถึงชื่อผู้ใช้

ดูเพิ่มเติมที่: เครื่องพิมพ์และสพูลเลอร์เครื่องพิมพ์ - lp, lpstat และคำสั่งยกเลิก เคล็ดลับ & เทคนิคสำหรับบล็อกของไอที


3
เป็นเรื่องดีที่จะกล่าวถึงแหล่งที่มาของคุณ ...
สตีเฟ่น Kitt

ฉันยังไม่เสร็จ ;-)

3
ฉันขอแนะนำให้ใช้การจัดรูปแบบ Markdown เพื่อให้ชัดเจนว่าข้อความใดเป็นของคุณเอง คุณควรให้เครดิตผู้เขียนต้นฉบับ Jeff Lessem ตามที่อธิบายไว้ในunix.stackexchange.com/help/referencing
Anthony G - ความยุติธรรมสำหรับ Monica

4

อย่าลืมว่าSPOOLเป็นตัวย่อของS imultaneous P eritionsal O perations O n L ine ตั้งแต่ช่วงต้นของการคำนวณ (แต่ไม่เร็วที่สุด) ตัวประมวลผลจะสร้างผลลัพธ์ที่เร็วกว่าเครื่องพิมพ์ที่สามารถพิมพ์ได้ โปรเซสเซอร์จะไม่สามารถ "พิมพ์งาน" จนเสร็จสิ้นการพิมพ์ สิ่งนี้มักทำให้โปรเซสเซอร์ไม่ได้ใช้งานและกำลังรอเครื่องพิมพ์

ก้าวกระโดดครั้งใหญ่ในการสปูลลิ่งเกิดขึ้นระหว่างโครงการอวกาศของอเมริกา คอมพิวเตอร์สร้างผลลัพธ์ช้าเกินไปดังนั้นระบบ spooling ใหม่จึงถูกเขียนขึ้นสำหรับ NASA เท่านั้น (ถึงแม้ว่ามันและผู้สืบทอดจะได้รับความนิยมจนกระทั่งระบบ IBM ทั้งหมดมีก็ตาม) มันถูกเรียกว่าH ouston A utomatic SรวมP rogram ทำให้HASPเป็นตัวย่อซ้อนตัวแรก

การเปรียบเทียบที่ดีในการสปูลคือโรงงานด้าย - เธรดจะหมุนด้วยอัตราที่รวดเร็วและเก็บไว้ที่อื่น จากนั้นแกนม้วนด้ายจะถูกนำไปวางไว้บนจักรเย็บผ้าหรือเครื่องจักรอื่น ๆ ซึ่งจะทำงานในอัตราที่ช้ากว่ามากซึ่งใช้ในการสร้างผลิตภัณฑ์สำเร็จรูป


17
โปรดทราบว่าการได้มาของ "สปูล" นั้นถือเป็น backronym อย่างกว้างขวางและ "PDQ" เป็นสิ่งที่แน่นอน
chrylis -on strike-

6
เห็นได้ชัดว่ามันเป็นตัวย่อที่สร้างขึ้นหลังจากความจริง มันกลายเป็นแฟชั่นที่แพร่กระจายข่าวลือนี้ไป มีจำนวนมากอยู่ที่นี่อาจถึงเวลาเพิ่ม "สปูล" ลงไป!
ท่อ

4
@Jennifer ในขณะที่ IBM มีโปรแกรมที่เรียกว่า SPOOL แต่ก็มีการคาดเดาอย่างกว้างขวางเช่นเดียวกับในลิงก์ Jargon File ด้านบนพวกเขาเลือกชื่อนั้นเป็นคำสั่ง pun หรือมาจากคำที่มีอยู่ ไม่ว่าจะด้วยวิธีใดก็อาจหมายถึงการโหลดงานลงในระวิงของเทปแล้วเล่นกลับ ในการใช้งานที่ทันสมัยมันไม่ได้หมายถึงผลิตภัณฑ์ของ IBM ที่ล้าสมัยหรือแกนม้วนเทปดังนั้นการอภิปรายทั้งหมดจึงค่อนข้างเป็นเรื่องทางวิชาการ
IMSoP

3
@ เจนนิเฟอร์ฉันไม่ผิดที่มันถูกคาดเดาอย่างกว้างขวางถึงแม้ว่าคนจะคิดผิดก็ตาม และแม้ว่ามันจะเป็นความจริงที่ไอบีเอ็มคิดค้นคำขึ้นมาทำไมพวกเขาถึงเลือกคำเหล่านั้น พวกเขาเขียนชื่อออกมานานแล้วพูดว่า "โอ้นั่นเป็นเรื่องบังเอิญมันสะกดคำภาษาอังกฤษ" - หรือเป็นไปได้มากขึ้นที่พวกเขากำลังมองหาคำที่ดูเหมือนเหมาะสมสำหรับการใช้งานและคิดว่า เทป "เป็นภาพที่ดีหรือไม่?
IMSoP

4
โพสต์นี้จะได้รับประโยชน์อย่างมากจากการอ้างอิงโดยเฉพาะอย่างยิ่งสำหรับการเรียกร้องนิรุกติศาสตร์
TemporalWolf

3

Spooling เป็นเทอมที่ค่อนข้างเก่า ทุกวันนี้คุณจะเห็น "คิวพิมพ์" ใช้บ่อยกว่า

To Queue เป็นภาษาอังกฤษว่า "รอสาย" ดังนั้นงานพิมพ์จึงเป็น "คิว" คือรอการพิมพ์

หลังจากงานเสร็จสิ้นการสพูล (อาจมี "เวลา" คิดนานระหว่างบรรทัดการพิมพ์) จากนั้นจะถูกพิมพ์โดยทั่วไปเป็นแบบ FIFO แต่ลำดับความสำคัญของงานพิมพ์สามารถแทนที่ได้

สปูลและคิวการพิมพ์สามารถหยุดชั่วคราวเพื่อให้ผู้ควบคุมเครื่องเปลี่ยนกระดาษ สามารถเริ่มต้นใหม่หากบางหน้าเสียหาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.