后台开发面试准备2:linux共享内存

共享内存是Linux中最快速的进程间通信方式,允许不同进程访问相同内存区域。当一个进程写入共享内存,更改立即对其他访问该内存的进程可见。本文探讨了共享内存段在进程地址空间的位置(紧邻栈下方)以及最大限制(默认32MB,可通过sysctl调整),并介绍了其工作原理。
摘要由CSDN通过智能技术生成

共享内存定义:共享内存是最快的可用IPC(进程间通信)形式。它允许多个不相关的进程去访问同一部分逻辑内存。共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。其他进程可以把同一段共享内存段“连接到”它们自己的地址空间里去。所有进程都可以访问共享内存中的地址。如果一个进程向这段共享内存写了数据,所做的改动会立刻被有访问同一段共享内存的其他进程看到。因此共享内存对于数据的传输是非常高效的。


共享内存段被映射进进程空间之后,存在于进程空间的什么位置?共享内存段最大限制是多少?

共享内存段紧靠在栈之下,最大限制为32M

sysctl kern.ipc.shmmax
kern.ipc.shmmax: 33554432

缺省设置只适合小安装(缺省最大共享内存是 32 MB)。不过,其它参数的缺省值都相当大, 通常不需要改变。最大的共享内存段设置可以用 sysctl 接口设置。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值