Class loader: Which loads classes from applications to clr execution time.
Code Manager: Which manages the code during execution. A .Net application can contain managed code and unmanaged code.
Managed Code: The code which is taking the help of CLR for execution can be called as managed code
Eg: VB.Net, C#.Net, All .Net language codes.
Unmanaged Code: The code which is not taking the help of CLR for execution can be called as managed code
Eg: VB(Visual Base) code, VC++ Code.
Code manager will accept the manged code and it will rejects the unmanaged code.
JIT Compiler: Which converts MSIL code to native code.
Garbage Collector: In .Net technology memory management is handling by the garbage collector.
To perform the memory management garbage collector will do few duties. 1. Allocating Memory 2. Deallocating memory or Releasing Memory
1. Allocating Memory: When an object is created by the application then garbage collector will allocate memory for that object within the Heap this can be called as allocating memory.
2. Deallocating memory or Releasing Memory: When an object is not using by the application since long time then garbage collector will recognize that object as unused object or unreachable object & it will destroy the used objects this process can be called as deallocating memory.
That destroyed object released memory garbage collector will allocate for the newly created objects.
In this way garbage collector will perform the memory management.
For allocating memory & deallocating memory programmer may not write single line of code due to this we will call it as automatic memory management.