Subject: Regarding suspend(0) and lag

From: [email-masked] (Jeff Prothero)
Date: Mon, 22 Feb 1993 13:26:01 -0800

[email-masked]:
| I'd prefer it not to be "fixed."  There is a certain safety in the current
| way of during things - that being, you are always certain that (if you
| don't suspend()) your data will not change beneath you.
|
| If preemption was added to the server, you'd have to add memory protection
| and locking as well.  Yuck.

Hmm.  I frankly can't imagine switching to a non-premptive unix.  *grin*.
I'd be curious for a concise proof of the "you'd have to add memory protection
and locking as well.  Yuck." assertion, and/or an explanation of why this
merits a 'yuck'.  I'd not want the application-level programmer to have to
deal much with locking, but I can't see a clear proof that this is needful.
Then again, it's been a decade or two since I studied this stuff, possibly
Clay is more up to speed on this than I ... ?

---

From: Mike O'Brien <[email-masked]>
Date: Mon, 22 Feb 1993 15:09:32 -0800

[email-masked] (Jeff Prothero):
>and locking as well.  Yuck." assertion, ...

Well, the first real multi-user (the PDP-6 ran two users) version of UNIX
ran on a PDP-11/20, which had no hardware memory protection.  Of course, all
the terminals were in the same room, so one person would raise his head and
ask, "a.out?"  And everyone else in the room would save the file they were
editing...

In a correctly coded MOO server, processes are already encapsulated and can't
mess up each other's data items.  Preemption would require the installation
of server-mediated semaphores so that processes acting on behalf of the
DB in general would be able to lock critical code sections, it's true.