【ZZ】Linux进程间通讯简介

     进程是一个独立的 资源分配单位,不一样进程之间的资源是相互独立的,没有关联,不能在一个进程中直接访问另外一个进程中的资源。可是,进程不是孤立的,不一样的进程之间须要 信息的交换以及状态的传递,所以须要 进程间数据传递、同步与异步的机制

  这些机制并非由哪些进程来进行直接管理,而是由操做系统进行管理。linux中提供了大量的进程间通讯机制来实现同一个主机间的进程间的通讯。同时,对于网络间的主机进行通讯的机制,linux也同时提供。看下面的图 linux

 

1、整体简介

  【1】同主机进程间数据交互机制:无名管道(PIPE),有名管道(FIFO),消息队列(message queue)和共享内存(share memory)。 网络

  【2】同主机进程间同步机制:信号量(semaphore) 异步

  【3】同主机进程间异步机制:信号(signal) socket

  【4】网络主机间数据交互机制:套接字(socket) 大数据

  2、unix进程间通讯机制 操作系统

  一、无名管道PIPE,只能用于具备亲缘关系(父子进程)间的通讯,无名管道在通讯双方退出后自动消失。 unix

  二、有名管道:克服了无名管道的瞬时性的问题,采用管道文件来实现同一主机间的任意两个进程间的数据的传递。 队列

  三、信号:信号实际上是一种软中断机制,采用一种异步的机制,在信号发生时处理特定的时间,可是要注意的是,这同硬件中的中断,仍是有必定区别的。 进程

  3、system Ⅴ进程间通讯 ip

  一、消息队列:消息队列主要用来实现两个进程间少许的数据的通讯,而且接收方能够根据消息的类型,选择接收消息。

  二、信号量:信号量是一种进程间的同步进制。对于二元信号量,能够实现两个进程间的同步,对于普遍的信号量,能够表示资源的使用量。

  三、共享内存:共享内存进制能够实现两个进程间的大数据量的通讯,其在内存中专门开辟出一个独立的内存,而后映射到各自的进程之中,进行数据的传输,其通讯效率较高。

  对于system Ⅴ进程间的通讯机制,可使用ipcs命令进程查看,以下

相关文章
相关标签/搜索