Wie erhalten Drucker Dokumente von Computern? Interne Warteschlange

8483
Hawken

Ich habe Probleme, tatsächliche Informationen darüber zu finden, wie Drucker Druckdaten tatsächlich verarbeiten.

Soweit ich weiß, haben alle Betriebssysteme eine "Druckerwarteschlange", die scheinbar die gedruckten Dokumente in der Reihenfolge, in der sie angefordert wurden, an den Drucker ausgibt.

Vor Netzwerkdruckern könnte ich mir vorstellen, dass der tatsächliche Drucker die Daten fast zeilenweise vom angeschlossenen Gerät gesendet hat.

Mit Netzwerkdruckern fällt dieses imaginäre Modell nun auseinander. Ich gehe davon aus, dass moderne Drucker lediglich ein Postscript- (oder ein anderes Druckformat) -Dokument vom Betriebssystem erhalten, es im Speicher behalten und von dort aus drucken.

Die Frage ist, was bedeutet eine OS-Druckerwarteschlange, wenn der Drucker mehrere Dokumente empfangen kann.

Die Warteschlange des Betriebssystems zeigt uns nichts von dem, was andere Maschinen drucken, da es sich um einen lokalen Puffer handelt. Das heißt also, dass der Drucker eine Onboard-Warteschlange hat? Warum haben wir überhaupt Druckerwarteschlangen, wenn wir nicht sehen können, was sonst noch gedruckt wird?


Jede Information, wie Drucker heutzutage tatsächlich ohne serielle Kabel funktionieren, wäre hilfreich, aber um dies zu einer gültigen Frage zu machen:

Wie drucken Drucker Dokumente von mehreren Geräten aus, wenn jedes Gerät keine Ahnung davon hat, dass auch andere Drucker drucken?

Wie wird das Dokument an den Drucker übermittelt?

Welche Informationen werden von den meisten Druckprotokollen unterstützt?

Ich stelle die letzte Frage, weil auf meiner eigenen Kanone scheinbar der Tintenstand wie bei einem Druckauftrag abzufragen ist:

printing: supply levels 

Ich habe auch gehört, dass HP Drucker "falsche" Druckaufträge verwenden, um ein Firmware-Update zu senden.

4

1 Antwort auf die Frage

6
sawdust

Soweit ich weiß, haben alle Betriebssysteme eine "Druckerwarteschlange", die scheinbar die gedruckten Dokumente in der Reihenfolge, in der sie angefordert wurden, an den Drucker ausgibt.

Die "Druckerwarteschlange" ist der sichtbare Teil des Druckerdienstes / Daemons, der ursprünglich ein Programm namens SPOOL (für Simultaneous Peripheral Operations On-Line) war, beispielsweise für das Betriebssystem HASP / OS360, das auf IBM 360-Mainframes ausgeführt wird. (IMO SPOOL ist eines der besten Akronyme, das geprägt wird, da es sich auch um ein englisches Wort (Nomen und Verb) handelt, das als Analogie für die Funktionsweise des Druckerdienstes verwendet werden kann.)

Vor Netzwerkdruckern könnte ich mir vorstellen, dass der tatsächliche Drucker die Daten fast zeilenweise vom angeschlossenen Gerät gesendet hat.

Richtig, keine Notwendigkeit für das "fast".

Mit Netzwerkdruckern fällt dieses imaginäre Modell nun auseinander. Ich gehe davon aus, dass moderne Drucker lediglich ein Postscript- (oder ein anderes Druckformat) -Dokument vom Betriebssystem erhalten, es im Speicher behalten und von dort aus drucken.

"Zeilendrucker" oder "dumme" Drucker, die nur Klartext akzeptieren, sind im Wesentlichen veraltet, da sie durch "Seitendrucker" ersetzt wurden, die Eingaben in eine Art Seitenbeschreibungssprache (z. B. Postscript, PCL) akzeptieren . Da mehr Daten als nur der Text für die Seite, dh die gesamte Seite in PDL-Form, an den Drucker gesendet werden muss, wurden ältere Schnittstellen wie die parallele Schnittstelle "Centronics" und die serielle RS-232-Schnittstelle durch USB und ersetzt Ethernet (verkabelt und drahtlos).

Wenn Sie über eine Ethernet-Schnittstelle verfügen und diese als "Netzwerkdrucker" bezeichnen, bedeutet dies nicht, dass sie wie ein vernetzter "Druckserver" funktionieren kann. Für den im Peer-to-Peer-Modus konfigurierten "Netzwerkdrucker" muss in jedem PC, der diesen Drucker verwenden möchte, ein "Druckertreiber" installiert werden. Dieser "Netzwerkdrucker" wird dann tatsächlich als lokaler Drucker auf dem PC installiert, verhandelt und verwendet diesen Drucker jedoch über eine Netzwerkverbindung. Druckaufträge an den "Netzwerkdrucker" müssen wie Aufträge an andere lokale Drucker in der lokalen Warteschlange gespeichert werden.

