[comp.sys.amiga] Multitasking at home is great!!

skank@iastate.edu (Skank George L) (12/22/90)

In article <1990Dec15.031131.17141@isc.rit.edu> pwg8482@isc.rit.edu (P.W. Gousios ) writes:
>>Don't flame me for this, but.... most people DON'T need multitasking on
  their computer.
>
>    Most people don't need a computer... but that is another topic.
>
>>  (Print spooling is about the only thing I can think of
>>  that the average user will want to do.)
>
>    How about play a game while doing a hard disk backup to tape?
>       (don't tell me that all the good games take over the machine)

     My personal favorite thing to do is to start a really large download
  using Handshake and then forget about it while using MSS Excellence.  Which,
  I might add, is not too hard to do as both programs are quite stable and
  multitask well together.  My other personal favorite is to decompress and
  execute the files I've just downloaded while simultaneously downloading
  another.  Yes, it's true that you don't REALLY need multitasking, but it
  sure is nice!!

                                  --George

cr1@beach.cis.ufl.edu (Anubis) (12/23/90)

Hi,

I've heard Amiga's multitasking defined in so many ways it makes my
head spin.  Now, I have a general idea of how things work, but could
someone with a good grasp on the topic please explain to me exactly
how Amiga's multitasking works, and why it can be given the honored
term 'true multitasking' ?  

Also on this  subject, where can I find a good source about the inner
workings of the Amiga?  Not one of these annoying 'this is your disk
drive' books, but a real good source.

--
=-=-=-=-=-=-=-=That is not dead which may eternal lie-=-=-=-=-=-=-=-=-=-=-=-=
*     Christoper Roth                         *  "Machines have no 
*     InterNet  :  cr1@beach.cis.ufl.edu      *   Conscience..."
=-=-=-=-=-=-=-=Yet with strange eons even death may die-=-=-=-=-=-=-=-=-=-=-=

xanthian@zorch.SF-Bay.ORG (Kent Paul Dolan) (12/23/90)

cr1@beach.cis.ufl.edu () writes:

> I've heard Amiga's multitasking defined in so many ways it makes my
> head spin. Now, I have a general idea of how things work, but could
> someone with a good grasp on the topic please explain to me exactly
> how Amiga's multitasking works, and why it can be given the honored
> term 'true multitasking' ?

Probably the best way to see why the Amiga's is "true multitasking" is
by looking at some of the "near multitasking" methods for contrast.

I'll assume you understand monotasking: one and only one job in the
machine at a time.

The next step up the the IBM TSR; a little program that can sit in a
little piece of memory, and is brought up by an interrupt, usually a
special keystroke combination. Here, you characterize the TSR task: it
is _small_ because the main task has to fit in the limited memory; it is
normally _idle_, because the OS doesn't know how to swap tasks, the TSR
installs a task swapping routine off the interrupt vector to save the
main program's registers and load its own; it is _user_ _initiated_; the
OS doesn't kick it off for you, you have to do it yourself.

In contrast, the Amiga, with a larger flat address space, can have _large_
programs in memory together; they can all be running in an alternation
fast enough to look simultaneous, because the OS knows how to swap tasks,
and the swapping is _OS_ _initiated_, either because a task says it is
going to sleep to wait for an event, or because the OS decides the current
process has eaten enough time and it is another process's turn.

Above TSRs is the Finder style simultaneously resident processes; the
large, flat address space allows several tasks to reside in memory
simultaneously, and the OS knows how to swap tasks, but the task
swapping is still _user_ _initiated_; the OS sees a click in a new
window, and idles the running task associated with another window, and
restarts the process associated with the just-clicked window. This is
only a little help; it saves the overhead of reloading and finding your
place in the routine, but still all the idle time while your finger
reaches for the next key is going to waste.

In contrast, the Amiga OS takes the initiative to share time among all
the running processes; so that you can watch something being drawn or
processed in another window, or have it going on in a window out of your
sight, while you type or draw or whatever in a separate window.

A third sort of "near multitasking" is _cooperative_ multitasking; each
software writer is tasked with finding explicit places in the code where
control can safely be let go, and put in explicit "wait" commands. This
is tough; if the programmer gives up control too often, the overhead
eats performance alive, while if the programmer gives up control too
infrequently, other processes starve. This has a habit of not working
very well, but if the OS doesn't know how to seize control safely, this
is the best that can be done. Here, the OS knows how to save and restore
registers for various processes, and schedule the next runnable process
to run, but the user program is explicitly asking for this service.

In contrast, the Amiga OS sets a timer interrupt when it gives control
to a new process, and if the process hasn't given back control because
it has run out of things to do (e.g., it has finished processing the
last keypress, and my finger hasn't hit the next key; these timeslices
are _small_), then the timer wakes up the OS which looks around for
another process ready to run. If it finds one, then it squirrels away
the (already saved by the interrupt) register and other restart
information for the (nominally) running process and preempts it to give
the next one it's time slice in turn. This is what makes the Amiga a
"true preemptive multitasking" system.

But there's more, because the Amiga OS also knows another neat trick; it
knows how to _prioritize_ tasks. First an example: when I download
files, if I run several other tasks, it can happen that I spend enough
time away from servicing the serial port that characters repeatedly get
lost and the kermit session times out. However, I can use the
"changetaskpri" function to give my terminal session a bigger than
average slice of the time, and "Big Hog's first place at the trough"
when time is available.

This works as follows: when the high priority task gives up control, it
does it by waiting on some event (character received, buffer full, disk
block written, disk block read, etc.). Events, when they occur, wake up
the OS and pause the running process through the interrupt mechanism.
Now normally, the next task in line, or the current task if its time
slice were not yet exhausted, would be scheduled to run next, and the
task which is awaiting the event would be moved from the "waiting event"
list to the "ready to run" list.

With priorities, though, the OS, when an event occurs, after it has
marked the associated process "ready to run", looks for the highest
priority task in the "ready to run" queue, and gives it the next spot
in the run schedule. This way, the kermit task gets run whenever it is
ready, the other tasks share the remaining time. The trick is to give
the high priorities to the tasks that run out of work often and are
willing to ask to be put to sleep (usually, i/o bound processes), while
the tasks that just eat cpu cycles (processing bound tasks) get the low
priorities.

Now there are some complexities here, because you can starve a process
if a high priority process eats more cpu cycles than expected, so there
is a job of tuning an OS so that even the low priority tasks get at
least a little time to run.

That's probably more than you wanted to read, and more generic to "true
multitasking on any machine", than specific to the Amiga flavor, but
perhaps it clarified a few of the issues for you. My apologies in
advance for any error in the details; I'm not a world class AmigaOS
expert, just the best one inside these four walls.

Kent, the man from xanth.
<xanthian@Zorch.SF-Bay.ORG> <xanthian@well.sf.ca.us>

mwm@fenris.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) (01/06/91)

In article <26060@uflorida.cis.ufl.EDU> cr1@beach.cis.ufl.edu (Anubis) writes:

   I've heard Amiga's multitasking defined in so many ways it makes my
   head spin.  Now, I have a general idea of how things work, but could
   someone with a good grasp on the topic please explain to me exactly
   how Amiga's multitasking works, and why it can be given the honored
   term 'true multitasking' ?  

Sigh. The term "true multitasking" was born of immature Amiga users
being worried that their machine would lose some of it's "superiority"
over other machines that had been single tasking before, but recently
acquired a non-preemptive multitasking.

It's use implies that non-preemptive multitasking is somehow "fake" or
"false". This is no more true than the claim that the Isetta isn't a
car because it uses a motercycle engine. Non-preemptive multitasking
is every bit as much "true multitasking" as preemptive multitasking.
The only thing that makes preemptive multitasking deserving of the
word "true" is some Amiga users need for reassurance that they bought
the best machine in the world.

The world would be a better place - and the image of Amiga users would
improve - if Amiga users forgot the phrase "true multitasking", and
used the correct one: "preemptive multitasking".

	<mike
--

peterk@cbmger.UUCP (Peter Kittel GERMANY) (01/08/91)

In article <MWM.91Jan5225918@fenris.relay.pa.dec.com> mwm@fenris.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes:
>
>It's use implies that non-preemptive multitasking is somehow "fake" or
>"false". This is no more true than the claim that the Isetta isn't a
>car because it uses a motercycle engine.

Sorry to waste bandwidth, but I have to express my deep astonishment
that someone in US (or am I wrong here?) knows what an Isetta is!!!
I simply can't believe it.

-- 
Best regards, Dr. Peter Kittel  // E-Mail to  \\  Only my personal opinions... 
Commodore Frankfurt, Germany  \X/ {uunet|pyramid|rutgers}!cbmvax!cbmger!peterk

daveh@cbmvax.commodore.com (Dave Haynie) (01/08/91)

In article <MWM.91Jan5225918@fenris.relay.pa.dec.com> mwm@fenris.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes:
>In article <26060@uflorida.cis.ufl.EDU> cr1@beach.cis.ufl.edu (Anubis) writes:

>   ..and why it can be given the honored term 'true multitasking' ?  

>Sigh. The term "true multitasking" was born of immature Amiga users..

It's much more far reaching than that.  For example, Personal Workstation
magazine equates "true" with "preemptive" in much of their writings on
multitasking.  

>The only thing that makes preemptive multitasking deserving of the
>word "true" is some Amiga users need for reassurance that they bought
>the best machine in the world.

That's silly.  Preemptive multitasking has quite a few advantages, and few
disadvantages, over non-preemptive multitasking.  I have seen a few limited
cases where non-preemptive multitasking makes some real sense, but in most
cases, it is the wrong solution.  It makes the job of task switching 
dependent on the application program being well behaved, which is just as
flawed as moving any other OS job, such as graphics support, memory management,
etc. into user programs.

>The world would be a better place - and the image of Amiga users would
>improve - if Amiga users forgot the phrase "true multitasking", and
>used the correct one: "preemptive multitasking".

I do agree, anyway, that it would be technically correct for Amiga users to
say that.  However, it is far from an Amigaizm to equate the two.

>	<mike


-- 
Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
	"Don't worry, 'bout a thing. 'Cause every little thing, 
	 gonna be alright"		-Bob Marley

mwm@raven.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) (01/08/91)

In article <17193@cbmvax.commodore.com> daveh@cbmvax.commodore.com (Dave Haynie) writes:
   In article <MWM.91Jan5225918@fenris.relay.pa.dec.com> mwm@fenris.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes:
   >In article <26060@uflorida.cis.ufl.EDU> cr1@beach.cis.ufl.edu (Anubis) writes:

   >   ..and why it can be given the honored term 'true multitasking' ?  

   >Sigh. The term "true multitasking" was born of immature Amiga users..

   It's much more far reaching than that.  For example, Personal Workstation
   magazine equates "true" with "preemptive" in much of their writings on
   multitasking.  

So what's your point?

I first saw the term "true multitasking" show up when the Mac & IBM
worlds got non-preemptive multitasking; and always from Amiga users
stating how the Amiga version was better than the other guys (it is,
but implying that alternative is in some way not multitasking isn't
the way to prove it).

   >The only thing that makes preemptive multitasking deserving of the
   >word "true" is some Amiga users need for reassurance that they bought
   >the best machine in the world.

   That's silly.  Preemptive multitasking has quite a few advantages, and few
   disadvantages, over non-preemptive multitasking.  I have seen a few limited
   cases where non-preemptive multitasking makes some real sense, but in most
   cases, it is the wrong solution.  It makes the job of task switching 
   dependent on the application program being well behaved, which is just as
   flawed as moving any other OS job, such as graphics support,
   memory management, etc. into user programs.

So how does any of this make non-preemptive multitasking not "true"

Note to Peter Kittel: Hey, this is the San Francisco Bay Area! We've
got more than one Isetta on the roads around here. Plus a couple of
Deux Chevron's, as well as other oddball cars.  I'm still waiting to
spot a 170H, though. What's interesting is that many of these cars
have stickers in the window explaining what they are, including some
history and pointers to the appropriate clubs. Parking an Isetta
perpendicularly between to cars parked parallel attracts attention to
it - especially in the Bay Area.

	<mike
--

fhwri%CONNCOLL.BITNET@cunyvm.cuny.edu (01/08/91)

