Page 2 of 2

Re: Fully asynchronous IPC howto

Posted: Fri Dec 18, 2009 6:10 pm
by tom9876543
Hi Brendan,

Pure message passing is an excellent idea. I did a quick search on the internet, there doesn't seem to be a huge amount of info. If the OS is "pure message passing", does that mean the only kernel functions are sendMessage() and receiveMessage()?
Could you please provide a sample API for a pure message passing OS? Thanks heaps.

Re: Fully asynchronous IPC howto

Posted: Fri Dec 18, 2009 9:00 pm
by NickJohnson
(IIRC) Pure message passing means that concurrency is not done with threads and shared memory (and implicitly, locks), and is instead done with messages that are guaranteed to be passed atomically. The kernel can still have separate system calls for other functions, just not shared memory. There are a few microkernels (I believe MINIX is one) that only have sending and receiving system calls, but that often makes things more complicated than they need to be, like moving the scheduler out of the kernel.

A good example of the advantages of message passing is the language Erlang - it is used for highly parallel computation, achieves amazing reliability and speed, and uses only message passing between software/language isolated threads.