[Info-vax] OpenVMS.Org quick pool
Johnny Billquist
bqt at softjar.se
Fri Aug 24 13:50:46 EDT 2012
On 2012-08-24 19:38, Stephen Hoffman wrote:
> On 2012-08-24 16:47:40 +0000, Johnny Billquist said:
>
>> On 2012-08-24 18:32, Johnny Billquist wrote:
>>> On 2012-08-24 17:56, Stephen Hoffman wrote:
>>>> On 2012-08-24 14:43:55 +0000, Johnny Billquist said:
>>>>
>>>>> On 2012-08-24 14:48, Stephen Hoffman wrote:
>>>>>> On 2012-08-24 02:58:03 +0000, Johnny Billquist said:
>>>>>>
>>>>>>> Oh. I should probably point out that "22-bit address" is the
>>>>>>> physical
>>>>>>> addressing of the machine. Virtual addresses are always 16 bits,
>>>>>>> even
>>>>>>> on modern machines with 22-bit physical addresses.
>>>>>>
>>>>>> So you don't know how to or haven't had to program a PDP-11 box past
>>>>>> 16-bit addressing, or another analogous use of (lowercase-W) windows?
>>>>>> Ok.
>>>>>
>>>>> Huh? Are you saying that I'm wrong... I am not.
>>>>
>>>> What you're reading in the PDP-11 manuals is correct, as far as it
>>>> goes. A PDP-11 does have 16-bit addressing.
>>>
>>> A *virtual* address on a PDP-11 is *always* 16 bits. It cannot be
>>> anything else. No matter which model, which features you turn on, nor
>>> which kind of other tricks you think you came up with.
>>
>> This is actually just the same as on a VAX, where a *virtual* address
>> is always 32 bits, even though a physical address is either 30 bits,
>> or 34 bits, depending on the CPU, and a setting in a register.
>>
>> I would assume you feel way more comfortable with the VAX, Hoff?
>
> You're arguing specs.
No. I'm merely pointing out that a virtual address on a PDP-11 is 16
bits. And on a VAX it's 32 bits.
You can work around this by actually remap part of your virtual address
space to access other data. In effect, the same virtual address can
refer to different physical addresses at different times of the process
life. That does not change the virtual address, nor the virtual address
space. But it does allow you to access more data.
Virtual memory is not the same as dynamically changing your memory
mapping. It starts to smell like this is what we are arguing about...
Virtual memory is what your process perceives as the existing memory on
your computer. It starts at address 0, and runs up to some large number
(based on how many address bits you can express in your instructions).
It's all you see, and it has no bearing on the actual hardware you might
have. The operating system gives you the impression that you have all
that memory. It might be an illusion, but to your program, it's a rather
convincing illusion.
It's virtual memory. And the operating system uses the hardware of the
CPU (the MMU more specifically) to map you virtual memory to some
physical memory. Even though your virtual memory is linear, simple and
obvious, the mapping to the physical memory might be rather complex and
scattered.
What data is in this virtual memory is then another question, and you
can also ask the operating system to actually move different objects in
and out of your virtual memory, thereby from an address point of view
having different data at the same virtual address.
Johnny
More information about the Info-vax
mailing list