What I understand about 32-bit OS is, the address is expressed in 32 bits, so at most the OS could use 2^32 = 4GB memory space
The most that the process can address is 4GB. You are potentially confusing memory with address space. A process can have more memory than address space. That is perfectly legal and quite common in video processing and other memory intensive applications. A process can be allocated dozens of GB of memory and swap it into and out of the address space at will. Only 2 GB can go into the user address space at a time.
If you have a four-car garage at your house, you can still own fifty cars. You just can't keep them all in your garage. You have to have auxiliary storage somewhere else to store at least 46 of them; which cars you keep in your garage and which ones you keep in the parking lot down the street is up to you.
Does this mean any 32-bit OS, be it Windows or unix, if the machine has RAM + page file on hard disk more than 4GB, for example 8GB RAM and 20GB page file, there will never be "memory used up"?
Absolutely it does not mean that. A single process could use more memory than that! Again the amount of memory a process uses is almost completely unrelated to the amount of virtual address space a process uses. Just like the number of cars you keep in your garage is completely unrelated to the number of cars you own.
Moreover, two processes can share non-private memory pages. If twenty processes all load the same DLL, the processes all share the memory pages for that code. They don't share virtual memory address space, they share memory.
My point, in case it is not clear, is that you should stop thinking of memory and address space as the same thing, because they're not the same thing at all.
if this 32-bit OS machine has 2GB RAM and 2GB page file, increasing the page file size won't help the performance. Is this true?
You have fifty cars and a four-car garage, and a 100 car parking lot down the street. You increase the size of the parking lot to 200 spots. Do any of your cars get faster as a result of you now having 150 extra parking spaces instead of 50 extra parking spaces?
As always, the answer will be: it varies. A few main points to consider:
- If you only have single channel memory, then you won't be losing anything by upgrading and staying with single channel
- Dual-channel memory makes a big difference in speed if you are using your CPU's integrated graphics (IGP) for 3D gaming, but aside from that, differences are minimal outside of a few, specialised applications.
- Having too little memory will make things a lot worse than having more, slower memory
Whether you'll need the extra 4GB really depends on what you are doing, and you've not provided enough information to really say. If your programs regularly add up to more than 6GB of memory in total then I would say it will be of benefit - any unused memory is used as cache to speed up other things.
Your decision would ideally be based on running everything you usually do and then looking at the peak commit value in your OS to determine how much memory is used. But in practice, given the small difference in price, just go for the 12GB. There's really no harm, and ultimately, modern processors can use 8 out of 12GB in dual-channel mode anyway, meaning going for 12 is win-win.
[Edit]
Easiest way to view current commit size in Windows 7 is task manager. Technically peak commit would be a better figure but it's harder to get hold of.
Simply put, commit size is just the total amount of memory that has been allocated. Not all of it may be in use but all of it must be set aside in case it is required; if all programs were to use all the memory they've requested at the same time, this is how much you would require.
Under Windows 8 and Windows 10 it's much the same:
Best Answer
To begin with, to use that amount of memory, you need to have a 64-bit Operating system.
Next, I would check the chipset of your laptop's motherboard (can usually be seen at startup, usually one letter and two numbers. Then look up the specification. I can't comment for certain, but a lot of laptops of Core 2 age don't support more than 4GB of memory.
edit -- update
Sorry, your laptop will NOT be able to support 8GBs, I saw the model number you wrote above and tracked it down as a Satellite A300-1J1, this has a GM965 Chipset, and from Intel's specifications, it states that the maximum amount of supported memory is 4GBs