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

UNIX网络编程卷2进程间通信第2版
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (W.Richard Stevens)
2019-10
版次: 1
ISBN: 9787115517807
定价: 109.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 457页
  • 本书是一部UNIX 网络编程的经典之作!进程间通信(IPC)几乎是所有Unix 程序性能的关键,理解IPC 也是理解如何开发不同主机间网络应用程序的必要条件。本书从对Posix IPC 和System V IPC 的内部结构开始讨论,全面深入地介绍了4 种IPC 形式:消息传递(管道、FIFO、消息队列)、同步(互斥锁、条件变量、读写锁、文件与记录锁、信号量)、共享内存(匿名共享内存、具名共享内存)及远程过程调用(Solaris门、Sun RPC)。附录中给出了测量各种IPC 形式性能的方法。 

    本书内容详尽且具**性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。 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 追授“终身成就奖”。 第 一部分 简介 

    第 1章 简介 2

    1.1 概述 2

    1.2 进程、线程与信息共享 3

    1.3 IPC对象的持续性 4

    1.4 名字空间 5

    1.5 fork、exec和exit对IPC对象的

    影响 7

    1.6 出错处理:包裹函数 8

    1.7 Unix标准 9

    1.8 书中IPC例子索引表 11

    1.9 小结 13

    习题 13

    第 2章 Posix IPC 14

    2.1 概述 14

    2.2 IPC名字 14

    2.3 创建与打开IPC通道 16

    2.4 IPC权限 18

    2.5 小结 19

    习题 19

    第3章 System V IPC 20

    3.1 概述 20

    3.2 key_t键和ftok函数 20

    3.3 ipc_perm结构 22

    3.4 创建与打开IPC通道 22

    3.5 IPC权限 24

    3.6 标识符重用 25

    3.7 ipcs和ipcrm程序 27

    3.8 内核限制 27

    3.9 小结 28

    习题 29

    第二部分 消息传递

    第4章 管道和FIFO 32

    4.1 概述 32

    4.2 一个简单的客户-服务器例子 32

    4.3 管道 32

    4.4 全双工管道 37

    4.5 popen和pclose函数 39

    4.6 FIFO 40

    4.7 管道和FIFO的额外属性 44

    4.8 单个服务器,多个客户 46

    4.9 对比迭代服务器与并发服务器 50

    4.10 字节流与消息 51

    4.11 管道和FIFO限制 55

    4.12 小结 56

    习题 57

    第5章 Posix消息队列 58

    5.1 概述 58

    5.2 mq_open、mq_close和mq_unlink

    函数 59

    5.3 mq_getattr和mq_setattr函数 61

    5.4 mq_send和mq_receive函数 64

    5.5 消息队列限制 67

    5.6 mq_notify函数 68

    5.7 Posix实时信号 78

    5.8 使用内存映射I/O实现Posix消息队列 85

    5.9 小结 101

    习题 101

    第6章 System V消息队列 103

    6.1 概述 103

    6.2 msgget函数 104

    6.3 msgsnd函数 104

    6.4 msgrcv函数 105

    6.5 msgctl函数 106

    6.6 简单的程序 107

    6.7 客户-服务器例子 112

    6.8 复用消息 113

    6.9 消息队列上使用select和poll 121

    6.10 消息队列限制 122

    6.11 小结 124

    习题 124

    第三部分 同步

    第7章 互斥锁和条件变量 126

    7.1 概述 126

    7.2 互斥锁:上锁与解锁 126

    7.3 生产者-消费者问题 127

    7.4 对比上锁与等待 131

    7.5 条件变量:等待与信号发送 132

    7.6 条件变量:定时等待和广播 136

    7.7 互斥锁和条件变量的属性 136

    7.8 小结 139

    习题 139

    第8章 读写锁 140

    8.1 概述 140

    8.2 获取与释放读写锁 140

    8.3 读写锁属性 141

    8.4 使用互斥锁和条件变量实现读写锁 142

    8.5 线程取消 148

    8.6 小结 153

    习题 153

    第9章 记录上锁 154

    9.1 概述 154

    9.2 对比记录上锁与文件上锁 157

    9.3 Posix fcntl记录上锁 158

    9.4 劝告性上锁 162

    9.5 强制性上锁 164

    9.6 读出者和写入者的优先级 166

    9.7 启动一个守护进程的唯一副本 170

    9.8 文件作锁用 171

    9.9 NFS上锁 173

    9.10 小结 173

    习题 174

    第 10章 Posix信号量 175

    10.1 概述 175

    10.2 sem_open、sem_close和sem_unlink函数 179

    10.3 sem_wait和sem_trywait函数 180

    10.4 sem_post和sem_getvalue函数 180

    10.5 简单的程序 181

    10.6 生产者-消费者问题 186

    10.7 文件上锁 190

    10.8 sem_init和sem_destroy函数 191

    10.9 多个生产者,单个消费者 193

    10.10 多个生产者,多个消费者 196

    10.11 多个缓冲区 199

    10.12 进程间共享信号量 205

    10.13 信号量限制 206

    10.14 使用FIFO实现信号量 206

    10.15 使用内存映射I/O实现信号量 210

    10.16 使用System V信号量实现Posix信号量 218

    10.17 小结 224

    习题 225

    第 11章 System V 信号量 226

    11.1 概述 226

    11.2 semget函数 227

    11.3 semop函数 229

    11.4 semctl函数 231

    11.5 简单的程序 232

    11.6 文件上锁 237

    11.7 信号量限制 238

    11.8 小结 242

    习题 242

    第四部分 共享内存区

    第 12章 共享内存区介绍 244

    12.1 概述 244

    12.2 mmap、munmap和msync函数 247

    12.3 在内存映射文件中给计数器持续加1 250

    12.4 4.4BSD匿名内存映射 254

    12.5 SVR4 /dev/zero内存映射 255

    12.6 访问内存映射的对象 255

    12.7 小结 259

    习题 260

    第 13章 Posix共享内存区 261

    13.1 概述 261

    13.2 shm_open和shm_unlink函数 261

    13.3 ftruncate和fstat函数 262

    13.4 简单的程序 263

    13.5 给一个共享的计数器持续加1 267

    13.6 向一个服务器发送消息 270

    13.7 小结 275

    习题 275

    第 14章 System V共享内存区 276

    14.1 概述 276

    14.2 shmget函数 276

    14.3 shmat函数 277

    14.4 shmdt函数 277

    14.5 shmctl函数 277

    14.6 简单的程序 278

    14.7 共享内存区限制 281

    14.8 小结 282

    习题 283

    第五部分 远程过程调用

    第 15章 门 286

    15.1 概述 286

    15.2 door_call函数 291

    15.3 door_create函数 292

    15.4 door_return函数 293

    15.5 door_cred函数 294

    15.6 door_info函数 294

    15.7 例子 295

    15.8 描述符传递 306

    15.9 door_sever_create函数 310

    15.10 door_bind、door_unbind和door_revoke函数 315

    15.11 客户或服务器的过早终止 315

    15.12 小结 321

    习题 322

    第 16章 Sun RPC 323

    16.1 概述 323

    16.2 多线程化 330

    16.3 服务器捆绑 333

    16.4 认证 336

    16.5 超时和重传 338

    16.6 调用语义 342

    16.7 客户或服务器的过早终止 343

    16.8 XDR:外部数据表示 345

    16.9 RPC分组格式 361

    16.10 小结 365

    习题 366

    后记 368

    附录A 性能测量 371

    附录B 线程入门 406

    附录C 杂凑的源代码 409

    附录D 精选习题解答 417

    参考文献 433

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

    本书内容详尽且具**性,几乎每章都提供精选的习题,并提供了部分习题的答案,是网络研究和开发人员理想的参考书。
  • 作者简介:
    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 追授“终身成就奖”。
  • 目录:
    第 一部分 简介 

    第 1章 简介 2

    1.1 概述 2

    1.2 进程、线程与信息共享 3

    1.3 IPC对象的持续性 4

    1.4 名字空间 5

    1.5 fork、exec和exit对IPC对象的

    影响 7

    1.6 出错处理:包裹函数 8

    1.7 Unix标准 9

    1.8 书中IPC例子索引表 11

    1.9 小结 13

    习题 13

    第 2章 Posix IPC 14

    2.1 概述 14

    2.2 IPC名字 14

    2.3 创建与打开IPC通道 16

    2.4 IPC权限 18

    2.5 小结 19

    习题 19

    第3章 System V IPC 20

    3.1 概述 20

    3.2 key_t键和ftok函数 20

    3.3 ipc_perm结构 22

    3.4 创建与打开IPC通道 22

    3.5 IPC权限 24

    3.6 标识符重用 25

    3.7 ipcs和ipcrm程序 27

    3.8 内核限制 27

    3.9 小结 28

    习题 29

    第二部分 消息传递

    第4章 管道和FIFO 32

    4.1 概述 32

    4.2 一个简单的客户-服务器例子 32

    4.3 管道 32

    4.4 全双工管道 37

    4.5 popen和pclose函数 39

    4.6 FIFO 40

    4.7 管道和FIFO的额外属性 44

    4.8 单个服务器,多个客户 46

    4.9 对比迭代服务器与并发服务器 50

    4.10 字节流与消息 51

    4.11 管道和FIFO限制 55

    4.12 小结 56

    习题 57

    第5章 Posix消息队列 58

    5.1 概述 58

    5.2 mq_open、mq_close和mq_unlink

    函数 59

    5.3 mq_getattr和mq_setattr函数 61

    5.4 mq_send和mq_receive函数 64

    5.5 消息队列限制 67

    5.6 mq_notify函数 68

    5.7 Posix实时信号 78

    5.8 使用内存映射I/O实现Posix消息队列 85

    5.9 小结 101

    习题 101

    第6章 System V消息队列 103

    6.1 概述 103

    6.2 msgget函数 104

    6.3 msgsnd函数 104

    6.4 msgrcv函数 105

    6.5 msgctl函数 106

    6.6 简单的程序 107

    6.7 客户-服务器例子 112

    6.8 复用消息 113

    6.9 消息队列上使用select和poll 121

    6.10 消息队列限制 122

    6.11 小结 124

    习题 124

    第三部分 同步

    第7章 互斥锁和条件变量 126

    7.1 概述 126

    7.2 互斥锁:上锁与解锁 126

    7.3 生产者-消费者问题 127

    7.4 对比上锁与等待 131

    7.5 条件变量:等待与信号发送 132

    7.6 条件变量:定时等待和广播 136

    7.7 互斥锁和条件变量的属性 136

    7.8 小结 139

    习题 139

    第8章 读写锁 140

    8.1 概述 140

    8.2 获取与释放读写锁 140

    8.3 读写锁属性 141

    8.4 使用互斥锁和条件变量实现读写锁 142

    8.5 线程取消 148

    8.6 小结 153

    习题 153

    第9章 记录上锁 154

    9.1 概述 154

    9.2 对比记录上锁与文件上锁 157

    9.3 Posix fcntl记录上锁 158

    9.4 劝告性上锁 162

    9.5 强制性上锁 164

    9.6 读出者和写入者的优先级 166

    9.7 启动一个守护进程的唯一副本 170

    9.8 文件作锁用 171

    9.9 NFS上锁 173

    9.10 小结 173

    习题 174

    第 10章 Posix信号量 175

    10.1 概述 175

    10.2 sem_open、sem_close和sem_unlink函数 179

    10.3 sem_wait和sem_trywait函数 180

    10.4 sem_post和sem_getvalue函数 180

    10.5 简单的程序 181

    10.6 生产者-消费者问题 186

    10.7 文件上锁 190

    10.8 sem_init和sem_destroy函数 191

    10.9 多个生产者,单个消费者 193

    10.10 多个生产者,多个消费者 196

    10.11 多个缓冲区 199

    10.12 进程间共享信号量 205

    10.13 信号量限制 206

    10.14 使用FIFO实现信号量 206

    10.15 使用内存映射I/O实现信号量 210

    10.16 使用System V信号量实现Posix信号量 218

    10.17 小结 224

    习题 225

    第 11章 System V 信号量 226

    11.1 概述 226

    11.2 semget函数 227

    11.3 semop函数 229

    11.4 semctl函数 231

    11.5 简单的程序 232

    11.6 文件上锁 237

    11.7 信号量限制 238

    11.8 小结 242

    习题 242

    第四部分 共享内存区

    第 12章 共享内存区介绍 244

    12.1 概述 244

    12.2 mmap、munmap和msync函数 247

    12.3 在内存映射文件中给计数器持续加1 250

    12.4 4.4BSD匿名内存映射 254

    12.5 SVR4 /dev/zero内存映射 255

    12.6 访问内存映射的对象 255

    12.7 小结 259

    习题 260

    第 13章 Posix共享内存区 261

    13.1 概述 261

    13.2 shm_open和shm_unlink函数 261

    13.3 ftruncate和fstat函数 262

    13.4 简单的程序 263

    13.5 给一个共享的计数器持续加1 267

    13.6 向一个服务器发送消息 270

    13.7 小结 275

    习题 275

    第 14章 System V共享内存区 276

    14.1 概述 276

    14.2 shmget函数 276

    14.3 shmat函数 277

    14.4 shmdt函数 277

    14.5 shmctl函数 277

    14.6 简单的程序 278

    14.7 共享内存区限制 281

    14.8 小结 282

    习题 283

    第五部分 远程过程调用

    第 15章 门 286

    15.1 概述 286

    15.2 door_call函数 291

    15.3 door_create函数 292

    15.4 door_return函数 293

    15.5 door_cred函数 294

    15.6 door_info函数 294

    15.7 例子 295

    15.8 描述符传递 306

    15.9 door_sever_create函数 310

    15.10 door_bind、door_unbind和door_revoke函数 315

    15.11 客户或服务器的过早终止 315

    15.12 小结 321

    习题 322

    第 16章 Sun RPC 323

    16.1 概述 323

    16.2 多线程化 330

    16.3 服务器捆绑 333

    16.4 认证 336

    16.5 超时和重传 338

    16.6 调用语义 342

    16.7 客户或服务器的过早终止 343

    16.8 XDR:外部数据表示 345

    16.9 RPC分组格式 361

    16.10 小结 365

    习题 366

    后记 368

    附录A 性能测量 371

    附录B 线程入门 406

    附录C 杂凑的源代码 409

    附录D 精选习题解答 417

    参考文献 433

    索引 435
