Flogging a dead horse perhaps, as I believe the discussion is simply a
matter of differing definitions of the phrase "virtual memory", but
let's try a different approach:
Suppose we have a machine which at the instruction level provides
32-bit addresses, that is, it presents a 32-bit address space (4GB) to
the user. However, there is only 1 MB of physical RAM memory in the
machine.
Without trying to go through the whole history of OS development
(leaving out things such as overlays, shared libs, etc.), and without
accounting for memory required by the kernel/OS for simplicity,
consider several scenarios:
- 1. User addresses map directly to physical addresses.
User address 0 is physical address 0. The user address space is
obviously
limited to 1MB or less of memory and the user will be aware of such
if an
attempt to address beyond that is made.
- 2. We add an MMU to map addresses.
Multiple user address spaces may exist and can be mapped to different
areas in physical memory. User address 0 may or may not ref physical
address 0.
A user is still aware of a limited address space dictated by the 1MB
of
physical memory. The total of the user address spaces cannot exceed
1MB.
- 3. We add swapping-to-disk.
The system as a whole is no longer limited to 1MB of memory, there
may be
multiple user address spaces totalling more than 1MB of memory. Each
user
however, is still limited to a max of 1MB of address space, i.e.
each user
is still aware of the limited physical memory.
- 4. We add address-faulting, demand-paging - whatever one wants to
call it.
The user address space is no longer limited by physical memory. The
user can
hit any address in their 32-bit space and (magically) find a valid
memory
location there. More physical memory can be added (or removed)
'underneath'
the user(s) without their awareness.
By the nomenclature I grew up with or suffer under, the term "virtual
memory" only applies in scenario 4, although "virtual addresses" could
be said to have been introduced in scenario 2.
Or, scenario 4 was my understanding of the *commonly-agreed-upon
application* of the phrase "virtual memory", although I would not argue
that in a very general sense it may be applied to scenario 2 or 3.