NOTE

2.4 IPC

1. 什么是进程通信 就是进程之间进行信息交换。 2. 为什么有进程通信 由于每个进程的地址空间都是独立的,操作系统为了安全起见不允许一个进程直接访问另一个进程的地址空间 3. 进程通信方式 3.1. 信号量 - 计数器。用于为多个进程提供对共享数据对象的访问 3.2. 共享存储 - 多个进程共享同

Operating System / Linux创建于 更新于 historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 什么是进程通信

就是进程之间进行信息交换。

2. 为什么有进程通信

由于每个进程的地址空间都是独立的,操作系统为了安全起见不允许一个进程直接访问另一个进程的地址空间

3. 进程通信方式

3.1. 信号量

  • 计数器。用于为多个进程提供对共享数据对象的访问

3.2. 共享存储

  • 多个进程共享同一块地址空间进行通信。因为数据不需要在进程之间复制,所以这是最快的一种 IPC。
  • 需要使用信号量用来同步对共享存储的访问。

3.3. 管道

  • 只能实现单向传输
  • 只能在父子进程中使用

3.4. FIFO

  • 也称为命名管道,去除了管道只能在父子进程中使用的限制

3.5. 消息队列

  • 消息队列可以独立于读写进程存在
  • 不需要进程自己同步

3.6. socket

  • 可用于不同机器间的进程通信

4. 参考