In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, ...
, spooling is a specialized form of
multi-programming for the purpose of copying data between different devices. In contemporary systems, it is usually used for mediating between a computer application and a slow
peripheral, such as a
printer
Printer may refer to:
Technology
* Printer (publishing), a person or a company
* Printer (computing), a hardware device
* Optical printer for motion picture films
People
* Nariman Printer (fl. c. 1940), Indian journalist and activist
* James ...
. Spooling allows programs to "hand off" work to be done by the peripheral and then proceed to other tasks, or to not begin until input has been transcribed. A dedicated program, the spooler, maintains an orderly sequence of jobs for the peripheral and feeds it data at its own rate. Conversely, for slow ''input'' peripherals, such as a
card reader
A card reader is a data input device that reads data from a card-shaped storage medium. The first were punched card readers, which read the paper or cardboard punched cards that were used during the first several decades of the computer industry ...
, a spooler can maintain a sequence of computational jobs waiting for data, starting each job when all of the relevant input is available; see
batch processing
Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically ...
. The spool itself refers to the sequence of jobs, or the storage area where they are held. In many cases, the spooler is able to drive devices at their full rated speed with minimal impact on other processing.
Spooling is a combination of
buffering and
queueing
Queue areas are places in which people queue (first-come, first-served) for goods or services. Such a group of people is known as a ''queue'' (British usage) or ''line'' ( American usage), and the people are said to be waiting or standing ''in ...
.
Print spooling
Nowadays, the most common use of spooling is printing:
document
A document is a written, drawn, presented, or memorialized representation of thought, often the manifestation of non-fictional, as well as fictional, content. The word originates from the Latin ''Documentum'', which denotes a "teaching" o ...
s formatted for printing are stored in a queue at the speed of the computer, then retrieved and printed at the speed of the printer. Multiple processes can write documents to the spool without waiting, and can then perform other tasks, while the "spooler" process operates the printer.
For example, when a large organization prepares payroll cheques, the computation takes only a few minutes or even seconds, but the printing process might take hours. If the payroll program printed cheques directly, it would be unable to proceed to other computations until all the cheques were printed. Similarly, before spooling was added to
PC operating systems,
word processor
A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features.
Early word processors were stand-alone devices dedicated to the function, but current ...
s were unable to do anything else, including interact with the user, while printing.
Spooler or print management software often includes a variety of related features, such as allowing priorities to be assigned to print jobs, notifying users when their documents have been printed, distributing print jobs among several printers, selecting appropriate paper for each document, etc.
A
print server In computer networking, a print server, or printer server, is a type of server that connects printers to client computers over a network. It accepts print jobs from the computers and sends the jobs to the appropriate printers, queuing the jobs loc ...
applies spooling techniques to allow many computers to share the same printer or group of printers.
Banner page
Print spoolers can be configured to add a banner page, also called a burst page, job sheet, or printer separator, to the beginning and end of each document and job. These separate documents from each other, identify each document (e.g. with its
title
A title is one or more words used before or after a person's name, in certain contexts. It may signify either generation, an official position, or a professional or academic qualification. In some languages, titles may be inserted between the f ...
) and often also state who printed it (e.g. by
username
A user is a person who utilizes a computer or network service.
A user often has a user account and is identified to the system by a username (or user name). Other terms for username include login name, screenname (or screen name), accoun ...
or
job
Work or labor (or labour in British English) is intentional activity people perform to support the needs and wants of themselves, others, or a wider community. In the context of economics, work can be viewed as the human activity that contr ...
name). Banner pages are valuable in office environments where many people share a small number of printers. They are also valuable when a single job can produce multiple documents. Depending on the configuration, banner pages might be generated on each client computer, on a centralized print server, or by the printer itself.
On printers using fanfold
continuous forms a leading banner page would often be printed twice, so that one copy would always be face-up when the jobs were separated. The page might include lines printed over the fold, which would be visible along the edge of a stack of printed output, allowing the operator to easily separate the jobs. Some systems would also print a banner page at the end of each job, assuring users that they had collected all of their printout.
Other applications
Spooling is also used to mediate access to
punched card
A punched card (also punch card or punched-card) is a piece of stiff paper that holds digital data represented by the presence or absence of holes in predefined positions. Punched cards were once common in data processing applications or to di ...
readers and punches,
magnetic tape drives, and other slow, sequential I/O devices. It allows the application to run at the speed of the CPU while operating peripheral devices at their full rates speed.
A
batch processing
Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically ...
system uses spooling to maintain a queue of ready-to-run tasks, which can be started as soon as the system has the resources to process them.
Some
store and forward
Store and forward is a telecommunications technique in which information is sent to an intermediate station where it is kept and sent at a later time to the final destination or to another intermediate station. The intermediate station, or node in ...
messaging systems, such as
uucp
UUCP is an acronym of Unix-to-Unix Copy. The term generally refers to a suite of computer programs and protocols allowing remote execution of commands and transfer of files, email and netnews between computers.
A command named is one of the pr ...
, used "spool" to refer to their inbound and outbound message queues, and this terminology is still found in the documentation for
email
Electronic mail (email or e-mail) is a method of exchanging messages ("mail") between people using electronic devices. Email was thus conceived as the electronic ( digital) version of, or counterpart to, mail, at a time when "mail" mean ...
and
Usenet
Usenet () is a worldwide distributed discussion system available on computers. It was developed from the general-purpose Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Ellis conceived the idea in 1979, and it wa ...
software.
History
Peripheral devices have always been much slower than core processing units. This was an especially severe problem for early
mainframes
A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise ...
. For example, a job which read punched cards or generated printed output directly was forced to run at the speed of the slow mechanical devices. The first spooling programs, such as IBM's "SPOOL System" (7070-IO-076) copied data from punched cards to magnetic tape, and from tape back to punched cards and printers.
Hard disks
A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating platters coated with magneti ...
, which offered faster I/O speeds and support for
random access, started to replace the use of magnetic tape for spooling in the middle 1960s, and by the 1970s had largely replaced it altogether.
Because the
unit record equipment
Starting at the end of the nineteenth century, well before the advent of electronic computers, data processing was performed using electromechanical machines collectively referred to as unit record equipment, electric accounting machines (EAM) or ...
on IBM mainframes of the early 1960s was slow, it was common for larger systems to use a small offline computer such as an
IBM 1401
The IBM 1401 is a variable-wordlength decimal computer that was announced by IBM on October 5, 1959. The first member of the highly successful IBM 1400 series, it was aimed at replacing unit record equipment for processing data stored on pu ...
instead of spooling.
The term "spool" may originate with the Simultaneous Peripheral Operations On-Line (SPOOL) software; this derivation is uncertain, however. ''Simultaneous peripheral operations on-line'' may be a
backronym
A backronym is an acronym formed from an already existing word by expanding its letters into the words of a phrase. Backronyms may be invented with either serious or humorous intent, or they may be a type of false etymology or folk etymology. The ...
.
[Tanenbaum, Andrew S. ''Modern Operating Systems''. 3rd Ed. Pearson Education, Inc., 2008. ] Another explanation is that it refers to "spools" or
reel
A reel is an object around which a length of another material (usually long and flexible) is wound for storage (usually hose are wound around a reel). Generally a reel has a cylindrical core (known as a '' spool'') with flanges around the ends ...
s of magnetic tape, although “spool” is an uncommon usage.
List of spooling systems
* IBM SPOOL System, 7070-IO-076
* Integrated facility of various operating systems, e.g.,
GCOS,
OS/360
OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBSYS/IBJOB ...
*
Attached Support Processor (ASP) in OS/360 and
OS/VS2 (SVS)
Single Virtual Storage (SVS) refers to Release 1 of Operating System/Virtual Storage 2 (OS/VS2); it is the successor system to the MVT option of Operating System/360. OS/VS2 (SVS) was a stopgap measure pending the availability of MVS, although ...
.
*
Houston Automatic Spooling Priority
The Houston Automatic Spooling Priority Program, commonly known as HASP, is an extension of the IBM OS/360 operating system and its successors providing extended support for "job management, data management, task management, and remote job entry ...
(HASP) in OS/360 and SVS, prominent in the 1960s
*
Job Entry Subsystem (JES, aka JES1) in
OS/VS1
Operating System/Virtual Storage 1, or OS/VS1, is a discontinued IBM mainframe computer operating system designed to be run on IBM System/370 hardware. It was the successor to the Multiprogramming with a Fixed number of Tasks (MFT) option of Sys ...
*
Job Entry Subsystem 2 (JES2), a follower of HASP
*
Job Entry Subsystem 3 (JES3), a follower of ASP
*
Priority Output Writers, Execution Processors and Input Readers (POWER)
''Virtual Storage Extended / Priority Output Writers, Execution Processors and Input Readers''
VSE/POWER - 5686-CF9-03
* GRASP
A grasp is an act of taking, holding or seizing firmly with (or as if with) the hand. An example of a grasp is the handshake, wherein two people grasp one of each other's like hands.
In zoology particularly, prehensility is the quality of an ap ...
* The Spooler, IBM DOS/360, DOS/VS
Disk Operating System/360, also DOS/360, or simply DOS, is the discontinued first member of a sequence of operating systems for IBM System/360, System/370 and later mainframes. It was announced by IBM on the last day of 1964, and it was first d ...
, and DOS/VSE spooler, 1975–1980s
* The Berkeley printing system (lpr/lpd)
* CUPS
CUPS (formerly an acronym for Common UNIX Printing System) is a modular printing system for Unix-like computer operating systems which allows a computer to act as a print server. A computer running CUPS is a host that can accept print jobs ...
* VM/370 RSCS (Remote Spooling Communications Subsystem)
Notes
References
{{reflist
Computer printing
Job scheduling
Operating system technology
Unix software