操作系统不得不了解的---进程通信

面试常考点,大家注意了啊

进程是分配资源的基本单位,个进程之间的地址是相互独立的。
为了保护系统安全,操作系统不允许一个进程直接放位列一个进程,那怎莫办呢?
这就需要用到进程的通信了。

进程通信可分为三类:

  • 共享储存
  • 管道通信
  • 消息传递

共享存储

操作系统为进程们分配一块共享的内存空间,个个进程互斥访问。

共享存储又分为:
基于数据结构的共享
基于储存区的共享

数据结构的共享: 共享空间中为同一类型的数据结构,传输效率低,为低级通信

储存区的共享: 分配一块共享储存区,数据的类型,位置都有进程控制,效率高为高级通信

管道通信

1.管道通信是半双工通信,只能单向传递信息,要想双向传递信息,必须设置两个管道

2.各进程互斥的访问管道
3.进程是通过字符流的方式写入管道,当管道被写满时,写进程的write()系统调用会被阻塞,等待进程将数据取走,当数据被取走后,读进程的read()系统调用会被阻塞
4.管道没写满不许读,管道没读完不许写
5.管道中的数据一旦被读出,就会被管道抛弃,所以意味着读进程只能有一个,否则可能导致读错数据

消息传递

进程间消息的交换,是通过格式化消息(message)为单位,由操作系统提供的消息发送和接收原语来实现的。

message的组成如图
在这里插入图片描述

消息传递可分为两种:
直接通信传递
间接(信箱)通信传递

直接:每一个进程都有一个消息缓冲队列,直接通信会将要发送的消息直接挂在目标的消息缓冲对列上
间接:会有一个中间实体(信箱),发送进程通过发送原语发送到信箱,接收进程通过接收原语接收

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值