?返回专栏总目录
文章目录
- 一、共享内存的创建和映射过程流程梳理
- 二、如何创建共享内存?
- 三、如何将共享内存映射到虚拟地址空间?
沉淀、分享、成长,让自己和他人都能有所收获!?
?本篇我们一起学习下共享内存的创建和映射过程。
一、共享内存的创建和映射过程流程梳理
- 调用 shmget 创建共享内存。
- 先通过 ipc_findkey 在基数树中查找 key 对应的共享内存对象 shmid_kernel 是否已经被创建过,如果已经被创建,就会被查询出来,例如 producer 创建过,在 consumer 中就会查询出来。
- 如果共享内存没有被创建过,则调用 shm_ops 的 newseg 方法,创建一个共享内存对象 shmid_kernel。例如,在 producer 中就会新建。</