Unix网络编程 卷2:进程间通信 读书笔记
Unix网络编程 卷2:进程间通信 读书笔记
第一章 简介
1、概念:
进程间通信(IPC,interprocess communication),指运行在某个操作系统之上的不同进程间各种消息传递的方式。(设计追求高性能)
同步(synchronization),存在于较新式的通信,例如共享内存区
2、消息传递类型:
管道(pipe):具有共同祖先的的进程间使用
FIFO:无亲缘关系间进程使用
System V 消息队列:亲缘/无亲缘
Posix消息队列:亲缘/无亲缘
远程过程调用:一个系统上某个程序调用另一个系统上某个函数,显式网络编程。
3、同步形式:
某种同步形式(防止多个进程同时修改一个文件)
记录上锁
System V 信号量:共享内存区
Posix信号量:共享内存区
互斥锁和条件变量:线程
读写锁:未标准化
4、信息共享形式:
文件系统
内核中的共享信息
共享内存区
5、线程:同一进程中所有线程共享同样的全局变量
6、IPC对象的持续性:
随进程:管道、FIFO
随内核:消息队列、信号量、共享内存区
随文件
7、名字空间:给定的IPC类型,其可能的名字的集合(是客户与服务端彼此连接交换信息的手段)
8、交户模式:文件服务器、生产者—消费者、序列号持续增1
第二章 Posix IPC
IPC名字:用路径名标识,以一个斜杠打头
创建与打开IPC:mq_open sem_open shm_open
注意权限,O_CREAT和O_EXCL不能同时设置,否则出错
第三章 System V IPC
IPC名字:用键值(路径名+id)标识,用ftok构成,特别的,IPC_PREVATE
创建与打开IPC:msgget semget shmget
有ipc_perm结构,对于对象总是可用
考虑内核限制#笔记##读书笔记#
MDPI公司福利 432人发布