What is a job in an operating system?

In certain computer operating systems, a job is the unit of work that a computer operator (or a program called a job scheduler) gives to the operating system. For example, a job could be the running of an application program such as a weekly payroll program. A job is usually said to be run in batch (rather than interactive) mode. The operator or job scheduler gives the operating system a "batch" of jobs to do (payroll, cost analysis, employee file updating, and so forth) and these are performed in the background when time-sensitive interactive work is not being done. In IBM mainframe operating systems (MVS, OS/390, and successors) a job is described with job control language (JCL). Jobs are broken down into job steps. An example of a job step might be to make sure that a particular data set or database needed in the job is made accessible.

Typically, the development programmer who writes a program that is intended to be run as a batch job also writes the JCL that describes for the operating system how to run the job (for example, what data sets or databases it uses). The use of a job scheduler usually provides greater flexibility and the ability to monitor and report batch job operations.

A similar term is task, a concept usually applied to interactive work. A multitasking operating system serving one or more interactive users can at the same time perform batch jobs in the background.

This was last updated in July 2021

Continue Reading About job

Dig Deeper on IBM system z and mainframe systems