Path: utzoo!attcan!uunet!lll-winken!ames!killer!elg From: elg@killer.DALLAS.TX.US (Eric Green) Newsgroups: comp.sys.amiga.tech Subject: Re: WB 1.4 (actually Amiga & MMU) Message-ID: <6782@killer.DALLAS.TX.US> Date: 14 Jan 89 06:38:06 GMT References: <1656@ardent.UUCP> Distribution: na Organization: The Unix(R) Connection, Dallas, Texas Lines: 47 I tend to agree with Matt on this one. What everybody is clamoring for is NOT a seperate address space for each and every process. Instead, they just don't want other folk's processes to whomp on their own process. What folks are asking for is memory PROTECTION, which does not necessarily imply seperate address spaces. Currently, AmigaDOS assumes a single linear address space. It's a very efficient way to organize things, for a real-time system. To pass messages around, just load the address into a register, and make a system call, just like you do right now. And when you do a task-switch, no TLB's or caches to flush, everything stays the same. So you don't have LONG waits while things are flushed to disk at task switch (remember, personal computers usually don't have super-fast 16ms ESDI drives hanging off of them). I hear that running a Sun 3 with a slow SCSI drive is positively painful. I'd hate to see the Amiga reduced to the same level. The ideal scheme for memory protection would be for each block of memory to have an associated process ID, and if the writing process isn't the same process (or a "System" process), barf (technical MIT term for "Bad ARgument Function" -- see MACLisp sources). There was once, a long time ago, a MMU chip for the original 68000 which did something of the sort (though I don't know if it was ever produced). Unfortunately, I doubt that the Unix-oriented MMU in the 68030 could do it that way -- you'd have to chase down the list of pages currently in memory, setting the write protects appropriately. This is probably prohibitively inefficient. If you have 8mb of RAM, and, say, 2K pages, that's 4,000 structures you have to chase down, probably around 20 instructions in the loop... 80,000 instructions total, a sizable percentage of the CPU's time, and totally unacceptable for a real-time system). If CBM ever wants to go to a real-time protected-mode AmigaDOS, I suspect they'll have to "roll their own" MMU, unless the 68030's is more capable than I seem to recall. Now, the other thing that people would like is resource tracking. For some reason they seem to confuse that with having a protected-mode OS. I fail to see the connection -- all that a MMU adds is an easy method of memory tracking. The OS will still have to keep track of which process owns which FileHandle/Lock, RastPort, etc., even if there IS a MMU. -- Eric Lee Green ..!{ames,decwrl,mit-eddie,osu-cis}!killer!elg Snail Mail P.O. Box 92191 Lafayette, LA 70509 Netter A: In Hell they run VMS. Netter B: No. In Hell, they run MS-DOS. And you only get 256k.