当前位置: 首页 > 新闻 > 信息荟萃
编号:5586
UNIX网络编程卷2进程间通信第3版.pdf
http://www.100md.com 2020年11月16日
第1页
第8页
第16页
第22页
第46页
第236页

    参见附件(43184KB,476页)。

     UNIX网络编程卷2进程间通信第2版是一部UNIX 网络编程的经典之作!进程间通信(IPC)几乎是所有Unix 程序性能的关键,理解IPC 也是理解如何开发不同主机间网络应用程序的必要条件

    编辑推荐

    两卷本的《UNIX网络编程》是已故著名UNIX网络专家W. Richard Stevens的传世之作。卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。本书完全重写并扩充了1990年版《UNIX网络编程》的第3章和第18章。字数统计表明,现在的内容是第1版的5倍。

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

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

    作者简介

    W. 理查德.史蒂文斯(W. Richard Stevens)国际知名的UNIX 和网络专家,备受赞誉的技术作家。他1951 年2 月5 日出生于赞比亚,后随父母回到美国。中学时就读于弗吉尼亚菲什伯恩军事学校,1973 年获得密歇根大学航空和航天工程学士学位。1975 年至1982 年,他在亚利桑那州图森市的基特峰国家天文台从事计算机编程工作,业余时间喜爱飞行运动,做过兼职飞行教练。这期间他分别在1978 年和1982 年获得亚利桑那大学系统工程硕士和博士学位。此后他去康涅狄格州纽黑文的健康系统国际公司任主管计算机服务的副总裁。1990 年他回到图森,从事专业技术写作和咨询工作。写下了多种经典的传世之作,包括《TCP/IP 详解》(三卷)、《UNIX 环境高级编程》和《UNIX网络编程》(两卷)。Stevens 于1999 年9 月1日去世,年仅48岁。2000 年他被国际**机构USENIX 追授“终身成就奖”。

    书籍评价

    “我做专业程序员已经:十余年了,每当要,新程序的时候,我都要参考这本15Stevens的15是我进入VolP和音城CODEC网络编程领域的被门砖

    -C.T.Vanderdecken

    “在我做过的项目中,已经记不请楚有多少次警这套书挽拒测于说例…位真正的UNIX系统程序员都顾该买·f

    --David Sharpe

    “对每位UNIX平台的程序员而富,这本15部是老备的,它深入刚桥YUNIXY台1的各种PC API 诵盖System V电涉及POSIX标准,对于IPC的论述无可匹政 15未的附求对各种管道,FIFO,Posixi息队则.System Vi息队例、r1.Sun RPC的性能进行了比较,我从来没有看到任何15能如此广泛而深入地介绍这.主题,更何况,它出自权成人物之下

    -asingh

    "Stevens是UNIX國络编程的.神",至少足我的.神Matthew MacGibbon"

    与第1版的区别

    本书完全重写并扩充了1990年版《UNIX网络编程》的第3章和第18章。字数统计表明,现在的内容是第1版的5倍。新版的主要改动归纳如下。

    不仅讨论了"System VIPC"的三种形式(消息队列、信号量以及共享内存),还对实现了这些IPC的新的Posix函数进行了介绍。(1.7节将详细介绍Posix标准族。)我认为使用Posix IPC函数是大势所趋,因为它们比System V中的相应部分更具优势。讨论了用于同步的Posix函数:互斥锁、条件变量以及读写锁。它们可用于线程或进程的同步,而且往往在访问共享内存时使用。

    本卷假定使用Posix线程环境(称为"Pthreads"),许多示例都是用多线程而不是多进程构建的。

    对管道、FIFO和记录锁的讨论侧重于从它们的Posix定义出发。

    本卷不仅描述了IPC机制及其使用方法,还实现了Posix消息队列、读写锁与Posix信号量

    (都可以实现为用户库),这些实现可以把多种不同的特性拥绑起来(例如,Posix信号量的一种实现用到了互斥量、条件变量和内存映射1/O),还强调了我们在应用程序中经常要处理的一些问题(如竞争状态、错误处理、内存泄漏和变长参数列表)。理解某种特性的实现通常有助于了解如何使用该特性。

    对RPC的讨论侧重于Sun的RPC包。在此之前讲述了新的Solaris门API,它类似于RPC但用于单主机。这么一来我们就介绍了许多在调用其他进程中的过程时需要考虑的特性,而不用关心网络方面的细节。

    UNIX网络编程卷2进程间通信第3版截图

    [General Information]

    书名=UNIX网络编程 卷2 进程间通信 第2版

    作者=(美)史蒂文斯著

    页数=460

    出版社=人民邮电出版社

    出版日期=2010.07

    SS号=12636556

    DX号=000006916353

    URL=http:book.szdnet.org.cnbookDetail.jsp?dxNumber=0000

    06916353d=6B42105D6DF81C5808C30F5F19FF981D封面

    书名

    版权

    前言

    目录

    第一部分 简介

    第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 使用内存映射IO实现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 使用内存映射IO实现信号量

    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 在内存映射文件中给计数器持续加1

    12.4 4.4BSD匿名内存映射

    12.5 SVR4devzero内存映射

    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 精选习题解答

    参考文献

    索引 ......

您现在查看是摘要介绍页, 详见PDF附件(43184KB,476页)