The base operating system spooler is not specifically a print job spooler but a generic spooling system that can be used for queuing various types of jobs, including print jobs queued to a printer queue.
The spooler does not know what type of job it is queuing. When a queue is created, the function of the queue is defined by the spooler backend for that queue. For example, if a queue is created and the queue backend is set up to be piobe (the default printer I/O backend for local printer queues), the queue is a print queue. Likewise, if the queue backend is set up to be cc (or any other compiler), the queue is for compiler jobs. When the spooler's qdaemon component selects a job from a queue, it processes the job by invoking the queue's backend.
This section views the spooler as a generic spooling system with an entry point, an exit point, and points in-between. Jobs submitted to the spooler enter the system (job submission), travel along a predictable path from point to point (job processing), and then exit the system (job delivery and cleanup). Understanding the flow of the job through the system is crucial to both configuring queues to execute complicated tasks and to effective problem determination and resolution. The following sections describe this job flow in greater detail, making special note when the queue is a print queue.