Que signifie la bobine pour l'impression?

18

Mark a écrit un commentaire pour moi

Je ne sais pas comment faire pour que les gobelets ne soient pas spoulés, c'est-à-dire comment faire pour que la commande lpr ne se termine qu'après l'exécution du pilote d'imprimante.

Que signifie «spool» pour l'impression?

Google dit qu'il s'agit d'un verbe signifiant «envoyer (des données destinées à être imprimées ou traitées sur un périphérique) vers un magasin intermédiaire». Quel est le magasin intermédiaire que le spouleur d'impression représente, par exemple, lors de l'impression par lprcommande

Mark semble relier la signification de la bobine au blocage. Mais je ne peux pas comprendre cela en regardant la définition donnée par Google.

Merci.

Tim
la source

Réponses:

12

Une bobine d'impression est en fait un tampon, géré par tâche, avec un programme (le spouleur) chargé de recevoir les tâches de la soumission des programmes et de les alimenter vers une ou plusieurs imprimantes. Le but d'une bobine est de gérer la communication entre deux systèmes avec des vitesses différentes et de contrôler l'accès aux périphériques partagés. Le premier signifie que les programmes peuvent soumettre des travaux d'impression aussi rapidement qu'ils le souhaitent, et ces travaux sont traités aussi rapidement (ou lentement) que les imprimantes peuvent les gérer. Celui - ci (comme en pointe par RonJohn ) assure que les emplois sont traités de manière cohérente: ainsi lors de l' impression, les emplois ne sont pas mélangés.

Les imprimantes en réseau fournissent leurs propres bobines et les serveurs d'impression (CUPS, lpdetc.) implémentent également des bobines. La plupart des systèmes d'impression gèrent également le contrôle d'accès, les quotas, les bannières, les options d'impression, etc. Les spools sont utilisés dans d'autres contextes; par exemple, les serveurs de sauvegarde sur bande spoulent désormais les données de sauvegarde des hôtes en réseau sur un système de stockage sur disque rapide, afin qu'ils puissent ensuite alimenter les lecteurs de bande modernes aux vitesses incroyables dont ils ont besoin pour éviter le cirage de la bande.

Dans le contexte du commentaire, la pertinence d'une bobine est qu'elle décorrèle la soumission du travail d'impression de son exécution. Ne pas mettre en file d'attente signifierait que la soumission ne se terminerait qu'avec le travail d'impression, et donc votre lprcommande ne se terminerait qu'une fois le travail terminé. La suppression de la bobine sur votre ordinateur peut ne pas avoir le résultat souhaité, car l'imprimante elle-même peut également se bobiner!

Stephen Kitt
la source
1
Quelle partie du sens de "spool" le rend non applicable au tampon IO du noyau Linux?
Tim
3
Le système de messagerie utilise souvent une bobine de courrier sous /var/spool/mailou à un emplacement similaire. Il s'agit également d'un "tampon" pour permettre l'envoi quasi-asynchrone de messages électroniques. Le message électronique est mis en file d'attente / mis en file d'attente et le client de messagerie n'a pas à attendre que le courrier quitte réellement le système. Tout comme un travail d'impression.
Kusalananda
1
@Tim ce n'est pas vraiment une question d'application ou non, ce n'est simplement pas appelé une bobine. Les tampons ont généralement pour résultat que les opérations alimentant le tampon ne sont pas bloquantes: se writetermine dès que les données sont écrites dans le tampon utilisé (sous Linux, le cache de page), pas une fois que les données sont vraiment à destination. readn'est pas nécessairement non bloquant non plus, et peut renvoyer moins de données que ce qui était demandé.
Stephen Kitt
1
Notez également que - en plus de gérer la "communication entre deux systèmes avec des vitesses différentes" - les spools sérialisent l' accès à ces périphériques plus lents. (Vous pouvez imaginer à quel point il serait mauvais que plusieurs travaux écrivent tous sur l'imprimante ou le modem en même temps ...)
RonJohn
1
Les bobines d'impression sont généralement stockées sur disque, où que le serveur d'impression soit hébergé. Quand je dis que les imprimantes peuvent également avoir leur propre bobine, c'est normalement le cas pour les imprimantes «en réseau» (qui sont connectées à un réseau plutôt qu'à un ordinateur spécifique); ils hébergent leur propre serveur d'impression et doivent gérer plusieurs tâches entrantes (ce qu'ils font en ayant leur propre bobine). Lorsqu'une imprimante a sa propre bobine, elle peut accepter des travaux d'impression beaucoup plus rapidement qu'ils ne peuvent être imprimés, donc même si elle lprattend que l'imprimante finisse d'accepter le travail, il y aura toujours un décalage avant qu'il ne soit complètement traité.
Stephen Kitt
36

