UNIX網路編程卷2:進程間通信

UNIX網路編程卷2:進程間通信

《UNIX網路編程卷2:進程間通信》是2009年人民郵電出版社出版的圖書,作者是史蒂文斯。

基本介紹

  • 書名:UNIX網路編程卷2:進程間通信
  • 原版名稱:UNIX Network Programming Volume2: Interprocess Communications, Second Edition
  • ISBN:9787115215116 
  • 頁數:561頁
  • 出版社:人民郵電出版社
  • 出版時間:2009年11月1日
  • 裝幀:平裝
  • 開本:16
  • 版次:第1版
  • 叢書名: 圖靈原版計算機科學系列
  • 正文語種: 簡體中文, 英語
  • 尺寸:23.2 x 18.6 x 2.6 cm
  • 重量:921 g
作者簡介,內容簡介,媒體評論,目錄,

作者簡介

作者:(美國)史蒂文斯(W.Richard Stevens)
W.Richarqd Stevens,國際知名的LINIX和網路專家,備受讚譽的技術作家。他1951年2月5日出生於尚比亞,後隨父母回到美國。中學時就讀於維吉尼亞菲什伯恩軍事學校,1973年獲得密西根大學航空和航天工程學士學位。1975年至1982年,他在亞利桑那州圖森市的基特峰國家天文合從事計算機編程工作,業餘時間喜愛飛行運動,做過兼職飛行教練。這期間他分別在1978年和1982年獲得亞利桑那大學系統工程碩士和博士學位。此後他去康乃狄克州紐哈芬的健康系統國際公司任主管計算機服務的副總裁。1990年他回到圖森,從事專業技術寫作和諮詢工作。寫下了多種經典的傳世之作,包括《TCP/IP詳解》(三卷)、《UNIX環境高級編程》和《UNIX網路編程》(兩卷)。Steverls於1999年9月1日去世,年僅48歲。2000年他被國際權威機構USENIX追授“終身成就獎”。

內容簡介

《UNIX網路編程 卷2:進程間通信(英文版·第2版)》是一部UNIX網路編程的經典之作。進程間通信(IPC)幾乎是所有Unix程式性能的關鍵,理解IPC也是理解如何開發不同主機間網路應用程式的必要條件。《UNIX網路編程 卷2:進程間通信(英文版·第2版)》從對Posix IPC和System V IPC的內部結構開始討論,全面深入地介紹了4種IPC形式:訊息傳遞(管道、FIFO、訊息佇列)、同步(互斥鎖、條件變數、讀寫鎖、檔案與記錄鎖、信號量)、共享記憶體(匿名共享記憶體、具名共享記憶體)及遠程過程調用(Solaris 門、Sun RPC)。附錄中給出了測量各種IPC形式性能的方法。
《UNIX網路編程 卷2:進程間通信(英文版·第2版)》內容詳盡且具權威性,幾乎每章都提供精選的習題,並提供了部分習題的答案,是網路研究和開發人員理想的參考書。

媒體評論

“我做專業程式設計師已經二十餘年了,每當要寫新程式的時候,我都要參考這本書。Stevens的書是我進入VoIP和音頻CODEC網路編程領域的敲門磚。”.
——C. T. Vanderdecken
“在我做過的項目中,已經記不清楚有多少次靠這套書挽狂瀾於既倒……每位真正的UNIX系統程式設計師都應該買一套。”
——David Sharpe
“對每位UNIX平台的程式設計師而言,這本書都是必備的。它深入闡釋了UNIX平台上的各種IPC API。既涵蓋System V也涉及POSIX標準,對於IPC的論述無可匹敵。書末的附錄對各種管道、FIFO、Posix訊息佇列、System V訊息佇列、門、Sun RPC的性能進行了比較,我從來沒有看到任何書能如此廣泛而深入地介紹這一主題。更何況,它出自權威人物之手。”
——asingh
“Stevens是UNIX網路編程的‘神’,至少是我的‘神’。”
——Matthew MacGibbon

