Many computers are capable of using a job scheduler to perform automated tasks. This function allows the computer to perform some tasks automatically on a schedule set by the computer user. A scheduler is typically specialized for each type of computer operating system (OS). It performs tasks in an automated manner, which reduces the need for human intervention.
A job scheduler can be set to run at multiple interval times. This provides system administrators with a tool that can schedule monthly or daily maintenance tasks. An example of a job within the scheduler is an achieve process. This is a process that moves old data into achieve storage. Using a scheduled job to complete this task ensures the computer system maintains adequate disk space.
Within the UNIX® operating system a job scheduler is typically known as a cron job. This is the master scheduler program for UNIX®. It can run multiple types of programs including scripts, administrative tasks, and general OS maintenance processes. The cron job uses a built-in timer similar to an alarm clock and performs tasks based on a predefined schedule. This schedule is managed in a special file within the operating system, which orchestrates all daily tasks.
The UNIX® job scheduler uses a special background process that manages the schedule. This manager program, often referred to as a cron daemon is responsible for reading the schedule and executing scripting programs on time. The manager program reviews the schedule once every minute. If new tasks are added to the schedule, it will typically execute within 60 seconds of entry into the table.
The job scheduler in the Windows® operating system is known as the task manager program. The Windows® task scheduler can run scripts or existing programs within the computer operating system. This makes is a good tool for managing daily backups and maintenance activities.
A distributed resource scheduler (DRS) program is an example of an advance job scheduler. This program is designed for distributed software applications and has the ability to execute programs based on job priority. This type of process is typically used in high available clustered IT environments.