《UNIX网络编程 卷2》 笔记: 简介

来源:互联网 发布:手机淘宝店店招 编辑:程序博客网 时间:2024/05/21 06:23

 总述

    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对象的影响