Observations
In many cases, not all of the logical address space of a process is accessed during the life of a process:
- 80-20 rule: only, say, 20% is used code while the rest is error handling etc, which is rarely used.
- Arrays, lists, tables - many times are allocated to be able to contain the maximal need, which is rarely needed.
And, of course, not all of the logical memory space is needed at the same time.