HOME

TheInfoList



OR:

In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, 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 A peripheral device, or simply peripheral, is an auxiliary hardware device that a computer uses to transfer information externally. A peripheral is a hardware component that is accessible to and controlled by a computer but is not a core compo ...
, such as a printer. 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 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. 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.


Print spooling

Nowadays, the most common use of spooling is printing:
document A document is a writing, written, drawing, drawn, presented, or memorialized representation of thought, often the manifestation of nonfiction, non-fictional, as well as fictional, content. The word originates from the Latin ', which denotes ...
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 word ...
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 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 their generation, official position, military rank, professional or academic qualification, or nobility. In some languages, titles may be ins ...
) and often also state who printed it (e.g. by
username A user is a person who uses a computer or Computer network, network Service (systems architecture), service. A user often has a user account and is identified to the system by a username (or user name). Some software products provide serv ...
or job 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 stiff paper-based medium used to store digital information via the presence or absence of holes in predefined positions. Developed over the 18th to 20th centuries, punched cards were widel ...
readers and punches,
magnetic tape Magnetic tape is a medium for magnetic storage made of a thin, magnetizable coating on a long, narrow strip of plastic film. It was developed in Germany in 1928, based on the earlier magnetic wire recording from Denmark. Devices that use magnetic ...
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 rated speed. A batch processing 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 messaging systems, such as
uucp UUCP (Unix-to-Unix Copy) is a suite of computer programs and communications protocol, protocols allowing remote execution of commands and transfer of computer file, files, email and netnews between computers. A command named is one of the prog ...
, used "spool" to refer to their inbound and outbound message queues, and this terminology is still found in the documentation for
email Electronic mail (usually shortened to email; alternatively hyphenated e-mail) is a method of transmitting and receiving Digital media, digital messages using electronics, electronic devices over a computer network. It was conceived in the ...
and
Usenet Usenet (), a portmanteau of User's Network, is a worldwide distributed discussion system available on computers. It was developed from the general-purpose UUCP, Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Elli ...
software.


History

Peripheral devices have always been much slower than core processing units. This was an especially severe problem for early mainframes. 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, which offered faster I/O speeds and support for
random access Random access (also called direct access) is the ability to access an arbitrary element of a sequence in equal time or any datum from a population of addressable elements roughly as easily and efficiently as any other, no matter how many elemen ...
, 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 Electromechanics, electromechanical machines collectively referred to as unit record equipment, electric accounting ...
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 word length computer, 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 pr ...
instead of spooling. The term "spool" may originate with the Simultaneous Peripheral Operations On-Line (SPOOL) software; this derivation is uncertain however, as it 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 reels 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 * Attached Support Processor (ASP) in OS/360 and OS/VS2 (SVS). * Houston Automatic Spooling Priority (HASP) in OS/360 and SVS, prominent in the 1960s * Job Entry Subsystem (JES, aka JES1) in OS/VS1 * 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) * GRASP * The Spooler, IBM DOS/360, DOS/VS, and DOS/VSE spooler, 1975–1980s * The Berkeley printing system (lpr/lpd) * CUPS * CP-67 * VM Control Program (CP) * VM/370 RSCS (Remote Spooling Communications Subsystem) * Symbionts and Cooperatives in SDS Sigma series computers


Notes


References

{{reflist Computer printing Job scheduling Operating system technology Unix software