进程间为什么要通信交流?
要了解进程间通信,首先必须对进程有一定的了解,具体什么是进程参见博客:linux什么是进程
那么进程为什么要通信呢?首先就进程本事来说,它是具有独立性的,他有自己独有的PCB具体到linux下就是,独立的task_struct。它有自己独立的虚拟地址对照表那么多个进程数据交换就会很困难。但是就实际工作而言,一个系统中,往往就是很多个进程协同工作的,这些进程必要就要 进行信息交流。所以进程间通信,就变得尤为重要。
进程间通信目的
完成数据传输(一个进程向另一个进程发送数据)、
数据共享(两个进程共享同一段数据资源),
通知事件(一个进程给另一个进程或者进程组发送消息,叫通知)、
进程控制(有些进程希望完全控制另一个进程的进行,可以实时监测状态改变,完成拦截异常等操作)
管道
管道实际上就是内核中的一块缓冲区,通过进程从管道中放数据,取数据来完成进程中数据资源的传输。
管道的特点是:单向通信,也就是说传输数据的一方,就只能传输数据,接收数据就只能接收数据。