O que significa spool para impressão?

18

Mark escreveu um comentário para mim

I don't know offhand how to make cups not spool, that is, how to make the lpr command only exit after the printer driver has run.

O que significa "spool" para impressão?

O Google diz que é um verbo que significa "enviar (dados que são destinados a impressão ou processamento em um dispositivo periférico) para um armazenamento intermediário". Qual é o armazenamento intermediário que o spool de impressão representa, por exemplo, ao imprimir por lpr command

Mark parece relacionar o significado de spool com bloqueio. Mas não consigo entender isso olhando para a definição dada pelo Google.

Obrigado.

    
por Tim 24.09.2018 / 17:57

5 respostas

12

Um spool de impressão é efetivamente um buffer, gerenciado por trabalho, com um programa (o spooler) responsável por receber trabalhos de enviar programas e alimentá-los para uma ou mais impressoras. O objetivo de um spool é lidar com a comunicação entre dois sistemas com velocidades diferentes e controlar o acesso a dispositivos compartilhados. Os primeiros significam que os programas podem enviar trabalhos de impressão o mais rápido que desejarem, e esses trabalhos são tratados com a mesma rapidez (ou lentidão) que as impressoras podem manipular. Este último (como apontou por RonJohn ) garante que os trabalhos sejam tratados de forma coerente: assim, ao imprimir, os trabalhos não são misturados.

As impressoras em rede fornecem seus próprios spools e os servidores de impressão (CUPS, lpd etc.) também implementam spools. A maioria dos sistemas de impressão também controla controle de acesso, cotas, banners, opções de impressão, etc. As bobinas são usadas em outros contextos; por exemplo, os servidores de backup baseados em fita agora armazenam em spool dados de backup de hosts em rede em um sistema de armazenamento rápido baseado em disco, para que eles possam alimentar unidades de fita modernas nas tremendas velocidades necessárias para evitar o brilho da sapata.

No contexto do comentário, a relevância de um spool é a decorrência da submissão do trabalho de impressão de seu cumprimento. Não fazer spool significaria que o envio só seria concluído com o trabalho de impressão e, assim, o comando lpr só seria concluído quando o trabalho fosse concluído. Remover o carretel do seu computador pode não ter o resultado desejado, já que a própria impressora pode fazer spool também!

    
por 24.09.2018 / 18:08
32

Em suma, um spooler consiste em:

  • um programa em segundo plano
  • um diretório por impressora
  • um arquivo por trabalho de impressão

No seu caso, o programa em primeiro plano ( lpr ) envia sua impressão trabalhos para cups , que armazena e, em seguida, usa comunicação serial, paralela, USB, rede ... para iniciar a impressão processo.

Então é por isso que hoje em dia mesmo quando a impressora fica sem papel você ainda pode continuar usando seu computador, enquanto quando eu era criança na CP / M, todo o computador travou até você adicionar mais papel ...

Por que é chamado de "spooling"?

Porque, naquela época, computadores grandes usavam fita para armazenar esses tipos de arquivos, pois os discos eram muito caros, então quando você estava trabalhando no data center, a primeira coisa que ouvia era que as fitas começavam a girar ¹ e só depois um segundo ou 3-4 a impressora começaria a imprimir (se você tivesse sorte). ; -)

Nota ¹: Um "spool" é um substantivo que significa "um dispositivo cilíndrico no qual a fita magnética pode ser enrolada", portanto, "spooling" é o dispositivo cilíndrico girando e enrolando fita ...

    
por 24.09.2018 / 18:27
4

Primeiro, vamos começar com o significado do termo "spooling": Às vezes, o tamanho de um documento é maior que a memória da impressora, portanto "spooling de impressora" permite enviar vários documentos para uma impressora e colocar todos esses documentos em uma linha de fila.

Agora, no Unix, há dois sistemas de impressão:

