A process is a program in execution. A process is more than the program code, which is sometimes known as the text section. It also includes the current activity, as represented by the value of the program counter and the contents of the processor’s registers. A process generally also includes the process stack, which contains temporary data (such as function parameters return addresses, and local variables), and a data section, which contains global variables. A process may also include a heap, which is memory that is dynamically allocated during process run time.
We emphasize that a program by itself is not a process; a program is a passive
entity, such as a file containing a list of instructions stored on disk (often called an executable file), whereas a process is an active entity, with a program counter specifying the next instruction to execute and a set of associated resources. A
program becomes a process when an executable file is loaded into memory.
Two common techniques for loading executable files are double-clicking an icon representing the executable file and entering the name of the executable
file on the command line.
This show how processes run in the cpu.