Click here to Skip to main content
13,287,856 members (51,466 online)
Rate this:
Please Sign up or sign in to vote.
See more:
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?
Posted 6-Nov-12 16:08pm

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

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.

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)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy |
Web04 | 2.8.171207.1 | Last Updated 6 Nov 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100