2017-08-26 109 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分配的內存。