《UNIX网络编程 第2卷 进程间通信》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)(W.R.史蒂文斯)W.Richard Stevens著;杨继张译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2000
  • ISBN:7302038155
  • 页数:479 页
图书介绍:UNIX网络编程:第2版(第2卷 进程间通信),ISBN:9787302038153,作者:(美)[W.R.史蒂文斯]W.Richard Stevens著;杨继张译

第1部分 简介 1

第1章 简介 1

1.1 概述 1

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

1.3 IPC对象的持续性 3

1.4 名字空间 5

1.5 fork、exec和exit对于IPC对象的影响 6

1.6 出错处理:包裹函数 7

1.7 Unix标准 9

1.8 书中IPC例子索引表 11

1.10习题 13

1.9 小结 13

第2章 Posix IPC 14

2.1 概述 14

2.2 IPC名字 14

2.3 创建与打开IPC通道 17

2.4 IPC权限 19

2.5 小结 20

2.6 习题 20

第3章 System V IPC 21

3.1 概述 21

3.2 key_t键和ftok函数 21

3.3 ipc_perm结构 23

3.4 创建与打开IPC通道 24

3.5 IPC权限 26

3.6 标识符重用 27

3.7 ipcs和ipcrm程序 29

3.8 内核限制 29

3.9 小结 30

3.10 习题 31

第2部分 消息传递 32

第4章 管道和FIFO 32

4.1 概述 32

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

4.3 管道 33

4.4 全双工管道 38

4.5 popen和pclose函数 40

4.6 FIFO 41

4.7 管道和FIFO的额外属性 45

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

4.9 迭代服务器与并发服务器 53

4.10 字节流与消息 53

4.11 管道和FIFO限制 58

4.12 小结 59

4.13 习题 60

第5章 Posix消息队列 61

5.1 概述 61

5.2 mq_open、mq_close和mq_unlink函数 62

5.3 mq_getattr和mq_setattr函数 65

5.4 mq_send和mq_receive函数 68

5.5 消息队列限制 71

5.6 mq_notify函数 72

5.7 Posix实时信号 83

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

5.9 小结 108

5.10 习题 109

第6章 System V消息队列 110

6.1 概述 110

6.2 msgget函数 111

6.3 msgsnd函数 111

6.4 msgrcv函数 113

6.5 msgctl函数 114

6.6 简单的程序 115

6.7 客户-服务器例子 120

6.8 复用消息 121

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

6.10 消息队列限制 129

6.11 小结 132

6.12 习题 132

第3部分 同步 133

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

7.1 概述 133

7.2 互斥锁:上锁与解锁 133

7.3 生产者-消费者问题 134

7.4 上锁与等待 138

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

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

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

7.8 小结 147

7.9 习题 147

第8章 读写锁 148

8.1 概述 148

8.2 获取与释放读写锁 149

8.3 读写锁属性 149

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

8.5 线程取消 157

8.6 小结 162

8.7 习题 162

9.1 概述 163

第9章 记录上锁 163

9.2 记录上锁与文件上锁 167

9.3 Posix fcntl记录上锁 168

9.4 劝告性锁 172

9.5 强制性上锁 173

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

9.7 启动一个守护进程的唯一拷贝 180

9.8 文件作锁用 181

9.9 NFS上锁 183

9.10 小结 183

9.11 习题 184

第10章 Posix信号灯 185

10.1 概述 185

10.2 sem_open、sem_close和sem_unlink函数 190

10.3 sem_wait和sem_trywait函数 191

10.4 sem_post和sem_getvalue函数 192

10.5 简单的程序 193

10.6 生产者-消费者问题 197

10.7 文件上锁 202

10.8 sem_init和sem_destroy函数 203

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

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

10.11 多个缓冲区 212

10.12 进程间共享信号灯 219

10.13 信号灯限制 220

10.14 使用FIFO实现信号灯 220

10.15 使用内存映射I/O实现信号灯 225

10.16 使用System V信号灯实现Posix信号灯 233

10.17 小结 240

10.18 习题 240

第11章 System V信号灯 242

11.1 概述 242

11.2 semget函数 243

11.3 semop函数 245

11.4 semctl函数 248

11.5 简单的程序 249

11.6 文件上锁 254

11.7 信号灯限制 256

11.8 小结 259

11.9 习题 260

第4部分 共享内存区 261

第12章 共享内存区介绍 261

12.1 概述 261

12.2 mmap、munmap和msync函数 265

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

12.4 4.4BSD匿名内存映射 271

12.5 SVR4/dev/zero内存映射 272

12.6 访问内存映射的对象 273

12.7 小结 278

12.8 习题 278

第13章 Posix共享内存区 280

13.1 概述 280

13.2 shm_open和shm_unlink函数 281

13.3 ftruncate和fstat函数 282

13.4 简单的程序 283

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

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

13.7 小结 295

13.8 习题 295

第14章 System V共享内存区 296

14.1 概述 296

14.2 shmget函数 296

14.3 shmat函数 297

14.4 shmdt函数 297

14.5 shmctl函数 297

14.6 简单的程序 298

14.7 共享内存区限制 301

14.8 小结 303

14.9 习题 303

第5部分 远程过程调用 304

第15章 门 304

15.1 概述 304

15.2 door_call函数 309

15.3 door_create函数 311

15.4 door_return函数 312

15.5 door_cred函数 313

15.6 door_info函数 313

15.7 例子 314

15.8 描述字传递 326

15.9 door_sever_create函数 330

15.10 door_bind、door_unbind和door_revoke函数 336

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

15.12 小结 342

15.13 习题 343

第16章 Sun RPC 344

16.1 概述 344

16.2 多线程化 352

16.3 服务器捆绑 355

16.4 认证 358

16.5 超时和重传 361

16.6 调用语义 365

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

16.8 XDR:外部数据表示 369

16.9 RPC分组格式 386

16.10 小结 390

16.11 习题 391

后记 393

第6部分 附录 396

附录A 性能测量 396

A.1 概述 396

A.2 结果 397

A.3 消息传递带宽程序 403

A.4 消息传递延迟程序 415

A.5 线程同步程序 421

A.6 进程同步程序 429

附录B 线程入门 432

B.1 概述 432

B.2 基本线程函数:创建和终止 433

附录C 杂凑的源代码 436

C.1 unpipc.h头文件 436

C.2 config.h头文件 439

C.3 标准错误处理函数 440

附录D 部分习题解答 444

附录E 参考文献 462

附录F 函数和宏定义索引表 465

附录G 结构定义索引表 469

附录H 中英文词汇对照表 470