Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ukma!david From: david@ms.uky.edu (David Herron -- One of the vertebrae) Newsgroups: comp.sys.amiga Subject: Re: UNIX vs. Amiga speeds Message-ID: <11370@s.ms.uky.edu> Date: 30 Mar 89 22:01:27 GMT References: <6394@cbmvax.UUCP> Reply-To: david@ms.uky.edu (David Herron -- One of the vertebrae) Organization: U of Kentucky, Mathematical Sciences Lines: 74 In article <6394@cbmvax.UUCP> daveh@cbmvax.UUCP (Dave Haynie) writes: >No, and it isn't on 80286 machines either. I think PDP's had to dump one >process to disk and get the other, or some such ugliness. I believe >(again, not the UNIX expert here) that the requirement is basically >that all processes start at the same location, by whatever means that >can be achieved. Paging seems to be the best way; even '386 systems use >it instead of segments when running UNIX. If you're not using some form >of memory management, even if you don't call it memory management, I don't >think you're really UNIX. >-- >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 Not quite -- as long as we're discussing history of old machines that is. The PDP-11's either had memory management or didn't. We had a PDP-11/05 (or was it a /20?) that didn't have memory management on which we ran a version of V6 specially built for such machines. There was some way that it could have more than one process in memory at a time but without memory management. I can't think of how it could've been done right off the top of my head -- but I know there wasn't memory management because the kernal could be corrupted by wild pointer references ... er.. maybe it couldn't fit in more than one process at a time. In any case there was only 16K of memory (words, not bytes, 32Kbytes) for programs once the 16K (32K) was taken out for the OS. And to 'swap' whole processes were swapped out. Other PDP-11's *did* have a memory manager which provided mapping of 8 segments in the 64kbyte address space. (8kbyte segments). Some PDP-11's even had lots of memory (up to 4 megs if I remember right). (Hmmm... my A2000 has 3 megs in it -- my how time changes things ...) On these machines you could easily have many programs in memory. But again it could only swap out whole processes. Proper paging virtual memory didn't come until some version of 4.x (4.2?) in the BSD strain and in SysVr2.(something) in the SysV strain. To answer a previous question ... And yes, Unix passes messages by copying. Twice in fact. Once from the sender to the kernel, and again from the kernel to the receiver. An important addition is that on Unix the receiver could just as easily be some process in Norway on the Internet as it could be some process on the local machine. *THAT* is *MY* wish for AmigaDOS 1.4 (or ASAP anyway) -- convenient message passing across machines. Oh yeah. In a Unix context message passing *could* be done w/o copying. er.. well, fewer copies anyway. You set up a shared memory segment in the system between the cooperating processes. Probably to get the data into the shared memory you do a copy, then to get it back out there's another copy. This is because the area in the shared memory is limited resource that you don't want to waste needlessly. But in any case, a convention could be built allowing communication through such a thing. Doesn't the AmigaDOS convention of passing pointers to objects around lead to problems with resource management? That is, when it comes time to kill a process how do you free the memory associated with that process? If one process creates some object and then gives it to another -- does the kernel keep track? And can't the object be shared between processes? -- <- David Herron; an MMDF guy <- ska: David le casse\*' {rutgers,uunet}!ukma!david, david@UKMA.BITNET <- <- The problem with mnemonics is they mean different things to different people.