注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡操作系統(tǒng)UNIXUNIX網(wǎng)絡編程:第2版(第2卷 進程間通信)

UNIX網(wǎng)絡編程:第2版(第2卷 進程間通信)

UNIX網(wǎng)絡編程:第2版(第2卷 進程間通信)

定 價:¥58.00

作 者: (美)[W.R.史蒂文斯]W.Richard Stevens著;楊繼張譯
出版社: 清華大學出版社
叢編項: 北京科海培訓中心圖書
標 簽: UNIX

ISBN: 9787302038153 出版時間: 2000-03-01 包裝: 膠版紙
開本: 26cm 頁數(shù): 479 字數(shù):  

內(nèi)容簡介

  多數(shù)精致復雜的程序涉及某種形式的IPC,也就是進程間通信(InterprocessCommuni-cation)。它是一個程序設計原則的自然結(jié)果,即把應用程序設計成一組彼此通信的小片段是比設計成單個龐大的程序更好的方法。從歷史上看,應用程序設計方式按如下的順序漸次出現(xiàn):1.完成全部工作的單個龐大的程序。整個程序的各種片段可作為函數(shù)實現(xiàn),它們以函數(shù)參數(shù)、函數(shù)返回值及全局變量的形式彼此交換信息。2.使用某種形式的IPC彼此通信的多個程序。許多標準Unix工具就是以這種樣式設計的,它們使用shell管道(一種IPC形式)從一個程序向下一個程序傳遞信息。3.由使用某種形式的IPC彼此通信的多個程序構(gòu)成的單個程序。盡管這種通信發(fā)生在線程間而不是進程間,我們?nèi)杂肐PC的說法來描述。把后兩種設計方式結(jié)合起來也是可能的:由多個進程組成,每個進程又由一個或多個線程構(gòu)成,其中涉及給定進程內(nèi)各線程間的通信以及不同進程間的通信。到此為止所描述的是把完成一個給定應用所涉及的工作散布到多個進程中,也許還散布到進程內(nèi)的線程中。在含有多個處理器(CPU)的系統(tǒng)上,多個進程可能(在不同的CPU上)同時運行,一個給定進程的多個線程也可能同時運行。因此,把一個應用的工作散布到多個進程或線程中有可能減少該應用完成給定任務的時間。本書具體敘述4種不同形式的IPC:1.消息傳遞(管道、FIFO、消息隊列)2.同步(互斥鎖、條件變量、讀寫鎖、文件與記錄鎖、信號燈)3.共享內(nèi)存區(qū)(匿名共享內(nèi)存區(qū)、有名共享內(nèi)存區(qū))4.遠程過程調(diào)用(Solaris 門、Sun RPC)本書不討論通過計算機網(wǎng)絡通信的程序的編寫。這種通信形式通常涉及使用TCP/IP協(xié)議族的所謂的套接口API(應用程序編程接口);這些主題在本叢書的第1卷[Stevens1998]中詳細討論。有人可能堅稱單臺主機內(nèi)的即不涉及網(wǎng)絡的IPC(正是本卷的主題)不應該使用,相反,所有應用程序都應該編寫成通過網(wǎng)絡運行在各種主機的分布式應用程序。然而實踐證明,單臺主機內(nèi)的IPC與穿越網(wǎng)絡的通信相比,前者往往快得多,有時還簡單些。諸如共享內(nèi)存區(qū)和同步這樣的技術通常只在單臺主機上可用,穿越網(wǎng)絡時可能沒法用。經(jīng)驗與歷史告訴我們,不涉及網(wǎng)絡的IPC(本卷)和穿越網(wǎng)絡的IPC(本叢書第1卷)都有用武之地。本書構(gòu)筑在同一套叢書第1卷以及作者的其他4本書的基礎之上,它們的書名在全書中縮寫如下:·UNPvl:UNIX Network Programming,Volume 1[Stevens 1998]·APUE:Advanced Programming in the UNIX Environment [Stevens 1992]TCPv1:TCP/IP Illustrated,VOlume 1[Stevens 1994]TCPv2:TCP/lP Illustrated,VOlume 2[Wright and Stevens 1995]TCPv3:TCP/IP Illustrated,Volume 3[Stevens 1996]盡管在以“網(wǎng)絡編程”為書名的叢書中討論IPC看起來可能奇怪,IPC卻往往用在網(wǎng)絡應用程序中。這正如在“UNIX Network Programming” 1990年版的前言中所說:“理解如何給一個網(wǎng)絡開發(fā)軟件的必要條件之一是理解進程間通信(IPC)”。

