当前位置:主页 > 书籍配套资源 > UNIX配套资源
《UNIX网络编程 卷2:进程间通信(第2版)》源代码

《UNIX网络编程 卷2:进程间通信(第2版)》源代码

  • 更新:2021-12-17
  • 大小:427.3 KB
  • 类别:UNIX
  • 作者:W.、Richard、Stevens
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

编辑推荐

两卷本的《UNIX网络编程》是已故著名技术作家W. Richard Stevens的传世之作。卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。

良好的进程间通信(IPC)机制是提高UNIX程序性能的关键。本书全面深入地讲解了各种进程间通信形式,包括消息传递、同步、共享内存及远程过程调用(RPC)。书中包含了大量经过优化的源代码,帮助读者加深理解。这些源代码可以从本书网站下载。

本书是网络研究和开发人员公认的权威参考书,无论网络编程的初学者还是网络专家都会大受裨益。

内容简介

本书是一部UNIX 网络编程的经典之作!进程间通信(IPC)几乎是所有Unix 程序性能的关键,理解IPC 也是理解如何开发不同主机间网络应用程序的必要条件。本书从对Posix IPC 和System V IPC 的内部结构开始讨论,全面深入地介绍了4 种IPC 形式:消息传递(管道、FIFO、消息队列)、同步(互斥锁、条件变量、读写锁、文件与记录锁、信号量)、共享内存(匿名共享内存、具名共享内存)及远程过程调用(Solaris门、Sun RPC)。附录中给出了测量各种IPC 形式性能的方法。

本书内容详尽且具权威性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。

目录

  • 第一部分 简介
  • 第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.4 4.4BSD匿名内存映射
  • 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 给一个共享的计数器持续加1
  • 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 精选习题解答
  • 参考文献
  • 索引

资源下载

资源下载地址1:https://box.lenovo.com/l/u1FmVy

网友留言