Path: utzoo!attcan!uunet!cs.utexas.edu!samsung!usc!zaphod.mps.ohio-state.edu!rpi!uupsi!grebyn!ckp From: ckp@grebyn.com (Checkpoint Technologies) Newsgroups: comp.sys.amiga.tech Subject: Re: MMU + A3000 + AmigaOS2.0 == Non-crashing system? Message-ID: <20999@grebyn.com> Date: 6 Aug 90 13:40:08 GMT References: <2489@clinet.FI> <20889@grebyn.com> <6405@wolfen.cc.uow.oz> <20927@grebyn.com> <13625@cbmvax.commodore.com> Reply-To: ckp@grebyn.UUCP (Checkpoint Technologies) Organization: Grebyn Timesharing, Vienna, VA, USA Lines: 55 In article <13625@cbmvax.commodore.com> valentin@cbmvax (Valentin Pepelea) writes: >In article <20927@grebyn.com> ckp@grebyn.UUCP (Checkpoint Technologies) writes: >> >> My definition of "Protection": Where each program has a unique >> virtual address space, and where the address space of all other programs >> is unaddressable, except in such case that two tasks formally agree to >> share some memory space and make this known to the OS. > >Actually, memory protection and separate adress spaces are two different >concepts, just like virtual memory is distinct from memory protection. >If memory protection is implemented on the Amiga, then all tasks will have to >share the common 4 Gig adress space. All tasks would be allowed to read each >other's memory, but would be allowed to write only to specifically permitted >memory. Having worked with IBM mainframes of pre-MMU vintage, I know this is possible. And, after thinking about it, this is probably most appropriate for a machine with the Amiga's heritage, where all tasks already share the same virtual address space. >Due to the popularity of Unix, we are tempted to understand operating system >concepts in terms of how Unix has been implemented. It is very difficult to >convince a programmer that a global addressing space is much more efficient >and versatile than a separate addressing spaces as implemented in Unix. The >history of hardware capabilities have limited the memory model of Unix to >what we are familiar with now, and that is likely to limit the intellectual >capabilites of programmers for years to come. Well, now, give me some credit here! :-) I just happen to like separate virtual address spaces better, for various reasons (which are all rather trivial); I'm not just stuck on a Unix mentality. As it happens, Unix exposure came late in my professional life, limited to the last two years. Before that it was VMS, before that it was PDP-11 (bare, no OS), and before that I dealt with IBM mainframes. A single, fully shared virtual address space (like our current fully shared physical address space) allows rapid message passing by indirect pointer, rather than by copying messages from one address space to another. A region of shared memory between the communicators is all that's needed, however, and this can be done as well by declaring such a region in a system with separate virtual address spaces. Unless the messages sent contain even more indirect pointers, and then it gets stickier, and you might as well declare the two tasks' spaces equivalent. Separate independent virtual address spaces are more secure (more of an issue in a multi-user OS), allow non-PIC code without a relocating loader (and if the code section is pure then the original segment on disk may be used as the backing store of the code segments rather than using the page file), allows for a total system virtual memory capacity of (number of tasks) * 2**32, rather than "only" 2**32. -- First comes the logo: C H E C K P O I N T T E C H N O L O G I E S / / \\ / / Then, the disclaimer: All expressed opinions are, indeed, opinions. \ / o Now for the witty part: I'm pink, therefore, I'm spam! \/