Where more than one program or process wants to use a peripheral device such as a printer, the Input / Output system is responsible for controlling and sharing access to the device. A printer can only print one document at a time, but simply locking it as if it were a file could mean other programs waiting a very long time to print.
Instead, the I/O system holds print jobs in a print queue, and releases them to the printer when it becomes available. The queued document are held in a special file known as a spool file and I/O system process which controls printing is called a print spooler.
It is normally possible to control the operation of the print spooler from the user interface or with a utility program, eg: to change the order in which queued jobs are printed or remove a job from the queue. In recent versions of Windows this is done via the Printers applet in the Control Panel.
Other devices such as hard disk drives and CD-ROMs are also shared, and the I/O system ensures that requests from the file system to access information stored on different parts of a disk are sorted into the most appropriate order before implementing them.
Next: Memory Management