Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Apr 1997 10:02:46 +0100
From:      James Mansion <james@westongold.com>
To:        Terry Lambert <terry@lambert.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Price of FreeBSD (was On Holy Wars...)
Message-ID:  <335C7EB6.7E62@westongold.com>
References:  <199704211831.LAA13963@phaeton.artisoft.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert wrote:
> 
> > >   Microkernel systems can be as efficient as monolithic ones. Modularity
> >
> > Name one.  The very requirement of the boundaries will introduce a cost
> > that you could avoid with a direct function call.
> 
> Chorus; it does not enforce protection domains between OS servers and
> the OS, only between the OS & OS servers and user space.
> 

So?  Are you saying that the executing thread calls directly between the
servers,
like (say) a call to an in-proc COM server?

AFAICS, you have:

 * function call

or:

 * function call (to marshaller)
 * IPC (ok, so its not across a protection boundary, maybe just memcpy,
maybe
   the marshalling went straight into the destination space)
 * context switch
 * IPC (unmarshall, maybe its there already)
 * function call (do the biz.)
 * ... and the same again to pass the result back

Perhaps simplified somewhat.  I'll grant you that if the monolithic
kernel has
to hand over control to kernel internal threads then you get it all
back, but
that's essentially a case of a Chorus-like MK design with the server
running
internally.  I'll also grant that if you are actually doing async
operations
like kaoi then the latter form is essentially what you want straight
away and
has further advantages.

Clearly if you allow a thread to carry its execution directly into a
server
and to hop between them then you remove the overhead, but my
understanding of
the terminology is that one expects and MK 'server' to be an executing
entity
rather than a DLL.

I think MK design is a Good Thing, and the slight lack of efficiency is
worthwhile, so long as the server boundaries are at the right place so
that
latency and/or bandwidth isn't a major killer.  Same as any other client
server
design, it seems.

---------------------------------------
Westongold Ltd                 C++/Java
 Multithread development and libraries
+44 1920 444284     info@westongold.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?335C7EB6.7E62>