En résumé, un spouleur se compose de:

  • un programme de fond
  • un répertoire par imprimante
  • un fichier par tâche d'impression

Dans votre cas, le programme de premier plan (lpr ) envoie ses travaux d'impression à cups, qui les stocke, puis utilise une communication série, parallèle, USB, réseau, ... pour démarrer réellement le processus d'impression.

Voilà pourquoi de nos jours même lorsque l'imprimante manque de papier, vous pouvez toujours continuer à utiliser votre ordinateur, alors qu'à l'époque où j'étais enfant sur CP / M, tout l'ordinateur était verrouillé jusqu'à ce que vous ajoutiez plus de papier ...

Pourquoi cela s'appelle-t-il "spoulage"?

Parce qu'à cette époque, les gros ordinateurs utilisaient des bandes pour stocker ce type de fichiers car les disques étaient trop chers, donc lorsque vous travailliez à l'intérieur du centre de données, la première chose que vous entendiez était que les bandes commençaient à tourner¹ et seulement après une seconde ou 3-4 l'imprimante commencerait à imprimer (si vous aviez de la chance). ;-)

Note 1: Une "bobine" est un nom signifiant "un appareil cylindrique sur lequel la bande magnétique peut être enroulée", par conséquent "l'enroulement" est l'appareil cylindrique qui tourne et enroule la bande ...

Fabby
la source
5
Plus directement, "bobine" est un nom signifiant "un appareil cylindrique sur lequel une bande magnétique peut être enroulée"
OrangeDog
1
@OrangeDog: incorporé dans la réponse, merci! :-)
Fabby
2
+1 Je n'ai jamais su d'où venait le terme "bobine".
Joe
@Joe Même raison pour laquelle les enfants ne savent pas ce que signifie réellement le bouton Enregistrer car ils n'ont jamais vu de disquette / disquette / rigide / ... > :-)
Fabby
5

Tout d'abord, commençons par la signification du terme «spoule»: parfois la taille d'un document est plus grande que la mémoire de l'imprimante, donc «spouleur d'imprimante» permet d'envoyer plusieurs documents à une imprimante et de mettre tous ces documents dans une file d'attente.

Maintenant, sous Unix, il existe deux systèmes d'impression:

  1. Le système de spoulage BSD utilise un lpddémon pour planifier les travaux d'impression.
  2. Le système de spoulage SVR4 utilise lpschedcomme planificateur.

USAIL de Jeff Lessem : l'apprentissage indépendant de l'administration de systèmes Unix a une section sur l' impression sous Unix qui fournit un bon aperçu des systèmes BSD et SVR4:

Le système de spoulage BSD

s'étend bien aux grands réseaux hétérogènes permettant à de nombreux ordinateurs de partager des imprimantes.

Sous le système de spoulage BSD, l'accès aux imprimantes est contrôlé par le lpd démon et le lprprogramme. lprest le seul programme sur un système BSD qui peut mettre des fichiers en file d'attente pour l'impression.

lpraccepte les données à imprimer, les place dans un répertoire de mise en file d'attente et notifie le lpddémon. Pour chaque travail d'impression, lprcrée deux fichiers, un fichier de contrôle (cfxxx) et un fichier de données (dfxxx) dans le répertoire de spoule, xxx indiquant un identifiant de travail unique. Le fichier de contrôle contient les informations pour gérer le travail d'impression, y compris l'identité du propriétaire. Le fichier de données contient les données réelles à imprimer.

Le lpddémon vérifie le /etc/printcapfichier pour identifier l'imprimante de destination. Si l'imprimante de destination est un périphérique local, lpdassurez-vous qu'une copie du lpddémon s'exécute sur cette file d'attente d'impression. Sinon, lpdouvre une connexion à l'hôte distant auquel l'imprimante est connectée et lui transfère le fichier de contrôle et de données.

Les travaux d'impression sont planifiés par lpdsur la base du premier entré, premier sorti (FIFO). Cependant, l'administrateur système peut utiliser la commande lpc pour modifier la priorité des travaux dans la file d'attente d'impression.

Le système de spoulage SVR4 est utilisé par Solaris et HP-UX. Il offre plus de contrôle et de flexibilité mais n'a pas été conçu pour l'impression en réseau et est plus compliqué à configurer.

Sous le système de spoulage SVR4, la lpcommande accepte les données à imprimer, en fait une copie dans le répertoire spool associé à la destination. La destination se compose d'un nom d'imprimante et d'une spécification facultative d'une classe à laquelle appartient l'imprimante. Lorsque l'imprimante spécifiée est occupée, le travail est envoyé vers une autre imprimante de la même classe. Le répertoire du spool est normalement/var/spool/lp/request/printer-name et le fichier d'impression reçoit un nom unique pour identifier à la fois le travail et l'utilisateur.

L'accès à l'imprimante est contrôlé par le lpscheddémon. Il récupère les travaux dans le répertoire de spoule et les envoie à la destination appropriée lorsqu'il devient disponible. lpsched conserve également un journal, généralement dans /usr/spool/lp/log. Le fichier journal indiquerait toute erreur dans le traitement des travaux d'impression, ainsi que le nom d'utilisateur,

Voir aussi: Imprimantes et spouleur d'imprimante - commandes lp, lpstat et cancel | Trucs et astuces pour le blog informatique

Anthony G - justice pour Monica
la source
3
C'est agréable de mentionner vos sources ...
Stephen Kitt
Je n'ai pas encore fini ;-)
3
Je suggère d'utiliser le formatage Markdown pour indiquer clairement quel texte est le vôtre et lequel est cité. Vous devriez également créditer l'auteur original, Jeff Lessem, comme expliqué dans unix.stackexchange.com/help/referencing
Anthony G - justice pour Monica
4

Ne jamais oublier que SPOOL est un acronyme pour S imultaneous P eripheral O pérations O n L ine. Depuis les premiers jours (mais pas les premiers) de l'informatique, les processeurs ont généré des résultats plus rapidement que les imprimantes ne pouvaient les imprimer. Sans mise en file d'attente, le processeur n'a pas pu terminer un "travail d'impression" jusqu'à ce que l'impression elle-même soit terminée. Cela se traduisait souvent par un processeur inactif, attendant l'imprimante.

Un grand bond en avant dans la mise en file d'attente est survenu lors du programme spatial américain. Les ordinateurs produisaient des résultats trop lentement, donc un nouveau système de mise en file d'attente a été écrit juste pour la NASA (bien que lui et ses successeurs aient gagné en popularité jusqu'à ce que tous les systèmes IBM les aient). Il a été appelé le H Ouston A UTOMATIQUE S mise en commun P rogram, ce qui HASP le premier acronyme imbriquée.

Une bonne analogie avec la mise en file d'attente est une fabrique de fils - le fil est filé à un rythme rapide et stocké - ailleurs - sur une bobine. Ensuite, la bobine de fil est finalement placée sur une machine à coudre ou autre, qui fonctionne à un rythme beaucoup plus lent, où elle est utilisée pour créer un produit fini.

Jennifer
la source
17
Notez que la dérivation de "spool" est largement considérée comme un backronym , et "PDQ" l' est certainement .
chrylis -on strike-
6
C'est évidemment un backronym construit après coup. Cela devient une mode de répandre de telles rumeurs. Beaucoup d'entre eux sont listés ici , il est peut-être temps d'y ajouter "spool"!
pipe
4
@Jennifer Alors qu'IBM avait certainement un programme appelé SPOOL, il est largement conjecturé, comme dans le lien du fichier Jargon ci-dessus, qu'ils ont choisi ce nom comme une sorte de jeu de mots ou l'ont dérivé d'un terme existant. Dans tous les cas, cela fait probablement référence au chargement des travaux sur une bobine de bande, puis à leur lecture. Dans l'usage moderne, il ne fait référence ni à un produit IBM obsolète ni à une bobine de bande, de sorte que l'ensemble du débat est plutôt académique et tangentiel à la question de ce qu'il signifie aujourd'hui.
IMSoP
3
@Jennifer Eh bien, je ne me trompe pas, il est largement conjecturé, même si les gens ont tort de le conjecturer. Et même s'il est vrai qu'IBM a inventé le terme, pourquoi ont-ils choisi ces mots? Ont-ils écrit le nom à la main et ont ensuite dit "oh, c'est une coïncidence, ça épelle un mot anglais" - ou est-il plus probable qu'ils recherchaient un terme qui semblait approprié pour la fonctionnalité, et pensaient que "spouler les travaux sur la bande "était une bonne image?
IMSoP du
4
Ce poste bénéficierait grandement des citations, en particulier pour ses allégations étymologiques.
TemporalWolf
3

L'enroulement est un terme scolaire assez ancien. De nos jours, vous verrez plus souvent "File d'attente d'impression".

To Queue est un dicton britannique qui veut "faire la queue". Les travaux d'impression sont donc "mis en file d'attente", c'est-à-dire qu'ils attendent en ligne pour imprimer.

Une fois qu'un travail a terminé la mise en file d'attente (il peut y avoir de longs temps de réflexion entre les lignes d'impression), il est imprimé, généralement au format FIFO, mais la priorité du travail d'impression peut le remplacer.

Les bobines d'impression et les files d'attente peuvent être suspendues pour que les opérateurs changent de papier. Le peut également être redémarré si certaines pages ont été endommagées.

WinEunuuchs2Unix
la source