- Spooling
In
computer science , "spooling" refers to a process of transferring data by placing it in a temporary working area where another program may access it for processing at a later point in time. This temporary working area could be a file orstorage device , but probably not a buffer. Traditional uses of the term spooling apply to situations where there is little or no direct communication between the program writing the data and the program reading it. Spooling is often used when a device writesdata at a speed different from the rate at which the target device reads it, which would allow a slower device to process it at its own rate. Data is only modified through addition or deletion at the ends of the area, i.e., there is norandom access or editing.It can also refer to a storage device that incorporates a physical spool, such as a
tape drive .The most common spooling application is print spooling. In print spooling,
document s are loaded into a buffer (usually an area on a disk), and then the printer pulls them off the buffer at its own rate. Because the documents are in a buffer where they can be accessed by the printer, the user is free to perform other operations on thecomputer while the printing takes place in the background. Spooling also lets users place a number of print jobs in a queue instead of waiting for each one to finish before specifying the next one. Optionally it may also automatically generatebanner page s, to identify and separate print jobs.The temporary storage area to which
e-mail is delivered by aMail 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 forUsenet articles may be referred to as a news spool. (OnUnix-like systems, these areas are usually located in the /var/spool directory.) Unlike other spools, mail and news spools usually allowrandom access to individual messages.Origin of the term
"Spool" is supposedly an
acronym for simultaneous peripheral operations on-line (although this is thought by some to be abackronym ), or as for printers: simultaneous peripheral output on line. Early mainframe computers had, by current standards, small and expensive hard disks. These costs made it necessary to reserve the disks for files that "required" random access, while writing large sequential files to reels of tape. Typical programs would run for hours and produce hundreds or thousands of pages of printed output. Periodically the program would stop printing for a while to do a lengthy search or sort. But it was desirable to keep the printer(s) running continuously. Thus, when a program was running, it would write the printable file to a "spool" of tape, which would later be read back in by the program controlling the printer.Spooling also improved the multiprogramming capability of systems. Most programs required input, and produced output, using slow peripherals such as card-readers and lineprinters. Without spooling, the number of tasks that could be multiprogrammed could be limited by the availability of peripherals; with spooling, a task did not need access to a real device: slow peripheral input and output for tasks could be held on shared system storage, written and read by separate system processes running asynchronously with those tasks
ee also
*Queue
*Spoolers:
**Berkeley printing system (lpr/lpd)
**CUPS
**Houston Automated Spooling Program (HASP), prominent in 1960s
***Job Entry Subsystem 2, a follower of HASP
Wikimedia Foundation. 2010.