From: putzolu@toadflax.cs.ucdavis.edu (David Putzolu)
Newsgroups: comp.sys.mac.misc
Subject: Re: First Taligent Won't Run Existing Apps
Date: 5 Sep 92 02:49:57 GMT
Organization: Department of Computer Science, University of California, Davis

In article <ewright.715553413@convex.convex.com> ewright@convex.com (Edward V. Wright) writes:
>In <nigel.715395259@saturn> nigel@socs.uts.edu.au (Nigel Pearson) writes:
>
>>	1) MacOs already does this at times. You shove a disk in, and mouse
>>	   response, or file de-compression speed slows down.
>
>Yes, but with a preemptive operating system, that can happen *anytime*,
>not just at well-defined times, such as in response to a disk-insert
>event.
>
>>	2) If you don't want other tasks to pre-empt what you are doing,
>>	   raise the priority of the important task. Some OS's do this
>>	   automatically for the "foreground" application. (i.e. the one
>>	   which has user input at the moment - the active window)
>
>Raising the priority of the foreground task is no solution.  If
>you're running any significant program, its CPU requirements vary
>greatly from one moment to the next.  If you set the priority high
>enough to allow it to get all the cycles it needs at critical times,
>it's going to be hogging cycles that it doesn't need during slack
>times.  No matter how you set the priority, you're going to be wasting
>cycles sometime.  The only optimal solution is a dynamic (i.e., cooperative)
>solution.

Wow! So you are saying that Taligent (when it comes out) will be a
piece of crap right? Because when I use OS/2 at work I never have
the pauses you mention as endemic to Taligent because of it's
pre-emptive multi-tasking. Wow! So you have finally agreed that OS/2
is a better OS than System 7 & Taligent, because both of these
will be 'wasting cycles' and pausing awkwardly - how horrible!
I'd better go sell my Mac & get a PC. Thanks for the info!

>>>Preemptive multitasking only works well for noninteractie, batch-oriented
>>>systems or interactive systems with multiple processors.  
>
>>	Bullshit.
>
>Oh, very clever.  That convinces me *completely*.

OK, 'Bullshit' is not a very informative response. How about this:
Preemptive multi-tasking generally _optimizes_ use of the processor.
How? Because it takes cycles away from processes that don't need
them & always gives those cycles to processes that do. I'll give
some examples to make this more clear:
1) User inserts a floppy to be formatted. In the current Finder,
the Finder gives _all_ of it's attention to this formatting. The
user cannot do any other finder operations. This is a terrible
waste of processing time, particularly on a fast system like a
Q700, where the CPU is basically sitting there waiting for the
floppy to finish and return control.
  In a pre-emptive OS the following occurs (assuming a premptive
Finder or equivalent for ease of comparison): User inserts a
floppy to be formatted. Finder forks off another process to do
the work. Process issues a command to the floppy controller
and blocks, waiting for the controller to finish. Meanwhile,
finder gets control back and user gets to do other things.
Since at least 99% of the time spent formatting a floppy disk
is all device I/O (ie, not requiring CPU intervention) user 
gets 99% of the performance he would in the finder, instead of
0% while waiting for formatting to complete.
2) User boots up his Mac to get a 3270 session to connect to
his IBm mainframe. User gets to sit and wait while connection
is established, or at best (assuming a well written App) gets to
put 3270 session in the background, and gets control during
times that 3270 program does a GetNextEvent call. Note that
since 3270 session is a serial single process, it will only
issue GetNextEvent when it has processor control - it can't
be prempted. 
  In OS/2, on the other hand, I start a 3270 session off and
go and do some other things. Since most of the time spent
setting up the connection is waiting for network transmission
of connect requests, response from mainframe, etc., 3270 program
keeps blocking (stopping waiting for I/O response) releasing
processor control to me. I get all this processor time that would be
wasted waiting for the I/O of the 3270 session to use for
myself.

Look, I prefer the Mac OS. That's why I have one. But I admit
that it is not the pinnacle of perfection in every way. It's
cooperative multi-tasking is one of them.

>>>>Symmetric Multi-Processing?  
>
>>>I'm not even sure what this is.  If it's anything more than
>>>marketing speak, I'd like to hear more.
>
>>	More than one processor, attached symmetrically to the buss?
>
>Ever hear of Rocketshare?

SMP is useful in only very specialized areas IMHO. The only
reason one would use it is to get very high performance (when one
processor just isn't enough or isn't cost effective). The average
user does NOT need that huge amount of performance. A Quadra 700
may be necessary for some (like me :)  but even I have no use
for SMP. Perhaps people doing long, lengthy calculations need
it, like Raytracing, etc., but who else?

-- 
| David M. A. Putzolu               | putzolu@cs.ucdavis.edu              |
| Senior Undergraduate              | op disclaimer(opinion : ptr mine)   |
| Computer Science and Psychology   |      Money? Who needs money?        |
| University of California at Davis |          I've got fish!             |
| David M. A. Putzolu               | putzolu@cs.ucdavis.edu              |
| Senior Undergraduate              | op disclaimer(opinion : ptr mine)   |
| Computer Science and Psychology   |      Money? Who needs money?        |
| University of California at Davis |          I've got fish!             |
Newsgroups: comp.sys.mac.misc