免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3047 | 回复: 5

[C++] 共享内存的几个问题 [复制链接]

论坛徽章:
1
丑牛
日期:2013-09-29 19:04:50
发表于 2012-10-25 21:05 |显示全部楼层
System V 共享内存通信有几点不懂的地方,望解答
1、进程间需要共享的数据被放在一个叫做IPC共享内存区域的地方,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地址空间中去。
问:“IPC共享内存区域” 是哪个地方? 是物理上的还是逻辑上的?是不是在1G的系统进程空间里面?

2、IPC共享内存区域和shm文件系统是什么关系?实际上是不是先将shm文件映射到“IPC共享内存区域”,再将“IPC共享内存区域”里的数据映射到进程内存空间?

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
发表于 2012-10-25 22:13 |显示全部楼层
1, 没有物理存哪里? 没有逻辑怎么存? 所有都有.
2, IPC是进程间通信的意思, shm是SYSTEM V的共享内存, 楼主为什么揪着些概念不放..

论坛徽章:
1
丑牛
日期:2013-09-29 19:04:50
发表于 2012-10-25 22:29 |显示全部楼层
本帖最后由 solu 于 2012-10-25 22:42 编辑

回复 2# linux_c_py_php


    你不懂我的想法。

1、当然内存里面的东西都是硬件和逻辑上面的都有,按照你的说法那什么都不用解释了

    像虚拟内存这种就是逻辑上的说法,但是你偏要说没有硬件虚拟内存也不复存在,虽然你说的有道理,但是你的解释并没有解决任何问题。
   
    像进程的虚拟地址空间分为3G的用户地址空间和1G的系统地址空间,我的意思是“共享内存区”是不是在1G的“系统地址空间”里,或者是其他地方。

2、“IPC是进程间通信的意思, shm是SYSTEM V的共享内存”

     我知道IPC是进程间通信。shm是一个文件系统,存在于内存中,但shm并不和“共享内存区”等价吧。
     
     网上有资料是”内核在保证shmget获得或创建一个共享内存区,初始化该共享内存区相应的shmid_kernel结构注同时,还将在特殊文件系统shm中,创建并打开一个同名文件“,

     所以有了我第一贴的问题。

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
发表于 2012-10-26 10:39 |显示全部楼层
知道你的意思了, 就是说mmap和shm是否在内存的管理方面有区别, 区别在哪里.

论坛徽章:
1
丑牛
日期:2013-09-29 19:04:50
发表于 2012-10-26 12:27 |显示全部楼层
像shmat的作用是将“共享内存段”的那块内存映射到进程的地址空间的堆里面,

那么究竟是从哪里映射到进程的地址空间呢?

论坛徽章:
0
发表于 2012-10-26 12:58 |显示全部楼层
前来学习。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP