
我很難找到有關印表機如何實際處理列印資料的任何實際資訊。
據我所知,所有作業系統都有一個“列印佇列”,它似乎按照請求的順序將列印的文件緩衝到印表機。
在網路印表機出現之前,我想像實際的印表機幾乎是從連接的機器逐行發送資料的。
現在有了網路印表機,這個想像的模型就分崩離析了。我假設現代印表機只是從作業系統接收後記(或其他列印格式)文檔,將其保存在記憶體中並從中列印。
問題是,如果印表機可以接收多個文檔,作業系統列印佇列意味著什麼?
作業系統列印佇列不會向我們顯示其他機器正在列印的內容,因為它是本機緩衝區。那麼這一定意味著印表機有一個板載隊列,對嗎?那麼,如果我們看不到正在列印的其他內容,為什麼還要有列印佇列呢?
任何有關當今印表機在沒有串行電纜的情況下如何實際工作的信息都會有所幫助,但為了使這個問題成為一個有效的問題:
如果每台機器都不知道其他機器也在列印,印表機如何從多台機器列印文件?
文檔如何傳輸到印表機?
大多數列印協議支援哪些類型的信息?
我問最後一個問題是因為在我自己的大砲上似乎要求墨水量,就好像它是列印作業一樣:
printing: supply levels
我還聽說惠普印表機使用“假”列印作業來發送韌體更新。
答案1
據我所知,所有作業系統都有一個“列印佇列”,它似乎按照請求的順序將列印的文件緩衝到印表機。
「列印佇列」是印表機服務/守護程序的可見部分,最初是名為 SPOOL(線上同時外圍操作)的程序,例如用於在 IBM 360 大型主機上執行的 HASP/OS360 作業系統。 (IMO SPOOL 是最好的首字母縮寫之一,因為它也是一個英語單字(名詞和動詞),可以用來類比描述印表機服務的工作原理。)
在網路印表機出現之前,我想像實際的印表機幾乎是從連接的機器逐行發送資料的。
確實,不需要「幾乎」。
現在有了網路印表機,這個想像的模型就分崩離析了。我假設現代印表機只是從作業系統接收後記(或其他列印格式)文檔,將其保存在記憶體中並從中列印。
僅接受純文字的「行式印表機」或「啞」印表機基本上已經過時,已被接受某種類型輸入的「頁式印表機」取代。頁面描述語言(例如 Postscript、PCL)。由於必須將更多資料傳送至印表機,而不僅僅是頁面文字(即 PDL 形式的完整頁面),因此「Centronics」並行連接埠和 RS-232 序列等舊介面已被 USB 和 RS-232 介面取代。乙太網路(有線和無線)。
請注意,擁有乙太網路介面並將其稱為“網路印表機”並不意味著它可以像網路“列印伺服器”一樣運作。配置為「對等」模式的「網路印表機」實際上需要在每台想要使用該印表機的PC上安裝「印表機驅動程式」。然後,該「網路印表機」實際上會作為本機印表機安裝到 PC,但透過網路連接協商和使用該印表機。傳送到「網路印表機」的列印作業必須保留在本機佇列中,就像傳送到其他本機印表機的作業一樣。
頁面印表機不會傳送整個文件(如您想像的那樣),而是一次發送一個「頁面」。當然,「頁面」將採用 PDL 形式,並且可以分解為行和資料包,具體取決於傳輸媒體。由於這些是頁面印表機而不是印表機伺服器,因此沒有大容量儲存(即硬碟),並且必須將每個「頁面」保存在本機記憶體中直到列印為止。當印表機上有更多可用記憶體時,PC 將採用「流控制」協定(也稱為握手)來傳輸頁面片段或頁面。
問題是,如果印表機可以接收多個文檔,作業系統列印佇列意味著什麼?
除非您確實擁有具有大容量儲存(例如硬碟)的列印伺服器,否則「網路印表機」實際上無法接受完整或多個文檔,除非它們都足夠小以適合印表機的 RAM。必須使用 PC 的印表機佇列來排序和儲存來自 PC 的待處理列印作業。網路上使用該「網路印表機」的每台 PC 都必須爭奪該共用印表機。 「網路印表機」可以維護自己的來自所有 PC 的作業請求佇列,或至少維護哪些 PC 正在要求服務。請注意,它只會知道請求,而不會保留任何頁面資料(仍在每台 PC 上),直到印表機準備好開始該作業。
如果您確實有列印伺服器,那麼本機佇列只是列印作業最終進入印表機伺服器佇列之前的中間步驟。
作業系統列印佇列不會向我們顯示其他機器正在列印的內容,因為它是本機緩衝區。那麼這一定意味著印表機有一個板載隊列,對嗎?那麼,如果我們看不到正在列印的其他內容,為什麼還要有列印佇列呢?
希望印表機有一個請求佇列來維護先到先列印的作業清單。否則一台電腦可能會被其他電腦擠出。您仍然需要本機佇列,因為這仍然是您在本機 PC 上提交列印作業的方式。除非您有真正的網路列印伺服器,具有大容量儲存空間來保存您的列印作業,否則您的列印作業將必須駐留在本機 PC 上,直到您可以移動為止。請諮詢印表機(或伺服器)的製造商,以取得網路為基礎的應用程式或瀏覽工具來查詢印表機(或伺服器)的佇列/狀態。
如果每台機器都不知道其他機器也在列印,印表機如何從多台機器列印文件?
這是電腦科學中常見的資源分配問題:多個使用者/消費者爭奪一種資源。在這種情況下(沒有複雜性)印表機或伺服器可以接收每個請求,然後以某種順序確定它們的優先順序。流量控制將確保印表機不會過載。另一個可能的解決方案(簡化印表機的工作量)是令牌傳遞方案。收到「令牌」的 PC 被授權使用印表機執行一項作業。列印完一個作業後,該 PC 必須將令牌傳遞給佇列中有作業的另一台 PC。