[comp.sys.amiga] MMUs and Re: inconsistent gadget function parameter orderin

DMasterson@cup.portal.com (David Scott Masterson) (05/11/89)

In message <6752@cbmvax.UUCP>, daveh@cbmvax.UUCP writes:
>...							In order for per-
>task protection to work, you'd have to have an MMU table, or at least a part
>of one, added on to the context information for each task.

Question:

Why did the Unix PC 7300 from AT&T seem to work so well with Unix when it 
was only running a 68000 (at most a 68010)?  Just curious, and I'm not to 
familiar with its internals.  Therefore, could something like it did work
on the Amiga?

David Masterson
DMasterson@cup.portal.com

daveh@cbmvax.UUCP (Dave Haynie) (05/12/89)

in article <18226@cup.portal.com>, DMasterson@cup.portal.com (David Scott Masterson) says:
> 
> In message <6752@cbmvax.UUCP>, daveh@cbmvax.UUCP writes:
>>...							In order for per-
>>task protection to work, you'd have to have an MMU table, or at least a part
>>of one, added on to the context information for each task.

> Why did the Unix PC 7300 from AT&T seem to work so well with Unix when it 
> was only running a 68000 (at most a 68010)?  Just curious, and I'm not to 
> familiar with its internals.  Therefore, could something like it did work
> on the Amiga?

The 7300 has a 68010 at around 10MHz and a hand-rolled MMU of some sort
(don't know the details of that MMU myself).  It's not a particulaly fast
UNIX machine, but it did run UNIX.  A plain 68000 machine won't run
anything closely approximating a real UNIX; you need an MMU and a 68010 for
a minimal UNIX system (I guess if you were happy with UNIX on a 256K
PDP-11, you might get something acceptible working on a 68000, but it
wouldn't be what most folks these days consider _real_ UNIX). 

Virtual memory under the Amiga OS is a different story.  The design of UNIX
makes VM real easy to include; every task starts at the same location, has
it's own private address space, and doesn't get to Forbid(), Disable(), or
do much else that's real-time.  And the UNIX kernel manages device drivers,
which makes it a bear to add a device driver compared to the Amiga system,
but much easier to handle a page fault generated swap without the danger of
breaking anything.  And when a task goes away under UNIX, there's one nice,
well defined chunk of memory that just disappears.  In the Amiga OS, all
tasks run in the same address space.  You never know where the memory
allocated by a particular task is.  This makes the Amiga OS very fast,
since inter-task messages can be passed by reference instead of by value. 
But it opens up two problems [1] resource tracking (which currently isn't
done, but would be more complicated than under UNIX), and [2] the current
memory allocation mechanism could result in more thrashing on a VM Amiga
system when real memory gets tight, as any one task can have memory 
allocated over several pages, instead of tightly sewn up on a few as under
UNIX.  

BTW, Amigas with MMUs (A2500, etc) make fine UNIX machines.

> David Masterson
> DMasterson@cup.portal.com
-- 
Dave Haynie  "The 32 Bit Guy"     Commodore-Amiga  "The Crew That Never Rests"
   {uunet|pyramid|rutgers}!cbmvax!daveh      PLINK: D-DAVE H     BIX: hazy
              Amiga -- It's not just a job, it's an obsession