On 2010-11-01 00:02, "Chuck Guzis"<cclist at sydex.com> wrote:
On 31 Oct 2010 at 11:37, Johnny Billquist wrote:
> The important question here - are the
programs aware of the RA
> register, and can they change it? And can they address the full range
> of memory addresses as perceived by the program.
No they aren't. Their
memory exists from 0 to whatever the field
length is, physically and continously. If they need more, a system
request can expand their field length provided the system has
sufficient physical memory to accommodate them. There is no way
(absent perhaps a system request to get that information) for a
program to know its real physical base address.
Ok. So, a program would think it addressed a memory space, which was
it's own, and the addresses it used would in no way related to the
actual physical memory it ended up referring to.
I'd call that virtual memory.
Although, having to map the whole virtual memory as one chunk to
physical memory makes it a little more work, end less flexible than
having pages. And it pretty much prevents you from ever being able to
share memory in a reasonable way between processes.
> Another
word for swapping in and out?
But much older and specific to the architecture and
not done in
pieces as a tranditional VM swap file would be.
Hmm. I don't think swapping is considered to be done in pieces today
either, although swapping is also a term that seems to be defined
differently depending on which OS we're talking about. Unix systems can
both page and swap. Swapping is throwing everything out to disk,
including some kernel structures for the process. Don't happen that
often nowadays... Paging is normally enough.
I'll take the coward's way out and use the
dictionary here:
"1. Existing or resulting in essence or effect though not in actual
fact, form, or name"
So my definiton of "fooling the user into thinking he has more
physical memory than he actually has" is certainly valid.
And the VAX sense is also true, but only if one takes along with it
the ability to over-commit memory space such that the amount of
addressable memory (i.e. the sum of all users' memory) is greater
than the physical memory present.
A single task running on a VAX with at least as much physical memory
as addressing space would not be using the virtual memory facility--
every bit is reflected in the presence of real memory.
But then, we fall on marshy ground again, when we consider the old
"roll/swap" multiuser situation. I can run 8 jobs, each requiring
65K of memory on a system with 128K physical memory, simply by
selecting when I give each a time slice and swapping/rolling them out
as needed. So is that virtual?
Indeed. I remember (not so fondly) running on a PDP-11/70 back in the
80s. The machine was running RSTS/E V7, and the system allows max 63
jobs. We were at times actually 63 users running on that machine, and it
only have 1.5M of memory. It was swapping a lot, and things sometimes
went slow, but it worked perfectly fine. Seeing a machine today with
over 60 users is not common, and I'm not sure it would feel a single bit
more pleasant than the RSTS/E system I used back then...
And I'd still claim that the memory used by each process was definitely
virtual. And I'm willing to continue to fight for that view. Besides,
for the PDP-11, that is what DEC called it. :-)
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol