When printing, a process goes into the blocked state until it has finished printing. Printing a document can take a long time due to many factors-

  • Printers tend to be much slower than other devices. (Much slower!)
  • Printers may have to serve more than one user.
  • Printers are much slower when printing images at higher resolutions.

So if a process becomes blocked when you print the user will not be able to do anything with that process. This is not a useful situation. Lots of work could be done while the document is printing. If the document is going to take ten minutes to print, it would be a massive waste of resources to sit around doing nothing for ten minutes.

A print manager will help speed up this process. This is a device (normally a server but sometimes specialised hardware) which will sit imbetween a printer and users. Users will send data to the print manager to print. These print jobs are then stored in a queue. The print manager will then spool the data to the printer.

Note - A printer will not use an array as print jobs will vary in size and quantity. Only a dynamic structure will work.

The advantage of doing this is that the print manager can offer more features such as -

  • Allow job priority - CEO gets to go before a normal user!
  • Keep track of what has been printed and allocate print credits
  • Allow multiple users to share the same printer.