2013-08-21 153 views
0

所有,请原谅我,我的Windows驱动程序开发新手,看了this document from WDK后,我有件事情我不明白。虚拟地址空间

文件称

虚拟地址范围是提供给一个过程 呼吁进程的虚拟地址空间。每个用户模式 进程都有其自己的专用虚拟地址空间。对于32位的 进程,虚拟地址空间通常是2千兆字节范围 0x00000000到0x7FFFFFFF。对于64位进程,虚拟地址空间是8 TB范围0x000'00000000到 0x7FF'FFFFFFFF。虚拟地址范围有时称为虚拟内存范围。

我关于它的问题是:

应该有它有8 GB的内存条的计算机。

  1. 所有的虚拟地址空间是否被这个 8-GB内存分配?
  2. 如果一个进程需要分配2g虚拟地址空间,我可以说如果系统中有4个进程正在运行。他们完全需要8GB的内存?如果答案是肯定的,这是否意味着在计算机中可以运行的最大进程数是4?

我不知道如果我误解的东西。请纠正我。非常感谢。

+0

虚拟表示物理RAM的数量不会限制内存进程可以看到的数量。不适合物理RAM的数据存储在硬盘上,内存根据需要自动分页和分页。即使“金额”相同,虚拟地址和物理RAM之间也不存在1:1映射。 –

+0

所有,我发现答案是[这里](http://en.wikipedia.org/wiki/Virtual_memory),谢谢。 –

回答

1

1)任何的虚拟空间编辑部地址独立于物理地址空间的。从OS管理的虚拟地址到物理地址有映射。因此,分配给进程的虚拟地址不依赖于系统中的物理内存。

2)否,再次虚拟地址是从物理地址分开。此外,Windows还支持虚拟内存,因此即使您没有足够的物理内存来保存所有进程,活动内存也可以分页输出到磁盘。