-
UNIX Network Programming Volume 2(Unix网络编程卷2英文版)下载
资源介绍
《UNIX Network Programming Volume 2》(Unix网络编程卷2英文版,djvu格式,带绿色小巧的阅读器)
原书名: UNIX Network Programming Volume 2:Interprocess Communications 2nd ed.
原出版社: Prentice Hall/Pearson
作者: W.Richard Stevens
preface
part 1. introduction
chapter 1. introduction
1.1 introduction 3
1.2 processes, threads, and the sharing of information 5
1.3 persistence of ipc objects 6
1.4 name spaces 7
1.5 effect of fork, exec, and exit on ipc objects 9
1.6 error handling: wrapper functions 11
1.7 unix standards 13
1.8 road map to ipc examples in the text 15
1.9 summary 16
chapter 2. posix ipc
2.1 introduction 19
2.2 ipc names 19
2.3 creating and opening ipc channels 22
2.4 ipc permissions 25
2.5 summary 26
.chapter 3. system v ipc
3.1 introduction 27
3.2 key_t keys and ftok function 28
3.3 ipc_perm structure 30
3.4 creating and opening ipc channels 30
3.5 ipc permissions 32
3.6 identifier reuse 34
3.7 ipcs and ipcrm programs 36
3.8 kernel limits 36
3.9 summary 38
part 2. message passing
chapter 4. pipes and fifos
4.1 introduction 43
4.2 a simple client--server example 43
4.3 pipes 44
4.4 full-duplex pipes 50
4.5 popen and pc1ose functions 52
4.6 fifos 54
4.7 additional properties of pipes and fifos 58
4.8 one server, multiple clients 60
4.9 iterative versus concurrent servers 66
4.10 streams and messages 67
4.11 pipe and fifo limits 72
4.12 summary 73
chapter 5. posix message oueues
5.1 introduction 75
5.2 mq_open, mq_c1ose, and mq_un1ink functions 76
5.3 mq_getattr and mq_setattr functions 79
5.4 mq_send and mq_receive functions 82
5.5 message queue limits 86
5.6 mq_notify function 87
5.7 posix realtime signals 98
5.8 implementation using memory-mapped i/o 106
5.9 summary 126
chapter 6. system v message queues
6.1 introduction 129
6.2 msgget function 130
6.3 msgsnd function 131
6.4 msgrcv function 132
6.5 msgctl function 134
6.6 simple programs 135
6.7 client-server example 140
6.8 multiplexing messages 142
6.9 message queues with se1ect and poll 151
6.10 message queue limits 152
6.11 summary 155
part 3. synchronization
chapter 7. mutexes and condition v8riables
7.1 introduction 159
7.2 mutexes: locking and unlocking 159
7.3 producer-consumer problem 161
7.4 locking versus waiting 165
7.5 condition variables: waiting and signaling 167
7.6 condition variables: timed waits and broadcasts 171
7.7 mutexes and condition variable attributes 172
7.8 summary 174
chapter 8. read-write locks
8.1 introduction 177
8.2 obtaining and releasing read-write locks 178
8.3 read--write lock attributes 179
8.4 implementation using mutexes and condition variables 179
8.5 thread cancellation 187
8.6 summary 192
chapter 9. record locking
9.1 introduction 193
9.2 record locking versus file locking 197
9.3 posix fcntl record locking 199
9.4 advisory locking 203
9.5 mandatory locking 204
9.6 priorities of readers and writers 207
9.7 starting only one copy of a daemon 213
9.8 lock files 214
9.9 nfs locking 216
9.10 summary 216
chapter 10. posix semaphores
10.1 introduction 219
10.2 sem_open, sem_close, and sem_unlink functions 225
10.3 sem_wait and sem_trywait functions 226
10.4 sem_post and semgetva1ue functions 227
10.5 simple programs 228
10.6 producer-consumer problem 233
10.7 file locking 238
10.8 sem_init and sem_destroy functions 238
10.9 multiple producers, one consumer 242
10.10 multiple producers, multiple consumers 245
10.11 multiple buffers 249
10.12 sharing semaphores between processes 256
10.13 semaphore limits 257
10.14 implementation using fifos 257
10.15 implementation using memory-mapped i/o 262
10.16 implementation using system v semaphores 271
10.17 summary 278
chapter 11 system v semaphores
11.1 introduction 281
11.2 semget function 282
11.3 semop function 285
11.4 semct1 function 287
11.5 simple programs 289
11.6 file locking 294
11.7 semaphore limits 296
11.8 summary 300
part 4. shared memory
chapter 12. shared memory introduction
12.1 introduction 303
12.2 mmap, munmap, and msync functions 307
12.3 increment counter in a memory-mapped file 311
12.4 4.4bsd anonymous memory mapping 315
12.5 svr4/dev/zero memory mapping 316
12.6 referencing memory-mapped objects 317
12.7 summary 322
chapter 13. posix shared memory
13.1 introduction 325
13.2 shm_open and shm_un1ink functions 326
13.3 ftruncate and fstat functions 327
13.4 simple programs 328
13.5 incrementing a shared counter 333
13.6 sending messages to a server 336
13.7 summary 342
chapter 14. system v shared memory
14.1 introduction 343
14.2 shmget function 343
14.3 shmat function 344
14.4 shmdt function 345
14.5 shmct1 function 345
14.6 simple programs 346
14.7 shared memory limits 349
14.8 summary 351
part 5. remote procedure calls
chapter 15. doors
15.1 introduction 355
15.2 door_cal1 function 361
15.3 door_create function 363
15.4 door_return function 364
15.5 door_cred function 365
15.6 door_info function 365
15.7 examples 366
15.8 descriptor passing 379
15.9 door server create function 384
15.10 door_bind, door_unbind, and door_revoke functions 390
15.11 premature termination of client or server 390
15.12 summary 397
chapter 16. sun rpc
16.1 introduction 399
16.2 multithreading 407
16.3 server binding 411
16.4 authentication 414
16.5 timeout and retransmission 417
16.6 call semantics 422
16.7 premature termination of client or server 424
16.8 xdr: external data representation 426
16.9 rpc packet formats 444
16.10 summary 449
epilogue
appendix a. performance measurements
a.1 introduction 457
a.2 results 458
a.3 message passing bandwidth programs 467
a.4 message passing latency programs 480
a.5 thread synchronization programs 486
a.6 process synchronization programs 497
appendix b. a threads primer
b.1 introduction 501
b.2 basic thread functions: creation and t6rmination 502
appendix c. miscellaneous source code
c.1 unpipc. h header 505
c.2 config. h header 509
c.3 standard error functions 510
appendix d. solutions to selected exercises
bibliography