I also know what an Isetta is (or was?)...a little car that made a VW Bug look
like a stretch limo. It was available in the 50s...showing my age here...
                                                --Rick Wrigley
                                                fhwri@conncoll.bitnet

daveh@cbmvax.commodore.com (Dave Haynie) (01/08/91)

In article <MWM.91Jan7154817@raven.relay.pa.dec.com> mwm@raven.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes:
>In article <17193@cbmvax.commodore.com> daveh@cbmvax.commodore.com (Dave Haynie) writes:

>   It's much more far reaching than that.  For example, Personal Workstation
>   magazine equates "true" with "preemptive" in much of their writings on
>   multitasking.  

>So what's your point?

That folks far outside the Amiga community don't consider non-preemptive task 
switching to be true multitasking.  After all, it is simply a matter of how
you define multitasking.  It is simple to define the properties of "true
multitasking" to either include or exclude non-preemptive systems.

>So how does any of this make non-preemptive multitasking not "true"

For example, _my_ definition of "multitasking" may have as one of its properties:

	A completely CPU-bound task at priority N may not completely block
	tasks at priority N+d, where d>=1.

Preemptive systems will pass this test, non-preemptive systems will fail it.

Since there is no single, accepted definition of "multitasking", what will
or won't constitute "true" multitasking depends on who's definition you apply.
A very loose definition might include user-initiated multitasking systems,
such as the Macintosh "Switcher" type programs.  Or possibly even things like
Mac's desk assessories or MS-DOS "TSRs".  Both of those are, in fact, forms
of multitasking, albeit more limited than the user-initiated switcher, which 
is more limited than the function call initiated switcher, which is more 
limited than the hardware-interrupt initiated switcher.  Do you draw a line as
to which is "real" and which isn't?  If you don't, then you're at least being
consistent.  If you are, then we're (for the sake of argument) simply at odds 
over where to draw the line, not whether a line should be drawn.  Which must
fall back on our personal definition of the properties of "true" vs. "false",
"simulated", "pseudo", whatever-you-call-it, multitasking.

Again, my original point was that a much larger segment of the industry counts
non-preemptive multitasking as not quite "true" multitasking.  It wasn't the
Amiga folks who made it up, though you are correct in that some of them do tend
to yell too loudly about it simply to make themselves feel superior to Machine
X, often without really understanding the real differences.

>	<mike


-- 
Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
	"Don't worry, 'bout a thing. 'Cause every little thing, 
	 gonna be alright"		-Bob Marley

daveh@cbmvax.commodore.com (Dave Haynie) (01/10/91)

In article <MWM.91Jan8110848@raven.relay.pa.dec.com> mwm@raven.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes:

>Then again, I'll could decide that "true" multitasking means "no task
>can ever be completely blocked out, unless the user specifically
>allows it to happen by tagging the blocked task". That makes a lot
>more sense to me than just not allowing low priority tasks to starve
>higher priority ones. But then the Amiga doesn't have "true"
>multitasking.

Except, of course, your definition won't permit an operating system to be 
support both "true" multitasking and "realtime" response.  To be real time,
or even close to it, you need deterministic behavior.  On the Amiga, a task
can get very close to this by bumping its priority up, since it will be
wholly unaffected by all tasks at a lower priority.  Any system that gives
CPU time to lower priority tasks cannot easily guarantee that the higher
priority tasks get anything even close to realtime response.  

While not every multitasking OS tries to get close to realtime response, your
restriction is nothing you'd expect to find in the average multitasking system,
realtime or not.  Whereas most every general purpose multitasking operating
system would support my previous restriction.  And in general, most of these
make the fact they you are mulitasking hidden from the programmer.  That's
certainly not true with TSRs, which are a hack, or desk accessories, which
have to be specially written.  But under Multifinder, one of those cooperative
multitaskers, programs have to be specially written too in order to be
multitasked.  There are plenty of programs that can run for very long 
periods of time without naturally requiring a function call.  Basically, any 
program that's CPU intensive, rather than interactive.  My restriction is 
hardly an artificial restraint.  From what I've seen of them, AmigaOS, OS/2, 
UNIX, VAX/VMS, Aegis, TOPS-20, RSTS, OSK, and probably a few I've missed 
exhibit this expected behavior.  While what you consider to be multitasking 
depends on definition, a wacky restriction designed to exclude mainly the 
Amiga OS is silly, and you know it.

