进程之间的通信

原创 2016年08月28日 17:44:34

1.共享储存器系统

(1)基于共享数据结构的通信方式:要求诸进程公用某些数据结构,借以实现诸进程之间的信息交换。传递数据少,效率低小,属于低级通信

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

2.管道(pipe)通信系统

所谓“管道”,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个文件,又名pipe文件。写进程以字符流的形式将数据送入管道,读进程则从管道中接受数据。这种形式首创于UNIX系统,能有效地传输大量数据。它具有以下三方面的协调能力:

(1)互斥:即当一个进程正在对pipe执行读、写操作时,其他进程必须等待

(2)同步:当写进程将一定量的数据时输入pipe文件时,便去睡眠等待,直到读进程取走数据后再把它唤醒。反之,当读进程读一空的pipe时,便去睡眠等待,直到写进程将数据写入管道再将其唤醒。

(3)确认对方是否存在,只有确定了对方已存在时才可以进行通信​

3.消息传递系统

在该机制中,以格式化的消息为单位,将通信封装在消息中,并利用操作系统提供的一组通信命令(原语),在进程中进行消息传递,完成进程间的数据交换。该方式隐藏了通信实现细节,其通信过程对用户透明化,降低了通信程序的复杂性和错误率,​成为了当前应用最为广泛的一类进程间通信机制。属于高级通信方式。因其实现方式的不同,又进一步分为两类:(1)直接通信方式;(2)间接通信方式

4.客户机-服务器系统

其主要实现方法分为三类:套接字、远程过程调用和远程方法调用

套接字:一个套接字就是一个通信标识类型的数据结构,包含了通信目的的地址、通信使用的端口号、通信网络的传输层协议、进程所在的网络地址,以及针对客户或服务器程序提供的不同系统调用等。分为:(1)基于文件型:在同一计算中实现,与管道通信原理差不多;(2)基于网络型:采用非对称方式通信,通信双方的进程运行在不同的主机环境下,使用一对套接字进行通信。   套接字的优点:不仅适用于同一台计算机内部的进程通信,也适用于网络环境中的不同计算机之间的通信。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

使用 Redis 实现分布式系统轻量级协调技术

在分布式系统中,各个进程(本文使用进程来描述分布式系统中的运行主体,它们可以在同一个物理节点上也可以在不同的物理节点上)相互之间通常是需要协调进行运作的,有时是不同进程所处理的数据有依赖关系,必须按照...

Android 使用Messenger实现跨进程之间通信

1. MessengerMessenger可以理解为信使,顾名思义我们可以利用信使来传递信息(Message),没错利用Messenger来实现跨进程之间的通信就是传递Message对象,我们只需要做...

进程之间通信演示代码

  • 2011-06-25 17:01
  • 68KB
  • 下载

Delphi 两个应用程序(进程)之间的通信

两个应用程序之间的通信实际上是两个进程之间的通信。由于本人知识有限,决定应用消息来实现。需要用到的知识: 1.RegisterWindowMessage() //参数类型:pchar;返回值:Lon...

Android进程之间通信的四种方式

于Android系统中应用程序之间不能共享内存。因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些。在android SDK中提供了4种用于跨进程通讯的方式。这4种方式正好对应于androi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)