[comp.sys.mac] A/UX window systems, Mac toolbox, etc, shy pre-emption++

clive@drutx.ATT.COM (Clive Steward) (03/16/88)

From article <7670@apple.Apple.Com>, by goldman@Apple.COM (Phil Goldman):
> Again, it depends on what point of view you take.  MF offers many advantages
> for the user.  It offers most of the same advantages as preemptive 
> multitasking for well-behaved programs.

Here may be a big point that keeps getting missed.  Apple is probably shyer 
than they should be about Multifinder's real abilities.  This pre-emption 
issue vs. Unix seems just about pure eyewash -- the two systems look about 
equally (non-)pre-emptive.

The basic structure of (almost completely all) Macintosh programs is an 
event loop, with a system GetNextEvent () call made every few tens of 
milliseconds.

Then, Multifinder implementing the (possible) context switch at this point 
has nearly the same effect as the way the traditional Unix kernel works,
doing so at every system call completion or wait-for-service.  The
timing is likely to be similar since Unix kernel calls don't typically 
occur nearly as often as Mac Rom calls.

Unix is not 'pre-emptive' at all, unless a process stays in it's own
computation longer than the 'lightning bolt' timer interrupt period,
which has traditionally been a 1 second interval.

The only differences then, are that a Mac context switch is less
efficient than most Unix ones (until you hit swapping or heavy paging
or virtual memory or...), and that there isn't any hardware memory 
management/protection to keep processes from writing on each other 
through programming errors.  

The memory problem is much less severe than I personally thought it would 
be, probably because all Mac programs are completely relocatable and often 
are relocated many times during execution, so have to be done right to begin 
with, or wouldn't run single-tasked either.

The end result is that Multifinder multitasking gives useful context 
switching at about the graininess of a typical real working Unix installation, 
except for a non-network-dependent private workstation (for $25k plus).  Add
typical networking to the workstation, and you're usually in about the
same boat, as the network gets used.  Yes, I'm sure there are exceptions, 
but does anyone deny the general rule?

In other words, it works very, very well, and is in appearance neither
better nor worse.  I use both every day, and through Mac multitasking,
use them both well together.

Incidentally, there was a note a few days ago where a person went on
about 'he had used Multifinder', and the proceeded to describe lengthy
delays from mouse down on the resize icon of a background window, to resize 
of the window.  Of course there may be such a circumstance, but
generally, there is no such wait.

In fact, the process he described takes two mouse hits -- one to
foreground the window, and another to activate the resize.  Both
occur effectively instantly (<= one-tenth second, reflex time),
in every case I run into day-to-day, with 5 largish programs 
Multifindered on a standard 2.5 mb MacPlus.

I didn't answer directly because of the endless and territorial nature of 
most postings.

I think my advice still stands -- please try out the Mac, with Multifinder, 
with any of the public domain init modifiers which give all the pop-up 
_and_then_ hierarchical menuing a person could desire -- it's really all 
there, it's user-modifiable, and it works just fine.


Clive Steward