Printing in a UNIX system can be done in two ways. Either files are directly copied to the special file associated with the printer or files are submitted to the spooling system.
Copying file directly to the printer has the disadvantage that the output might be jumbled up with somebody else's, if both users are copying their files to the printer at once.
Spooling is far more reliable and also allows the use of remote printers. When the user submits a file for printing, it is placed in a queue. Each printer has one queue, so by selecting the printer with the shortest queue, it is possible to get the printouts quicker, on a higher quality printer or on a printer, which is nearer.
Queues are usually associated directly with one printer, some systems though have one queue for many printers or many queues for one printer. Where there are many printers to one queue the system might have an intelligent way of evenly distributing the jobs onto the printers. Systems with many queues for one printer, may do some pre-processing like adding titles and pagenumbers to simple textfiles, while leaving graphics files as they are. Another use of multiple queues is to have one printer which will print single sided on one queue and double sided on the other queue.