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>