什么是进程间通信?
进程间通信 (IPC) 是一种允许进程之间交换数据的机制。它能够在进程之间共享资源和数据,而不会产生干扰。
在操作系统中并发执行的进程可以是独立进程或合作进程。
一个进程是独立的,它可能会受到或不会受到系统中其他正在执行的进程的影响。任何不与其他进程共享数据的进程都是独立的。
假设如果一个进程是合作的,那么它可能会受到系统中正在执行的其他进程的影响。任何与另一个进程共享数据的进程都称为合作进程。
以下是进程间通信的示意图:
进程合作的原因
允许进程合作的原因有很多,如下所示:
信息共享 - 多个用户对同一信息感兴趣。我们必须提供一个环境来允许并发访问此类信息。
计算速度加快 - 如果我们希望某个特定任务运行得更快,我们必须将其分解成子任务,然后每个子任务将与其他子任务并行执行。只有当计算机具有多个处理单元时才能实现加速。
模块化 - 系统可以以模块化的方式构建,将系统功能划分为单独的进程或线程。
便利性 - 单个用户可以同时处理许多任务。例如,用户可以并行编辑、编译和打印。
合作进程需要一个 IPC 机制,允许它们交换数据和信息。
IPC 模型
IPC 有两种基本模型,如下所示:
共享内存
建立一个由合作进程共享的内存区域。然后,进程可以通过读取和写入共享区域中的数据来交换信息。
消息传递
通信通过合作进程之间交换的消息进行。消息传递对于交换少量数据很有用,因为不需要避免冲突。
与共享内存相比,它更容易使用系统调用实现,因此它需要内核执行更耗时的任务。
广告