1- O sistema de spooling do BSD que usa o daemon lpd para agendar os trabalhos de impressão. 2- O sistema SVR4-spool que usa lpsched como agendador.

O sistema de spooling BSD pode se estender a redes grandes e heterogêneas, permitindo que muitos computadores compartilhem impressoras. Nesse sistema, o acesso a impressoras é controlado pelo daemon lpd e pelo programa lpr . lpr pode enfileirar arquivos para impressão.

lpr accepts data to be printed, puts it in a spooling directory, and notifies the lpd daemon. For each print job, lpr creates two files, a control file (cfxxx) and a data file (dfxxx) in the spool directory, xxx indicating a unique job-id. The control file contains the information for handling the print job, including the identity of the owner. The data file contains the actual data to be printed.

The lpd daemon checks the /etc/printcap file to identify the destination printer. If the destination printer is a local device, lpd makes sure a copy of the lpd daemon is running on that print queue. Otherwise lpd opens a connection to the remote host to which the printer is connected and transfers both the control and data file to it.

Print jobs are scheduled by lpd on a First-In, First-Out (FIFO) basis. However, the system administrator may use the lpc command to alter the priority of the jobs in the print queue.

Sistema de spool SVR4 Este sistema não foi projetado com impressão em rede. É mais complicado de configurar. No sistema de spool SVR4, o comando lp aceita os dados a serem impressos, faz uma cópia dele no diretório de spool associado ao destino. O destino consiste em um nome de impressora e uma especificação opcional de uma classe à qual a impressora pertence. Quando a impressora especificada está ocupada, a tarefa é enviada para outra impressora na mesma classe. O diretório de spool normalmente é /var/spool/lp/request/printer-name e o arquivo de impressão recebe um nome exclusivo para identificar o trabalho e o usuário.

Access to the printer is controlled by lpsched daemon. It picks up the jobs from the spool directory and sends them to appropriate destination when it becomes available. lpsched also keeps a log, usually in /usr/spool/lp/log. The log file would indicate any error in processing the print jobs, as well as the user-name,

Mais 1 , 2 , 3

    
por 24.09.2018 / 18:05
3

Nunca esqueça que SPOOL é um acrônimo para S P eriférico O perações O n L ine. Desde os primeiros (mas não antes) dias da computação, os processadores geravam resultados mais rápidos do que as impressoras podiam imprimi-los. Sem o spool, o processador não conseguiria terminar um "trabalho de impressão" até que a impressão fosse concluída. Isso muitas vezes resultou em um processador ocioso, aguardando a impressora.

Um grande avanço no spool veio durante o programa espacial americano. Os computadores estavam produzindo resultados muito lentamente, então um novo sistema de spool foi escrito apenas para a NASA (embora ele e seus sucessores ganhassem popularidade até que todos os sistemas IBM os tivessem). Ele foi chamado de H ouston A utomatic S agrupando P rogram, tornando HASP o primeiro acrônimo aninhado.

Uma boa analogia com o spool é uma fábrica de threads - o thread é girado rapidamente e armazenado - onde mais - em um spool. Em seguida, o carretel de linha é eventualmente colocado em uma máquina de costura ou outra máquina, que é executada em um ritmo muito mais lento, onde é usado para criar um produto acabado.

    
por 24.09.2018 / 20:00
2

O spool é um termo escolar bastante antigo. Hoje em dia você verá "Fila de impressão" usada com mais frequência.

Fila é um ditado britânico para "esperar na fila". Assim, os trabalhos de impressão são "enfileirados", isto é, esperam na fila para imprimir.

Depois que um trabalho tiver terminado o spool (pode haver longos períodos de "pensamento" entre as linhas de impressão), ele será impresso, geralmente em uma base FIFO, mas a prioridade do trabalho de impressão poderá substituí-lo.

Imprimir spools e filas podem ser pausados para que os operadores alterem o papel. O também pode ser reiniciado se algumas páginas estiverem danificadas.

    
por 12.12.2018 / 01:11