加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 共享内存:shmget()/共享内存如何工作?

发布时间:2020-12-13 19:20:04 所属栏目:Linux 来源:网络整理
导读:通过浏览shmget()的手册页,我知道shmget()调用会在内存中分配页面,这些页面可以跨进程共享. 是否要创建内核内存页面,该页面映射到进程的本地地址空间? 或者它是为该段保留的相同进程内存页面,同样也将为其他附加进程共享? 我的假设: 当调用shmget()时,内
通过浏览shmget()的手册页,我知道shmget()调用会在内存中分配页面,这些页面可以跨进程共享.

是否要创建内核内存页面,该页面映射到进程的本地地址空间?
或者它是为该段保留的相同进程内存页面,同样也将为其他附加进程共享?

我的假设:
当调用shmget()时,内核将保留段数/页面数.调用shmat()时,保留的段将映射到进程的地址空间/页面.当新进程附加到同一段时,先前创建的内核segemnt将映射到新进程地址空间.

它是否正确 ?

解决方法

除了“内核内存页面”这个词之外,这个想法或多或少是正确的.内存管理中保留/分配的内存不是专门为内核编写的.它只是“内存页面”,尚未映射到进程内存中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读