Re: microkernel design question

From: Andy Valencia <vandys_at_nospam.org>
Date: Fri Jul 16 1999 - 07:35:55 PDT

[Edmund GRIMLEY EVANS <edmundo@rano.demon.co.uk> writes:]

>The loss of performance greatly depends on the task but can be only 5%.

Edmund is quite correct. The question is not whether splitting things into
processes adds overhead--it certainly does--but what is this overhead,
amortized over the service it provides? So if a server gives you something
which will take 1 millisecond of work to use, and the server took 500
microseconds to get it, and your context switch is 10 microseconds, then
you're looking at 10/1500, or less than 1%.

Of course, you can play with scenarios until the overhead is 10%, or 50%, or
whatever. If the scenarios are real, practical, and frequently occurring
ones, then this sort of ratio is generally a sign that it's time to redesign
your client/server interface.

>If your microkernel architecture allows you do SMP better, then you
>might be able to beat some monolithic systems, such as Linux, on a
>multiprocessor system. The reason NT was 4 times faster than Linux in
>tests sponsored by Microsoft was that the tests were designed to
>exploit Linux's inability to run more than one processor at a time in
>kernel-mode on a system with 4 processors. At least that's the
>impression I have.

Well, I designed VSTa with a desire to permit processes, threads, and all
kernel services to be able to run in parallel. The kernel itself is an
attempt at a pretty efficient SMP implementation. Most of the processes are
not; they gain simplicity by using quite a bit of single threading.

>You can do SMP properly without a microkernel, though. I think that's
>what Solaris does.

They do. It started out badly, and has improved quite a bit (we use Solaris
SMP servers for SW development at Cisco).

>What's SMP like on BSD? Are there any free operating systems that do
>SMP better than Linux? Is anyone here working on that?

Linux is pretty much ahead of the game. FreeBSD is also a single-lock
kernel design. Of the free OS's, the two I know of which do real SMP
parallelism in the OS are Mach and VSTa.

Andy
Received on Fri Jul 16 06:28:37 1999

This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:56 PDT