进程通信的概念
进程数据空间是相互独立的,不能相互访问的。但某些情况下进程之间需要互相通信,来完成系统的某项功能或交换数据。
进程通信的场景
1)数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。
2)共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。
3)通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如通知进程退出)。
5)进程控制:有些进程希望控制另一个进程的运行。
进程通信的方式
1、进程通信的方式
1)无名管道(pipe)及有名管道(named pipe):无名管道可用于具有父进程和子进程之间的通信。有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。
2)信号(signal):信号用于通知接受进程有某种事件发生。
3)消息队列(message):消息队列是消息的链接表,进程可以向队列中添加消息,其它的进程则可以读走队列中的消息。
4)共享内存: