[comp.sys.mac] multitasking on the Mac

ln63wzb@sdcc7.ucsd.EDU (Grobbins) (01/24/87)

What difficulties, specifically, would hamper the implementation of
a true multitasking operating system on the Mac?  I'm curious about
the details, hardware and software.  What necessary hardware does
the machine lack?  What about the existing software would cause
dire headaches for the implementor of a multitasking operating 
system on the Mac?


Grobbins.

korn@eris.BERKELEY.EDU (Peter "Arrgh" Korn) (01/24/87)

In article <861@sdcc7.ucsd.EDU> ln63wzb@sdcc7.ucsd.EDU (Grobbins) writes:
>
>What difficulties, specifically, would hamper the implementation of
>a true multitasking operating system on the Mac?  I'm curious about
>the details, hardware and software.  What necessary hardware does
>the machine lack?  What about the existing software would cause
>dire headaches for the implementor of a multitasking operating 
>system on the Mac?

It's my understanding (from a quick chat with Andy Hertzfield at the
MacWorld Expo) that the mac stores too much information for each program
in low-memory globals for the mac to be able to do context switched
effeciently  (in other words, every time you switch tasks you would
have to move around too much information, thus making each task switch
too slow to make multi-tasking effecient enough to be usable).

Additionally, without hardware MMU doing the task switching, it's
possible for one program to crash the machine, including all the other
programs currently running.  This is one problem that the Amiga is
rather prone to.

Anyone with a better explanation?

Peter
-----						  
Peter "Arrgh" Korn		         Hacker?  Me?  A hacker?  No, actually
korn@ucbvax.Berkeley.EDU			 I'm a mac-er.  All's we do is
{decvax,dual,hplabs,sdcsvax,ulysses}!ucbvax!korn            make library calls.

dillon@CORY.BERKELEY.EDU.UUCP (01/24/87)

>What difficulties, specifically, would hamper the implementation of
>a true multitasking operating system on the Mac?  I'm curious about
>the details, hardware and software.  What necessary hardware does
>the machine lack?  What about the existing software would cause
>dire headaches for the implementor of a multitasking operating 
>system on the Mac?
>Grobbins.

	The difficultly is in the fact that the MAC OS was not originally
designed for multitasking and also the fact that many programs on the MAC
(rightly) assume they own the entire machine.  Creating a 'task switcher'
is trivial... it took me about 2 hours to write a task-switching signal/wait
enviroment for an IBM-PC.  The problem was that MSDOS wasn't multiply
re-entrant (Only one of the N tasks could actually make MSDOS or BIOS calls).

	And by the way, multitasking implies "preemption, or switching without
notice".  Thus SWITCHER doesn't qualify since you have to switch manually. In
anycase, getting back to the topic:   Assuming that all written programs don't
make any assumptions and don't take any short cuts when talking to the MAC's 
OS, the only problem remaining is to make the system/library calls re-entrant,
and to make it appear that each task has its own enviroment (stack, heap,
etc...).  As far as I can gather, this is what SERVANT does... there's a lot
of overhead due to OS manipulations, and a lot of inefficiency due to that
fact that there is no notion of 'waiting' for events, but it works.

	One item of information that I DON'T have is what does SERVANT do about
the screen?  What happens when you have two tasks running simultaniously,
both going into separate but overlapping windows on the MAC screne?  And
what happens when you run those programs which take over the entire screen
such as Asteroids, or the stars demo??

					-Matt