精华内容
下载资源
问答
  • 进程通信方式

    2019-10-31 12:07:29
    进程通信方式1、管道2、消息队列3、共享内存4、信号量5.Socket 1、管道 通信方式是单向的 管道的通知机制类似于缓存,就像一个进程把数据放在某个缓存区域,然后等着另外一个进程去拿,并且是管道是单向传输的。 ...

    进程通信

    进程通信方式分为低级通信和高级通信两种
    低级通信传递少量数据,主要用于通知对方某事件。
    高级通信用于传递大量数据,信息。
    低级通信的方式有信号,信号量
    高级通信的方式有消息,管道和共享内存

    同步通信

    像打电话一样双方必须在线,同步地交谈。
    管道和共享内存等都属于同步通信

    异步通信

    像电子邮件、短信一样不必关心对方何时接收
    消息、信号属于异步通信

    1、管道(匿名管道)

    管道的通知机制类似于缓存,就像一个进程把数据放在某个缓存区域,然后等着另外一个进程去拿,并且是管道是单向传输的。
    通信方式效率低下
    管道不适合频繁通信的进程。
    优点 能够保证我们的数据已经真的被其他进程拿走了

    2、消息队列

    通信方式也类似于缓存
    如果 a 进程发送的数据占的内存比较大,并且两个进程之间的通信特别频繁的话,消息队列模型就不大适合了。因为 a 发送的数据很大的话,意味发送消息(拷贝)这个过程需要花很多时间来读内存。

    3、共享内存

    共享内存这个通信方式就可以很好着解决拷贝所消耗的时间了。
    系统加载一个进程的时候,分配给进程的内存并不是实际物理内存,而是虚拟内存空间。那么我们可以让两个进程各自拿出一块虚拟地址空间来,然后映射到相同的物理内存中,这样,两个进程虽然有着独立的虚拟内存空间,但有一部分却是映射到相同的物理内存,这就完成了内存共享机制了。

    4、信号量

    共享内存最大的问题是多进程竞争内存的问题
    信号量的本质就是一个计数器,用来实现进程之间的互斥与同步。

    5.信号

    信号是进程间可互相发送的控制信息,一般只是几个字节的数据,用于通知进程有某个事件发生。

    展开全文
  • 进程通信概念和进程通信方式

    万次阅读 2017-05-08 19:11:01
    进程通信(IPC,Inter-Porcess Communcation)是进程进行通信和同步的机制。IPC提供两个基本操作: ...进程通信方式: 直接通信: 进程必须正确命名对方,比如send(p,message)向p发送信息,receiv

    进程通信(IPC,Inter-Porcess Communcation)是进程进行通信和同步的机制。

    IPC提供两个基本操作:

    1. 发送(send message)
    2. 接收(receive message)

    进程通信流程:

    • 在通信进程之间建立通信链路
    • 通过send/receive交换信息

    进程通信方式:

    这里写图片描述

    直接通信:
    进程必须正确命名对方,比如send(p,message)向p发送信息,receive(q,message)从q中接收信息
    通信链路有如下属性:自动建立连接;一条链路恰好对应一对通信进程;每对进程之间只有一个链接存在;链路可以是单向的,但是通常为双向的

    间接通信:
    通过OS维护的消息队列实现进程之间的通信(接收发送信息)
    每个消息队列都有一个唯一标识,只有共享了相同消息队列的进程才能够通信
    通信链路有如下属性:只有共享了相同消息队列的进程才能建立连接,比如send(a,message)向消息队列a发送信息,receive(a,message)从消息队列a中接收信息 ;连接单向或者双向;消息队列可以与多个进程相互关联;每个进程共享多个消息队列(也就是进程和消息队列是多对多的关系)

    阻塞通信(同步)与非阻塞通信(异步)

    同步通信:

    阻塞发送:发送者发送消息后进入等待(阻塞)直到接受者成功接受
    阻塞接收:接收者请求接收信息后等待(阻塞)直到成功接受一条消息
    

    异步通信:

    非阻塞发送:发送者发送消息后,可立即进行其他操作
    非阻塞接收:接收者请求接收信息后,如果没有消息发送就接收不到信息,不需要等待
    

    通信链路缓冲:

    1. 0容量:发送方必须等待接受方
    2. 有限容量:缓冲队列满,发送方必须等待
    3. 无限容量:发送方不需要等待


    上面是关于IPC通信的基本概念,下面我们看一看一些常见的进程通信方式。

    MOOC讲了四种进程通信方式:

    信号,管道, 消息队列, 共享内存,由于都是基本概念,我偷个懒直接复制下来了:


    信号:

    这里写图片描述


    管道:

    这里写图片描述

    这里写图片描述

    这里写图片描述


    消息队列:

    这里写图片描述

    这里写图片描述


    共享内存:

    这里写图片描述

    这里写图片描述

    这里写图片描述

    展开全文
  • 进程通信方式 与 线程通信方式 进程通信方式 :7种 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 命名管道FIFO:有名管道...

    进程通信方式 与 线程通信方式

    进程通信方式 :7种

    1. 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
    2. 命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
    3. 消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
    4. 共享存储SharedMemory:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
    5. 信号量Semaphore:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
    6. 套接字Socket:套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
    7. 信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

    线程通信方式:3种
    1:锁机制:包括互斥锁、条件变量、读写锁
    1.1 互斥锁提供了以排他方式防止数据结构被并发修改的方法。
    1.2 读写锁允许多个线程同时读共享数据,而对写操作是互斥的。
    1.3 条件变量可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。

    2:信号量机制(Semaphore):包括无名线程信号量和命名线程信号量

    3:信号机制(Signal):类似进程间的信号处理
    3.1 线程间的通信目的主要是用于线程同步,所以线程没有像进程通信中的用于数据交换的通信机制。

    展开全文
  • 进程通信 管道(pipe) 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 有名管道 (namedpipe) 有名管道也是半双工的通信方式,...

    进程通信

    管道(pipe)

    管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

    有名管道 (namedpipe)

    有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

    信号量(semaphore)

    信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。

    消息队列(messagequeue)

    消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

    信号 (sinal)

    信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

    共享内存(shared memory)

    共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。

    套接字(socket)

    套接口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同设备及其间的进程通信。

     

    线程间的通信方式

    锁机制:包括互斥锁、条件变量、读写锁

    互斥锁提供了以排他方式防止数据结构被并发修改的方法。 
    读写锁允许多个线程同时读共享数据,而对写操作是互斥的。 
    条件变量可以以原子的方式阻塞进程,直到某个特定条件为真为止。对条件的测试是在互斥锁的保护下进行的。条件变量始终与互斥锁一起使用。

    wait/notify 等待

    Volatile 内存共享

    CountDownLatch 并发工具

    CyclicBarrier 并发工具

    信号量机制(Semaphore)

    包括无名线程信号量和命名线程信号量。

    信号机制(Signal)

    类似进程间的信号处理。

    线程间的通信目的主要是用于线程同步,所以线程没有像进程通信中的用于数据交换的通信机制。

    展开全文
  • 一、linux下进程间通信的几种主要手段简介: ... 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支...
  • java进程通信方式

    千次阅读 2019-08-26 18:24:43
    以下是常用的进程通信方式。 管道(Pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。(半双工:数据传输...
  • 1. linux下进程间通信的几种主要手段简介: ... 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了...
  • 进程通信方式总结与盘点

    万次阅读 多人点赞 2019-11-20 14:25:23
    ​ 首先回顾下我们前面博文中讲到的信号量机制,为了实现进程的互斥与同步,需要在进程间交换一定的信息,因此信号量机制也可以被归为进程通信的一种方式,但是也被称为低级进程通信,主要原因为: 效率低:一次只...
  • 进程通信方式总结

    2017-08-06 14:43:46
    总结下进程之间通信方式。 1无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 2高级管道(popen):将另一...
  • Android 进阶13:几种进程通信方式的对比总结

    万次阅读 多人点赞 2017-06-05 01:16:48
    Android 几种进程通信方式 如何选择这几种通信方式 ThanksRPC 是什么RPC 即 Remote Procedure Call (远程过程调用) 是一种计算机通讯协议,它为我们定义了计算机 C 中的程序如何调用另外一台计算机 S 的程序,让...
  • unix进程通信方式总结(中)

    千次阅读 2016-08-06 17:27:52
    在上一篇博客已经总结了uinx进程通信方式:管道(pipe),命名管道(FIFO),消息队列,信号量,信号,那么接下来让我们看看其他的三种重要的进程间通信方式:共享存储,unix  (6)共享存储  (7)unix网络套接字  (8)...
  • java 进程通信方式

    2015-03-14 22:40:05
    进程间通信IPC------Inter-Process ...以下是常用的进程通信方式。 # 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 #
  • 对于7种进程通信方式做综合比较。
  • 常见的进程通信方式

    2018-07-31 10:38:41
    1. 管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 2. 命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系...
  • 进程通信方式介绍

    千次阅读 2013-04-13 13:44:06
    Linux下进程通信的八种方法:管道(pipe),命名管道(FIFO),内存映射(mapped memeory),消息队列(message queue),共享内存(shared memory),信号量(semaphore),信号(signal),套接字(Socket). (1) 管道(pipe):...
  • 多线程与多进程通信方式的区别

    千次阅读 2017-02-07 22:56:31
    多线程与多进程通信方式的区别? 1) 在数据共享同步方面:多进程数据共享复杂,需要IPC;数据是分开的,同步简单;多线程共享数据简单,但是同步复杂。 2) 内存方面:多进程占有内存多,切换复杂,CPU利用率低;...
  • 面试官: Linux自带多种进程通信方式,为什么Android都没采用而偏偏使用Binder通信 心理分析:面试官绝对不会现场让你分析binder的源码,源码又深又广,没有面试官会傻到让你分析binder所有的机制。他会问你为什么不...
  • windows 进程通信方式

    2013-05-06 12:26:28
    1 进程与进程通信    进程是装入内存并准备执行的程序,每个进程都有私有的虚拟地址空间,由代码、数据以及它可利用的系统资源(如文件、管道等)组成。多进程/多线程是Windows操作系统的一个基本特征。...
  • Android开发中的跨进程通信方式总结

    千次阅读 2020-01-25 00:29:21
    在安卓开发过程中,为了保证每个应用的程序的不是独立的个体,需要对外提供接口,可以使多个应用程序之间可以进行数据交换,所以app之间的通信应用场景有很多,通信方式也有很多种。本文论述了Android开发中常用的跨...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,971
精华内容 7,188
关键字:

进程通信方式