En informática , el spooling es una forma especializada de programación múltiple con el propósito de copiar datos entre diferentes dispositivos. En los sistemas contemporáneos, [a] se usa generalmente para mediar entre una aplicación de computadora y un periférico lento , como una impresora . El spooling permite que los programas "transfieran" el trabajo que debe realizar el periférico y luego continúen con otras tareas, o que no comiencen hasta que se transcriba la entrada. Un programa dedicado, el spooler , mantiene una secuencia ordenada de trabajos para el periférico y le envía datos a su propio ritmo. Por el contrario, para periféricos de entrada lenta , como un lector de tarjetas, un spooler puede mantener una secuencia de trabajos computacionales en espera de datos, comenzando cada trabajo cuando están disponibles todas las entradas relevantes; ver procesamiento por lotes . El carrete en sí 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 velocidad máxima nominal con un impacto mínimo en otros procesos.
El spooling es una combinación de almacenamiento en búfer y cola .
Cola de impresión
Hoy en día, 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 de la computadora, luego se recuperan e imprimen a la velocidad de la impresora. Varios procesos pueden escribir documentos en la cola sin esperar y luego pueden realizar otras tareas, mientras que el proceso de "cola" opera la impresora. [1]
Por ejemplo, cuando una organización grande prepara cheques de nómina, el cálculo toma solo unos minutos o incluso segundos, pero el proceso de impresión puede demorar horas. Si el programa de nómina imprimiera los cheques directamente, no podría proceder a otros cálculos hasta que se imprimieran todos los cheques. De manera similar, antes de que se agregara la cola a los sistemas operativos de PC , los procesadores de texto no podían hacer nada más, incluida la interacción con el usuario, mientras imprimían.
El software de administración de impresión o spooler a menudo incluye una variedad de funciones relacionadas, como permitir que se asignen prioridades a los trabajos de impresión, notificar a los usuarios cuando sus documentos se han impreso, distribuir trabajos de impresión entre varias impresoras, seleccionar el papel apropiado para cada documento, etc.
Un servidor de impresión aplica técnicas de cola para permitir que muchas computadoras compartan la misma impresora o grupo de impresoras.
Página de banner
Los spoolers de impresión [b] se pueden configurar 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. Estos documentos separados 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 banner son valiosas en entornos de oficina donde muchas personas comparten una pequeña cantidad de impresoras. También son valiosos cuando un solo trabajo puede producir varios documentos. Dependiendo de la configuración, las páginas de banner se pueden generar en cada computadora cliente, o en un servidor de impresión centralizado, o por la propia impresora.
En las impresoras que utilizan formularios continuos plegados en acordeón , a menudo se imprime dos veces una portada inicial, de modo que una copia siempre aparece boca arriba cuando se separan los trabajos. La página puede incluir líneas impresas sobre el pliegue, que serían visibles a lo largo del borde de una pila de salida impresa, lo que permitiría al operador separar fácilmente los trabajos. Algunos sistemas también imprimen una página de banner al final de cada trabajo, asegurando a los usuarios que han recopilado todas sus impresiones.
Otras aplicaciones
El spooling también se utiliza para mediar en el acceso a lectores de tarjetas perforadas y perforadoras , 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 opera dispositivos periféricos a su velocidad máxima.
Un sistema de procesamiento por lotes utiliza el spooling para mantener una cola de tareas listas para ejecutarse, que se pueden iniciar tan pronto como el sistema tenga los recursos para procesarlas.
Algunos almacenan y reenvían sistemas de mensajería, como uucp , usaban "spool" para referirse a sus colas de mensajes entrantes y salientes, y esta terminología todavía se encuentra en la documentación del correo electrónico y el software Usenet , aunque los mensajes a menudo se entregan inmediatamente hoy en día.
Historia
Los dispositivos periféricos siempre han sido mucho más lentos que las unidades centrales de procesamiento. Este fue un problema especialmente severo para los primeros mainframes . Por ejemplo, un trabajo que leía tarjetas perforadas o generaba resultados impresos directamente se vio obligado a ejecutarse a la velocidad de los dispositivos mecánicos lentos. Los primeros programas de spooling, como el "SPOOL System" de IBM (7070-IO-076) copiaban datos de tarjetas perforadas a cinta magnética y de cinta a tarjetas perforadas e impresoras. Los discos duros , que son aún más rápidos y admiten acceso aleatorio , comenzaron a reemplazar este uso de cinta magnética a mediados de la década de 1960, y en la década de 1970 habían eliminado este uso de cinta.
Debido a que el equipo de grabación unitario en los mainframes de IBM de principios de la década de 1960 era tan lento, era común usar una pequeña máquina fuera de línea como una 1401 en lugar de poner en cola.
El término "spool" puede originarse con el software de operaciones periféricas simultáneas en línea [2] (SPOOL); Sin embargo, esta derivación es incierta. Las operaciones periféricas simultáneas en línea pueden ser un backronym . [3] Otra explicación es que se refiere a "carretes" o carretes de cinta magnética.
Lista de sistemas de bobinado
- IBM SPOOL System, 7070-IO-076
- Facilidad integrada de varios sistemas operativos, por ejemplo, GCOS , OS / 360
- Procesador de soporte adjunto (ASP) [4] en OS / 360 y OS / VS2 (SVS) .
- Houston Automatic Spooling Priority (HASP) [5] en OS / 360 y SVS, destacado 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), [6] seguidor de HASP
- Subsistema de entrada de trabajos 3 (JES3), [7] seguidor de ASP
- Escritores de salida prioritarios, procesadores de ejecución y lectores de entrada (POWER) [8] [9]
- SUJETAR
- El spooler , IBM DOS / 360 , DOS / VS y DOS / VSE spooler, 1975-1980
- El sistema de impresión de Berkeley (lpr / lpd)
- TAZAS
- VM / 370 RSCS (subsistema de comunicaciones de spooling remoto)
Notas
- ^ En el pasado, se utilizaba para, por ejemplo, copiar una baraja de cartas que no estaba relacionada con una aplicación informática.
- ^ Los spoolers de perforación también admitían tarjetas de banner.
Referencias
- ^ Lundin, Leigh; Stoneman, Don (1977). La Guía del usuario de Spooler (2 ed.). Harrisonburg: DataCorp de Virginia.
- ^ IBM 7070 SPOOL System , 7070 Data Processing System Bulletins (Second ed.), IBM, J28-6047-1
- ^ Tanenbaum, Andrew S. Sistemas operativos modernos . 3ª Ed. Pearson Education, Inc., 2008. ISBN 978-0-13-600663-3
- ^ IBM System / 360 y System / 370 Asymmetric Multiprocessing System: Manual de información general, número de programa 360A-CX-15X , IBM, GH20-1173
- ^ The HASP System, 26 de febrero de 1971 HASP II (360D-05.1-014) V3M1 , Versión 3 Modificación Nivel 1, IBM, 26 de febrero de 1971
- ^ z / OS V1R9.0 Introducción a JES2 , IBM, SA22-7535-06
- ^ Descripción general de JES3 (primera edición), IBM, diciembre de 1980, SC23-0040-0
- ^ DOS / VS POWER / VS Installation and Operations (PDF) (Segunda edición), IBM, septiembre de 1974, GC33-5403-1
- ^ Escritores de salida de prioridad / extendida de almacenamiento virtual, procesadores de ejecución y lectores de entrada ; VSE / POTENCIA - 5686-CF9-03