At Sun, 16 Mar 2008 08:01:22 +0100,
<[EMAIL PROTECTED]> wrote:
> On Tue, Mar 11, 2008 at 12:10:17PM +0100, Neal H. Walfield wrote:
> 
> > > using some kind of continuation mechanism: Have a limited number of
> > > threads (ideally one per CPU) handle incoming requests.  Whenever
> > > some operation would require blocking for some event (in the case of
> > > diskfs, waiting for the underlying store to finish reading/writing),
> > > the state is instead saved to some list of outstanding operations,
> > > and the thread goes on handling other requests. Only when the event
> > > completes, we read the state back and continue handling the original
> > > request.
> > 
> > What you are suggesting is essentially using a user-level thread
> > package.  (Compacting a thread's state in the form of a closure is a
> > nice optimization, but the model essentially remains the same.)  The
> > main advantage to user-level thread package is that the thread memory
> > is pagable and is thus less likely to exhaust the sparser kernel
> > resources.  In the end, however, it suffers from the same problems as
> > the current approach.
> 
> I don't agree it's equivalent -- not in any meaningful sense.

You need kernel memory for the memory maps, at least one for each user
thread.



Reply via email to