Linux进程通信IPC

原创 2018年04月17日 16:10:27

进程间通信IPC技术在其发展过程经历了一些变化,另外其包含众多技术概念,如果不从系统上去梳理一番容易迷失在这信号森林。

IPC是进程间通信的简称,不同的信息共享有多种方式如下图:


进程组对于进程间的通信机构——信号来说,是非常有用的。

其发展规律如下:

Unix IPC包括:

l   最初的管道、FIFO、信号;

l   System V IPC包括:System V消息队列、System V信号量、System V共享内存区;

l   Posix IPC包括:Posix消息队列、Posix信号量、Posix共享内存区。

现有大部分Unix和流行版本都是遵循POSIX标准的,而Linux从一开始就遵 循POSIX标准;

System V(System Five)是Unix操作系统众多版本中的一支,当年UNIX厂家混战中,比较强大的一个,最初由 AT&T 开发并在1983年第一次发布。一共发行了4个 System V 的主要版本:1、2、3 和 4,比如:System V Release 4,或者称为SVR4,是最成功的版本。

在POSIX IPC中, IPC对象使用ipc的名称作为ipc的标识。mq_open sem_open shm_open三个函数的第一个参数就是这个名称。在创建或者打开ipc对象时需要指定操作的mode,例如O_RONLY、O_WRONLY、O_RDWR、O_CREAT、O_EXCL 等,IPC对象是有一定权限的,与文件的权限类似。

在System V IPC中,System v ipc中有一个重要的类型是key_t,在msget、semget、shmget函数操作中都需要利用这个类型是参数。 

我们可以将进程间的通信主要分为如下4种:消息传递、同步、共享内存和远程过程调用。

            再理解下fork,exec,__exit对IPC对象的影响。


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/notbaron/article/details/79976389

linux基础——linux进程间通信(IPC)机制总结

在linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法。在linux下有多种进程间通信的方法:半双工管道、命名管道...
  • a987073381
  • a987073381
  • 2016-07-23 21:33:12
  • 9183

linux下进程间通信IPC几种方式性能比较

在项目中,经常会遇到单机上进程间的通信,常用的进程间通信方式一般有以下几种 1 socket  2 unixsocket 3 共享内存(share-memory) 4 管道(pipe) 5 消息队列(...
  • zhiyuan_2007
  • zhiyuan_2007
  • 2014-09-24 16:57:19
  • 4772

Android 之 IPC 进程通信全解析

Android 之 IPC 进程通信全解析本篇博客的框架什么是IPCIPC(Inter-Process Communication) 进程间通信,是指两个不同进程之间数据交换的过程。在明确其之前,需要...
  • lisdye2
  • lisdye2
  • 2016-06-28 14:39:13
  • 4559

【Linux】进程间通信(IPC)之信号量详解与测试用例

学习环境centos6.5 Linux内核2.6进程间通信概述进程通信机制一般情况下,系统中运行着大量的进程,而每个进程之间并不是相互独立的,有些进程之间经常需要互相传递消息。但是每个进程在系统中都有...
  • a1414345
  • a1414345
  • 2017-03-22 17:28:50
  • 1674

【Linux】进程间通信(IPC)之共享内存详解与测试用例

学习环境centos6.5 Linux内核2.6什么是共享内存共享内存允许两个或更多进程访问同一块内存。当一个进程改变了这块内存中的内容的的时候,其他进程都会察觉到这个更改。效率:因为所有进程共享同一...
  • a1414345
  • a1414345
  • 2017-04-06 14:54:54
  • 1240

进程间通信(IPC)之消息队列

漫谈进程间通信之消息队列,进程通信家族中不可或缺的一员。交流学习,共同进步。...
  • Xiao__Tian__
  • Xiao__Tian__
  • 2016-07-07 01:24:58
  • 4209

IPC(中)-进程间通讯方式详解

IPC(中)1 Android中IPC方式在第一篇IPC(上)中我们已经介绍了IPC的基础知识:序列化和Binder,本篇将详细介绍各种跨进程通讯方式.具体有如下几种: Intent中extras传...
  • zly921112
  • zly921112
  • 2017-01-22 15:53:07
  • 2005

Linux下进程间通信--共享内存:最快的进程间通信方式

Linux下进程间通信--共享内存:最快的进程间通信方式
  • Li_Ning_
  • Li_Ning_
  • 2016-08-11 20:27:58
  • 1649

进程间通信 IPC、LPC、RPC

原文请见:进程间通信IPC、LPC、RPC进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的...
  • lanchunhui
  • lanchunhui
  • 2016-03-14 12:54:33
  • 992

进程间通信(IPC):消息队列(Message Queue)

消息队列与命名管道有许多相似之处,但少了在打开和关闭管道方面的复杂性。与命名管道相比,消息队列的优势在于,它独立于发送和接收进程而存在。 消息队列函数的定义如下所示: #include in...
  • lijiajia81
  • lijiajia81
  • 2013-01-26 14:18:52
  • 2832
收藏助手
不良信息举报
您举报文章:Linux进程通信IPC
举报原因:
原因补充:

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