目錄

Part 1 Introduction 1
簡介
Chapter 1 Introduction 3
簡介
1.1 Introduction 3
概述
1.2 Processes, Threads, and the Sharing of Information 5
進程、執行緒與信息共享
1.3 Persistence of IPC Objects 6
IPC對象的持續性
1.4 Name Spaces 7
名字空間
1.5 Effect of fork, exec, and exit on IPC Objects 9
fork、exec和exit對IPC對象的影響
1.6 Error Handling: Wrapper Functions 11
錯誤處理:包裝函式
1.7 Unix Standards 13
Unix標準
1.8 Road Map to IPC Examples in the Text 15
本書中IPC示例的路線圖
1.9 Summary 16
小結
Chapter 2 Posix IPC 19
2.1 Introduction 19
概述
2.2 IPC Names 19
IPC名字
2.3 Creating and Opening IPC Channels 22
創建與打開IPC通道
2.4 IPC Permissions 25
IPC許可權
2.5 Summary 26
小結
Chapter 3 System V IPC 27
3.1 Introduction 27
概述
3.2 key_t Keys and ftok Function 28
key_t鍵和ftok函式
3.3 ipc_perm Structure 30
ipc_perm結構
3.4 Creating and Opening IPC Channels 30
創建與打開IPC通道
3.5 IPC Permissions 32
IPC許可權
3.6 Identifier Reuse 34
標識符重用
3.7 ipcs and ipcrm Programs 36
ipcs和ipcrm程式
3.8 Kernel Limits 36
核心限制
3.9 Summary 38
小結
Part 2 Message Passing 41
訊息傳遞
Chapter 4 Pipes and FIFOs 43
管道和FIFO
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 pclose Functions 52
popen和pclose函式
4.6 FIFOs 54
4.7 Additional Properties of Pipes and FIFOs 58
管道和FIFO的額外屬性
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
管道和FIFO限制
4.12 Summary 73
小結
Chapter 5 Posix Message Queues 75
Posix訊息佇列
5.1 Introduction 75
概述
5.2 mq_open, mq_close, and mq_unlink Functions 76
mq_open、mq_close和mq_unlink函式
5.3 mq_getattr and mq_setattr Functions 79
mq_getattr和mq_setattr函式
5.4 mq_send and mq_receive Functions 82
mq_send和mq_receive函式
5.5 Message Queue Limits 86
訊息佇列限制
5.6 mq_notify Function 87
mq_notify函式
5.7 Posix Realtime Signals 98
Posix實時信號
5.8 Implementation Using Memory-Mapped I/O 106
使用記憶體映射I/O實現
5.9 Summary 126
小結
Chapter 6 System V Message Queues 129
System V訊息佇列
6.1 Introduction 129
概述
6.2 msgget Function 130
msgget函式
6.3 msgsnd Function 131
msgsnd函式
6.4 msgrcv Function 132
msgrcv函式
6.5 msgctl Function 134
msgctl函式
6.6 Simple Programs 135
簡單的程式
6.7 Client-Server Example 140
客戶-伺服器示例
6.8 Multiplexing Messages 142
多路復用訊息
6.9 Message Queues with select and poll 151
訊息佇列上使用select和poll
6.10 Message Queue Limits 152
訊息佇列限制
6.11 Summary 155
小結
Part 3 Synchronization 157
同步
Chapter 7 Mutexes and Condition Variables 159
互斥鎖和條件變數
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 177
讀寫鎖
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 193
記錄加鎖
9.1 Introduction 193
概述
9.2 Record Locking versus File Locking 197
記錄加鎖與檔案加鎖
9.3 Posix fcntl Record Locking 199
Posix fcntl記錄加鎖
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
NFS加鎖
9.10 Summary 216
小結
Chapter 10 Posix Semaphores 219
Posix信號量
10.1 Introduction 219
概述
10.2 sem_open, sem_close, and sem_unlink Functions 225
sem_open、sem_close和sem_unlink函式
10.3 sem_wait and sem_trywait Functions 226
sem_wait和sem_trywait函式
10.4 sem_post and sem_getvalue Functions 227
sem_post和sem_getvalue函式
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
sem_init和sem_destroy函式
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
使用FIFO實現
10.15 Implementation Using Memory-Mapped I/O 262
使用記憶體映射I/O實現
10.16 Implementation Using System V Semaphores 271
使用System V信號量實現
10.17 Summary 278
小結
Chapter 11 System V Semaphores 281
System V信號量
11.1 Introduction 281
概述
11.2 semget Function 282
semget函式
11.3 semop Function 285
semop函式
11.4 semctlFunction 287
semctl函式
11.5 Simple Programs 289
簡單的程式
11.6 File Locking 294
檔案加鎖
11.7 Semaphore Limits 296
信號量限制
11.8 Summary 300
小結
Part 4 Shared Memory 301
共享記憶體
Chapter 12 Shared Memory Introduction 303
共享記憶體簡介
12.1 Introduction 303
概述
12.2 mmap, munmap, and msync Functions 307
mmap、munmap和msync函式
12.3 Increment Counter in a Memory-Mapped File 311
記憶體映射檔案中的計數器遞加
12.4 4.4BSD Anonymous Memory Mapping 315
4.4BSD匿名記憶體映射
12.5 SVR4 /dev/zero Memory Mapping 316
SVR4 /dev/zero記憶體映射
12.6 Referencing Memory-Mapped Objects 317
引用記憶體映射的對象
12.7 Summary 322
小結
Chapter 13 Posix Shared Memory 325
Posix共享記憶體
13.1 Introduction 325
概述
13.2 shm_open and shm_unlink Functions 326
shm_open和shm_unlink函式
13.3 ftruncate and fstat Functions 327
ftruncate和fstat函式
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 343
System V共享記憶體
14.1 Introduction 343
概述
14.2 shmget Function 343
shmget函式
14.3 shmat Function 344
shmat函式
14.4 shmdt Function 345
shmdt函式
14.5 shmctl Function 345
shmctl函式
14.6 Simple Programs 346
簡單的程式
14.7 Shared Memory Limits 349
共享記憶體限制
14.8 Summary 351
小結
Part 5 Remote Procedure Calls 353
遠程過程調用
Chapter 15 Doors 355
15.1 Introduction 355
概述
15.2 door_call Function 361
door_call函式
15.3 door_create Function 363
door_create函式
15.4 door_return Function 364
door_return函式
15.5 door_cred Function 365
door_cred函式
15.6 door_info Function 365
door_info函式
15.7 Examples 366
示例
15.8 Descriptor Passing 379
描述符傳遞
15.9 door_server_create Function 384
door_server_create函式
15.10 door_bind, door_unbind, and door_revoke Functions 390
door_bind、door_unbind和door_revoke函式
15.11 Premature Termination of Client or Server 390
客戶或伺服器的過早終止
15.12 Summary 397
小結
Chapter 16 Sun RPC 399
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
XDR:外部數據表示
16.9 RPC Packet Formats 444
RPC分組格式
16.10 Summary 449
小結
Epilogue 453
後記
Appendix A Performance Measurements 457
性能測量
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 501
執行緒入門
B.1 Introduction 501
概述
B.2 Basic Thread Functions: Creation and Termination 502
基本執行緒函式:創建和終止
Appendix C Miscellaneous Source Code 505
其他原始碼
C.1 unpipc.h Header 505
unpipc.h頭檔案
C.2 config.h Header 509
config.h頭檔案
C.3 Standard Error Functions 510
標準錯誤處理函式
Appendix D Solutions to Selected Exercises 515
精選習題答案
Bibliography 535
參考文獻
Index 539
索引

相關詞條

熱門詞條

聯絡我們