80%的 Linux 运维都不懂的内核题目
就是在 tmpfs 文件体系上建设一个文件,然后通过这个内存文件实现历程通讯,这我就不写测试措施了,并且这也是不能接纳的,由于共享内存ipc机制生命周期是随内核的,也就是说你建设共享内存之后,假如不表现删除的话,历程退出之后,共享内存照旧存在的。 之前看了一些技能博客,说到 Poxic 和 System V 两套 ipc 机制(动静行列,信号量以及共享内存)都是行使 tmpfs 文件体系,也就是说最终内存行使的都是 pagecache,可是我在源码中看出了两个共享内存是基于 tmpfs 文件体系,其他信号量和动静行列还没看出来(有待后续讲求)。 posix 动静行列的实现有点相同与 pipe 的实现,也是本身一套 mqueue 文件体系,然后在 inode 上的 i_private 上挂上关于动静行列属性 mqueue_inode_info,在这个属性上,内核2.6时,是用一个数组存储动静,而到了4.6则用红黑树了存储动静(我下载了这两个版本,详细什么时辰开始用红黑树,没穷究)。 然后两个历程每次操纵都是操纵这个 mqueue_inode_info 中的动静数组可能红黑树,实现历程通讯,和这个 mqueue_inode_info 相同的尚有 tmpfs 文件体系属性shmem_inode_info 和为epoll处事的文件体系 eventloop,也有一个非凡属性struct eventpoll,这个是挂在 file 布局的 private_data 等等。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |