操作系统--进程间通信

本文详细介绍了操作系统中进程间通信的六种方式:管道、消息队列、共享内存、信号量、信号和Socket。管道通信效率低,适合偶尔通信;消息队列通信效率高于管道,但有消息大小限制;共享内存避免了数据拷贝开销,但需处理并发访问问题;信号量用于资源的互斥访问和同步;信号处理进程异常情况;Socket则实现跨网络的进程通信。
摘要由CSDN通过智能技术生成

进程间通信

进程间的通信方式:管道,消息队列,共享内存,信号量,信号,Socket

1.管道

管道间的通信是单向的

管道分为匿名管道 | 和 命名管道 mkfifo myPipe

优点:简单
缺点: 通信效率低,不适合进程间频繁地交换信息
所谓的管道,就是内核里面的一串缓存。从管道的一段写入的数据,实际上是缓存在内核中的,另一端读取,也就是从内核中读取这段数据。另外,管道传输的数据是无格式的流且大小受限。
对于匿名管道,它的通信范围是存在父子关系的进程。
对于命名管道,它可以在不相关的进程间也能相互通信。

2.消息队列

消息队列是保存在内核中的消息链表,在发送数据时,会分成一个一个独立的数据单元,也就是消息体(数据块),消息体是用户自定义的数据类型,消息的发送方和接收方要约定好消息体的数据类型。

消息这种模型,两个进程之间的通信就像平时发邮件一样,你来一封,我回一封,可以频繁沟通了。
但邮件的通信方式存在不足的地方有两点,一是通信不及时,二是附件也有大小限制,这同样也是消息队列通信不足的点。
消息队列不适合比较大数据的传输, 因为在内核中每个消息体

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值