进程间的四种高级通信方式

本文介绍了进程间通信的四种高级方式:1) 共享存储器系统,包括基于共享数据结构和共享存储区的通信;2) 管道通信系统,实现进程间的互斥、同步和确定对方存在;3) 消息传递系统,提供直接和间接通信方式;4) 客户机-服务器系统,涉及套接字、远程过程调用和远程方法调用,其中套接字可用于本地和网络通信。
摘要由CSDN通过智能技术生成


进程通信是指进程之间的信息交换。由于进程的互斥与同步,需要在进程间交换一定的信息,故称进程通信。但通过进程交换信息是一种低级进程通信,以信号量机制为例,原因如下:

  • 效率低。生产者每次只能向缓冲池投放一个产品(消息) ,消费者每次只能从缓冲池中得到一个消息。
  • 通信对用户不透明。OS为进程间通信提供了共享存储器。而关于进程间通信所需之共享数据结构的设置、数据的传送、进程的互斥与同步,都必须由程序员去实现。

1 共享存储器系统

在贡献存储器系统中,相互通信的进程共享某些数据结构或贡献存储区,进程间通过这些空间进行通信。据此,又可以把他们分为一下两种类型。

1.1 基于共享数据结构的通信方式

在这种通信方式中,要求诸进程公用某些数据结构,借以实现诸进程间的信息交换,如生产者-消费者中的有界缓存区。OS仅提供共享存储器,由程序员负责对公用数据结构的设置及对进程间同步的处理。这种通信方式仅适用于传递相对少量的数据,通信效率低下,属于低级通信。

1.2 基于共享存储区的通信方式

为了传输大量数据,在内存中划出了一块共享存储区域,诸进程可通过对该共享区的读或写交换信息,实现通信,数据形式和位置甚至访问控制都是由进程负责,而不是OS。这种通信方式属于高级通信。需要通信的进程在进程通信前,先向系统申请获得共享存储区中的一个分区,并将其附加到自己的自己的地址空间中,便可对其中的数据进行正常读写,读写完或者不在需要时,将其归还给共享存储区,完成数据通信。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值