查看详情
相关图书 / 更多
UNIX网络编程卷2进程间通信第2版
UNDERSTANDINGHEDGEFUNDS
Scott Frush 著
UNIX网络编程卷2进程间通信第2版
UN维和步兵营
王昆 著
UNIX网络编程卷2进程间通信第2版
UNIX/Linux系统管理技术手册(第5版)
[美]埃薇·内梅特(Evi Nemeth)、加思·斯奈德(Garth Snyder)、特伦特·R.海恩本·惠利(Trent,R.Hein) 译
UNIX网络编程卷2进程间通信第2版
UNIX环境高级编程第3版英文版上下册
[美]W.理查德·史蒂文斯(W.、Richard、Stevens)史蒂芬·A.、拉戈(StephenA.Rago) 著
UNIX网络编程卷2进程间通信第2版
UNICEF (United Nations Children's Fund): Global Governance That Works
Richard Jolly
UNIX网络编程卷2进程间通信第2版
UNIX环境高级编程第3版
拉戈( 著;[美]W.、理查德·史蒂文斯(W.、Richard、Stevens)史蒂芬·A.、戚正伟、张亚英、尤晋元 译
UNIX网络编程卷2进程间通信第2版
UNITY应用开发实战案例
程明智
UNIX网络编程卷2进程间通信第2版
UNIFIEDOBJECTS:OBJECT-ORIENTEDPROGRAMMINGUSINGC++
Babak Sadr 著
UNIX网络编程卷2进程间通信第2版
UNDERSTANDING&MANAGINGVISIONDEFICITS
Mitchell Scheiman OD 著
UNIX网络编程卷2进程间通信第2版
UNIX传奇:历史与回忆
[美]布莱恩·W.克尼汉(Brian W. Kernighan)
UNIX网络编程卷2进程间通信第2版
UNIX网络编程卷1套接字联网API第3版
[美]W.理查德·史蒂文斯(W.、Richard、Stevens)比尔·芬纳(比尔·芬纳(Bill,Fenner)、安德鲁·M. 著
UNIX网络编程卷2进程间通信第2版
UNDERSTANDINGEXCHANGE-TRADEDFUNDS
Archie Richards 著
您可能感兴趣 / 更多
UNIX网络编程卷2进程间通信第2版
性格修正:如何突破你的原生性格
[美]本杰明·哈迪
UNIX网络编程卷2进程间通信第2版
能言善辩:律师职场说服术
[美]玛莎·亨特 著;[美]布莱恩· K. 约翰逊
UNIX网络编程卷2进程间通信第2版
蒙特卡洛之锁:小谜题大逻辑
[美]雷蒙德·斯穆里安(Raymond Smullyan)
UNIX网络编程卷2进程间通信第2版
什么造就了城市:交通拥堵、雾霾污染、贫民窟乱象、阶级割裂等城市困境,是否存在四两拨千斤的解决之道?
[美]乔纳森·罗斯
UNIX网络编程卷2进程间通信第2版
虚拟现实:接口 应用与设计(原书第2版)
[美]威廉姆·R. 谢尔曼(William R. Sherman);[美]阿兰·B. 克雷格(Alan B. Craig)
UNIX网络编程卷2进程间通信第2版
经验红利:行业精英的数字化转型
[美]奇普·康利(Chip Conley)
UNIX网络编程卷2进程间通信第2版
对小霸王说不(精)/你不能欺负我
[美]帕蒂·洛弗尔 著;魏凡 译
UNIX网络编程卷2进程间通信第2版
我的世界观(科学天才的自画像)
[美]阿尔伯特·爱因斯坦 著;余荃 译
UNIX网络编程卷2进程间通信第2版
地球的故事(四年级彩图音频版)/小学生阅读课程化丛书·快乐读书吧
[美]房龙 著;陈伯雨、郭亚丽 译
UNIX网络编程卷2进程间通信第2版
基于生态系统的海洋管理实践
[美]朱莉娅·M.旺多莱克(Julia M.Wondolleck) 著;相文玺、曹英志、魏莱 译
UNIX网络编程卷2进程间通信第2版
TCP/IP详解 卷1 协议(英文版)
[美]W.理查德·史蒂文斯(W.Richard Stevens) 著
UNIX网络编程卷2进程间通信第2版
UNIX网络编程 卷2:进程间通信(第2版)
[美]W.理查德·史蒂文斯(W.Richard Stevens) 著