In this tutorial, we’ll define a job, task, and process as they’re used in computing.
A job in computing refers to a unit of work. In essence, it’s any activity executed by a computer system, either in response to an instruction or as part of normal computer operations. A job is usually made up of one or more tasks, which when performed, signify the execution of a job. In some operating systems, jobs are typically submitted by a user.
For example, if a user wants to use the word processing program on a computer, the user is required to issue instructions to the computer system, either through mouse clicks or a set of commands, to open the word processing program.
This action of opening the word processing program is a job that must be executed. For further examples of jobs, see our article on Spring jobs.
Jobs in an operating system are usually scheduled by a job scheduler, which determines which jobs must be executed at specific times in a specific order. Most operating systems employ one of two methods for executing jobs, i.e. batch processing or multitasking.
Batch processing groups several jobs together before processing them, while multitasking executes several jobs simultaneously.
On the other hand, a task is a unit of execution within a job, which means one or more tasks will make up a job. It’s important to note that different operating systems define tasks in different ways. In some operating systems, tasks and processes are used interchangeably.
However, tasks usually refer to actions/functions that are controlled by the operating system. In the example given earlier of a job, a user wants to open a word processing program. Every single step involved in opening the word processor is a task.
Task managers are typically used in operating systems to manage the execution of tasks:
A process refers to an executing program in computer memory. A program may be a piece of code or a software application. In most operating systems, the execution of a process is in five different stages: start, ready, running, waiting, and terminated.
To execute a process in a computer system, resources such as memory, CPU time, and input-output (I/O) devices are needed. Therefore, it’s the responsibility of the operating system to allocate these resources to different processes in a timely and orderly manner.
A process control block is also used to maintain basic information about processes. It contains information such as the process identifier, process state and memory, I/O, scheduling, and accounting information.
A process manager is used to coordinate the execution of processes:
In this article, we reviewed jobs, tasks, and processes in operating systems. It’s important to remember that in some operating systems, processes and tasks are used interchangeably.