Answers:
甲打印假脱机是一个有效的缓冲液,每个作业管理,与节目(假脱机程序)负责从提交程序并将其进料至一个或多个打印机接收作业。假脱机的重点是处理两个具有不同速度的系统之间的通信,并控制对共享设备的访问。前者意味着程序可以按照需要的速度提交打印作业,而这些作业的处理速度则是打印机可以处理的(或缓慢)。后者(如RonJohn所指出的)确保了作业的连贯处理:因此,在打印时,作业不会混淆。
联网打印机提供自己的线轴,打印服务器(CUPS lpd
等)也实现线轴。大多数打印系统还处理访问控制,配额,标语,打印选项等。例如,基于磁带的备份服务器现在将基于网络的主机上的备份数据假脱机到基于磁盘的快速存储系统上,这样它们就可以以极高的速度馈送现代磁带驱动器,从而避免了磁带擦光。
在评论的上下文中,假脱机的相关性在于它使打印作业提交与完成无关。不假脱机意味着提交将仅与打印作业一起完成,因此您的lpr
命令仅在作业完成后才完成。尽管卸下打印机上的线轴可能也不会达到预期效果,因为打印机本身也可能会线轴!
/var/spool/mail
或类似位置使用邮件后台处理程序。这也是允许接近异步发送邮件消息的“缓冲区”。邮件消息被假脱机/排队,并且邮件客户端不必等待邮件实际离开系统。非常像印刷工作。
write
将数据写入使用的任何缓冲区(在Linux中,页面高速缓存)后立即完成,而不是一旦数据真正到达目的地就完成。read
也不一定非阻塞,并且返回的数据可能少于请求的数据。
lpr
等待打印机完成接受作业,在完全处理之前仍然会有延迟。
简而言之,后台打印程序包括:
在您的情况下,前台程序(lpr
)将其打印作业发送到cups
,然后将其存储,然后使用串行,并行,USB,网络,...通信实际开始打印过程。
因此,这就是为什么即使当打印机纸张用完时,您仍然可以继续使用计算机,而回到我小时候使用CP / M时,整个计算机都被锁定,直到您添加更多纸张为止。
为什么称其为“假脱机”?
因为在那个时代,大型计算机使用磁盘来存储这类文件,因为磁盘太昂贵了,所以当您在数据中心内部工作时,您会听到的第一件事是磁带开始旋转¹ 3-4打印机将开始打印(如果幸运的话)。;-)
注1: “线轴”是一个名词,意为“可以在其上缠绕磁带的圆柱形设备”,因此“绕线”是指圆柱形设备旋转并缠绕磁带的过程...
首先,让我们从“假脱机”一词的含义开始:有时文档的大小大于打印机的内存,因此“打印机假脱机”允许将多个文档发送到打印机并将所有这些文档放入队列。
现在,在Unix下有两个打印系统:
lpd
守护程序安排打印作业。lpsched
用作调度程序。杰夫· 莱瑟姆( Jeff Lessem)的USAIL:Unix系统管理独立学习的一章介绍了Unix下的打印,它很好地概述了BSD和SVR4系统:
在BSD后台打印系统
扩展到大型异构网络,允许许多计算机共享打印机。
在BSD假脱机系统下,对打印机的访问由
lpd
守护程序和lpr
程序控制。lpr
是BSD系统上唯一可以将文件排队打印的程序。
lpr
接受要打印的数据,将其放在假脱机目录中,并通知lpd
守护程序。对于每个打印作业,lpr
在假脱机目录中创建两个文件,即控制文件(cfxxx)和数据文件(dfxxx),xxx表示唯一的作业ID。控制文件包含用于处理打印作业的信息,包括所有者的身份。数据文件包含要打印的实际数据。该
lpd
守护程序检查的/etc/printcap
文件,以确定目标打印机。如果目标打印机是本地设备,请lpd
确保lpd
该打印队列上正在运行守护程序的副本。否则,lpd
将打开与打印机连接的远程主机的连接,并将控制文件和数据文件都传输到该主机。打印作业是按
lpd
先进先出(FIFO)计划的。但是,系统管理员可以使用lpc命令来更改打印队列中作业的优先级。
Solaris和HP-UX使用SVR4假脱机系统。它提供了更多的控制和灵活性,但不是为网络打印而设计的,并且设置起来更加复杂。
在SVR4假脱机系统下,该
lp
命令接受要打印的数据,并在与目标相关联的假脱机目录中进行复制。目标由打印机名称和打印机所属类的可选规范组成。当指定的打印机繁忙时,作业将被发送到同一类别的另一台打印机。假脱机目录通常是/var/spool/lp/request/printer-name
并且打印文件具有唯一的名称,以标识作业和用户。对打印机的访问由
lpsched
守护程序控制。它从假脱机目录中拾取作业,并在可用时将其发送到适当的目的地。lpsched通常也保存一个日志/usr/spool/lp/log
。日志文件会指出在处理打印作业时出现的任何错误,以及用户名,
不会忘记,SPOOL为的缩写小号 imultaneous P eripheral ø perations ö Ñ 大号 INE。由于计算的早期(但不是最早),处理器产生的结果要比打印机打印的结果快。没有假脱机,处理器将无法完成“打印作业”,直到打印本身完成。这通常导致处理器闲置,等待打印机。
在美国太空计划期间,线轴技术有了一个巨大的飞跃。这些计算机产生的结果太慢了,因此只为NASA编写了一个新的假脱机系统(尽管它及其后继者越来越流行,直到所有IBM系统都拥有它们为止)。这就是所谓的ħ ouston 甲 utomatic 小号池P rogram,使得HASP第一嵌套缩写。
假脱机是一个很好的类比:线程工厂-线程以快速的速度旋转,然后在其他位置存储到假脱机中。然后,线轴最终被放到缝纫机或其他机器上,该机器以慢得多的速度运行,用于制造成品。
假脱机是一个相当古老的学期。如今,您会看到“打印队列”的使用频率更高。
To Queue是英国人所说的“排队等候”。因此,将打印作业“排队”,即排队等待打印。
作业完成后台处理后(在打印行之间可能会有较长的“思考”时间),然后通常以FIFO为基础进行打印,但“打印作业”优先级可以覆盖它。
可以暂停打印线轴和队列,以便操作员更换纸张。如果某些页面已损坏,也可以重新启动。