A process is a program in execution. It is more than the program code, which is sometimes known as the text section. In addition, a process generally includes the process stack, which contains temporary data (such as method parameters, return addresses, and local variables), and a data section, which contains global variables.
A program by itself is not a process; a program is a passive entity, such as the contents of a file stored on disk. It is an active entity, with a program counter specifying the next instruction to execute and a set of associated resources.
As a process executes, it changes state. The state of a process is defined in part by the current activity of that process. Each process may be in one of the following states: