linux - 我可以分配一个大的和保证连续范围的物理内存(100MB)吗?

标签 linux memory memory-management posix

我能否在 Linux 上分配一个大且有保证的连续范围物理内存(连续 100 MB,不间断),如果可以,我该怎么做?

有必要通过 PCI-Express BAR 从一个 CPU1 到位于 PCIe 非透明桥后面的另一个 CPU2 映射一个连续的内存块。

最佳答案

您不在用户应用程序中分配物理内存(物理内存仅在内核内部才有意义)。

我不明白您是在编写内核模块还是某些 Linux 应用程序(例如数值有限元代码=。

在应用程序内部,您可以分配 virtual memory与例如mmap(2) (然后你可以分配一个大的连续段 address space )

我猜有些 GPU 卡可以通过 mmap 访问大量 GPU 内存,所以我相信可以做你想做的事。

您可能对 numa(7) 感兴趣手册页。可能是 numa(3)图书馆应该给你你想要的。你有没有考虑过open MPI ?另见 msync(2)mlock(2)

关于linux - 我可以分配一个大的和保证连续范围的物理内存(100MB)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20070108/

相关文章:

java - 如何停止/解决 Java 应用程序在 Linux 窗口管理器中窃取焦点

sizeof() 可以用来定义数组长度吗?

linux - 禁用滴答中断时如何更新时间

linux - gnome shell 3.16 - 如何添加重启按钮

memory - AMD 7970 报告不正确的 DEVICE_GLOBAL_MEM_SIZE

windows - 在 Windows 上,内存中的数据是否可以跨虚拟内存页面连续存在?

ios - 使用 block 指针作为成员变量时 iOS 中与 ARC 相关的崩溃

java - 以编程方式获取android设备的所有RAM内存,而不仅仅是分配给用户进程的内容

linux - 向 txt 或 csv 文件添加行而不在 shell 脚本中的文件中引入新行

c++ - 通过从本地 C 样式数组返回指针来获取悬空指针