我对32位操作系统的了解是,地址以32位表示,因此操作系统最多只能使用2 ^ 32 = 4GB内存空间
该进程最多可以处理 4GB。您可能会使内存与地址空间混淆。 一个进程可以拥有比地址空间更多的内存。这是完全合法的,并且在视频处理和其他内存密集型应用程序中很常见。 可以为一个进程分配数十GB的内存,并随意将其交换进出地址空间。一次只能有2 GB可以进入用户地址空间。
如果您家有一个四车位的车库,您仍然可以拥有五十辆车。您只是不能将它们全部保留在车库中。您必须在其他地方有辅助存储才能存储至少46个辅助存储;您在车库中保留哪些汽车,在街上停车场保留哪些汽车由您决定。
这是否意味着任何32位操作系统,无论是Windows还是UNIX,如果计算机在硬盘上具有大于4GB的RAM +页面文件,例如8GB RAM和20GB页面文件,将永远不会“耗尽内存”?
绝对不是那个意思。一个进程可能会使用更多的内存!同样,进程使用的内存量几乎完全与进程使用的虚拟地址空间无关。就像您存放在车库中的汽车数量与您拥有的汽车数量完全无关。
此外,两个进程可以共享非私有内存页。如果二十个进程全部加载相同的DLL,则所有进程共享该代码的内存页。他们不共享虚拟内存地址空间,他们共享内存。
如果不清楚,我的意思是您应该停止将内存和地址空间视为同一件事,因为它们根本不是同一件事。
如果此32位OS计算机具有2GB RAM和2GB页面文件,则增加页面文件大小将无济于事。这是真的?
您有50辆车和4辆车的车库,以及街上100个车位的停车场。您将停车场的大小增加到200个点。您现在拥有150个额外的停车位,而不是50个额外的停车位,您的汽车会更快吗?