IPC之共享内存(shm_sem)

本文介绍了共享内存(shm)的通信原理及其实现过程,强调了其高效性但缺乏同步机制的问题,并通过引入信号量(sem)解决了同步问题。文中详细描述了服务器端和服务客户端如何使用共享内存进行数据交换,并通过信号量的P/V操作确保数据的一致性和通信的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

共享内存

声明:

shm的通信效率极高,但是不提供同步不机制

shm的实现图解

这里写图片描述

声明:

1、ser发送的数据,会被ser直接读取;cli同理
2、ser进过开辟空间、建立连接、数据的读写操作、断开连接、释放空间
3、cli进行连接空间,数据的操作、断开连接即可

shm通信图解

这里写图片描述

声明:

1、增加sem作为同步机制,实现通信
2、p、v操作,也相当于阻塞性函数,实现同步并且p v成对出现
3、写完内容来一次v操作;在读数据之前来一次p操作;每次都是先写后读

代码

点击me!!

总结:

1、利用shm和sem可以实现通信
2、sem作用和pipe作用相似;都为了通信提供机制
3、shm通信的效率高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值