2.4进程通信的三种方式

现在有:进程1的数据存在(存储空间A)

进程2的数据存在(存储空间B)

为了保证进程间的安全性,使用进程1只能访问A,进程2只能访问B

那么进程1,2想要通信如何实现呢?

 

一,共享存储:

1,什么是共享存储?

操作系统提供了一个共享空间可以被进程1,2互斥的访问

2,分类

1)基于数据结构的共享:比如共享空间只能存放一个长度为10的数组。这种共享方式速度慢,限制多,是一种低级的通信方式

2)基于存储区的共享:在内存中画出一块共享存储区,数据的形式,存放的位置都由进程控制,而不是操作系统。相比之下它的速度更快,是一种高级通信方式

 

二,消息传递:

1,什么是消息传递?

进程中的数据交换以“格式化消息“为单位,进程通过操作系统提供的”发送消息、接收消息“两个源语进行数据交换

2,格式化消息的结构:

1)消息头:包括发送进程的ID,接收进程的ID,消息类型,消息长度等格式化信息

2)消息体:记录被发送的信息

3,分类:

1)直接通信方式:比如进程1,给进程2发信息,就把信息挂到进程2的信息缓存队列上

2)间接通信方式:进程1把消息放到一个中间实体上,等待需要它的进程2取走

 

三,管道通信:

1,什么是管道:

是指用于连接读写进程的一个共享文件,是在内存中开辟了一个固定大小的缓冲区

2,特点:

1)管道只能采用半双工通信,在一段时间只能单向传输,如果要实现双向传输,就需要设置两个管道

2)各个进程需要互斥的访问管道

3)数据以字符流的形式写入管道,当管道写满时,写进程将被堵塞,等待数据被取走。当数据全部被取出后,管道变空,此时写进程的系统调用将被堵塞。

4)如果没写满,就不允许读,没有读空,就不允许写

5)速度一旦读出,就从管道中被抛弃,这就意味着读进程只能有一个,否则可能会发生读错数据的情况

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值