窗口中的虚拟地址空间

Virtual address space in windows

本文关键字:地址空间 虚拟 窗口      更新时间:2023-10-16

对不起,我是Windows驱动程序开发的新手,在阅读了WDK的这份文档后,我有一些不理解的地方。

文件上说

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

我的问题是:

假设有一台拥有8GB内存的计算机。

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

我不知道我是否误解了什么。请纠正我。非常感谢。

1)否虚拟地址空间独立于物理地址空间。存在由操作系统管理的从虚拟地址到物理地址的映射。因此,分配给进程的虚拟地址并不取决于系统中的物理内存。

2) 不,同样,虚拟地址与物理地址是分开的。此外,Windows支持虚拟内存,因此即使您没有足够的物理内存来保持所有进程处于活动状态,内存也可以调出到磁盘。