Spooling
Encyclopedia
In computer science
, spool refers to the process of placing data in a temporary working area for another program to process. The most common use is in writing files on a magnetic tape or disk and entering them in the work queue (possibly just linking it to a designated folder in the file system) for another process. Spooling is useful because devices access data at different rates. Spooling allows one program to assign work to another without directly communicating with it.
The most common spooling application is print spooling: document
s formatted for printing are stored usually into an area on a disk and retrieved and printed by a printer
at its own rate. Printers typically can print only a single document at a time and require seconds or minutes to do so. With spooling, multiple processes can write documents to a print queue without waiting. As soon as a process has written its document to the spool device, the process can perform other tasks, while a separate printing process operates the printer.
For example, when a city prepares payroll checks, the actual computation may take a matter of minutes or even seconds, but the printing process might take hours. If the program printed directly, computing resources (CPU, memory, peripherals) would be tied up until the program was able to finish. The same is true of personal computers. Without spooling, a word processor would be unable to continue until printing finished. Without spooling, most programs would be relegated to patterns of fast processing and long waits, an inefficient paradigm.
Spooler or print management software may allow priorities to be assigned to jobs, notify users when they have printed, distribute jobs among several printers, allow stationery to be changed or select it automatically, generate banner page
s to identify and separate print jobs, etc.
The temporary storage area to which E-mail
is delivered by a Mail Transfer Agent
and in which it waits to be picked up by a Mail User Agent
is sometimes called a mail spool. Likewise, a storage area for Usenet
articles may be referred to as a news spool. (On Unix-like
systems, these areas are usually located in the /var/spool directory
.) Mail and news spools usually allow random access
to individual messages.
In the later 1960s and early 1970s, computers handled punch cards, and spooling systems such as HASP
, FIDO, PATCHES, SHADOW & SHADOW II, Power, GRASP
, and The Spooler
found they could benefit batch programs by spooling card input and output. (Some centers directed punch card and printed output to tape
for later processing. The term 'spooling' may derive from these reels or 'spools' of tape, although the terms normally used for tape were reel or tape volume; this etymology has not been sourced.)
). For printers: simultaneous peripheral output on line. Early mainframe
computers had no disk drives and slightly more recent ones had, by current standards, small and expensive hard disk
s.
In the late 1950s and early 1960s, computers used SPOOL software to copy files from one medium to another: punch card to tape, tape to punch card and tape to printer, with occasional use for card-to-card copying. The introduction of the relatively inexpensive IBM 1401
led to a temporary reduction in the use of SPOOL software.
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
, spool refers to the process of placing data in a temporary working area for another program to process. The most common use is in writing files on a magnetic tape or disk and entering them in the work queue (possibly just linking it to a designated folder in the file system) for another process. Spooling is useful because devices access data at different rates. Spooling allows one program to assign work to another without directly communicating with it.
The most common spooling application is print spooling: document
Document
The term document has multiple meanings in ordinary language and in scholarship. WordNet 3.1. lists four meanings :* document, written document, papers...
s formatted for printing are stored usually into an area on a disk and retrieved and printed by a printer
Computer printer
In computing, a printer is a peripheral which produces a text or graphics of documents stored in electronic form, usually on physical print media such as paper or transparencies. Many printers are primarily used as local peripherals, and are attached by a printer cable or, in most new printers, a...
at its own rate. Printers typically can print only a single document at a time and require seconds or minutes to do so. With spooling, multiple processes can write documents to a print queue without waiting. As soon as a process has written its document to the spool device, the process can perform other tasks, while a separate printing process operates the printer.
For example, when a city prepares payroll checks, the actual computation may take a matter of minutes or even seconds, but the printing process might take hours. If the program printed directly, computing resources (CPU, memory, peripherals) would be tied up until the program was able to finish. The same is true of personal computers. Without spooling, a word processor would be unable to continue until printing finished. Without spooling, most programs would be relegated to patterns of fast processing and long waits, an inefficient paradigm.
Spooler or print management software may allow priorities to be assigned to jobs, notify users when they have printed, distribute jobs among several printers, allow stationery to be changed or select it automatically, generate banner page
Banner page
A banner page, also called a burst page, job sheet, or a printer separator, is used in computerized printing in order to separate documents from each other and to identify the originator of the print request by username. These pages are typically used in office environments where many people...
s to identify and separate print jobs, etc.
The temporary storage area to which E-mail
E-mail
Electronic mail, commonly known as email or e-mail, is a method of exchanging digital messages from an author to one or more recipients. Modern email operates across the Internet or other computer networks. Some early email systems required that the author and the recipient both be online at the...
is delivered by a Mail Transfer Agent
Mail transfer agent
Within Internet message handling services , a message transfer agent or mail transfer agent or mail relay is software that transfers electronic mail messages from one computer to another using a client–server application architecture...
and in which it waits to be picked up by a Mail User Agent
E-mail client
An email client, email reader, or more formally mail user agent , is a computer program used to manage a user's email.The term can refer to any system capable of accessing the user's email mailbox, regardless of it being a mail user agent, a relaying server, or a human typing on a terminal...
is sometimes called a mail spool. Likewise, a storage area for Usenet
Usenet
Usenet is a worldwide distributed Internet discussion system. It developed from the general purpose UUCP architecture of the same name.Duke University graduate students Tom Truscott and Jim Ellis conceived the idea in 1979 and it was established in 1980...
articles may be referred to as a news spool. (On Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
systems, these areas are usually located in the /var/spool directory
Filesystem Hierarchy Standard
The Filesystem Hierarchy Standard defines the main directories and their contents in Linux operating systems. For the most part, it is a formalization and extension of the traditional BSD filesystem hierarchy....
.) Mail and news spools usually allow random access
Random access
In computer science, random access is the ability to access an element at an arbitrary position in a sequence in equal time, independent of sequence size. The position is arbitrary in the sense that it is unpredictable, thus the use of the term "random" in "random access"...
to individual messages.
In the later 1960s and early 1970s, computers handled punch cards, and spooling systems such as HASP
HASP
HASP can refer to:*Homeowners Affordability and Stability Plan*Hardware Against Software Piracy, a type of dongle*Houston Automatic Spooling Priority a system program for IBM System/360 and IBM System/370 mainframe computer systems*Aladdin HASP Dongles...
, FIDO, PATCHES, SHADOW & SHADOW II, Power, GRASP
Grasp (software)
GRASP was a systems software package that provided spooling facilities for the IBM/370 running DOS/VS or DOS/VSE environment, and IBM/360 running DOS or retrofitted with modified DOS.- The product :...
, and The Spooler
Spooler (software)
The Spooler was a systems software operating system package that provided spooling facilities for the IBM/370 running DOS/VS, DOS/VSE environment, and IBM/360 running DOS or retrofitted with modified DOS, such as TCSC's EDOS...
found they could benefit batch programs by spooling card input and output. (Some centers directed punch card and printed output to tape
Magnetic tape data storage
Magnetic tape data storage uses digital recording on to magnetic tape to store digital information. Modern magnetic tape is most commonly packaged in cartridges and cassettes. The device that performs actual writing or reading of data is a tape drive...
for later processing. The term 'spooling' may derive from these reels or 'spools' of tape, although the terms normally used for tape were reel or tape volume; this etymology has not been sourced.)
Origin of the term
According to Tanenbaum, "Spool" is an acronym for simultaneous peripheral operations on-line (though others may consider this a backronymBackronym
A backronym or bacronym is a phrase constructed purposely, such that an acronym can be formed to a specific desired word. Backronyms may be invented with serious or humorous intent, or may be a type of false or folk etymology....
). For printers: simultaneous peripheral output on line. Early mainframe
Mainframe computer
Mainframes are powerful computers used primarily by corporate and governmental organizations for critical applications, bulk data processing such as census, industry and consumer statistics, enterprise resource planning, and financial transaction processing.The term originally referred to the...
computers had no disk drives and slightly more recent ones had, by current standards, small and expensive hard disk
Hard disk
A hard disk drive is a non-volatile, random access digital magnetic data storage device. It features rotating rigid platters on a motor-driven spindle within a protective enclosure. Data is magnetically read from and written to the platter by read/write heads that float on a film of air above the...
s.
In the late 1950s and early 1960s, computers used SPOOL software to copy files from one medium to another: punch card to tape, tape to punch card and tape to printer, with occasional use for card-to-card copying. The introduction of the relatively inexpensive IBM 1401
IBM 1401
The IBM 1401 was 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 electromechanical unit record equipment for processing data stored on punched cards...
led to a temporary reduction in the use of SPOOL software.
See also
- Queue
- Spoolers:
- Berkeley printing systemBerkeley printing systemThe Berkeley printing system is one of several standard architectures for printing on the Unix platform. It originated in 4.2BSD, and is used in BSD derivatives such as FreeBSD, NetBSD, OpenBSD, and DragonFly BSD...
(lpr/lpd) - CUPS
- Houston Automatic Spooling Priority (HASP), prominent in 1960s
- Job Entry Subsystem 2, a follower of HASP
- Priority Output Writers, Execution Processors and Input Readers (Power)
- SPOOL System, 7070-IO-076
- The SpoolerSpooler (software)The Spooler was a systems software operating system package that provided spooling facilities for the IBM/370 running DOS/VS, DOS/VSE environment, and IBM/360 running DOS or retrofitted with modified DOS, such as TCSC's EDOS...
, IBM DOS spooler, 1975-1980s
- Berkeley printing system