In computing , 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 . 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.
28-397: Spooling is a combination of buffering and queueing . Nowadays, the most common use of spooling is printing: documents 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
56-465: A 35 mm film reel is 1,000 feet (305 m), which runs approximately 11 minutes for sound film (24 frames per second ) and about 15 minutes for silent film at the more or less standard speed of 18 frames per second. Most films have visible cues which mark the end of the reel . This allows projectionists running reel-to-reel to change over to the next reel on the other projector . A so-called "two-reeler" would have run about 15–24 minutes since
84-510: A buffer to be used to aggregate many smaller read or write operations into block sizes that are more efficient for the disk subsystem, or in the case of a read, sometimes to completely avoid having to physically access a disk. A buffer routine or storage medium used in telecommunications compensates for a difference in rate of flow of data or time of occurrence of events when data is transferred from one device to another. Buffers are used for many purposes, including: An early mention of
112-456: A coaster arrives and is loaded). The queue area acts as a buffer—a temporary space where those wishing to ride wait until the ride is available. Buffers are usually used in a FIFO (first in, first out) method, outputting data in the order it arrived. Buffers can increase application performance by allowing synchronous operations such as file reads or writes to complete quickly instead of blocking while waiting for hardware interrupts to access
140-403: A lighter and smaller form than film would on a "fixed" reel. In the silent era , the term was used to describe a single reel that accommodated two or more individual titles. As digital cinema catches on, the physical reel is being replaced by a virtual format called Digital Cinema Package , which can be distributed using any storage medium (such as hard drives) or data transfer medium (such as
168-409: A location in the physical memory. In all cases, the data stored in a data buffer is stored on a physical storage medium . The majority of buffers are implemented in software , which typically use RAM to store temporary data because of its much faster access time when compared with hard disk drives . Buffers are typically used when there is a difference between the rate at which data is received and
196-401: A physical disk subsystem; instead, an operating system can immediately return a successful result from an API call, allowing an application to continue processing while the kernel completes the disk operation in the background. Further benefits can be achieved if the application is reading or writing small blocks of data that do not correspond to the block size of the disk subsystem, which allows
224-449: A print buffer is the "Outscriber" devised by image processing pioneer Russel A. Kirsch for the SEAC computer in 1952: One of the most important problems in the design of automatic digital computers is that of getting the calculated results out of the machine rapidly enough to avoid delaying the further progress of the calculations. In many of the problems to which a general-purpose computer
252-460: 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
280-420: Is achieved in recording the output data; transcription can be made later from the magnetic recording device to a printing device without tying up the main computer. Reel A reel is a tool used to store elongated and flexible objects (e.g. yarns / cords , ribbons , cables , hoses , etc.) by wrapping the material around a cylindrical core known as a spool . Many reels also have flanges (known as
308-508: Is applied the amount of output data is relatively big — so big that serious inefficiency would result from forcing the computer to wait for these data to be typed on existing printing devices. This difficulty has been solved in the SEAC by providing magnetic recording devices as output units. These devices are able to receive information from the machine at rates up to 100 times as fast as an electric typewriter can be operated. Thus, better efficiency
SECTION 10
#1732786552286336-627: Is still found in the documentation for email and Usenet software. 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 , started to replace
364-428: Is stored in successive single layers. In cases where the material is more uniform in cross-section (for example, a cable), the material may be safely wound around a reel that is wider than its width. In this case, several windings are needed to create a layer on the reel. Examples of reel usage include: It is traditional to discuss the length of theatrical motion pictures in terms of "reels". The standard length of
392-408: Is uncertain, however. Simultaneous peripheral operations on-line may be a backronym . Another explanation is that it refers to "spools" or reels of magnetic tape, although “spool” is an uncommon usage. Data buffer In computer science , a data buffer (or just buffer ) is a region of memory used to store data temporarily while it is being moved from one place to another. Typically,
420-421: The rims ) around the ends of the spool to help retain the wrapped material and prevent unwanted slippage off the ends. In most cases, the reel spool is hollow in order to pass an axle and allow it to spin like a wheel , a winding process known as reeling , which can be done by manually turning the reel with handles or cranks , or by machine -powered rotating via (typically electric ) motors . The size of
448-416: The actual short film shipped to a movie theater for exhibition may have had slightly less (but rarely more) than 1,000 ft (305 m) on it. Most modern projectionists use the term "reel" when referring to a 2,000-foot (610 m) "two-reeler", as modern films are rarely shipped by single 1,000-foot (305 m) reels. A standard Hollywood movie averages about five 2,000-foot reels in length. The "reel"
476-473: 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
504-420: The core is dependent on several factors. A smaller core will obviously allow more material to be stored in a given space. However, there is a limit to how tightly the stored material can be wound without damaging it and this limits how small the core can be. Other issues affecting the core size include: With material such as photographic film that is flat and long but is relatively wide, the material generally
532-420: The data is stored in a buffer as it is retrieved from an input device (such as a microphone) or just before it is sent to an output device (such as speakers); however, a buffer may be used when data is moved between processes within a computer, comparable to buffers in telecommunication. Buffers can be implemented in a fixed memory location in hardware or by using a virtual data buffer in software that points at
560-413: 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. 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
588-457: 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 processors were unable to do anything else, including interact with
SECTION 20
#1732786552286616-438: The queue at one rate and reading it at another rate. Buffers are often used in conjunction with I/O to hardware , such as disk drives , sending or receiving data to or from a network , or playing sound on a speaker. A line to a rollercoaster in an amusement park shares many similarities. People who ride the coaster come in at an unknown and often variable pace, but the roller coaster will be able to load people in bursts (as
644-433: The rate at which it can be processed, or in the case that these rates are variable, for example in a printer spooler or in online video streaming . In a distributed computing environment, data buffers are often implemented in the form of burst buffers , which provides distributed buffering services. A buffer often adjusts timing by implementing a queue (or FIFO ) algorithm in memory, simultaneously writing data into
672-420: The related equipment. A 16 mm "reel" is 400 feet (122 m). It runs, at sound speed, approximately the same amount of time (11–12 minutes) as a 1,000-foot (305 m) 35 mm reel. A "split reel" is a motion picture film reel in two halves that, when assembled, hold a specific length of motion picture film that has been wound on a plastic core. Using a split reel allows film to be shipped or handled in
700-449: The same printer or group of printers. 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 ) and often also state who printed it (e.g. by username or job name). Banner pages are valuable in office environments where many people share
728-524: 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 (SPOOL) software; this derivation
756-404: 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
784-403: Was established as a standard measurement because of considerations in printing motion picture film at a film laboratory, for shipping (especially the film case sizes) and for the size of the physical film magazine attached to the motion picture projector. If it had not been standardized (at 1,000 ft or 305 m of 35 mm film), there would have been many difficulties in the manufacture of
#285714