Windows中的虚拟地址空间

时间:2013-08-21 02:43:06

标签: c++ windows operating-system wdk virtual-address-space

全部,原谅我,我是Windows驱动程序开发的新手,阅读this document from WDK后,我有一些我不理解的东西。

该文件说

  

进程可用的虚拟地址范围   称为进程的虚拟地址空间。每个用户模式   进程有自己的私有虚拟地址空间。对于32位   进程中,虚拟地址空间通常为2千兆字节   0x00000000到0x7FFFFFFF。对于64位进程,虚拟   地址空间是8TB的范围0x000'00000000到   0x7FF'FFFFFFFF。一系列虚拟地址有时称为a   虚拟内存范围。

我的问题是:

假设有一台拥有8千兆字节存储库的计算机。

  1. 是否所有虚拟地址空间都是由此分配的 8千兆内存?
  2. 如果一个进程需要分配2g虚拟地址空间,我可以说如果系统中有4个进程正在运行。他们完全需要8千兆字节的内存?如果答案为是,那么在计算机中是否可以运行最大进程数是4?
  3. 我不知道我是否误解了什么。请纠正我。非常感谢。

1 个答案:

答案 0 :(得分:1)

1)虚拟地址空间不与物理地址空间无关。存在由OS管理的从虚拟地址到物理地址的映射。因此,分配给进程的虚拟地址不依赖于系统中的物理内存。

2)不,虚拟地址再次与物理地址分开。 Windows也支持虚拟内存,所以即使你没有足够的物理内存来保持所有进程,活动内存也可以被分页到磁盘。