Como as impressoras recebem documentos de computadores? Fila Interna?

4

Tive problemas para encontrar informações reais sobre como as impressoras realmente lidam com os dados de impressão.

Todos os sistemas operacionais, até onde eu sei, têm uma "fila de impressão" que aparentemente armazena os documentos impressos na impressora na ordem em que foram solicitados.

Antes das impressoras de rede, imagino que a impressora atual recebeu dados quase linha por linha da máquina conectada.

Agora, com impressoras de rede, esse modelo imaginado se desfaz. Presumo que as impressoras modernas recebam apenas um documento de postscript (ou algum outro formato de impressão) do sistema operacional, mantenha-o na memória e imprima a partir dele.

A pergunta é: o que uma fila de impressão do sistema operacional significa se a impressora pode receber vários documentos?

A fila de impressão do sistema operacional não mostra nada do que outras máquinas estão imprimindo porque é um buffer local. Então isso deve significar que a impressora tem uma fila onboard certa? Então, por que temos filas de impressão, se não conseguirmos ver o que mais está sendo impresso?

Qualquer informação sobre como as impressoras realmente funcionam hoje em dia sem cabos seriais seria útil, mas para fazer disso uma pergunta válida:

Como as impressoras imprimem documentos de várias máquinas, se cada uma delas não sabe o que outras pessoas estão imprimindo?

Como o documento é transmitido para a impressora?

Que tipo de informação a maioria dos protocolos de impressão suporta?

Faço a última pergunta porque no meu próprio canhão parece solicitar o nível de tinta como se fosse um trabalho de impressão:

printing:   supply levels

Também ouvi falar de impressoras HP que usam trabalhos de impressão "falsos" para enviar uma atualização de firmware.

    
por Hawken 25.05.2012 / 01:47

1 resposta

6

All OSes as far as I know have a "print queue" which seemingly buffers printed documents out to the printer in the order they were requested.

A "fila de impressão" é a parte visível do serviço / daemon da impressora que era originalmente um programa chamado SPOOL (para Operações Periféricas Simultâneas On-Line), como para o sistema operacional HASP / OS360 em execução nos mainframes IBM 360. (IMO SPOOL é um dos melhores acrônimos cunhados porque também é uma palavra em inglês (tanto substantivo quanto verbo) que pode ser usada como uma analogia para descrever como o serviço da impressora funciona.)

Before network printers, I would imagine that the actual printer was sent data almost line by line from the connected machine.

Verdade, não há necessidade do "quase".

Now with network printers, this imagined model falls apart. I assume modern printers merely receive a postscript (or some other printing format) doc from the OS, keep it in memory and print from it.

Impressoras de linha ou impressoras "burras" que aceitam apenas texto simples são essencialmente obsoletas, tendo sido substituídas por "impressoras de página" que aceitam entrada em algum tipo de linguagem de descrição de página (por exemplo, Postscript, PCL). Como mais dados do que apenas o texto da página, ou seja, a página completa no formulário PDL, precisam ser enviados à impressora, interfaces mais antigas, como a porta paralela "Centronics" e a série RS-232, foram substituídas por USB e Ethernet (com e sem fio).

Note que ter uma interface Ethernet e chamá-la de "impressora de rede" não significa que ela possa funcionar como um "servidor de impressão" em rede. A "impressora de rede" configurada no modo "ponto-a-ponto" requer na verdade a instalação de um "driver de impressora" em todos os PCs que desejam usar essa impressora. Essa "impressora de rede" é então instalada como uma impressora local no PC, mas negocia e usa essa impressora por meio de uma conexão de rede. Os trabalhos de impressão para a "impressora de rede" devem ser mantidos na fila local, assim como os trabalhos, para outras impressoras locais.

As impressoras de página não recebem o documento inteiro (como você imaginou), mas uma "página" de cada vez. É claro que a "página" estaria no formato PDL e poderia ser dividida em linhas e pacotes, dependendo do meio de transferência. Como essas são impressoras de página em vez de servidores de impressora, não há armazenamento em massa (ou seja, disco rígido) e precisam manter cada "página" na memória local até que seja impressa. Um protocolo de "controle de fluxo" (também conhecido como handshaking) estaria em vigor para o PC transmitir o fragmento de página ou página quando houver mais memória disponível na impressora.

The question is, what does an OS printing queue mean if the printer can receive multiple documents?

A menos que você tenha um servidor de impressão com armazenamento em massa (por exemplo, uma unidade de disco rígido), a "impressora de rede" não poderá aceitar documentos completos ou múltiplos, a menos que sejam pequenos o suficiente para caber na RAM da impressora. A fila de impressão do PC deve ser usada para solicitar & armazene os trabalhos de impressão pendentes originados no PC. Cada PC na rede que usa essa "impressora de rede" tem que lidar com essa impressora compartilhada. A "impressora de rede" pode manter sua própria fila de solicitações de trabalho de todos os PCs, ou pelo menos quais PCs estão solicitando serviços. Observe que ele só saberia de solicitações e não manteria nenhum dado da página (que ainda está em cada PC) até que a impressora esteja pronta para iniciar esse trabalho.

Se você realmente tiver um servidor de impressão, a fila local será apenas uma etapa intermediária antes de o trabalho de impressão acabar na fila do servidor de impressão.

The OS printing queue shows us nothing of what other machines are printing because it's a local buffer. So that must mean the printer has an onboard queue right? So why do we even have printing queues if we can't see what else is being printed?

Espero que a impressora tenha uma fila de pedidos para manter uma lista de trabalhos impressos. Caso contrário, um PC pode ser bloqueado por outros computadores. Você ainda precisa da fila local porque é assim que ainda envia trabalhos de impressão no PC local. A menos que você tenha um servidor de impressão em rede real com armazenamento em massa para manter seu trabalho de impressão, seu trabalho de impressão terá que residir em seu PC local até que possa ser movido. Verifique com o fabricante da impressora (ou servidor) se há um aplicativo ou ferramenta de navegação baseada em rede para consultar a fila / status da impressora (ou do servidor).

How do printers print documents from multiple machines if each machine is clueless to the fact that others are printing as well?

Este é um problema comum de alocação de recursos na ciência da computação: vários usuários / consumidores competindo por um recurso. Nesse caso (que não tem complicações), a impressora ou o servidor pode receber cada solicitação e priorizá-las em algum pedido. O controle de fluxo garantirá que a impressora não esteja sobrecarregada. Outra solução possível (que simplifica a carga de trabalho na impressora) seria um esquema de passagem de token. O PC que recebeu o "token" recebe o uso da impressora para um trabalho. Depois que um trabalho foi impresso, esse PC deve passar o token para outro PC que tenha trabalhos em sua fila.

    
por 25.05.2012 / 07:53