总述

    W.Richarqd Stevens的《UNIX网络编程 卷2:进程间通信》主要讲解Linux进程间通信(IPC),其中也包括一些同步机制。

    本系列 《UNIX网络编程 卷2》 笔记 文章主要根据书上内容记录一些笔记。我主要关注IPC的三大领域:

    (1)消息传递(管道、FIFO、消息队列)

    (2)同步(互斥锁、条件变量、读写锁、信号量)

    (3)共享内存区(匿名共享内存区和有名共享内存区)

    我们把上述提到的各种类型的进程间通信机制和同步机制统称为IPC对象。在详细讨论之前,读者需要了解如下基础知识,它们对理解IPC非常重要。


进程间信息共享的方式

   

    (1)两个进程共享文件系统中的文件。访问时需要穿越内核,可能需要某种形式的同步。

    (2)两个进程共享内核中的某些信息。管道就是一个这种共享方式的例子。

    (3)两个进程有一个双方都能访问的共享内存区。访问时不需要穿越内核,但需要某种形式的同步。


IPC对象的持续性

    我们把任意类型的IPC对象的持续性定义成该类型的一个对象在系统中一直存在多长时间。

   

    各种类型的IPC对象的持续性如下表所示:

   

IPC对象的名字空间

    当两个或多个无亲缘关系的进程使用某种类型的IPC对象来交换信息时,该IPC对象必须有一个某种形式的名字标识符,这样一个进程创建IPC对象时,其他的进程就可以指定同一个IPC对象。对于一个给定类型的IPC对象,其可能的名字的集合称为它的名字空间。各种类型的IPC对象的名字空间如下表所示:

   

fork、exec和exit对IPC对象的影响

  


GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