In
system software
System software is software designed to provide a platform for other software. Examples of system software include operating systems (OS) like macOS, Linux, Android and Microsoft Windows, computational science software, game engines, search engin ...
, a job queue ( batch queue, input queue), is a data structure maintained by
job scheduler
A job scheduler is a computer application for controlling unattended background program execution of jobs. This is commonly called batch scheduling, as execution of non-interactive jobs is often called batch processing, though traditional ''job' ...
software containing jobs to run.
Users submit their programs that they want executed, "jobs", to the queue for
batch processing
Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically ...
.
The scheduler software maintains the queue as the pool of jobs available for it to run.
Multiple batch queues might be used by the scheduler to differentiate types of jobs
depending on parameters such as:
* job priority
* estimated
execution time
* resource requirements
The use of a batch queue gives these benefits:
* sharing of computer resources among many users
* time-shifts job processing to when the computer is less busy
* avoids idling the compute resources without minute-by-minute human supervision
* allows around-the-clock high utilization of expensive computing resources
Any process that comes to the CPU should wait in a queue.
See also
*
Command pattern
In object-oriented programming, the command pattern is a behavioral design pattern in which an object is used to encapsulate all information needed to perform an action or trigger an event at a later time. This information includes the method name ...
*
Command queue
*
Job scheduler
A job scheduler is a computer application for controlling unattended background program execution of jobs. This is commonly called batch scheduling, as execution of non-interactive jobs is often called batch processing, though traditional ''job' ...
*
Priority queue
In computer science, a priority queue is an abstract data-type similar to a regular queue or stack data structure in which each element additionally has a ''priority'' associated with it. In a priority queue, an element with high priority is se ...
*
Task queue
Job scheduling
{{Reflist