作者簡介

  作者:W.RichardStevens國際知名的Unix和網(wǎng)絡專家,《TCP/IP詳解》(三卷本)作者W.RichardStevens(1951-1999),是國際知名的Unix和網(wǎng)絡專家;受人尊敬的計算機圖書作家;同時他還是廣受歡迎的教師和顧問。Stevens先生1951年生于贊比亞,他的家庭曾多次搬遷,最終定居于南非。早年,他就讀于美國弗吉尼亞州的費什本軍事學校,后獲得密歇根大學學士、亞利桑那大學系統(tǒng)工程碩士和博士學位。他曾就職于基特峰國家天文臺,從事計算機編程;還曾在康涅狄格州紐黑文市的健康系統(tǒng)國際公司任主管計算機服務的副總裁。Stevens先生不幸病逝于1999年9月1日,他的離去是計算機界的巨大損失。UNIX環(huán)境高級編程(第2版)>>更多作品

圖書目錄

第I部分 簡介

第1章 簡介
1.1 概述
1.2 進程、線程與信息共享
1.3 IPC對象的持續(xù)性
1.4 名字空間
1.5 fork、exec和exit對于IPC對象的影響
1.6 出錯處理:包裹函數(shù)
1.7 Unix標準
1.8 書中IPC例子索引表
1.9 小結(jié)
1.10 習題

第2章 Poslix IPC
2.1 概述
2 2 IPC名字
2.3 創(chuàng)建與打開IPC通道
2.4 IPC權(quán)限
2.5 小結(jié)
2.6 習題

第3章 System V IPC
3.1 概述
3.2 key-t鍵和 ftok函數(shù)
3.3 ipc-perm結(jié)構(gòu)
3.4 創(chuàng)建與打開IPC通道
3.5 IPC權(quán)限
3.6 標識符重用
3.7 ipcs和ipcrm程序
3.8 內(nèi)核限制
3.9 小結(jié)
3.10 習題

第4章 管道和FIFO
4.l 概述
4.2 一個簡單的客戶一服務器例子
4.3 管道
4.4 全雙工管道
4.5 popen和pclose函數(shù)
4.6 FIFO
4.7 管道和FIFO的額外屬性
4.8 單個服務器,多個客戶
4.9 迭代服務器與并發(fā)服務器
4.10 字節(jié)流與消息
4.11 管道和 FIFO限制
4.12 小結(jié)
4.13 習題

第5章 Posix 消息隊列
5.l 概述
5.2 mq-open、mq-close和mq-unlink函數(shù)
5.3 mq-getattr和mq-Setattr函數(shù)
5.4 mq-send和mq-receive函數(shù)
5.5 消息隊列限制
5.6 mq-notify函數(shù)
5.7 Posix實時信號
5.8 使用內(nèi)存映射I/O實現(xiàn)Posix消息隊列
5.9 小結(jié)
5.10 習題

第6章 System V 消息隊列
6.1 概述
6.2 msgget 函數(shù)
6.3 msgsnd函數(shù)
6.4 msgrcv函數(shù)
6.5 msgctl函數(shù)
6.6 簡單的程序
6.7 客戶-服務器例子
6.8 復用消息
6.9 消息隊列上使用 select和 Poll
6.10 消息隊列限制
6.11 小結(jié)
6.12 習題

第3部分 同 步

第7章 互斥鎖和條件變目
7.1 概述
7.2 互斥鎖:上鎖與解鎖
7.3 生產(chǎn)者一消費者問題
7.4 上鎖與等待
7.5 條件變量:等待與信號發(fā)送
7.6 條件變量:定時等待和廣播
7.7 互斥鎖和條件變量的屬性
7.8 小結(jié)
7.9 習題

第8章 讀寫鎖
8.1 概述
8.2 獲取與釋放讀寫鎖
8.3 讀寫鎖屬性
8.4 使用互斥鎖和條件變量實現(xiàn)讀寫鎖
8.5 線程取消
8.6 小結(jié)
8.7 習題

