Path: utzoo!attcan!uunet!lll-winken!ames!eos!labrea!decwrl!decvax!ima!think!barmar From: barmar@think.COM (Barry Margolin) Newsgroups: comp.sys.mac Subject: Re: Virtual memory init Message-ID: <35654@think.UUCP> Date: 25 Jan 89 05:34:59 GMT References: <1542@csuna.UUCP> <76000334@p.cs.uiuc.edu> <13871@cup.portal.com> Sender: news@think.UUCP Reply-To: barmar@kulla.think.com.UUCP (Barry Margolin) Organization: Thinking Machines Corporation, Cambridge MA, USA Lines: 43 In article <13871@cup.portal.com> bcase@cup.portal.com (Brian bcase Case) writes: [Someone else writes:] >>Furthermore, nobody believed that VM could be implemented so quickly >>on the macintosh >Right, and it still hasn't been done. Connectix hasn't done real >virtual memory: Mac applications must still be assigned and wired-down >to places in the 8 MByte memory space. Virtual memory is any scheme that allows applications to be fooled into thinking that there is more memory than there actually is. Individual applications don't have to have independent address spaces for the memory to be virtual. My Symbolics lisp machine provides preemptive multitasking, but all applications (and the OS) still live in the same 256-megabyte address space. And on Multics, each login session is a single process, with all applications that the user runs during that session in that address space. It's possible to have time sharing, protected applications, inter-process communication, etc. without virtual memory, too. For example, a system that simply provides each application with the normal physical address space and swaps all of physical memory in and out is possible (and very similar to the first computer I used, a PDP-8 running TSS-8). The point is that these are independent aspects of an OS. There are advantages and disadvantages to each. I think you are also misusing the term "wired-down". In operating systems, this term is used to mean locking a particular portion of virtual memory to a portion of physical memory, and preventing it from being swapped out. It's generally used for things like I/O buffers in DMA systems, where the device must be told a physical address in which to store or retrieve its data, and it wouldn't be nice if the VM mechanism were to replace it when the device isn't looking. You're using it to mean that an application is loaded into a particular place in VM and it stays there, which is true on every system I'm aware of (on systems where each application gets its own address space, every application is normally "wired-down" to the same location (e.g. 0) in its own space). Barry Margolin Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar