目录:
1.回顾上一节的代码
2.shmat、shmdt的使用
3.共享内存的大小为什么最好设置成4096字节的整数倍呢?
4.操作系统如何管理共享内存的
-------------------------------------------------------------------------------------------------------------------------------
1.回顾上一节的代码
以上就是我们上一节的代码全部内容
2.shmat、shmdt的使用
我们刚刚是一个进程和共享内存关联,我们现在两个进程和我们的共享内存关联呢??
这样子我们两个进程都挂接上了我们的共享内存
接下来我们来写一点测试的代码
我们运行起来看看
这样子我们就完成了依靠共享内存进行进程间通信
共享内存是所以进程间通信速度最快的!! 因为它是直接将一块共享内存映射该进程的地址空间当中,另一边一旦写入,我这边立马就能看到(没有了拷贝环节)
共享内存不提供任何同步或者互斥机制,需要程序员自行保证数据的安全
3.共享内存的大小为什么最好设置成4096字节的整数倍呢?
我们在shmget创建共享内存的时候。通常建议是4096的整数倍
4.操作系统如何管理共享内存的
我们先看看操作系统用户层给我们暴露出来的数据结构
我们也来认识一下消息队列的接口
我们来看看信号量的用户层数据结构和一些调用接口
----------------------------------------------------------------------------------------------------------------------------
我们发现了共享内存、消息队列、信号量的接口都是类似的
数据结构的第一个结构类型的完全一样的!!(struct ipc_perm)
在内核当中,所有的IPC资源都是通过,数组组织的
可是怎么通过数组组织的呢???文章来源:https://www.toymoban.com/news/detail-471588.html
文章来源地址https://www.toymoban.com/news/detail-471588.html
到了这里,关于linux(system V标准)进程间通信2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!