From: ewright@convex.com (Edward V. Wright)
Subject: Re: the NeXT option (Was Re: 7.1 vs. OS/2 and Windows NT)
Date: Fri, 16 Oct 1992 21:39:40 GMT
Organization: Engineering, CONVEX Computer Corp., Richardson, Tx., USA
X-Disclaimer: This message was written by a user at CONVEX Computer
              Corp. The opinions expressed are those of the user and
              not necessarily those of CONVEX.

In <18205@ucdavis.ucdavis.edu> putzolu@toadflax.cs.ucdavis.edu (David Putzolu) writes:

>For starters, this is an unfair comparison. X-Windows is MUCH 
>more than a simple windowing system. 

Or much less, depending on your point of view. :-)

>It is more analogous to Carbon Copy (C) or
>Timbuktu (C) in that it is split into two separate processes -
>a server and a client. Like CC & Timbuktu, these processes can
>be run on completely different machines, communicating via a
>network. This is what the X system was designed for. 

System 7 makes it very easy for Mac programs to do this also.

>A more fair comparison would be to PM in OS/2 or the Amiga OS, 
>both of which are preemptive and both of which have GUI's. 

Nope.  We've already established that the Amiga OS has cooperative
features also.

>While X often feels slow on a workstations rated at 20+ SpecMarks, AmigaOS
>does ok on a 3000 (< 5 SpecMarks).

Because the programs are cooperating -- they provide information
to the OS about when it can and can't switch them out, rather than
being completely at the mercy of the OS.

>The reason a preemptive OS can and often is better is simple:
>information. The OS is the only program which knows exactly
>which process NEEDS cpu cycles, 

Oh?  How, exactly, does the OS know that?  When the user picks
up a tool in XYZworks, and the number of cycles XYZworks needs
to provide user feedback increases by a factor of a hundred,
how does the OS know that?  And don't say XYZworks is going to
tell it -- remember, you don't want no damn stinkin' cooperation
in your OS.

>When I am doing a DL in the background, my comm program
>NEEDS cpu cycles - only 5-10% of them, but it needs them
>regularly. 

And when you stop downloading, it may need fewer cycles,
but your OS has no way of knowing that.

>When I try to load Word while doing this I lose
>my DL, because WORD (and the cooperative MT) is not smart
>enough to realize this need. I would be willing to wait an
>extra 10 seconds for Word to load if I did not have to
>restart my download. 

Most people spend more time *running* applications than
loading them.  You may be an exception, but I doubt it.
The OS may know how many cycles are needed to *load* an
application, but it has no idea how the program's requirements
change while it's running.

>Similarly, formatting floppies is a low
>priority thing - if I am doing some work in Think C, for
>example, I don't care if the floppy takes a little longer.

And when you compile an Think C application, you don't care
if it takes 20 times as long, because the OS doesn't know
that a compile has started, much less that compiling needs
more CPU time than editing source files.  Or maybe you'll
just set Think C's priority as high as possible so your
compiles done fast -- which starves other applications
while Think C is running, even if you're just editing
source files. 


>The same goes for loading a program. I might be working on
>Word on a paper and think, "Hey, I will need a diagram for
>this paper. Better start up my graphics program of choice."
>So I double click on Canvas 3.0 (I wish) and wait at least
>two minutes. If this was preemptive MT, I could spend those
>two minutes working on my paper in word. It's little things
>like this which would benefit from preemptive MT.

So you save two minutes opening a copy of Word and lose
twenty minutes on each compile.  Such a deal!