圖書信息
出版社: 人民郵電出版社; 第1版 (2010年7月1日)
外文書名: UNIX Network Programming,Volume 2:Interprocess Communications,Second Edition
叢書名: 圖靈計算機科學叢書
正文語種: 簡體中文
ISBN: 7115230285, 9787115230287
條形碼: 9787115230287
尺寸: 25.8 x 18.4 x 2.4 cm
作者簡介
作者:(美國)W.Richard Stevens
W.Richard Stevens,國際知名的UNIX和網路專家,備受讚譽的技術作家他1951年2月5日出生於尚比亞,後隨父母回到美國中學時就讀於維吉尼亞菲什伯恩軍事學校,1973年獲得密西根大學航空和航天工程學士學位,1975年至1982年,他在亞利桑那州圖森市的基特峰國家天文台從事計算機編程工作,業餘時間喜愛飛行運動,做過兼職飛行教練這期間他分別在1978年和1982年獲得亞利桑那大學系統工程碩士和博士學位此後他去康乃狄克州紐哈芬的健康系統國際公司任主管計算機服務的副總裁,1990年他回到圖森,從事專業技術寫作和諮詢工作寫下了多種經典的傳世之作。
內容簡介
《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版)》內容詳盡且具權威性,幾乎每章都提供精選的習題,並提供了部分習題的答案,是網路研究和開發人員理想的參考書。
目錄
第一部分 簡介
第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