进程通信(3): System V IPC

avatar
作者
猴君
阅读量:3

System IPC包括System V消息队列,System V信号量,System V共享内存区。

System V IPC使用一个key(key_t)作为他们名字,这个值由ftok函数通过路径名和一个id生成。

客户和服务器通过在路径名和id达成一致,双方就能通过调用ftok函数把pahtname和id映射到同一个Ipc键。

ipc_perm结构

内核为每个IPC对象维护一个ipc_perm的结构。

包括用户id,组id,权限,槽号,键等信息。

 get函数(msgget,semget,shmget)创建一个IPC对象,并指定IPC权限,get函数返回一个IPC标识符,用来表示IPC对象,

IPC标识符不是特定进程的标识符(文件标识符是基于进程的标识符),而是基于系统的标识符。 

不同进程获得的IPC标识符是相同的才可以进行通信。

内核限制

System IPC在内核有限制,比如消息队列的最大限制,每个信号量集的最大信号量数等。

管理员可以修改这些限制。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!