Swaminathan S R wrote:

>     I have a doubt in the way CLR has been conceptualised. In my
> uderstanding the CLR (and its services)is specific to a given process.
> What i mean here is: if i start two  .NET EXEs' separately the mscoree,
> mscorlib, and other related DLLs would be loaded into each of the EXEs
> process, right? Couldn't the CLR been designed as a service so that this
> can manage all the .net applications?

First, only one copy of the modules is actually in physical RAM.  This
is not unique to the CLR, but it's how the Windows loader works.  For
each process that loads a module that is already in RAM, the OS simply
maps the module into that process's address space.

This leads right into why it wouldn't work to implement the CLR as a
service.  For one thing, each process has it's own address space and
that address space cannot be manipulated/managed from another process.
I'm sure there are even more good reasons that the CLR is not
implemented out-of-process, but this is the biggest reason.  Since the
CLR is largely a memory-management system, it wouldn't do much good if
it were out-of-process and out-of-reach of the memory it's trying to
manage.  :)

--
Steve Johnson

===================================
This list is hosted by DevelopMentor�  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to