>	<mike


-- 
Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: hazy     BIX: hazy
	"Don't worry, 'bout a thing. 'Cause every little thing, 
	 gonna be alright"		-Bob Marley

mwm@raven.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) (01/10/91)

In article <17289@cbmvax.commodore.com> daveh@cbmvax.commodore.com (Dave Haynie) writes:

   In article <MWM.91Jan8110848@raven.relay.pa.dec.com> mwm@raven.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes:

   >Then again, I'll could decide that "true" multitasking means "no task
   >can ever be completely blocked out, unless the user specifically
   >allows it to happen by tagging the blocked task". That makes a lot
   >more sense to me than just not allowing low priority tasks to starve
   >higher priority ones. But then the Amiga doesn't have "true"
   >multitasking.

   While not every multitasking OS tries to get close to realtime response,
   your restriction is nothing you'd expect to find in the average
   multitasking system, realtime or not.

I disagree - every multitasking OS I've worked with (sans AmigaDOS)
either met that restriction, or met it if you never used the real-time
facilities. They all "aged" tasks so that a low-priority CPU-bound
task would get some cycles, even in the presence of many high-priority
cpu-bound tasks.

   And in general, most of these make the fact they you are mulitasking
   hidden from the programmer.  That's certainly not true with TSRs, which
   are a hack, or desk accessories, which have to be specially written.
   But under Multifinder, one of those cooperative multitaskers, programs
   have to be specially written too in order to be multitasked.

Well, defining a term based on what a programmer sees is natural for a
programmer. But then you have to explain to a non-programmer why
system P is "multitasking", whereas system NP isn't, when there is no
difference in what they see happening. I think it makes a lot more
sense to define a user interface question (and it is) in terms of what
the user sees, instead of in terms of what a programmer sees.

   While what you consider to be multitasking 
   depends on definition, a wacky restriction designed to exclude mainly the 
   Amiga OS is silly, and you know it.

Yup, I know it. To me, it looks like "true multitasking" is defined to
exclude multifinder and similar hacks. I think that's silly. I think
it's sad that others have picked that useage up (I can't think of any
other reason for defining "true multitasking" that way, so ...). That
means I go on a campaign to convince people _not_ to use that term,
similar to the ongoing campaigns against "hacker" as a synonym for
"computer literate criminal" and "PC" as a synonym for "IBM or
compatable personal computer."

	<mike
--
Look at my hopes,					Mike Meyer
Look at my dreams.					mwm@relay.pa.dec.com
The currency we've spent,				decwrl!mwm
I love you. You pay my rent.

davego@polari.UUCP (dave oliphant) (01/10/91)

In article <MWM.91Jan5225918@fenris.relay.pa.dec.com> mwm@fenris.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes:
>
>It's use implies that non-preemptive multitasking is somehow "fake" or
>"false". This is no more true than the claim that the Isetta isn't a
>car because it uses a motercycle engine.

In article <1990Dec13.155848.8152@maytag.waterloo.edu> <1990Dec22.082240.2443@
news.iastate.edu> <26060@uflorida.cis.ufl.EDU> <MWM.91Jan5225918@fenris.relay.pa.dec.com> peterk@cbmger.UUCP (Peter Kittle GERMANY) writes:

>>Sorry to waste bandwidth, but I have to express my deep astonishment
>>that someone in US (or am I wrong here?) knows what an Isetta is!!!
>>I simply can't believe it.

Aw come on, Dr. Kittle, give us a break.  There have been hundreds of thousands
of americans (if not millions) stationed in Germany and Europe over the past
several years, myself included.  I lived for three years in Bayreuth, an
incredible city.  That's where I discovered the joys of Wagner, although I was
never quite able to get in to experience the FestSpiel.

