• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

Windows XP 32bit memory managment question

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.

Commander_Kang

Speedy Dragon
Joined
Mar 4, 2001
Location
MD
I've been debating with several of my friends from another tech department about windows and memory usage. From researching on google and testing on one of my home 32bit game servers that "had" 4 gigs of ram I've found that in most instances you wont find it advantageous to run more than 3gigs of ram due to how the majority of apps/games are written in 32bit. Their claim is that you can address more than 2gigs of ram which is true but I've seen very few apps outside of terminal servers and exchange that can take advantage of 3gigs of memory.

Now this is were I think I may be wrong and could really use some clarification. If you have three gigs of ram,two gigs will be accessible to whatever app(s) your running say photoshop or supreme commander and any background processes.The other 1 gig of ram will be solely used for kernel space correct?
 
Yes your right, I needed to use more ram to I moved the vista 64bit and its been the most stable OS I have ever used.
 
You need to differentiate between physical and virtual memory.

Applications live in virtual memory. By default, it is diveded into 2GB of user space and 2GB of kernel space. But its only a memory space. First when memory is allocated, is RAM used.

If you change the layout to 3GB of user and 1GB kernel, doesn't mean the kernel uses 1GB of installed RAM.

If an application has a special flag in its image header, and the /3GB switch is in use, it has access to 3GB of virtual memory, without using special API.

To use more memory than the user space allows, the AWE API must be used.

The problem with 4GB and Windows not finding all of it, is due to memory mapped IO. This is a physical memory issue.

Edit: to clearify the user space part. Each process has its own private user space. So 10 processes could potentially use 20GB of memory.
 
Last edited:
kallejr said:
You need to differentiate between physical and virtual memory.

Applications live in virtual memory. By default, it is diveded into 2GB of user space and 2GB of kernel space. But its only a memory space. First when memory is allocated, is RAM used.

If you change the layout to 3GB of user and 1GB kernel, doesn't mean the kernel uses 1GB of installed RAM.

If an application has a special flag in its image header, and the /3GB switch is in use, it has access to 3GB of virtual memory, without using special API.

To use more memory than the user space allows, the AWE API must be used.

The problem with 4GB and Windows not finding all of it, is due to memory mapped IO. This is a physical memory issue.

Edit: to clearify the user space part. Each process has its own private user space. So 10 processes could potentially use 20GB of memory.

That makes sense, this article I found talks about the mapped IO for those that are interested. Do you happen to know of any sites that explain virtual memory in greater detail?

http://www.codinghorror.com/blog/archives/000811.html
 
Back