
En informática , el spooling es una forma especializada de multiprogramación para copiar datos entre diferentes dispositivos. En los sistemas actuales, se suele utilizar para mediar entre una aplicación informática y un periférico lento , como una impresora . El spooling permite que los programas transfieran el trabajo al periférico y continúen con otras tareas, o que no comiencen hasta que se haya transcrito la entrada. Un programa específico, el spooler , mantiene una secuencia ordenada de trabajos para el periférico y le suministra datos a su propio ritmo. Por el contrario, para periféricos de entrada lentos , como un lector de tarjetas , un spooler puede mantener una secuencia de trabajos computacionales en espera de datos, iniciando cada trabajo cuando toda la entrada relevante está disponible; véase procesamiento por lotes . El término spool se refiere a la secuencia de trabajos o al área de almacenamiento donde se guardan. En muchos casos, el spooler puede controlar los dispositivos a su máxima velocidad nominal con un impacto mínimo en otros procesos.
El spooling es una combinación de almacenamiento en búfer y puesta en cola .
Cola de impresión
Actualmente, el uso más común del spooling es la impresión: los documentos formateados para imprimir se almacenan en una cola a la velocidad del ordenador, luego se recuperan y se imprimen a la velocidad de la impresora. Varios procesos pueden escribir documentos en el spool sin esperar y, a continuación, realizar otras tareas, mientras el proceso "spooler" gestiona la impresora. [ 1 ]
Por ejemplo, cuando una gran organización prepara cheques de nómina, el cálculo solo lleva unos minutos o incluso segundos, pero el proceso de impresión puede tardar horas. Si el programa de nómina imprimiera los cheques directamente, no podría realizar otros cálculos hasta que se imprimieran todos. Del mismo modo, antes de que se añadiera la función de cola de impresión a los sistemas operativos de PC , los procesadores de texto no podían hacer nada más, ni siquiera interactuar con el usuario, mientras imprimían.
El software de gestión de impresión o de cola de impresión suele incluir diversas funciones relacionadas, como la posibilidad de asignar prioridades a los trabajos de impresión, notificar a los usuarios cuando se han impreso sus documentos, distribuir los trabajos de impresión entre varias impresoras, seleccionar el papel adecuado para cada documento, etc.
Un servidor de impresión aplica técnicas de cola de impresión para permitir que varios ordenadores compartan la misma impresora o grupo de impresoras.
Página de banner

