Job scheduler

From Wikipedia, the free encyclopedia

A job scheduler is a software application that is in charge of unattended background executions, commonly known as batch processing. This type of software is often known as batch queue manager because batch queues are commonly used to prioritize execution of multiple jobs. Job schedulers are also sometimes known as a distributed resource manager or batch scheduler.

Contents

[edit] Overview

Basic features expected of job scheduler software are:

  • Interfaces to define workflows and/or job dependencies
  • Automatic submission of executions
  • Interfaces to monitor the executions
  • Priorities and/or queues to control the execution order of unrelated jobs

If software from a completely different area includes all or some of those features, this software has job scheduling capabilities.

Many programs such as DBMS, backup, ERPs, and BPM include relevant job scheduling capabilities.

[edit] Main concepts

There are many concepts that are central to almost every job scheduler implementation and that are widely recognised with minimal variations:

  • Jobs
  • Dependencies
  • Job Streams
  • Users

Two major architectures exist for Job Scheduling software.

  • Master/Agent architecture — the historic architecture for Job scheduling software. The Job Scheduling software is installed on a single machine (Master) while on production machines only a very small component is installed (Agent) that waits commands from the Master, executes them, and returns the exit code back to the Master.
  • Cooperative architecture — a decentralized model where each machine is capable of helping with scheduling and can offload locally scheduled jobs to other cooperating machines.

[edit] History

From a historical point of view, we can distinguish two main eras about Job Schedulers:

  1. The mainframe era
  2. The open system era
    • modern schedulers on a variety of architectures and operating systems

[edit] Scheduling

Various schemes are used to decide which particular job to run. Parameters that might be considered include:

  • job priority
  • compute resource availability
  • license key if job is using licensed software
  • execution time allocated to user
  • number of simultaneous jobs allowed for a user
  • estimated execution time
  • elapsed execution time

[edit] External Links

[edit] Commercial

[edit] Open source

In other languages