共享内存:shmget()/共享内存如何工作?

时间:2014-02-21 10:04:46

标签: linux memory-management posix shared-memory

通过浏览shmget()的手册页,我知道shmget()调用会在内存中分配页面,这些页面可以跨进程共享。

是否要创建内核内存页面,该页面映射到进程的本地地址空间? 或者它是为该段保留的相同进程内存页面,同样也将为其他附加进程共享?

我的假设: 当调用shmget()时,内核将保留段数/页面数。调用shmat()时,保留的段将映射到进程的地址空间/页面。当新进程附加到同一段时,先前创建的内核segemnt将映射到新进程地址空间。

这是对的吗?

1 个答案:

答案 0 :(得分:0)

除了措辞"内核内存页面"之外,这个想法或多或少是正确的。内存管理中保留/分配的内存不是专门为内核编写的。它只是"内存页面",尚未映射到进程内存。