共享内存定义:共享内存是最快的可用IPC(进程间通信)形式。它允许多个不相关的进程去访问同一部分逻辑内存。共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。其他进程可以把同一段共享内存段“连接到”它们自己的地址空间里去。所有进程都可以访问共享内存中的地址。如果一个进程向这段共享内存写了数据,所做的改动会立刻被有访问同一段共享内存的其他进程看到。因此共享内存对于数据的传输是非常高效的。
共享内存段被映射进进程空间之后,存在于进程空间的什么位置?共享内存段最大限制是多少?
共享内存段紧靠在栈之下,最大限制为32M
sysctl kern.ipc.shmmax
kern.ipc.shmmax: 33554432
缺省设置只适合小安装(缺省最大共享内存是 32 MB)。不过,其它参数的缺省值都相当大, 通常不需要改变。最大的共享内存段设置可以用 sysctl 接口设置。