"Geoff Humphreys" xsaber0@hotmail.com writes:
Hello. I have been writing my own microkernel using ideas from L4 and other kernels.
I am curious as to whether or not there would be an appreciable performance increase if the L4 system calls were split up into multiple calls. For example, the IPC call is be used to send messages, recieve messages, and to do RPC. Wouldn't it be faster if each of those were separate system calls (since it would require less if-then logic and bit manipulation)? Is there any reason not to do this?
Maybe you should have a look at Jochen's micro kernel papers on our L4 page (SOSP93, SOSP95). One point was to combine the various ipc operations into one system call to reduce the number of 'kernel boundary crossings'. You add one simple if and remove an expensive switch from user to kernel and back. So this actually increases performance.
Also, does L4 have any support for semaphores? I was unable to find anything in the documentation.
There are no semaphores inside L4. All semaphores are implemented on user level.
Jean