I have to admit, though, I don't remember hearing of an Isetta.  A Citroen Duck
maybe, but not an Isetta.  :-}!  (make that a double) :-) (-: !!

Widersehen.


-- 
davego@polari.UUCP                                   Dave G. Oliphant
"Just where is dave going, anyway?"                  (206) 325-5669
2d ACR - Always Ready! (I'm with you guys)           send the scouts out

eachus@aries.mitre.org (Robert I. Eachus) (01/12/91)

     If I wanted such a silly thing, which I don't, it would take me
most of an afternoon to write an Amiga utility which prevented
starvation of tasks of lower priority (than the utility).  Such a
program on the Amiga is Soooo simple, but on many other systems it is
next to impossible. (I actually spent a few minutes thinking whether I
could hack it together as a script--it is doable, but would probably
have too much overhead when just "sitting there". Ah-hah!!! If I needed
such a thing, I could probably pipe the input to and output from
xoper...just checked the xoper docs--doesn't look too hard.)
Okay so not only is this sort of utility possible on the Amgia, Werner
Gunther has done most of the work for you.

--

					Robert I. Eachus

     When the dictators are ready to make war upon us, they will not
wait for an act of war on our part." - Franklin D. Roosevelt

martin@cbmvax.commodore.com (Martin Hunt) (01/13/91)

In article <MWM.91Jan5225918@fenris.relay.pa.dec.com> mwm@fenris.relay.pa.dec.com (Mike (My Watch Has Windows) Meyer) writes:
>In article <26060@uflorida.cis.ufl.EDU> cr1@beach.cis.ufl.edu (Anubis) writes:
>
>   I've heard Amiga's multitasking defined in so many ways it makes my
>   head spin.  Now, I have a general idea of how things work, but could
>   someone with a good grasp on the topic please explain to me exactly
>   how Amiga's multitasking works, and why it can be given the honored
>   term 'true multitasking' ?  
>
>Sigh. The term "true multitasking" was born of immature Amiga users
>being worried that their machine would lose some of it's "superiority"
>over other machines that had been single tasking before, but recently
>acquired a non-preemptive multitasking.

The term "true multitasking" did not originate with Amiga users.

>It's use implies that non-preemptive multitasking is somehow "fake" or
>"false". This is no more true than the claim that the Isetta isn't a
>car because it uses a motercycle engine. Non-preemptive multitasking
>is every bit as much "true multitasking" as preemptive multitasking.

Yes and the Issetta is every bit as much a "true" sports car as a
Ferrarri.

>
>The world would be a better place - and the image of Amiga users would
>improve - if Amiga users forgot the phrase "true multitasking", and
>used the correct one: "preemptive multitasking".
>
>	<mike
>--


Every multitasking OS has at least one of the following characteristics:

   A. The ability to have multiple tasks loaded in memory.

   B. The ability to switch rapidly between tasks.

   C. The processor controls which task gets the CPU.  There are many
      different scheduling algorithms that may be used.  Generally,
      some type of priotity scheme is implemented.  When a task
      does not need the CPU (such as when waiting for I/O), it will
      immediately give up the CPU.

The Amiga, Unix, OS/2, VMS, OS9, etc. have all of these.  They are
generally considered "true" multitasking systems.  Because MeSSyDOS
and the MAC OS were not designed to multitask, they cannot be easily
be made to do A,B, and C.  However, many different companies produced
kludges that at least allowed them to do A.  Now the problem is that
MSDOS users were told that they now had "multitasking".  Unix, Amiga,
and other users cried foul.  That isn't truly multitasking, they said.
It's just a kludge.

So, don't criticize others just because they aren't using the current
popular jargon.  At least Amiga users know there is a difference, even
if they have problems describing exactly what it is.

Martin Hunt         Commodore-Amiga          martin@cbmvax.commodore.com  

"Windows 3.0 is hot because it's really fun.  It has brought some
excitement back into the PC industry" - Microsoft
I wonder who took the excitement out in the first place?

AABENSON@MTUS5.BITNET (01/14/91)

To everybody arguing about what's true multitasking and what isn't:

What difference does it make?  If you like Amiga's OS, then fine.  If I like
Unix, then fine.  Really a dumb argument, guys.

- Andrew.  (aabenson@balance.cs.mtu.edu   or   aabenson@mtu.edu)