This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages) (Learn how and when to remove this message)
|
Ajob scheduler is a computer application for controlling unattended background program execution ofjobs.[1] This is commonly calledbatch scheduling, as execution of non-interactive jobs is often calledbatch processing, though traditionaljob andbatch are distinguished and contrasted; see that page for details. Other synonyms includebatch system,distributed resource management system (DRMS),distributed resource manager (DRM), and, commonly today,workload automation (WLA). Thedata structure of jobs to run is known as thejob queue.
Modern job schedulers typically provide agraphical user interface and asingle point of control for definition and monitoring of background executions in a distributed network of computers. Increasingly, job schedulers are required to orchestrate the integration of real-time business activities with traditional backgroundIT processing across differentoperating system platforms and business application environments.
Job scheduling should not be confused withprocess scheduling, which is the assignment of currently running processes toCPUs by theoperating system.
Basic features expected of job scheduler software include:
If software from a completely different area includes all or some of those features, this software can be considered to have job scheduling capabilities.
Mostoperating systems, such asUnix andWindows, provide basic job scheduling capabilities, notably byat and batch,cron, and theWindows Task Scheduler.Web hosting services provide job scheduling capabilities through acontrol panel or awebcron solution. Many programs such asDBMS,backup,ERPs, andBPM also include relevant job-scheduling capabilities.Operating system ("OS") or point program supplied job-scheduling will not usually provide the ability to schedule beyond a single OSinstance or outside the remit of the specific program. Organizations needing toautomate unrelated IT workload may also leverage further advanced features from a job scheduler, such as:
These advanced capabilities can be written by in-house developers but are more often provided by suppliers who specialize insystems-management software.
There are many concepts that are central to almost every job scheduler implementation and that are widely recognized with minimal variations: jobs, dependencies, job streams, and users.
Beyond the basic, single OS instance scheduling tools there are two major architectures that exist for Job Scheduling software.
Job scheduling has a long history[2]. Job schedulers have been one of the major components ofIT infrastructure since the early mainframe systems. At first, stacks ofpunched cards were processed one after the other, hence the term "batch processing"[3].
From a historical point of view, we can distinguish two main eras about Job schedulers:
In terms of the type of scheduling, there are also distinct eras:
Various schemes are used to decide which particular job to run. Parameters that might be considered include: