Haw*_*ken 5 printer printing network-printer queue
我很难找到有关打印机实际处理打印数据的任何实际信息。
据我所知,所有操作系统都有一个“打印队列”,它似乎按照请求的顺序将打印的文档缓冲到打印机。
在使用网络打印机之前,我会想象实际的打印机几乎是从连接的机器逐行发送数据的。
现在有了网络打印机,这个想象中的模型就分崩离析了。我假设现代打印机只是从操作系统接收一个 postscript(或一些其他打印格式)文档,将其保存在内存中并从中打印。
问题是,如果打印机可以接收多个文档,操作系统打印队列意味着什么?
操作系统打印队列没有向我们显示其他机器正在打印的内容,因为它是本地缓冲区。所以这一定意味着打印机有一个板载队列吗?那么,如果我们看不到其他正在打印的内容,为什么我们还要打印队列呢?
关于打印机在没有串行电缆的情况下如何实际工作的任何信息都会有所帮助,但要使其成为一个有效的问题:
如果每台机器都不知道其他机器也在打印这一事实,那么打印机如何从多台机器打印文档?
文件是如何传送到打印机的?
大多数打印协议支持哪些类型的信息?
我问最后一个问题,因为在我自己的大炮上似乎要求墨水量,就好像它是打印作业一样:
printing: supply levels
Run Code Online (Sandbox Code Playgroud)
我还听说过 HP 打印机使用“假”打印作业来发送固件更新。
据我所知,所有操作系统都有一个“打印队列”,它似乎按照请求的顺序将打印的文档缓冲到打印机。
“打印队列”是打印机服务/守护程序的可见部分,它最初是一个名为 SPOOL(用于在线同步外围操作)的程序,例如用于在 IBM 360 大型机上运行的 HASP/OS360 操作系统。(IMO SPOOL 是最好的首字母缩略词之一,因为它也是一个英语单词(名词和动词),可用作类比来描述打印机服务的工作方式。)
在使用网络打印机之前,我会想象实际的打印机几乎是从连接的机器逐行发送数据的。
确实,不需要“几乎”。
现在有了网络打印机,这个想象中的模型就分崩离析了。我假设现代打印机只是从操作系统接收一个 postscript(或一些其他打印格式)文档,将其保存在内存中并从中打印。
仅接受纯文本的“行式打印机”或“哑”打印机基本上已经过时,已被接受某种类型的页面描述语言(例如 Postscript、PCL)输入的“页面打印机”所取代。由于更多的数据不仅仅是页面的文本,即 PDL 形式的完整页面,必须发送到打印机,“Centronics”并行端口和 RS-232 串行等旧接口已被 USB 和以太网(有线和无线)。
请注意,拥有以太网接口并将其称为“网络打印机”并不意味着它可以像联网的“打印服务器”一样运行。在“点对点”模式下配置的“网络打印机”实际上需要在每台想要使用该打印机的 PC 上安装“打印机驱动程序”。然后,该“网络打印机”实际上作为本地打印机安装到 PC,但通过网络连接协商和使用该打印机。打印到“网络打印机”的作业必须像其它本地打印机的作业一样保存在本地队列中。
页面打印机不会发送整个文档(如您想象的那样),而是一次发送一个“页面”。当然,“页面”将采用 PDL 形式,并且可以分解为行和数据包,具体取决于传输介质。由于这些是页式打印机而不是打印机服务器,因此没有大容量存储(即硬盘驱动器),并且必须将每个“页面”保存在本地内存中,直到打印出来。当打印机上有更多可用内存时,PC 将采用“流量控制”协议(又名握手)来传输页面片段或页面。
问题是,如果打印机可以接收多个文档,操作系统打印队列意味着什么?
除非你真的有一个大容量存储的打印服务器(例如一个硬盘驱动器),否则“网络打印机”真的不能接受一个完整的或多个文档,除非它们都小到可以放入打印机的 RAM 中。必须使用 PC 的打印机队列来订购和存储源自 PC 的待处理打印作业。使用该“网络打印机”的网络上的每台 PC 都必须争夺该共享打印机。“网络打印机”可以维护它自己的来自所有 PC 的作业请求队列,或者至少是哪些 PC 正在请求服务。请注意,在打印机准备好开始该作业之前,它只会知道请求,而不会保存任何页面数据(仍在每台 PC 上)。
如果您确实有打印服务器,那么本地队列只是打印作业进入打印机服务器队列之前的一个中间步骤。
操作系统打印队列没有向我们显示其他机器正在打印的内容,因为它是本地缓冲区。所以这一定意味着打印机有一个板载队列吗?那么,如果我们看不到其他正在打印的内容,为什么我们还要打印队列呢?
希望打印机有一个请求队列来维护先来先打印的作业列表。否则,一台 PC 可能会被其他 PC 挤出。您仍然需要本地队列,因为这仍然是您在本地 PC 上提交打印作业的方式。除非您有一个真正的网络打印服务器和大容量存储来保存您的打印作业,否则您的打印作业将必须驻留在您的本地 PC 上,直到它可以被移动。向打印机(或服务器)制造商咨询基于网络的应用程序或浏览工具,以查询打印机(或服务器)的队列/状态。
如果每台机器都不知道其他机器也在打印这一事实,那么打印机如何从多台机器打印文档?
这是计算机科学中常见的资源分配问题:多个用户/消费者争夺一个资源。在这种情况下(没有复杂性),打印机或服务器可以接收每个请求,然后按某种顺序对它们进行优先级排序。流量控制将确保打印机不会过载。另一种可能的解决方案(简化打印机的工作量)是令牌传递方案。收到“令牌”的 PC 被授权使用打印机完成一项工作。在打印完一项作业后,该 PC 必须将令牌传递给另一台在其队列中有作业的 PC。
| 归档时间: |
|
| 查看次数: |
11156 次 |
| 最近记录: |