-
内容大纲
本书是一部UNIX 网络编程的经典之作!进程间通信(IPC)几乎是所有Unix 程序性能的关键,理解IPC 也是理解如何开发不同主机间网络应用程序的必要条件。本书从对Posix IPC 和System V IPC 的内部结构开始讨论,全面深入地介绍了4 种IPC 形式:消息传递(管道、FIFO、消息队列)、同步(互斥锁、条件变量、读写锁、文件与记录锁、信号量)、共享内存(匿名共享内存、具名共享内存)及远程过程调用(Solaris门、Sun RPC)。附录中给出了测量各种IPC 形式性能的方法。
本书内容详尽且具权威性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。 -
作者介绍
W.理查德·史蒂文斯(W.Richard Stevens),国际知名的UNIX和网络专家,备受赞誉的技术作家。生前著有多部经典的传世之作,包括《UNIX网络编程》(两卷本)、《TCP/IP详解》(三卷本)和本书第1版。 -
目录
第一部分 简介
第1章 简介
1.1 概述
1.2 进程、线程与信息共享
1.3 IPC对象的持续性
1.4 名字空间
1.5 fork、exec和exit对IPC对象的
影响
1.6 出错处理:包裹函数
1.7 Unix标准
1.8 书中IPC例子索引表
1.9 小结
习题
第2章 Posix IPC
2.1 概述
2.2 IPC名字
2.3 创建与打开IPC通道
2.4 IPC权限
2.5 小结
习题
第3章 System V IPC
3.1 概述
3.2 key_t键和ftok函数
3.3 ipc_perm结构
3.4 创建与打开IPC通道
3.5 IPC权限
3.6 标识符重用
3.7 ipcs和ipcrm程序
3.8 内核限制
3.9 小结
习题
第二部分 消息传递
第4章 管道和FIFO
4.1 概述
4.2 一个简单的客户-服务器例子
4.3 管道
4.4 全双工管道
4.5 popen和pclose函数
4.6 FIFO
4.7 管道和FIFO的额外属性
4.8 单个服务器,多个客户
4.9 对比迭代服务器与并发服务器
4.10 字节流与消息
4.11 管道和FIFO限制
4.12 小结
习题
第5章 Posix消息队列
5.1 概述
5.2 mq_open、mq_close和mq_unlink
函数
5.3 mq_getattr和mq_setattr函数
5.4 mq_send和mq_receive函数
5.5 消息队列限制
5.6 mq_notify函数
5.7 Posix实时信号
5.8 使用内存映射I/O实现Posix消息队列
5.9 小结
习题
第6章 System V消息队列
6.1 概述
6.2 msgget函数
6.3 msgsnd函数
6.4 msgrcv函数
6.5 msgctl函数
6.6 简单的程序
6.7 客户-服务器例子
6.8 复用消息
6.9 消息队列上使用select和poll
6.10 消息队列限制
6.11 小结
习题
第三部分 同步
第7章 互斥锁和条件变量
7.1 概述
7.2 互斥锁:上锁与解锁
7.3 生产者-消费者问题
7.4 对比上锁与等待
7.5 条件变量:等待与信号发送
7.6 条件变量:定时等待和广播
7.7 互斥锁和条件变量的属性
7.8 小结
习题
第8章 读写锁
8.1 概述
8.2 获取与释放读写锁
8.3 读写锁属性
8.4 使用互斥锁和条件变量实现读写锁
8.5 线程取消
8.6 小结
习题
第9章 记录上锁
9.1 概述
9.2 对比记录上锁与文件上锁
9.3 Posix fcntl记录上锁
9.4 劝告性上锁
9.5 强制性上锁
9.6 读出者和写入者的优先级
9.7 启动一个守护进程的唯一副本
9.8 文件作锁用
9.9 NFS上锁
9.10 小结
习题
第10章 Posix信号量
10.1 概述
10.2 sem_open、sem_close和sem_unlink函数
10.3 sem_wait和sem_trywait函数
10.4 sem_post和sem_getvalue函数
10.5 简单的程序
10.6 生产者-消费者问题
10.7 文件上锁
10.8 sem_init和sem_destroy函数
10.9 多个生产者,单个消费者
10.10 多个生产者,多个消费者
10.11 多个缓冲区
10.12 进程间共享信号量
10.13 信号量限制
10.14 使用FIFO实现信号量
10.15 使用内存映射I/O实现信号量
10.16 使用System V信号量实现Posix信号量
10.17 小结
习题
第11章 System V 信号量
11.1 概述
11.2 semget函数
11.3 semop函数
11.4 semctl函数
11.5 简单的程序
11.6 文件上锁
11.7 信号量限制
11.8 小结
习题
第四部分 共享内存区
第12章 共享内存区介绍
12.1 概述
12.2 mmap、munmap和msync函数
12.3 在内存映射文件中给计数器持续加
12.44.4 BSD匿名内存映射
12.5 SVR4 /dev/zero内存映射
12.6 访问内存映射的对象
12.7 小结
习题
第13章 Posix共享内存区
13.1 概述
13.2 shm_open和shm_unlink函数
13.3 ftruncate和fstat函数
13.4 简单的程序
13.5 给一个共享的计数器持续加
13.6 向一个服务器发送消息
13.7 小结
习题
第14章 System V共享内存区
14.1 概述
14.2 shmget函数
14.3 shmat函数
14.4 shmdt函数
14.5 shmctl函数
14.6 简单的程序
14.7 共享内存区限制
14.8 小结
习题
第五部分 远程过程调用
第15章 门
15.1 概述
15.2 door_call函数
15.3 door_create函数
15.4 door_return函数
15.5 door_cred函数
15.6 door_info函数
15.7 例子
15.8 描述符传递
15.9 door_sever_create函数
15.10 door_bind、door_unbind和door_revoke函数
15.11 客户或服务器的过早终止
15.12 小结
习题
第16章 Sun RPC
16.1 概述
16.2 多线程化
16.3 服务器捆绑
16.4 认证
16.5 超时和重传
16.6 调用语义
16.7 客户或服务器的过早终止
16.8 XDR:外部数据表示
16.9 RPC分组格式
16.10 小结
习题
后记
附录A 性能测量
附录B 线程入门
附录C 杂凑的源代码
附录D 精选习题解答
参考文献
索引
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...