社区
Linux/Unix社区
帖子详情
关于共享内存的问题
AntonlioX
2006-08-26 09:26:53
使用POSIX的shm_open,shm_unlink
1 如何保证一个进程先创建并初始化一块共享内存后,另一个进程才访问能这块共享内存。
2 如果一个进程执行了shm_unlink后,是不是这块共享内存其他进程正在使用的,就被释放了?
如果不是,那么如果有个新的进程使用同样的共享内存名字来创建新的共享内存,是不是创建的是新的一个共享内存,与前面创建的共享内存不是同一块?
谢谢
...全文
428
11
打赏
收藏
关于共享内存的问题
使用POSIX的shm_open,shm_unlink 1 如何保证一个进程先创建并初始化一块共享内存后,另一个进程才访问能这块共享内存。 2 如果一个进程执行了shm_unlink后,是不是这块共享内存其他进程正在使用的,就被释放了? 如果不是,那么如果有个新的进程使用同样的共享内存名字来创建新的共享内存,是不是创建的是新的一个共享内存,与前面创建的共享内存不是同一块? 谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
isnowran
2006-09-04
打赏
举报
回复
shm_open
1. mkdir dir
2. mount with tmpfs
3. create a fiel in this dir
3. mmap this file
struggleyb
2006-08-29
打赏
举报
回复
按照linux的习惯,unlink不应该是简单的删掉相应的文件,而应该是减少文件使用计数,直到使用计数为0时,再删掉文件
nuaa3
2006-08-29
打赏
举报
回复
建议不要使用shm_open ??
那用什么创建
isnowran
2006-08-28
打赏
举报
回复
shm_open =
1. create file in /dev/shm
2. mmap /dev/shm/file
shm_unlink =
1. remove /dev/shm/file
建议不要使用shm_open,当你chroot后,创建会失败,照着上述步骤,手工实现比较灵活
nuaa3
2006-08-28
打赏
举报
回复
帮你顶
AntonlioX
2006-08-26
打赏
举报
回复
up
AntonlioX
2006-08-26
打赏
举报
回复
请大家指点一下
AntonlioX
2006-08-26
打赏
举报
回复
up
AntonlioX
2006-08-26
打赏
举报
回复
我说的清楚点:
如果一个进程执行了shm_unlink后,是不是就释放了这块共享内存, 其他进程即使正在使用这个共享内存,也要被释放?
如果不是,而只是把/dev/shm/的对应某个文件给删掉 , 那么如果有个新的进程使用同样的共享内存名字来创建新的共享内存,是不是创建的是新的一个共享内存,与前面创建的共享内存不是同一块?
AntonlioX
2006-08-26
打赏
举报
回复
shm_unlink 到底实现了什么功能? 我感觉它只是简单的把 在/dev/shm/的某个文件给删掉了
fytzzh
2006-08-26
打赏
举报
回复
加锁. 修改共享的时候就要做互斥.
在shm_unlink的时候加锁这样就能保证没有其他线程正在使用。因为同一时刻只有一个线程才能加锁成功.其他线程都会等待.
Android专用驱动
Ashmem是一个
共享内存
驱动,它与传统的
共享内存
相比,最大的特点是它是通过文件描述符来描述的,并且可以动态地进行分块管理。动态分块管理的目的是可以将部分不再使用了的内存交回给系统,非常适合内存较小的移动...
进程间通信——
共享内存
(Shared Memory)
共享内存
是System V版本的最后一个进程间通信方式。
共享内存
,顾名思义就是允许两个不相关的进程访问同一个逻辑内存,
共享内存
是两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存...
关于内存泄漏
问题
(
共享内存
、请求调页、缺页异常处理)
最近发现了一个
问题
,当不同的进程申请了同一块
共享内存
时,会有内存泄漏现象,即当程序运行时,有些进程的内存会逐渐 增加,波动幅度较为明显。 2.
问题
排查 通过调试排查,我们发现是
共享内存
引起的。我们用两...
共享内存
_shmget
文章目录
共享内存
创建
共享内存
映射
共享内存
删除
共享内存
父子进程
共享内存
共享内存
通信
共享内存
共享内存
是被多个进程共享的一部分物理内存。一个进程向
共享内存
写入了数据,共享这个内存区域的所有进程就可以...
IPC通信--
共享内存
在进程B中,同样创建一个
共享内存
对象并将其连接到已存在的
共享内存
段。然后,等待一段时间以便其他进程可以写入数据。接着,从
共享内存
中读取数据并打印出来。然后,将数据写入
共享内存
。最后,分离
共享内存
对象。...
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章