2 ms·
The main performance problem isn't message passing itself but the required context switches. With a monolithic kernel, with disk io as an example and presented
by the_duke 10y ago
The main performance problem isn't message passing itself but the required context switches.
With a monolithic kernel, with disk io as an example and presented in a very primitive form:
Userspace -> Kernel -> Userspace.
Makes 2.
With a microkernel:
Userspace -> Kernel -> IO Service -> Disk Driver -> (IO Service) -> Kernel -> Userspace
Makes 5-6 context switches (at least) for a single disk read, since everything runs in an isolated process, and a context switch is quite expensive (saving & restoring registers, etc).
You can mitigate and optimize this though...