
Ich hatte Schwierigkeiten, konkrete Informationen darüber zu finden, wie Drucker tatsächlich mit Druckdaten umgehen.
Alle Betriebssysteme verfügen meines Wissens nach über eine „Druckerwarteschlange“, die gedruckte Dokumente scheinbar in der Reihenfolge zwischenspeichert, in der sie angefordert wurden, und an den Drucker ausgibt.
Vor der Einführung von Netzwerkdruckern hätte ich mir vorgestellt, dass die Daten vom angeschlossenen Gerät fast zeilenweise an den eigentlichen Drucker gesendet wurden.
Bei Netzwerkdruckern fällt dieses Modell jedoch auseinander. Ich gehe davon aus, dass moderne Drucker lediglich ein Postscript-Dokument (oder ein anderes Druckformat) vom Betriebssystem empfangen, es im Speicher behalten und daraus drucken.
Die Frage ist, was bedeutet eine OS-Druckwarteschlange, wenn der Drucker mehrere Dokumente empfangen kann?
Die OS-Druckwarteschlange zeigt uns nichts darüber, was andere Maschinen drucken, da es sich um einen lokalen Puffer handelt. Das muss also bedeuten, dass der Drucker eine integrierte Warteschlange hat, oder? Warum haben wir also überhaupt Druckwarteschlangen, wenn wir nicht sehen können, was sonst noch gedruckt wird?
Alle Informationen darüber, wie Drucker heutzutage tatsächlich ohne serielle Kabel funktionieren, wären hilfreich, aber um dies zu einer gültigen Frage zu machen:
Wie können Drucker Dokumente von mehreren Geräten aus drucken, wenn die einzelnen Geräte keine Ahnung davon haben, dass auch die anderen Geräte drucken?
Wie wird das Dokument an den Drucker übermittelt?
Welche Art von Informationen unterstützen die meisten Druckprotokolle?
Ich stelle die letzte Frage, weil bei mir Cannon den Tintenstand anscheinend so anfordert, als ob es sich um einen Druckauftrag handeln würde:
printing: supply levels
Außerdem habe ich von HP-Druckern gehört, die „gefälschte“ Druckaufträge verwenden, um ein Firmware-Update zu senden.
Antwort1
Alle Betriebssysteme verfügen meines Wissens nach über eine „Druckerwarteschlange“, die gedruckte Dokumente scheinbar in der Reihenfolge zwischenspeichert, in der sie angefordert wurden, und an den Drucker ausgibt.
Die „Druckwarteschlange“ ist der sichtbare Teil des Druckerdienstes/-Daemons, der ursprünglich ein Programm namens SPOOL (für Simultaneous Peripheral Operations On-Line) war, wie beispielsweise für das Betriebssystem HASP/OS360, das auf IBM 360-Mainframes läuft. (Meiner Meinung nach ist SPOOL eines der besten Akronyme, da es auch ein englisches Wort (sowohl Substantiv als auch Verb) ist, das als Analogie verwendet werden kann, um zu beschreiben, wie der Druckerdienst funktioniert.)
Vor der Einführung von Netzwerkdruckern hätte ich mir vorgestellt, dass die Daten vom angeschlossenen Gerät fast zeilenweise an den eigentlichen Drucker gesendet wurden.
Stimmt, das „fast“ ist nicht nötig.
Bei Netzwerkdruckern fällt dieses Modell jedoch auseinander. Ich gehe davon aus, dass moderne Drucker lediglich ein Postscript-Dokument (oder ein anderes Druckformat) vom Betriebssystem empfangen, es im Speicher behalten und daraus drucken.
"Zeilendrucker" oder "dumme" Drucker, die nur Klartext akzeptieren, sind im Wesentlichen veraltet und wurden durch "Seitendrucker" ersetzt, die Eingaben in irgendeiner Art vonSeitenbeschreibungssprache(z. B. Postscript, PCL). Da mehr Daten als nur der Text für die Seite, d. h. die komplette Seite im PDL-Format, an den Drucker gesendet werden müssen, wurden ältere Schnittstellen wie der Parallelport „Centronics“ und die serielle RS-232 durch USB und Ethernet (kabelgebunden und kabellos) ersetzt.
Beachten Sie, dass eine Ethernet-Schnittstelle und die Bezeichnung „Netzwerkdrucker“ nicht bedeutet, dass dieser Drucker auch wie ein vernetzter „Druckserver“ funktionieren kann. Der im „Peer-to-Peer“-Modus konfigurierte „Netzwerkdrucker“ erfordert tatsächlich die Installation eines „Druckertreibers“ auf jedem PC, der diesen Drucker verwenden möchte. 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 in der lokalen Warteschlange gehalten werden, genau wie Aufträge an andere lokale Drucker.
Seitendruckern wird nicht das gesamte Dokument gesendet (wie Sie sich das vorgestellt haben), sondern jeweils eine „Seite“. Natürlich wäre die „Seite“ im PDL-Format und könnte je nach Übertragungsmedium in Zeilen und Pakete aufgeteilt werden. Da es sich hier um Seitendrucker und nicht um Druckerserver handelt, gibt es keinen Massenspeicher (d. h. keine Festplatte) und jede „Seite“ muss im lokalen Speicher gehalten werden, bis sie gedruckt wird. Ein „Flusssteuerungs“-Protokoll (auch Handshake genannt) wäre vorhanden, damit der PC das Seitenfragment oder die Seite übertragen kann, wenn auf dem Drucker mehr Speicher verfügbar ist.
Die Frage ist, was bedeutet eine OS-Druckwarteschlange, wenn der Drucker mehrere Dokumente empfangen kann?
Sofern Sie nicht wirklich über einen Druckserver mit Massenspeicher (z. B. einer Festplatte) verfügen, kann der „Netzwerkdrucker“ kein vollständiges Dokument oder mehrere Dokumente annehmen, es sei denn, sie sind alle klein genug, um in den RAM des Druckers zu passen. Die Druckerwarteschlange des PCs muss verwendet werden, um die ausstehenden Druckaufträge vom PC zu ordnen und zu speichern. Jeder PC im Netzwerk, der diesen „Netzwerkdrucker“ verwendet, muss um diesen freigegebenen Drucker konkurrieren. Der „Netzwerkdrucker“ könnte seine eigene Warteschlange mit Auftragsanforderungen von allen PCs verwalten oder zumindest wissen, welche PCs den Dienst anfordern. Beachten Sie, dass er nur von Anforderungen Kenntnis hätte und keine Seitendaten (die sich noch auf jedem PC befinden) speichern würde, bis der Drucker bereit ist, diesen Auftrag zu beginnen.
Wenn Sie tatsächlich über einen Druckserver verfügen, ist die lokale Warteschlange lediglich ein Zwischenschritt, bevor der Druckauftrag in der Warteschlange des Druckservers landet.
Die OS-Druckwarteschlange zeigt uns nichts darüber, was andere Maschinen drucken, da es sich um einen lokalen Puffer handelt. Das muss also bedeuten, dass der Drucker eine integrierte Warteschlange hat, oder? Warum haben wir also überhaupt Druckwarteschlangen, wenn wir nicht sehen können, was sonst noch gedruckt wird?
Hoffentlich hat der Drucker eine Auftragswarteschlange, um eine Auftragsliste nach dem Prinzip „Wer zuerst kommt, mahlt zuerst“ zu führen. Andernfalls könnte ein PC von anderen PCs verdrängt werden. Sie benötigen immer noch eine lokale Warteschlange, da Sie so immer noch Druckaufträge an den lokalen PC übermitteln. Sofern Sie nicht über einen echten Netzwerkdruckserver mit Massenspeicher für Ihren Druckauftrag verfügen, muss Ihr Druckauftrag auf Ihrem lokalen PC verbleiben, bis er verschoben werden kann. Erkundigen Sie sich beim Hersteller des Druckers (oder Servers) nach einer netzwerkbasierten App oder einem Browsertool, mit dem Sie die Warteschlange/den Status des Druckers (oder Servers) abfragen können.
Wie können Drucker Dokumente von mehreren Geräten aus drucken, wenn die einzelnen Geräte keine Ahnung davon haben, dass auch die anderen Geräte drucken?
Dies ist ein häufiges Ressourcenzuweisungsproblem in der Informatik: Mehrere Benutzer/Verbraucher konkurrieren um eine Ressource. In diesem Fall (der keine Komplikationen aufweist) kann der Drucker oder Server jede Anforderung empfangen und sie dann in einer bestimmten Reihenfolge priorisieren. Die Flusskontrolle stellt sicher, 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, darf den Drucker für einen Auftrag verwenden. Nachdem dieser Auftrag gedruckt wurde, muss dieser PC das Token an einen anderen PC weitergeben, der Aufträge in seiner Warteschlange hat.