本文共 794 字,大约阅读时间需要 2 分钟。
进程间通信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对象的影响。
转载地址:http://xdfyl.baihongyu.com/