rfm%urth@Sun.COM (Rich McAllister) (10/15/88)
In article <5102@medusa.cs.purdue.edu>, spaf@cs.purdue.edu (Gene Spafford) writes: >The definition I use in teaching OS courses is the following: > >If the address presented to the system may be bound to a physical >address different from that seen by the program, you have >virtual memory. Later, in article <5085@medusa.cs.purdue.edu>, he remarks: >The definition I gave happens to cover the memory scheme on systems >your definition doesn't -- like TSO on a 360, old NOS on a CDC 6600, >and various DEC OS systems on their earlier PDP machines. I think this demonstrates the best reason not to use this definition of "virtual memory" -- it loses the history of the term. The term was popularized by IBM when it introduced the 370/158 and /168 and OS/VS -- the main distinction drawn between the new OS and the old was: the new one has virtual memory, the old one doesn't. Also, the common definition of virtual is "existing in appearance but not in fact," which doesn't seem to apply to a simple remapping of addresses of memory which exists "in fact". A proper definition of "virtual memory" should capture the idea that the data stored in a part of the address space may be held somewhere other than in main storage when not being referenced. Rich McAllister (rfm@sun.com)
haynes@ucscc.UCSC.EDU (99700000) (10/15/88)
In article <73039@sun.uucp> rfm@sun.UUCP (Rich McAllister) writes: >Also, the common definition of virtual is "existing in appearance but not >in fact," which doesn't seem to apply to a simple remapping of addresses >of memory which exists "in fact". Wellll - maybe so, maybe not. Maybe it's not the storage itself that "exists in appearance but not in fact" but rather some other attribute of memory, such as how it is addressed. For instance, let's consider the old base-address-and-boundary register scheme such as the GE635 and its descendants employed. Now here all the memory the user program sees is really there; but the virtual addresses, those used by the user program, are in a space that begins at address zero. But only the entire virtual space can reside either in main memory or not in main memory when it's swapped out. There is no provision for part of the space to be resident and part non-resident. Yet I would say that this memory is in some sense virtual. > >A proper definition of "virtual memory" should capture the idea that the >data stored in a part of the address space may be held somewhere other >than in main storage when not being referenced. > > >Rich McAllister (rfm@sun.com) Well, then, we need some other term to use for the larger class of schemes in which addresses in programs are mapped before being used to address physical memory. haynes@ucscc.ucsc.edu haynes@ucscc.bitnet ..ucbvax!ucscc!haynes "Any clod can have the facts, but having opinions is an Art." Charles McCabe, San Francisco Chronicle
bob@tolerant.UUCP (Bob Lee) (10/19/88)
From the book "Virtual Memory Management" by Richard William Carr (UMI Research Press), pg 2. The three basic elements of virtual memory, as illustrated in figure 1.1, are the *virtual address space*, the *main memory*, and the *auxiliary memory*. Each task's program and data are contained in a virtual memory address space, which appears to be a private and dedicated area of the computer's main random-access memory. In reality, the address space is only an *illusion* of physical memory that is created by the coordinated action of specialized hardware and operation system software. In general, the illusion is not detectable by the task. (The asterisks denote itallics in the original text) The book is excellent, and has a five page bibliography at the end. I normally don't post because by the time I read it and respond someone else has answered quite often better than I can. I found two things annoying in the postings 1) the degeneration to personal attacks which limits if not destroys dialogue and 2) it seems that no one mentioned the "first" (earliest date I could find on a paper) system that used virtual memory (ATLAS) or mentioned (let alone quoted) Denning, who has done a termendous amount of work on the subject. The above definition is not quite adequate today in the face of new features such as shared data segments, and diskless workstations. There is work being done at CMU in the MACH os that has a concept of imaginary memory; however, the above definition serves as a good place to start. -bob ------------------------------------------------ opinions as always are my own, and should not be blamed on my company