Los administradores de cola de impresión [ b ] pueden configurarse para agregar una página de encabezado , también llamada página de ráfaga , hoja de trabajo o separador de impresora , al principio y al final de cada documento y trabajo. Estas páginas separan los documentos entre sí, identifican cada documento (por ejemplo, con su título ) y, a menudo, también indican quién lo imprimió (por ejemplo, por nombre de usuario o nombre del trabajo ). Las páginas de encabezado son útiles en entornos de oficina donde muchas personas comparten un número reducido de impresoras. También son útiles cuando un solo trabajo puede producir varios documentos. Según la configuración, las páginas de encabezado pueden generarse en cada equipo cliente, en un servidor de impresión centralizado o por la propia impresora.
En las impresoras que utilizaban formularios continuos plegados en abanico , a menudo se imprimía dos veces una página de encabezado inicial, de modo que una copia siempre quedara boca arriba al separar los trabajos. Esta página podía incluir líneas impresas sobre el pliegue, visibles a lo largo del borde de la pila de impresiones, lo que permitía al operario separar los trabajos fácilmente. Algunos sistemas también imprimían una página de encabezado al final de cada trabajo, para asegurar a los usuarios que habían recogido todas sus impresiones.
Otras aplicaciones
El almacenamiento en cola también se utiliza para gestionar el acceso a lectores y perforadoras de tarjetas perforadas , unidades de cinta magnética y otros dispositivos de E/S secuenciales lentos. Permite que la aplicación se ejecute a la velocidad de la CPU mientras los dispositivos periféricos funcionan a su máxima velocidad nominal.
Un sistema de procesamiento por lotes utiliza el almacenamiento temporal para mantener una cola de tareas listas para ejecutarse, que pueden iniciarse tan pronto como el sistema disponga de los recursos necesarios para procesarlas.
Algunos sistemas de mensajería de almacenamiento y reenvío , como uucp , utilizaban el término "spool" para referirse a sus colas de mensajes entrantes y salientes, y esta terminología todavía se encuentra en la documentación del software de correo electrónico y Usenet .
Historia
Los dispositivos periféricos siempre han sido mucho más lentos que las unidades centrales de procesamiento. Esto representó un problema especialmente grave para los primeros mainframes . Por ejemplo, una tarea que leía tarjetas perforadas o generaba salida impresa directamente se veía obligada a ejecutarse a la velocidad de los lentos dispositivos mecánicos. Los primeros programas de cola de impresión, como el "SPOOL System" de IBM (7070-IO-076), copiaban datos de tarjetas perforadas a cinta magnética y viceversa. Los discos duros , que ofrecían velocidades de E/S más rápidas y compatibilidad con el acceso aleatorio , comenzaron a reemplazar el uso de cinta magnética para la cola de impresión a mediados de la década de 1960, y para la década de 1970 ya la habían reemplazado casi por completo.
Debido a que el equipo de registro de unidades en las computadoras centrales de IBM de principios de la década de 1960 era lento, era común que los sistemas más grandes utilizaran una pequeña computadora fuera de línea, como una IBM 1401 , en lugar de la cola de impresión.
El término "spool" puede tener su origen en el software Simultaneous Peripheral Operations On-Line [ 2 ] [ 3 ] (SPOOL); [ 4 ] sin embargo, esta derivación es incierta, ya que podría ser un acrónimo inverso . [ 5 ] Otra explicación es que se refiere a "bobinas" o carretes de cinta magnética, aunque "spool" es un uso poco común.
Lista de sistemas de spooling
- Sistema SPOOL de IBM, 7070-IO-076
- Instalación integrada de varios sistemas operativos, por ejemplo, GCOS , OS/360.
- Procesador de soporte adjunto (ASP) [ 6 ] en OS/360 y OS/VS2 (SVS) .
- Prioridad de spooling automático de Houston (HASP) [ 7 ] en OS/360 y SVS, prominente en la década de 1960.
- Subsistema de entrada de trabajos (JES, también conocido como JES1) en OS/VS1
- Subsistema de entrada de trabajos 2 (JES2), [ 8 ] un seguidor de HASP
- Job Entry Subsystem 3 (JES3), [ 9 ] un seguidor de ASP
- Escritores de salida prioritarios, procesadores de ejecución y lectores de entrada (POWER) [ 10 ] [ 11 ]
- COMPRENDER
- El gestor de impresión (Spooler) , gestor de impresión para IBM DOS/360 , DOS/VS y DOS/VSE , 1975-1980.
- El sistema de impresión de Berkeley (lpr/lpd)
- TAZAS
- CP-67
- Programa de control de máquinas virtuales (CP)
- VM/370 RSCS (Subsistema de comunicaciones de spooling remoto)
- Simbiontes y cooperativos en computadoras de la serie SDS Sigma [ 12 ]
Notas
Referencias
- ↑ Lundin, Leigh; Stoneman, Don (1977). The Spooler User Guide (2.ª ed.). Harrisonburg: DataCorp of Virginia.
- ↑ Sistema SPOOL IBM 7070 , Boletines del sistema de procesamiento de datos 7070 (Segunda edición), IBM, J28-6047-1
- ↑ Donovan, John J. (1972). Programación de sistemas . pág. 405. ISBN 0-07-085175-1.
- ↑ James L. Peterson; Abraham Silberschatz (julio de 1984). "1.4.3 Spooling". Conceptos de sistemas operativos . Addison-Wesley . pág. 18. ISBN 0-201-06097-3.
- ↑ Tanenbaum, Andrew S. Sistemas operativos modernos . 3.ª ed. Pearson Education, Inc., 2008. ISBN 978-0-13-600663-3
- ↑ Sistema de multiprocesamiento asimétrico IBM System/360 y System/370: Manual de información general, número de programa 360A-CX-15X , IBM, GH20-1173
- ↑ El sistema HASP, 26 de febrero de 1971 HASP II (360D-05.1-014) V3M1 , Versión 3, Nivel de modificación 1, IBM, 26 de febrero de 1971
- ↑ Introducción a JES2 en z/OS V1R9.0 , IBM, SA22-7535-06
- ↑ Descripción general de JES3 (Primera edición), IBM, diciembre de 1980, SC23-0040-0
- ↑ Instalación y funcionamiento de DOS/VS POWER/VS (PDF) (Segunda edición), IBM, septiembre de 1974, GC33-5403-1
- ↑ Almacenamiento virtual extendido / Escritores de salida de prioridad, procesadores de ejecución y lectores de entrada ; VSE/POWER - 5686-CF9-03
- ↑ Software CP-V: Manual de conceptos y funciones (PDF) . Honeywell. 1976. págs. 2-7 . Consultado el 6 de diciembre de 2023 .
- Impresión por ordenador
- Programación de trabajos
- Tecnología de sistemas operativos
- Software Unix