[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Thread model

From: Thomas Bushnell BSG
Subject: Re: Thread model
Date: Thu, 20 Mar 2008 13:32:18 -0400

On Wed, 2008-03-19 at 21:48 +0100, olafBuddenhagen@gmx.net wrote:
> > Now the basic idea behind using one kernel thread to handle several
> > user threads is that when a user thread *would* block, you don't let
> > it block, instead you just take it away and run some other user
> > thread. That works very nicely in Mach, in general, because almost all
> > blocks happen inside mach_msg, and mach_msg was carefully constructed
> > to make this work nicely.
> > 
> > But there is a wrinkle: page faults.  When I say "almost all blocks
> > happen inside mach_msg" that's because one important category does
> > not: page faults.  Or rather, the page fault also blocks in a message
> > send, but the message send is one that is done by the thread in kernel
> > space, rather than by the user space mach_msg, and so the user-space
> > threads library has no access to it.
> I see.
> And pagefault handling can be recursive, and thus just ignoring that
> problem and letting the process block completely is not an option,
> right?

The fault may be handled by the process itself via another thread.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]