gpt4 book ai didi

c - 如何在启用 PAE 的 32 位 Linux 应用程序的进程中使用超过 3 GB 的空间?

转载 作者:IT王子 更新时间:2023-10-29 00:46:51 26 4
gpt4 key购买 nike

PAE ( Physical Address Extension ) 于 1994 年在 CPU 中引入。这允许 32 位处理器访问 64 GB 内存而不是 4 GB。 Linux 内核从 2.3.23 开始提供对此的支持。假设我正在启动这些内核之一,并想用 C 编写一个应用程序,它将访问超过 3 GB 的内存(为什么是 3 GB?See this)。

我将如何访问超过 3 GB 的内存?当然,我可以 fork 多个进程;每个人都可以访问 3 GB,并且可以相互通信。但对于大多数用例来说,这不是一个现实的解决方案。还有哪些其他选项可用?

显然,在大多数情况下,最好的解决方案是简单地以 64 位模式启动,但我的问题完全是关于如何在启用 PAE 的 32 位系统上运行的应用程序中使用超过 4 GB 的物理内存内核。

最佳答案

你不需要,直接——只要你在 32 位上运行,每个进程都将受到构建内核的 VM 分割(2GB、3GB,或者如果你有一个补丁内核4GB/4GB 拆分,4GB)。

让进程处理更多数据并将其保留在 RAM 中的最简单方法之一是创建一个 shmfs,然后将数据放入该 fs 上的文件中,使用普通方法访问它们查找/读取/写入原语,或使用 mmap 一次将它们映射到内存中(这基本上等同于执行您自己的分页)。但无论您做什么,都比使用前 3GB 需要更多的工作。

关于c - 如何在启用 PAE 的 32 位 Linux 应用程序的进程中使用超过 3 GB 的空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1709243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com