I'm trying to understand the relationship between virtual memory, RAM, page files etc. I've been reading the internet especially:
"...application programs and many system processes always reference memory using virtual memory addresses which are automatically translated to real (RAM) addresses by the hardware"
So in my example, let's say we have a Windows 2008 Server with 2GB RAM installed. Am I right in thinking that:
i. Regardless of the amount of physical memory, there is 4GB of virtual memory allocated for each process running. 2GB of this is for the process itself, 2GB for the OS
Question1: I assume this is for an x32 OS, what about an x64 OS [running on x64 hardware]
Question 2: Even if we had a x64 hardware, but x32 OS, I assume we still only have 4GB virtual address space
Question 3: Is this 4 GB virtual memory PER PROCESS, or is it for all processes added together?
Question 4: If it is for each process (i.e. each process has 4GB virtual memory) why does there need to be 2 GB reserved for the OS? What exactly does this "reserved for the OS" allocation do?
Question 5. So if I had 3 apps running on my server, each with their own process, does this mean that we would have 3 x 4GB virtual memory allocations going on?
"..The main thing is that space in the page file will be allocated to virtual memory pages for which no corresponding RAM page is available".
Question 6: Is it true to say that the page file is used ONLY when there is no physical RAM left? Are the following two the best monitors for Page file use:
Memory: Pages Input/Sec
Memory Pages Output/sec
Question 7: If we use a Windows 2008 Enterprise x64 version of the OS, do we remove all these problems with Page File etc, since we can allocate so much RAM??
Question 8: On a Windows 2008 x32 OS (either Standard or Enterprise), is it true to say that there is no point installing more than 4GB RAM, since the OS cannot see it?