<p>This may not be strictly programming related but more OS-structure related.</p>

<p>Running Vista 32 bit on a brand new laptop with 3GB of memory, Running idle the system consumes about 40% of its memory. Other then the fact that this is outrageous on its own right, the OS <strong>should be able to fit all of the processes nicely into memory</strong> and not need to swap to disk EVER.<br>
Yet looking at the task manager I see processes having page faults all the time. Not many but still. for instance explorer.exe has one every second approximately.</p>

<p>Why is that? Why does the OS feel the need to swap out pages although it has plenty of physical memory?</p>

A page fault doesn't necessarily mean that something was paged to disk. A modern OS has many levels of state that a page might be in, for example Windows will probably distinguish between a page of memory that is being actively used, and a page of memory that hasn't been touched in a while and could be paged to disk if needed. (This makes the pager's job easier, because it only has to look at the second kind of page to find out which ones it can page.) Now, how does a page get from the second state back to the first one? The kernel sets a bit on that page indicating that if anything accesses it, then the page will be marked as "active" and moved back to the first state. This results in a page fault.
Other things that might cause a page fault are things like memory mapped files. An application requests that a file be mapped to memory, that is it just
appears
in memory whenever the app wants to read from it. Obviously it would be tremendously expensive to load the whole file into memory all at once, so the kernel just marks the memory space with the "please page fault if this is ever accessed" bit, and reads from the disk if the app ever touches that page.
The real situation is a lot more complex than the above, but that should give you a general idea of what might be going on.