Physical and Virtual Memory
In the previous sections, it was discussed how individual programs could use 2, 3 or 4Gb memory. And when you open the Taskmanager, you can see 50 or more programs running at the same time.
So, how much RAM can one have installed to make all things work?
The answer is that 2Gb is a minimum requirement, 4Gb is an absolute maximum for 32-bit Windows anyway (it’s just a non-LAA program itself!) and the 3Gb as in most laptops gives a good price/performance ratio, unless you’re doing the bulky things that made you read this tutorial in the first place.
So, how does it work. I won’t go into details, but every time a program needs memory, it just gets a chunk (or: page) of it assigned by the Windows Memory Manager (WMM). This WMM can move filled but hardly used pages to disk, and back. Effectively, it uses diskspace to fill in enhanced requirements, and this is why you don’t need to have all RAM aboard physically.
The downside of this approach is that when your program needs a lot of RAM actively, the WMM will get very busy by swapping all those memory pages on and off the disk. You will see and hear the rattling of your disks, and you will experience serious performance downgrades. More physical RAM just means: less swapping, and better performances (as long as you have this kind of issue).
For all addressing, programs talk to the WMM. So whether they request up to 2Gb or even up to 3Gb, it might come from either RAM or disk. Actually, adding more physical RAM will not solve any problems coming from crossing the 2Gb User Memory border. On the other hand, when so much memory is actively used it’s likely that you might run into swapping delays as well. Although in my experience those RAM-hungry programs are quite handy in avoiding it.
So, enough physical RAM for all your simultaneous programs, and enough user memory for one single program, really are separate things. Solving one will not solve the other.