操作系统之进程通信

进程通信的方式
  ①信号通信
  ②管道通信
  ③消息队列
  ④共享存储区

  • 信号通信
    信号是Linux进程之间一种重要的通信机制;
    信号的作用是为了通知进程某个时间已经发生;
    信号的发出是及时的,但是信号的响应可能会有延后,收到信号的进程在当前执行处设置断点,然后立即转为执行信号处理函数,执行结束后,会回到断点,继续执行之前的操作,这一点类似中断机制;
    中断和信号的区别是,前者运行在核心态(系统),后者运行在用户态,中断的响应比较及时,而信号的相应一般会有延迟;
    信号的发出者可以是进程、系统、硬件

  • 管道通信
    一个进程可以通过管道把数据传递给另外一个进程。前者向管道中写入数据,后者从管道中读出数据。
    其工作原理如下: 管道工作原理

  • 消息队列
    信箱:
    消息队列的难点在于,发送方不能直接将要发送的数据复制进接收方的存储区,这时就需要开辟一个共享存储区域,可供双方对这个存储区进行读写操作。这个共享区域就叫做信箱。每个信箱都有一个特殊的标识符。每个信箱都有自己特定的信箱容量、消息格式等。信箱被分为若干个分区,一个分区存放一条消息

  • 共享存储区
    共享存储区是指在内存中开辟一个公共存储区,把要进行通信的进程的虚地址空间映射到共享存储区。发送进程向共享存储区中写数据,接收进程从共享存储区中读数据

以上,详细可参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值