CLR and our process are at different address space.
So each process is isolated and resides at separate address space .
But our process needs services of CLR like class loading,jit,gc etc. So my questions are:
1>is we require IPC mechanism between our process and CLR?
Let's set aside Windows API with Windows handles, which is itself an IPC, a legacy one inherited from the old Windows when it was not an OS, and processes were not isolated.—SA
One thing you are missing is that IPC is needed for data exchange, but not for the OS API calls. So, most calls do nothing about IPC. First of all, let's exclude CLR from the equation. All interaction with OS is done after the MSIL code is already JIT-compiled. As a result, the MSIL code is compiled into native code, which in tern directly calls native Windows API (or API of other platforms, because MSIL code can work on many other platforms, line Linux or Mac OS X, where the CLR implementation is installed, like Mono). Now, most calls are related to the process of the caller and only deal with the address space mapped on the calling process. No IPC is involved.
IPC is mostly processing of Windows messages and… the cases when an application process calls IPC functions of the OS. Actually, as far as I know the terminology, even the data exchange between OS kernel and application processes is not called IPC, which is the data exchange between application-level processes. From the other hand, big part of OS consists of application-level code.
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)