Job control (computing)

In computing, job control refers to the automated control of job execution – ensuring that each job has access to adequate resources to perform correctly, that competition for limited resources does not cause a deadlock, resolving such situations where they do occur, and terminating jobs that, for any reason, are not performing as expected. Even with sophisticated automation, most systems, such as Unix-like systems, permit manual operations such as interrupting, pausing and resuming jobs and to execute them in the foreground (interactively) instead of the usual background (batch) mode for fully automated execution.

Job control, a.k.a. batch processing mostly proceeds without human intervention. Job control is configured by programmers who decide details including:

  • When to run a job
  • Under which conditions to skip a step
  • Which files and/or devices to use for input/output
  • Whether a file is to be retained or deleted
  • The maximum amount of storage that can be used