I'm developping a C++ based System under Windows 7. I deal with a bunch of processes that are deployed on separate CPU's and that communicate with each other. As communication is time critical (actually I deal with a real time system, i understand that Win7 is not the most suitable OS for my purpose..) I need it to be as fast as possible. I read up about IPC under Win7 (Pipes, MemMappedFiles, Sockets). The fastest method seems to be Memory mapped Files (Fastest IPC method on Windows 7). However, I disslike the idea that the Win7 swapper runs im background copying data back and forth from RAM to HD. In addition virtual memory manager needs to calculate physical memory addresses whenever I access a virtual memory address.
My approach: I would like to allocate a couple of MB's in RAM and write to/read from them directly by using their physical address. In addition I would like to remove that chuck of RAM memory from Win7 memory management. Is this possible? This should be the fastest way of sharing data between processes on separate CPU's, right? I understand that that way I don't allow Win7 to use any caching algorithms but as all my processes are deployed on separate CPU's and thus can't access the cache memory of one another this doesn't bother me, right?
Any comments (also very general ones) are greatly appreciated as I'm still in the phase of designing my system and looking for input!