【发布时间】:2011-10-09 12:30:50
【问题描述】:
进程可用的虚拟地址空间有什么限制?
是吗
32 位与 64 位地址总线?
32 位与 64 位处理器?
辅助存储可用?
已配置最大交换空间?
提前致谢
【问题讨论】:
-
您可能想在这里查看答案:unix.com/programming/…
标签: linux memory operating-system
进程可用的虚拟地址空间有什么限制?
是吗
32 位与 64 位地址总线?
32 位与 64 位处理器?
辅助存储可用?
已配置最大交换空间?
提前致谢
【问题讨论】:
标签: linux memory operating-system
辅助存储/交换空间与它无关,因为页面可以映射到您的地址空间而不被分配。并且同一个页面可以映射到多个虚拟地址。 ([编辑] 这是默认行为,但 vm.overcommit_memory sysctl 设置可用于阻止映射没有可用 RAM 或交换的 VM 页面。请搜索该 sysctl 设置以获取更多信息。)
CPU 确实设置了一个上限,而这本质上是 64 位系统的唯一限制。虽然请注意当前的x86_64 processors do not actually let you use the entire 64-bit space。
在 32 位 Linux 上,事情变得更加复杂。旧版本的Linux为内核保留每个进程2GB的虚拟空间;较新的保留 1GB。 (也就是说,如果内存提供服务。我相信在编译内核时这些是可配置的。)您是否认为该空间“可供进程使用”是语义问题。
【讨论】: