Chinaunix首页 | 论坛 | 博客

分类: LINUX

2008-04-16 09:30:18

一.什么是进程间通信

       IPC是进程间通信的简称,所谓进程通信,就是不同进程之间进行一些"接触",这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不仅仅指传递一些massege。还包含进程之间的合作等。

二.进程间通信的分类

       进程间通信大致可分为本地进程间通信和网络进程间通信。

 

三.进程间通信的几种主要手段

    1.管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。

    2.信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身。

    3.消息队列:消息队列是消息的链接表,包括Posix消息队列systemV消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。

    4.共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。

    5.信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。

    6.套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。

 

 

 

参考资料:

UNIX高级环境编程》第2 人民邮电出版社

UNIX网络编程》第2 清华大学出版社

POSIX多线程程序设计》 中国电力出版社

Linux网络编程教程》 北京希望电子出版社

还有网上的一些资料

特别感谢CU论坛的上的朋友们。

阅读(1014) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~