进程间通信(IPC):共享内存和消息队列原理详解

  • 内容
  • 评论
  • 相关

操作系统内的并发执行进程可以是独立的也可以是协作的:

  • 如果一个进程不能影响其他进程或受其他进程影响,那么该进程是独立的,换句话说,不与任何其他进程共享数据的进程是独立的;
  • 如果一个进程能影响其他进程或受其他进程所影响,那么该进程是协作的。换句话说,与其他进程共享数据的进程为协作进程。

提供环境允许进程协作,具有许多理由:

  • 信息共享:由于多个用户可能对同样的信息感兴趣(例如共享文件),所以应提供环境以允许并发访问这些信息。
  • 计算加速:如果希望一个特定任务快速运行,那么应将它分成子任务,而每个子任务可以与其他子任务一起并行执行。注意,如果要实现这样的加速,那么计算机需要有多个处理核。
  • 模块化:可能需要按模块化方式构造系统,即将系统功能分成独立的进程或线程。
  • 方便:即使单个用户也可能同时执行许多任务。例如,用户可以并行地编辑、收听音乐、编译。

协作进程需要有一种进程间通信机制(简称 IPC),以允许进程相互交换数据与信息。进程间通信有两种基本模型:共享内存消息传递(消息队列)

  • 共享内存模型会建立起一块供协作进程共享的内存区域,进程通过向此共享区域读出或写入数据来交换信息。
  • 消息传递模型通过在协作进程间交换消息来实现通信。

图 1 给出了这两种模型的对比。


通信模型
图 1 通信模型

本文标题:进程间通信(IPC):共享内存和消息队列原理详解

本文地址:http://www.hosteonscn.com/3564.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注