Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!rutgers!iuvax!bsu-cs!dhesi From: dhesi@bsu-cs.UUCP (Rahul Dhesi) Newsgroups: comp.arch Subject: Re: VM, Paging, Demand Paging Message-ID: <1223@bsu-cs.UUCP> Date: Wed, 31-Dec-69 18:59:59 EDT Article-I.D.: bsu-cs.1223 Posted: Wed Dec 31 18:59:59 1969 Date-Received: Wed, 7-Oct-87 02:56:21 EDT References: <8490@think.UUCP> <1745@ncr-sd.SanDiego.NCR.COM> <819@sugar.UUCP> <1755@ncr-sd.SanDiego.NCR.COM> <4780@ncoast.UUCP> <15250@topaz.rutgers.edu> Reply-To: dhesi@bsu-cs.UUCP (Rahul Dhesi) Organization: CS Dept, Ball St U, Muncie, Indiana Lines: 47 Summary: defining terms In article <15250@topaz.rutgers.edu> ron@topaz.rutgers.edu (Ron Natalie) writes: >The fundamental concept of VIRTUAL MEMORY is to allow the system to >appear to have more physical memory than there is (by paging/swapping, >whatever), hence the VIRTUAL. This is certainly the most common meaning. Unfortunately, the term "virtual memory" is often taken to mean different things by different people in different contexts. Consider these usages: 1. Address seen by CPU is not identical to address sent to memory. (E.g. any kind of relocation register addressing, as in DECsystem 10, or base register addressing as in IBM 360 or Intel 8086.) 2. Address space of process may be larger than amount of physical memory available. (E.g. demand paging or demand segmentation or a combination thereof, as in VAX-11/780.) 3. Memory is broken up into pieces and each piece is addressed separately and a contiguous address space may be simulated even though these pieces are scattered all over physical memory. (E.g. paged system without necessarily being demand-paged; can't think of any example machines but they must exist.) 4. Data structures may spill over from main memory to mass storage, and are moved in and out as needed by software. No special hardware is needed. (E.g. virtual arrays as in DEC BASIC on PDP-11 systems; possibly Pick operating system data structures on any machine.) 5. Data blocks are moved between main memory and disk as needed, with the help of hardware that causes a trap when a block that is not in main memory is accessed. (E.g. VAX again.) Many of these definitions overlap, especially 2, 3, and 5. I'm sure you can come up with other examples of usage. I've seen the term "virtual memory" used for all the above. So I suggest using more specific terms such as "swapping" or "base register addressing" or "demand paging" etc. whenever possible, just to avoid confusion. Thus people can rightfully claim that the 80286 CPU supports "virtual memory", but our response to that need be no more than a barely- suppressed yawn. But if they claim that the 80286 CPU supports "demand paging" you can nail them for it. -- Rahul Dhesi UUCP: !{iuvax,pur-ee,uunet}!bsu-cs!dhesi