如何在32位支持PAE的Linux应用程序中使用3 GB以上的进程?

如何在32位支持PAE的Linux应用程序中使用3 GB以上的进程?,第1张

概述PAE( Physical Address Extension)于1994年在CPU中引入.这允许32位处理器访问64 GB内存而不是4 GB.从2.3.23开始,Linux内核为此提供支持.假设我正在启动其中一个内核,并希望在C中编写一个可以访问超过3 GB内存的应用程序(为什么3 GB? See this). 我如何访问超过3 GB的内存?当然,我可以分叉多个过程;每个人都可以访问3 GB,并 PAE( Physical Address Extension)于1994年在cpu中引入.这允许32位处理器访问64 GB内存而不是4 GB.从2.3.23开始,linux内核为此提供支持.假设我正在启动其中一个内核,并希望在C中编写一个可以访问超过3 GB内存的应用程序(为什么3 GB? See this).

我如何访问超过3 GB的内存?当然,我可以分叉多个过程;每个人都可以访问3 GB,并可以相互通信.但对于大多数用例而言,这不是一个现实的解决方案.还有哪些其他选择?

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

解决方法 你没有直接 – 只要你在32位上运行,每个进程都将受到内核构建的VM拆分(2GB,3GB,或者如果你有4GB的补丁内核) / 4GB分割,4GB).

让进程使用更多数据并将其保留在RAM中的最简单方法之一是创建shmfs,然后将数据放在fs上的文件中,使用普通的seek / read / write原语访问它们,或映射它们使用mmap一次一个地进入内存(这基本上相当于做自己的分页).但无论你做什么,它都需要比使用前3GB更多的工作.

总结

以上是内存溢出为你收集整理的如何在32位支持PAE的Linux应用程序中使用3 GB以上的进程?全部内容,希望文章能够帮你解决如何在32位支持PAE的Linux应用程序中使用3 GB以上的进程?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1019331.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存