On 21.09.2016, at 09:16, Gernot.Heiser@data61.csiro.au wrote:
On 21 Sep 2016, at 9:07 , Daniel Wang
wrote: Thank you for your quick response. by producer-consumer I mean if a message is sent to an EP and is received by another thread, is it gonna be consumed? Is there a way to send broadcast message to multiple receiver to the same EP?
the IPC model is rendez-vous, synchronous message transfer. Broadcast a higher-level abstraction that has no place in a minimal microkernel. See also https://www.cse.unsw.edu.au/~cs9242/16/lectures/01-intro.pdf
What Gernot is saying in charming ways ;-) is that yes, it is consumed, that broadcast can be implemented on top of the existing mechanisms, and that it is therefore not inside the kernel (for the reasons in the slides). Depending on the requirements of your system, shared memory + notifications might make sense to implement broadcast without copying, or if messages are tiny, maybe some other combination. Cheers, Gerwin