title: Virtual address space in windows
body: <p>All, Forgive me I'm a newbie for the Windows Driver Development, After read <a href="http://msdn.microsoft.com/en-us/library/windows/hardware/hh439648%28v=vs.85%29.aspx" rel="nofollow">this document from WDK</a>, I have something I didn't understand. </p>
  
  <p>The document says </p>
  
  <blockquote>
    <p>The range of virtual addresses that is available to a process is
    called the virtual address space for the process. Each user-mode
    process has its own private virtual address space. For a 32-bit
    process, the virtual address space is usually the 2-gigabyte range
    0x00000000 through 0x7FFFFFFF. For a 64-bit process, the virtual
    address space is the 8-terabyte range 0x000'00000000 through
    0x7FF'FFFFFFFF. A range of virtual addresses is sometimes called a
    range of virtual memory.</p>
  </blockquote>
  
  <p>My questions about it are :</p>
  
  <p>Supposed there is a computer which has 8-gigabyte memory bank.</p>
  
  <ol>
  <li>Is all the virtual address space actully assigned from this
  8-gigabyte memory?</li>
  <li>If one process need to assigned 2g virtual address space, Can I say that if there are 4 processes running in the system. they totally need 8-gigabyte memory ? If the answer is Yes, Does it means in thes computer the max number of processes can be ran is 4?</li>
  </ol>
  
  <p>I don't know if I misunderstand something. please correct me. thanks a lot.</p>