Overview
Basic features expected of job scheduler software include: * interfaces which help 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 can be considered to have job scheduling capabilities. Most operating systems, such as Unix and Windows, provide basic job scheduling capabilities, notably by at and batch,Main concepts
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. * 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 (Agent) is installed that awaits commands from the Master, executes them, then 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. This enables dynamic workload balancing to maximize hardware resource utilization and high availability to ensure service delivery.History
Job Scheduling has a long history. Job Schedulers have been one of the major components of IT infrastructure since the early mainframe systems. At first, stacks of punched cards were processed one after the other, hence the term " batch processing". From a historical point of view, we can distinguish two main eras about Job Schedulers: # The mainframe era #* Job Control Language (JCL) on IBM mainframes. Initially based on JCL functionality to handle dependencies, this era is typified by the development of sophisticated scheduling solutions (such as Job Entry Subsystem 2/3) forming part of the systems management and automation toolset on the mainframe. # The open systems era #* Modern schedulers on a variety of architectures and operating systems. With standard scheduling tools limited to commands such as at and batch, the need for mainframe standard job schedulers has grown with the increased adoption of distributed computing environments. In terms of the type of scheduling there are also distinct eras: # Batch processing - the traditional date and time based execution of background tasks based on a defined period during which resources were available for batch processing (the batch window). In effect the original mainframe approach transposed onto the open systems environment. # Event-driven process automation - where background processes cannot be simply run at a defined time, either because the nature of the business demands that workload is based on the occurrence of external events (such as the arrival of an order from a customer or a stock update from a store branch), or because there is no / insufficient batch window. # Service Oriented job scheduling - recent developments in Service Oriented Architecture (SOA) have seen a move towards deploying job scheduling as a reusable IT infrastructure service that can play a role in the integration of existing business application workload with new Web Services based real-time applications.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 * Availability of peripheral devices * Occurrence of prescribed events * Job dependency * File dependency * Operator prompt dependencySee also
References
{{Authority control