Job: in a batch system, there was a requirement to load and unload the
magnetic tapes for various activities such as compiling, linking, loading, and so
on, the term ‘job’ was used for performing the execution of a program through
the execution of those activities.
For example, the job is to execute a C program and the execution of compiler,
linker, and loader programs are job steps. These job steps are in sequence, that
is, loading is meaningless without the execution of linking program. Thus, job is
a sequence of single programs.
Task: The term ‘task’ was used when there was need to have concurrent
execution on a single processor, that is, more than one program of a single user.
For example, when a user works in Windows environment, he or she is able to
open and work on multiple windows such as Word file, email, web browser, and
so on. To distinguish it from the multi-programming and multiuser, the term
task’ was used and that is why it is called multi-tasking.
Program: A program is a set of instructions the user/programmer has written
and stored somewhere. It means that a program is a passive entity and continues
to exist at a place.
Process: On the other hand, when a program is ready for the execution, it
becomes active and is known as a process. In other words, a program in
execution is called a process. Thus, a process is an active entity with a limited
span of time as compared to a program. The term ‘task’ is also sometimes used
interchangeably with the term ‘process’.
The program when executed consists of many processes. This type of program
is known as concurrent program.