Program is nothing but the set of all the instruction which requires to carry out some specific job.Before come into execution they must be convert in binary codes which should be understood by loader os OS.Generally in Windows it like EXE file which is stored in Portable Executable (PE) Format on Secondary Memory Like hard disk.
A process is usually defined as an instance of a running Program and consists of two components:
1) A kernel object that the operating system uses to manage the process. The kernel object is also where the system keeps statistical information about the process.
2) An address space that contains all the executable or DLL module's code and data. It also contains dynamic memory allocations such as thread stacks and heap allocations.
Processes are inert. For a process to accomplish anything it must have a thread that runs in its context; this thread is responsible for executing the code contained in the process's address space. In fact a single process might contain several threads all of them executing code simultaneously in the process's address space. To do this each thread has its own set of CPU registers and its own stack. Each process has at least one thread that executes code in the process's address space. If there were no threads executing code in the process's address space there would be no reason for the process to continue to exist and the system would automatically destroy the process and its address space.
For detail u must learn Jeffery Richter articles http://www.JeffreyRichter.com).