管道管道是Unix系统IPC的最古老方式,有两种局限性:(1) 历史上它们是半双工的(即数据只能在一个方向上流动),虽然现在某些系统提供了全双工管道,但是为了可移植性,不要抱有绝对的全双工假设。(2) 管道只能在具有公共祖先的两个进程之间使用(一般都是用于父子进程之间)。管道是通过调用pipe函数创...
分类:
系统相关 时间:
2015-09-04 15:41:32
阅读次数:
334
进程在内核的协调下进行相互间的通讯,主要包括三种方式:信号、管道和套接口三大类。1)信号2)管道3)套接字:消息队列、信号灯和共享内存信号信号是Unix 系统中的最古老的进程间通讯方式。它们用来向一个或多个进程发送异步事件信号。信号可以从键盘中断中产生,另外进程对虚拟内存的非法存取等系统错误环境下也...
分类:
系统相关 时间:
2015-08-27 20:33:55
阅读次数:
222
每一个进程都有着自己独立的地址空间,比如程序之前申请了一块内存,当调用fork函数之后,父进程和子进程所使用的是不同的内存。因此进程间的通信,不像线程间通信那么简单。但是共享内存编程接口可以让一个进程使用一个公共的内存区段,这样我们便能轻易的实现进程间的通信了(当然对于此内存区段的访问还是要控制好的)。
共享内存实现进程通信的优点:
共享内存是进程通信方式中最快速的方式之一,它的快速体现在,为...
分类:
系统相关 时间:
2015-08-19 20:47:31
阅读次数:
329
linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通信进程局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间...
分类:
系统相关 时间:
2015-08-19 13:37:50
阅读次数:
265
什么是信号?
信号是 Linux 进程间通信的最古老的方式。信号是软件中断,它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式 。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断,转而处理某一个突发事件。
“中断”在我们生活中经常遇到,譬如,我正在房间里打游戏,突然送快递的来了,把正在玩游戏的我给“中断”了,我去签收快递( 处理中断...
分类:
系统相关 时间:
2015-08-13 14:30:21
阅读次数:
321
http://www.cnblogs.com/biyeymyhjob/archive/2012/11/03/2751593.html整理自网络Unix IPC包括:管道(pipe)、命名管道(FIFO)与信号(Signal)管道(pipe)管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名...
分类:
系统相关 时间:
2015-08-11 18:06:03
阅读次数:
171
消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向其中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。
消息队列和共享内存类似消息队列它允许一个或多个进程向它写消息,一个或多个进程向它写读消息。消息队列存在于系统内核中,消息的数量受系统限制。我们来看一下有关消息队列的函数。...
分类:
系统相关 时间:
2015-08-04 19:25:08
阅读次数:
122
Linux进程间通信之管道
1.管道的分类:
按有无名称,管道主要分为有名管道和匿名管道
2.匿名管道
管道是一种进程之间进行单向通信的方式,由于其通信只是单方向的,所以起有以下缺点:
1.通信只是单方向的,通信太局限
2.其缓冲区大小是一定的,缓冲区满了之后就无法继续再写入数据。
3.通过管道传输的只能是无格式的字节流。
4.只能用于具有亲缘关系的进程之间,如父子进程,兄弟进程。...
分类:
系统相关 时间:
2015-08-04 11:24:46
阅读次数:
238
一、Linux进程间通信ipc(Inter-ProcessCommunication)几种主要手段简介:管道(Pipe)及有名管道(namedpipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号(Signal):信..
分类:
系统相关 时间:
2015-08-03 14:56:08
阅读次数:
154
进程间通信-pipe
进程间通信
每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。
pipe
管道(pipe)就是一项基本的进程间通信的方法。...
分类:
编程语言 时间:
2015-07-15 19:24:00
阅读次数:
182