一、通信,我们都不陌生,比如俩人之间打电话,我们经常用QQ和微信视频聊天,这些都属于通信。而进程间通信呢,就是两个程序间互通信息,(IPC,Inter Processes Communication).
二、进程间通信目的:
1、数据传输:一个进程需要将数据发送给另外一个进程;
2、通知事件:一个进程需要向另一个进程或一组进程发送消息,通知他们发生了某种事件;
3、资源共享:多个进程之间共享同样的资源,需要内核提供互斥和同步机制;
4、进程控制:有些进程希望完全控制另一个进程的执行(如debug);
我们使用GDB指令进入GDB调试模式,当我们使用run指令时就可以使这个程序运行,此时GDB这个进程就是对a.out这个程序进行控制的。
三、进程间通信的分类:
1、同一主机进程间通信:Unix进程间通信、System V进程间通信、POSIX进程间通信;
Unix进程间通信:匿名管道、有名管道、信号;
System V进程间通信和POSIX进程间通信:消息队列、共享内存、信号量;
2、不同主机(网络)进程间通信:Socket。