【Linux】进程间通信-一、进程间通信介绍:

时间:2024-07-17 21:19:27

1、为什么要进行进程间通信:

        因为进程之间可能会存在特定的协同工作的场景,而协同就必须要进行进程间通信。

进程间通信的目的:

  • 数据传输:一个进程需要将它的数据发送给另一个进程。
  • 资源共享:多个进程之间共享同一份资源。
  • 通知事件:一个进程需要向另一个或一组进程发送消息,通知它发生了某种事件(例如子进程终止时要通知父进程以进行资源回收)。
  • 进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

 

2、如何进行进程间通信:

由于一个进程是不能直接访问到另一个进程的资源的,因为进程具有独立性。所以进程之间要通信,就不能使用属于进程的资源,而应该使用一份公共资源(文件、队列、内存块等)。

所以进程间通信的前提是:

        先让不同的进程看到同一份(OS)资源(“一段内存”)(这段资源(内存)由操作系统提供,这样也就不违背进程间具有独立性的原则)

且一定是某一个进程先需要通信,让OS创建一个共享资源 -> OS就必须提供很多系统调用,OS创建的共享资源的不同,进程间通信就会有不同的种类。