UNIX 網絡編程 捲2 進程間通信, 2/e

[美] W. 理乍得·史蒂文斯(W. Richard Stevens)

  • UNIX 網絡編程 捲2 進程間通信, 2/e-preview-1
  • UNIX 網絡編程 捲2 進程間通信, 2/e-preview-2
UNIX 網絡編程 捲2 進程間通信, 2/e-preview-1

買這商品的人也買了...

商品描述

本書是一部UNIX 網絡編程的經典之作!進程間通信(IPC)幾乎是所有Unix 程序性能的關鍵,理解IPC 也是理解如何開發不同主機間網絡應用程序的必要條件。本書從對Posix IPC 和System V IPC 的內部結構開始討論,全面深入地介紹了4 種IPC 形式:消息傳遞(管道、FIFO、消息隊列)、同步(互斥鎖、條件變量、讀寫鎖、文件與記錄鎖、信號量)、共享內存(匿名共享內存、具名共享內存)及遠程過程調用(Solaris門、Sun RPC)。附錄中給出了測量各種IPC 形式性能的方法。

 

本書內容詳盡且具權威性,幾乎每章都提供精選的習題,並提供了部分習題的答案,是網絡研究和開發人員理想的參考書。

作者簡介

W.理乍得·史蒂文斯(W.Richard Stevens),國際知名的UNIX和網絡專家,備受讚譽的技術作家。生前著有多部經典的傳世之作,包括《UNIX網絡編程》(兩捲本)、《TCP/IP詳解》(三捲本)和本書第1版。

目錄大綱

第一部分 簡介
第1章 簡介
1.1 概述
1.2 進程、線程與信息共享
1.3 IPC對象的持續性
1.4 名字空間
1.5 fork、exec和exit對IPC對象的
影響
1.6 出錯處理:包裹函數
1.7 Unix標準
1.8 書中IPC例子索引表
1.9 小結
習題
第2章 Posix IPC
2.1 概述
2.2 IPC名字
2.3 創建與打開IPC通道
2.4 IPC權限
2.5 小結
習題
第3章 System V IPC
3.1 概述
3.2 key_t鍵和ftok函數
3.3 ipc_perm結構
3.4 創建與打開IPC通道
3.5 IPC權限
3.6 標識符重用
3.7 ipcs和ipcrm程序
3.8 內核限制
3.9 小結
習題
第二部分 消息傳遞
第4章 管道和FIFO
4.1 概述
4.2 一個簡單的客戶-服務器例子
4.3 管道
4.4 全雙工管道
4.5 popen和pclose函數
4.6 FIFO
4.7 管道和FIFO的額外屬性
4.8 單個服務器,多個客戶
4.9 對比疊代服務器與並發服務器
4.10 字節流與消息
4.11 管道和FIFO限制
4.12 小結
習題
第5章 Posix消息隊列
5.1 概述
5.2 mq_open、mq_close和mq_unlink
函數
5.3 mq_getattr和mq_setattr函數
5.4 mq_send和mq_receive函數
5.5 消息隊列限制
5.6 mq_notify函數
5.7 Posix實時信號
5.8 使用內存映射I/O實現Posix消息隊列
5.9 小結
習題
第6章 System V消息隊列
6.1 概述
6.2 msgget函數
6.3 msgsnd函數
6.4 msgrcv函數
6.5 msgctl函數
6.6 簡單的程序
6.7 客戶-服務器例子
6.8 覆用消息
6.9 消息隊列上使用select和poll
6.10 消息隊列限制
6.11 小結
習題
第三部分 同步
第7章 互斥鎖和條件變量
7.1 概述
7.2 互斥鎖:上鎖與解鎖
7.3 生產者-消費者問題
7.4 對比上鎖與等待
7.5 條件變量:等待與信號發送
7.6 條件變量:定時等待和廣播
7.7 互斥鎖和條件變量的屬性
7.8 小結
習題
第8章 讀寫鎖
8.1 概述
8.2 獲取與釋放讀寫鎖
8.3 讀寫鎖屬性
8.4 使用互斥鎖和條件變量實現讀寫鎖
8.5 線程取消
8.6 小結
習題
第9章 記錄上鎖
9.1 概述
9.2 對比記錄上鎖與文件上鎖
9.3 Posix fcntl記錄上鎖
9.4 勸告性上鎖
9.5 強制性上鎖
9.6 讀出者和寫入者的優先級
9.7 啟動一個守護進程的唯一副本
9.8 文件作鎖用
9.9 NFS上鎖
9.10 小結
習題
第10章 Posix信號量
10.1 概述
10.2 sem_open、sem_close和sem_unlink函數
10.3 sem_wait和sem_trywait函數
10.4 sem_post和sem_getvalue函數
10.5 簡單的程序
10.6 生產者-消費者問題
10.7 文件上鎖
10.8 sem_init和sem_destroy函數
10.9 多個生產者,單個消費者
10.10 多個生產者,多個消費者
10.11 多個緩沖區
10.12 進程間共享信號量
10.13 信號量限制
10.14 使用FIFO實現信號量
10.15 使用內存映射I/O實現信號量
10.16 使用System V信號量實現Posix信號量
10.17 小結
習題
第11章 System V 信號量
11.1 概述
11.2 semget函數
11.3 semop函數
11.4 semctl函數
11.5 簡單的程序
11.6 文件上鎖
11.7 信號量限制
11.8 小結
習題
第四部分 共享內存區
第12章 共享內存區介紹
12.1 概述
12.2 mmap、munmap和msync函數
12.3 在內存映射文件中給計數器持續加
12.44.4 BSD匿名內存映射
12.5 SVR4 /dev/zero內存映射
12.6 訪問內存映射的對象
12.7 小結
習題
第13章 Posix共享內存區
13.1 概述
13.2 shm_open和shm_unlink函數
13.3 ftruncate和fstat函數
13.4 簡單的程序
13.5 給一個共享的計數器持續加
13.6 向一個服務器發送消息
13.7 小結
習題
第14章 System V共享內存區
14.1 概述
14.2 shmget函數
14.3 shmat函數
14.4 shmdt函數
14.5 shmctl函數
14.6 簡單的程序
14.7 共享內存區限制
14.8 小結
習題
第五部分 遠程過程調用
第15章 門
15.1 概述
15.2 door_call函數
15.3 door_create函數
15.4 door_return函數
15.5 door_cred函數
15.6 door_info函數
15.7 例子
15.8 描述符傳遞
15.9 door_sever_create函數
15.10 door_bind、door_unbind和door_revoke函