Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Apr 1997 13:08:59 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        james@westongold.com (James Mansion)
Cc:        mrm@Mole.ORG, freebsd-hackers@freebsd.org
Subject:   Re: Price of FreeBSD (was On Holy Wars...)
Message-ID:  <199704222008.NAA26903@phaeton.artisoft.com>
In-Reply-To: <335B9284.6E78@westongold.com> from "James Mansion" at Apr 21, 97 05:15:00 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> And people ran various NT and W95 versions for a long time prior to
> release, some very successfully, but that didn't make them perfect
> either.

Kernel components which sleep threads must be prepared to be
reentered by those threads when the execution context is reused
by some other user space call or by a 'ring 0' "daemon" of some
kind which has awoken on a timer.

One of the problems (at least in Win95) is that the semaphores
guard on thread ID and allow reentrancy by ID, but not by other
ID's.  That basically means that you have to implement *real*
semaphores on top of those provided by Microsoft if what you
are trying to do is actually guard against reentering code
(list management, etc.).

The quickest way to see this is to implement a VXD with a kernel
timer thread and a user service call through (that can hang waiting
for resource) to the VXD, and note that the timer runs on the user's
thread.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704222008.NAA26903>