知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux进程间通信综述

发布时间:2014-09-05 17:12:55作者:知识屋

linux进程间通信主要分为以下4个领域
(1)消息传递(管道,FIFO,消息队列)
(2)同步(互斥锁,条件变量,读写锁,信号量)
(3)共享内存区(匿名共享内存区,有名共享内存区)
(4)过程调用(Solaris门,Sun RPC)


linux进程间的信息共享可以分为
(1) 基于文件系统的共享
(2) 基于内核的共享
(3) 基于共享内存区的共享


IPC对象的持续性
(1)随进程间持续的IPC对象一直存在到打开着该对象的最后一个进程关闭该对象的最后一个进程关闭该对象为止。
(2)随内核持续的IPC对象一直存在到内核重新自举或显式删除该对象为止。
(3)随文件系统持续的IPC对象一直存在到显示删除该对象为止。即使系统自举了,该对象还是存在的。


IPC类型                                       持续性
管道                                           随进程
FIFO                                          随进程

Posix互斥锁                                 随进程
Posix条件变量                              随进程
Posix读写锁                                 随进程
fcntl记录上锁                                随进程

Posix消息队列                              随内核
Posix有名信号量                           随内核
Posix基于内存的信号量                   随进程
Posix共享内存区                           随内核

System V消息队列                        随内核
System V信号量                           随内核
System V共享内存区                     随内核

TCP套接字                                  随进程
UDP套接字                                  随进程
Unix域套接字                               随进程

 

 

 

名字空间:
当两个或多个无亲缘关系的进程使用某种类型的IPC对象来彼此交换信息时,该IPC对象必须有一个某种形式的名字或者标识符,这样其中一个进程(往往是服务器)可以创建该IPC对象,其余进程则可以指定同一个IPC对象。

IPC类型                        用于打开或创建IPC的名字空间                IPC打开后的标识
管道                                     没有名字                                      描述符
FIFO                                    路径名                                         描述符

Posix互斥锁                          没有名字                                      pthread_mutex_t指针
Posix条件变量                       没有名字                                      pthread_cond_t指针
Posix读写锁                          没有名字                                      pthread_rwlock_t指针
fcntl记录上锁                        路径名                                         描述符

Posix消息队列                       Posix IPC名字                              mqd_t值
Posix有名信号量                    Posix IPC名字                              sem_t指针
Posix基于内存的信号量            没有名字                                     sem_t指针
Posix共享内存区                    Posix IPC名字                              描述符


System V消息队列                key_t键                                       System V IPC标识符
System V 信号量                  key_t键                                       System V IPC标识符
System V共享内存区              key_t键                                      System V IPC 标识符

门                                      路径名                                         描述符
sun RPC                             程序/版本                                     RPC句柄

TCP套接字                            IP地址与TCP 端口                         描述符
UDP套接字                           IP地址与UDP端口                          描述符
Unix域套接字                        路径名                                        描述符 

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