2017-08-26 40 views
1

我正在使用NUMA api,我需要使用MAP_SHARED标志来执行mmap()所做的操作,即:进程分配内存,之后分配内存。我需要这个分配的内存将从这两个进程共享。如果P1修改这个内存区域。这种修改被P2看到,反之亦然。我如何处理numa_alloc_onnode()函数?numa分配的内存是从两个分叉进程共享的吗?

谢谢

+0

您可能应该指向该函数的在线手册页,因为该函数不是标准的。阅读手册页可能会给你答案。如果它没有说明它是如何完成的,那么它可能无法完成。 –

+0

你的意思是''numa_alloc_onnode''? –

+0

对不起,我的意思是numa_alloc_onnode – munky

回答

0

这两个步骤进行设置:

  1. numa_alloc_onnode() - 分配指定的NUMA节点上的内存。
  2. mmap() - 将指定的内存映射到文件,包括在进程之间共享内存的能力。

换句话说,mmap()将与通过malloc分配的内存一样工作,这是通过numa_alloc_onnode分配的内存。