zz关于共享内存DEST状态的说明(转载)

关于共享内存DEST状态的说明(转载)

由 Marchday 在 周三, 2006-05-31 08:38 提交
我们解开util-linux-2.12a-16.EL4.6.src.rpm的源码,在文件sys-utils/ipcs.c中的do_shm函数可以 看到,程序通过调用shmctl的SHM_INFO命令获取共享内存的整体信息,然后逐段调用shmctl的STAT命令,获取该段内存的信息(就是每一 个shmid对应的信息)。当该段内存的mode字段设置了SHM_DEST位时就会显示"dest"字样。

SHM_DEST是内核设置的,接着再看看内核关于实现ipc的源码,在ipc/shm.c中可以看到,当用户调用shmctl的IPC_RMID时,内 核首先看有多少个进程还和这段内存关联着,如果关联数为0,就会销毁(释放)这段内存,否则就设置这段内存的mode位SHM_DEST,并设置它的 key为IPC_PRIVATE,这意味着关联着的进程仍可合法存取这端内存,但是它不能再被新的进程关联了。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值