The managed execution process includes the following steps
Choosing a compiler
To obtain the benefits provided by the common language runtime, you must use one or more language compilers that
target the runtime.
Compiling your code to MSIL
Compiling translates
your source code into Microsoft intermediate language (MSIL) and
generates the required metadata.
Compiling MSIL to native code
At execution time, a just-in-time (JIT) compiler translates the MSIL into
native code. During this compilation, code must pass a verification
process that examines the MSIL and metadata to find out whether the
code can be determined to be type safe.
Running code
The common language runtime provides the infrastructure that enables execution to
take place and services that can be used during execution.
look here for detailled information: http://msdn.microsoft.com/en-us/library/k5532s8a.aspx