第9章 記錄上鎖
9.1 概述
9.2 記錄上鎖與文件上鎖
9.3 Posix fcntl記錄上鎖
9.4 勸告性鎖
9.5 強制性上鎖
9.6 讀出者和寫入者的優(yōu)先級
9.7 啟動一個守護進程的唯一拷貝
9.8 文件作鎖用
9.9 NFS上鎖
9.10 小結(jié);
9.11 習題;

第10章 posix 信號燈
10.1 概述
10.2 sem-open、 sem-close和 sem- unlink函數(shù)
10.3 sem-walt和 sem-trywait函數(shù)
10.4 sem-post 和 semgetvalue 函數(shù)
10.5 簡單的程序
10.6 生產(chǎn)者-消費者問題
10.7 文件上鎖
10.8 sem-Inlt和 sem-destroy函數(shù)
10.9 多個生產(chǎn)者,單個消費者
10.10 多個生產(chǎn)者,多個消費者
10.11 多個緩沖區(qū)
10.12 進程間共車信號燈
10.13 信號燈限制
10.14 使用 FIFO實現(xiàn)信號燈
10.15 使用內(nèi)存映射1/O實現(xiàn)信號燈
10.16 使用 System V信號燈實現(xiàn) Posix信號燈
10.17 小結(jié)
10.18 習題

第11章 System V信號燈
11.1 概述
11.2 emget函數(shù)
11.3 semop函數(shù)
11.4 semctl函數(shù)
11.5 簡單的程序
11.6 文件上鎖
11.7 信號燈限制
11.8 小結(jié)
11.9 習題

第4部分 共享內(nèi)存區(qū)

第12章 共享內(nèi)存區(qū)介紹
12.1 概述
12.2 mmap、munmap和 msync函數(shù)
12.3 在內(nèi)存映射文件中給計數(shù)器持續(xù)加1
12.4 4.4BSD匿名內(nèi)存映射
12.5 SVR4/dev/zero內(nèi)存映射
12.6 訪問內(nèi)存映射的對象
12.7 小結(jié)
13.3 ftruncate和 fstat函數(shù)
13.4 簡單的程序
13.5 給一個共車的計數(shù)器持續(xù)加
13.6 向一個服務器發(fā)送消息
13.7 小結(jié)
13.8 習題

第14章 System V共享內(nèi)存區(qū)
14.1 概述
14.2 shmget函數(shù)
14.3 shmat函數(shù)
14.4 shmdt函數(shù)
14.5 shmctl函數(shù)
14.6 簡單的程序
14.7 共享內(nèi)存區(qū)限制
14.8 小結(jié)
14.9 習題

第5部分 遠程過程調(diào)用

第15章 門
15.1 概述
15.2 door-call函數(shù)
15.3 door-create函數(shù)
15.4 door-return函數(shù)
15.5 door-ored函數(shù)
15.6 door-info函數(shù)
15.7 例子
15.8 描述字傳遞
15.9 door-sever-create函數(shù)
15.10 door-bind、door-unbind和door-revoke函數(shù)
15.11 客戶或服務器的過早終止
15.12 小結(jié)
15.13 習題

第16章 Sun RPC
16.1 概述
16.2 多線程化
16.3 服務器捆綁
16.4 認證
16.5 超時和重傳
16.6 調(diào)用語義
16.7 客戶或服務器的過早終止
16.8 XDR:外部數(shù)據(jù)表示
16.9 RPC分組格式
16.10 小結(jié)
16.11 習題

后記

第6部分 附 錄
附錄A 性能測量
A.1 概述
A.2 結(jié)果
A.3 消息傳遞帶寬程序
A.4 消息傳遞延遲程序
A.5 線程同步程序
A.6 進程同步程序
附錄B 線程入門
B.1 概述
B.2 基本線程函數(shù):創(chuàng)建和終止
附錄C 雜湊的源代碼
C.1 unpipc.h頭文件
C.2 config.h頭文件
C.3 標準錯誤處理函數(shù)
附錄D 部分習題解答
附錄E 參考文獻
附錄F 函數(shù)和宏定義索引表
附錄G 結(jié)構(gòu)定義索引表
附錄H 中英文詞匯對照表

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號