Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Spooling
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Form of multitasking in computers}} {{For|use of this term to refer to thrust changes in jet engines|Jet engine}} [[File:Largetape.jpg|thumb|Magnetic recording tape wound onto a spool may have contributed to the origin of the term]] In [[computing]], '''spooling''' is a specialized form of [[Computer multitasking|multi-programming]] for the purpose of copying data between different devices. In contemporary systems,{{efn|In the past it was used to, e.g., copy a deck of cards unrelated to a computer application.}} it is usually used for mediating between a computer application and a slow [[peripheral]], such as a [[printer (computing)|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 [[punched card|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 [[Data buffer|buffering]] and [[Queue (data structure)|queueing]]. == Print spooling == Nowadays, the most common use of spooling is printing: [[document]]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.<ref name="TheSpooler">{{cite book|last=Lundin|first=Leigh |author2=Stoneman, Don |title=[[The Spooler]] User Guide|publisher=DataCorp of Virginia|location=Harrisonburg| year=1977|edition=2}}</ref> 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 [[personal computer|PC]] operating systems, [[word processor]]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 ===<!-- Anchor for Redirect: [Banner page]; caution if changed. --> [[File:Example_Banner_Page.png|thumb|right|Sample banner page generated by TSS/370]] Print spoolers{{efn|Punch spoolers also supported banner cards.}} 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 (publishing)|title]]) and often also state who printed it (e.g. by [[username]] or [[Job (computing)|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 stationery|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]] 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 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]], used "spool" to refer to their inbound and outbound message queues, and this terminology is still found in the documentation for [[email]] and [[Usenet]] software. == History == Peripheral devices have always been much slower than core processing units. This was an especially severe problem for early [[Mainframe computer|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 disk drive|Hard disks]], 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]] 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]] instead of spooling. The term "spool" may originate with the Simultaneous Peripheral Operations On-Line<ref>{{cite manual | author = | publisher = IBM | series = 7070 Data Processing System Bulletins | title = IBM 7070 SPOOL System | id = J28-6047-1 | edition = Second | date = | chapter = | page = | quote = | url = | format = | mode = cs2 }}</ref><ref>{{cite book |title=Systems Programming |last=Donovan |first=John J. |author-link=John J. Donovan |isbn=0-07-085175-1 |date=1972 |page=405 }}</ref> (SPOOL) software;<ref>{{cite book | title = Operating System Concepts | author1 = James L. Peterson | author2 = Abraham Silberschatz | section = 1.4.3 Spooling | page = 18 | isbn = 0-201-06097-3 | date = July 1984 | publisher = [[Addison-Wesley]] }} </ref> this derivation is uncertain however, as it may be a [[backronym]].<ref name="Tanenbaum, Andrew S 2008">Tanenbaum, Andrew S. ''Modern Operating Systems''. 3rd Ed. Pearson Education, Inc., 2008. {{ISBN|978-0-13-600663-3}}</ref>{{check|reason=quote relevant text.|date=October 2022}} Another explanation is that it refers to "spools" or [[reel]]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., [[General Comprehensive Operating System|GCOS]], [[OS/360 and successors|OS/360]] * [[Attached Support Processor]] (ASP)<ref>{{cite manual | publisher = IBM | title = IBM System/360 and System/370 Asymmetric Multiprocessing System: General Information Manual, Program Number 360A-CX-15X | id = GH20-1173 | mode = cs2 }} </ref> in OS/360 and [[OS/VS2 (SVS)]]. * [[Houston Automatic Spooling Priority]] (HASP)<ref>{{cite manual | publisher = IBM| title = The HASP System, February 26, 1971 HASP II (360D-05.1-014) V3M1| version = Version 3 Modification Level 1| date = February 26, 1971| ref = 360D-05.1-014 | mode = cs2 }}</ref> in OS/360 and SVS, prominent in the 1960s * [[Job Entry Subsystem 1 (JES1)|Job Entry Subsystem]] (JES, aka JES1) in [[OS/VS1]] * [[Job Entry Subsystem 2/3|Job Entry Subsystem 2]] (JES2),<ref>{{cite manual | publisher = IBM| title = z/OS V1R9.0 JES2 Introduction| url = http://publib.boulder.ibm.com/infocenter/zos/v1r9/index.jsp?topic=/com.ibm.zos.r9.hasa800/has2a86046.htm| id = SA22-7535-06 | mode = cs2 }} </ref> a follower of HASP * [[Job Entry Subsystem 2/3|Job Entry Subsystem 3]] (JES3),<ref>{{ cite manual | title = JES3 Overview | id = SC23-0040-0 | edition = First | date = December 1980 | publisher = IBM | mode = cs2 }} </ref> a follower of ASP * [[IBM POWER (software)|Priority Output Writers, Execution Processors and Input Readers]] (POWER)<ref>{{cite manual | author = | publisher = IBM | title = DOS/VS POWER/VS Installation and Operations | id = GC33-5403-1 | edition = Second | date = September 1974 | chapter = | page = | quote = | url = http://bitsavers.org/pdf/ibm/370/DOS_VS/GC33-5403-1_DOS_VS_POWER_VS_Installation_and_Operation_Sep74.pdf | mode = cs2 }}</ref><ref>[https://web.archive.org/web/20111016130241/http://www-03.ibm.com/systems/z/os/zvse/products/cf.html#power ''Virtual Storage Extended / Priority Output Writers, Execution Processors and Input Readers'']; VSE/POWER - 5686-CF9-03</ref> * [[Grasp (spooler)|GRASP]] * [[The Spooler]], IBM [[DOS/360]], [[DOS/VS]], and [[DOS/VSE]] spooler, 1975β1980s * The [[Berkeley printing system]] (lpr/lpd) * [[CUPS]] * [[CP-67]] * [[VM (operating system)|VM]] Control Program (CP) * VM/370 [[RSCS]] (Remote Spooling Communications Subsystem) * Symbionts and Cooperatives in [[SDS Sigma series]] computers<ref>{{cite book |title=CP-V Software: Concepts and Facilities Manual |date=1976 |publisher=Honeywell |page=2-7 |url=https://bitsavers.org/pdf/sds/sigma/cp-v/Control_Program_Five_Concepts_and_Facilities_197607.pdf |access-date=December 6, 2023}}</ref> ==Notes== {{notelist}} ==References== {{Wiktionary|spool|spooling}} {{reflist}} [[Category:Computer printing]] [[Category:Job scheduling]] [[Category:Operating system technology]] [[Category:Unix software]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Check
(
edit
)
Template:Cite book
(
edit
)
Template:Cite manual
(
edit
)
Template:Efn
(
edit
)
Template:For
(
edit
)
Template:ISBN
(
edit
)
Template:Notelist
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Wiktionary
(
edit
)