Seitendruckern wird nicht das gesamte Dokument gesendet (wie Sie es sich vorgestellt haben), sondern eine "Seite" zu einem Zeitpunkt. Natürlich wäre die "Seite" in PDL-Form und könnte abhängig vom Übertragungsmedium in Zeilen und Pakete aufgeteilt werden. Da es sich nicht um Druckerserver, sondern um Seitendrucker handelt, gibt es keinen Massenspeicher (dh Festplatte) und muss jede "Seite" im lokalen Speicher aufbewahren, bis sie gedruckt wird. Ein "Flusssteuerungs" -Protokoll (auch bekannt als Handshaking) wäre vorhanden, damit der PC das Seitenfragment oder die Seite übertragen kann, wenn mehr Speicher im Drucker verfügbar ist.

Die Frage ist, was bedeutet eine OS-Druckerwarteschlange, wenn der Drucker mehrere Dokumente empfangen kann.

Wenn Sie nicht über einen Druckserver mit Massenspeicher verfügen (z. B. ein Festplattenlaufwerk), kann der "Netzwerkdrucker" keine vollständigen oder mehrere Dokumente akzeptieren, es sei denn, sie sind klein genug, um in den RAM des Druckers zu passen. Die Druckerwarteschlange des PCs muss verwendet werden, um aus dem PC stammende ausstehende Druckaufträge zu bestellen und zu speichern. Jeder PC im Netzwerk, der diesen "Netzwerkdrucker" verwendet, muss um diesen freigegebenen Drucker kämpfen. Der "Netzwerkdrucker" könnte seine eigene Warteschlange mit Jobanfragen von allen PCs oder zumindest von den PCs, die einen Dienst anfordern, verwalten. Beachten Sie, dass nur Anforderungen erkannt werden und keine Seitendaten (die noch auf jedem PC vorhanden sind) gespeichert werden, bis der Drucker bereit ist, diesen Job zu beginnen.

Wenn Sie wirklich über einen Druckserver verfügen, ist die lokale Warteschlange nur ein Zwischenschritt, bevor der Druckauftrag in der Warteschlange des Druckerservers endet.

Die Warteschlange des Betriebssystems zeigt uns nichts von dem, was andere Maschinen drucken, da es sich um einen lokalen Puffer handelt. Das heißt also, dass der Drucker eine Onboard-Warteschlange hat? Warum haben wir überhaupt Druckerwarteschlangen, wenn wir nicht sehen können, was sonst noch gedruckt wird?

Hoffentlich verfügt der Drucker über eine Anforderungswarteschlange, um eine Auftragsliste mit dem zuerst gedruckten Auftrag anzufordern. Ansonsten könnte ein PC von anderen PCs verdrängt werden. Sie benötigen immer noch eine lokale Warteschlange, da Sie auf diese Weise weiterhin Druckaufträge auf dem lokalen PC senden. Wenn Sie nicht über einen echten Netzwerkdruckserver mit Massenspeicherung für den Druckauftrag verfügen, muss sich der Druckauftrag auf Ihrem lokalen PC befinden, bis er verschoben werden kann. Erkundigen Sie sich beim Hersteller des Druckers (oder Servers) nach einer netzwerkbasierten App oder einem Such-Tool, um die Warteschlange / den Status des Druckers (oder Servers) abzufragen.

Wie drucken Drucker Dokumente von mehreren Geräten aus, wenn jedes Gerät keine Ahnung davon hat, dass auch andere Drucker drucken?

Dies ist ein häufiges Problem der Ressourcenzuteilung in der Informatik: Mehrere Benutzer / Verbraucher kämpfen um eine Ressource. In diesem Fall (der keine Komplikationen hat) kann der Drucker oder Server jede Anforderung empfangen und sie dann in einer bestimmten Reihenfolge priorisieren. Durch die Flusskontrolle wird sichergestellt, dass der Drucker nicht überlastet wird. Eine andere mögliche Lösung (die die Arbeitslast am Drucker vereinfacht) wäre ein Token-Passing-Schema. Der PC, der das "Token" erhalten hat, kann den Drucker für einen Auftrag verwenden. Nachdem dieser eine Auftrag gedruckt wurde, muss dieser PC das Token an einen anderen PC übergeben, in dem sich Aufträge in seiner Warteschlange befinden.