注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)其他操作系統(tǒng)UNIX系統(tǒng)編程(原書(shū)第2版)

UNIX系統(tǒng)編程(原書(shū)第2版)

UNIX系統(tǒng)編程(原書(shū)第2版)

定 價(jià):¥78.00

作 者: (美)Kay A.Robbins,(美)Steven Robbins著;陳涓,趙振平譯;陳涓譯
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): 計(jì)算機(jī)科學(xué)叢書(shū)
標(biāo) 簽: UNIX

ISBN: 9787111161905 出版時(shí)間: 2005-05-01 包裝: 平裝
開(kāi)本: 26cm 頁(yè)數(shù): 656 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)是UNIX系統(tǒng)編程的經(jīng)典教材,并基于最新的UNIX標(biāo)準(zhǔn)進(jìn)行了更新,其內(nèi)容完全覆蓋文件、信號(hào)、POSIX線程、UDP、Web和客戶機(jī)-服務(wù)器等相關(guān)內(nèi)容,并對(duì)通信、并發(fā)和多線程問(wèn)題進(jìn)行了透徹的研究,對(duì)復(fù)雜的概念進(jìn)行了全面、完善以及明晰的解釋,并以此而聞名。本書(shū)不僅提供了大量實(shí)例和練習(xí),還專門設(shè)計(jì)了有針對(duì)性的項(xiàng)目,并給出了參考答案,幫助讀者理解相關(guān)的概念,增強(qiáng)應(yīng)用能力。本書(shū)適合作為高等院校計(jì)算機(jī)專業(yè)教材,也可供軟件開(kāi)發(fā)人員參考。本書(shū)前言前言:本書(shū)是1995年P(guān)renticeHall出版的《PracticalUNIXProgramming:AGuidetoCommunication,ConcurrencyandMultithreading》的第2版。為了更好地反映本書(shū)的內(nèi)容,我們修改了書(shū)名(英文版)。同上一版相比,除了書(shū)名,我們還對(duì)許多地方進(jìn)行了修改。因特網(wǎng)已經(jīng)成為計(jì)算和社會(huì)領(lǐng)域中的一個(gè)主導(dǎo)因素。我們的個(gè)人信息聯(lián)網(wǎng)了,我們的軟件經(jīng)常會(huì)受到攻擊。因此,編寫正確的代碼顯得更加重要。在新的版本中,我們盡量去生成能夠正確地處理錯(cuò)誤和特殊情況的代碼。我們知道,只是聲稱“處理了所有的錯(cuò)誤”,卻在給出的代碼示例中省略掉錯(cuò)誤處理,是沒(méi)有什么說(shuō)服力的。但是,錯(cuò)誤處理使代碼變得更加復(fù)雜,我們想盡力使代碼清晰一些。本書(shū)對(duì)前一版的另一個(gè)重大改進(jìn)就是采用了單一UNIX規(guī)范,在本書(shū)中我們稱之為POSIX。我們?cè)僖膊挥脼檫x用哪個(gè)廠商的庫(kù)函數(shù)而發(fā)愁了—現(xiàn)在已有正式的版本了。在編寫本書(shū)的過(guò)程中,我們盡了最大的努力來(lái)遵循這個(gè)標(biāo)準(zhǔn)。本書(shū)與眾不同之處是含有練習(xí)和項(xiàng)目章。實(shí)際上,本書(shū)就是從一個(gè)項(xiàng)目手冊(cè)發(fā)展而來(lái)的,這個(gè)項(xiàng)目手冊(cè)是美國(guó)國(guó)家科學(xué)基金課題(NationalScienceFoundationGrant)的一部分。在完成這個(gè)項(xiàng)目的初期開(kāi)發(fā)之后,我們逐漸認(rèn)識(shí)到:完成這個(gè)項(xiàng)目所需的資料分散在很多地方—通??梢栽谀切┨峁┝舜罅考?xì)節(jié)但很少進(jìn)行概念描述的參考書(shū)中找到這些資料。這樣,這本書(shū)就逐步演變成一本基于最新UNIX標(biāo)準(zhǔn)的完備的參考書(shū)了。本書(shū)分為四個(gè)部分,每個(gè)部分中都包括一些主題章和項(xiàng)目章。主題章以循序漸進(jìn)的方式涵蓋了特定的資料,其中有很多例子和小練習(xí)。本書(shū)還針對(duì)進(jìn)程管理、并發(fā)和通信過(guò)程中的很多基本概念提供了編程練習(xí)(即項(xiàng)目章)。這些編程練習(xí)和傳統(tǒng)科學(xué)課程中的實(shí)驗(yàn)作用相當(dāng)。只有通過(guò)實(shí)踐,才能真正理解書(shū)中的概念。這些練習(xí)的難度由淺入深,很多練習(xí)都只要不到100行的代碼就可以實(shí)現(xiàn)。下表對(duì)本書(shū)的結(jié)構(gòu)進(jìn)行了總結(jié)。有14個(gè)主題章,這些主題章與8個(gè)項(xiàng)目章相互獨(dú)立。第一次通讀本書(shū)時(shí)可以略過(guò)項(xiàng)目章。項(xiàng)目章通過(guò)開(kāi)發(fā)一個(gè)擴(kuò)展的應(yīng)用將幾個(gè)主題章中的資料整合起來(lái)。這些項(xiàng)目包含兩個(gè)層面:除了說(shuō)明編程思想之外,還引導(dǎo)讀者去理解與應(yīng)用相關(guān)的更高級(jí)的主題。這些項(xiàng)目都是分階段設(shè)計(jì)的,大多數(shù)完整的實(shí)現(xiàn)都只需要幾百行代碼。由于不需要編寫大量的代碼,因此讀者可以將注意力集中在對(duì)概念的理解而不是代碼的調(diào)試上。為了簡(jiǎn)化編程,我們提供了網(wǎng)絡(luò)通信和日志輸出的庫(kù)。對(duì)專業(yè)的程序員來(lái)說(shuō),主題章結(jié)尾處的練習(xí)提供了基本的練習(xí)內(nèi)容。通常,使用本書(shū)的教師可以在一個(gè)學(xué)期的課程中挑選幾個(gè)練習(xí)和一個(gè)項(xiàng)目章讓學(xué)生們實(shí)現(xiàn)。每個(gè)項(xiàng)目都有很多變化,因此這些項(xiàng)目可以在多個(gè)學(xué)期中反復(fù)使用。讀者可以選擇不同的方式來(lái)讀這本書(shū)。第一部分中的主題章是學(xué)習(xí)本書(shū)其他部分的基礎(chǔ)。讀完第一部分的主題章之后,讀者就可以按任意的順序來(lái)學(xué)習(xí)第二部分到第四部分了。但后繼各章結(jié)尾處有關(guān)交互(例如,線程是怎樣與信號(hào)交互的)的討論除外。我們假定讀者是一名很好的C程序員,盡管不一定是UNIXC的程序員。讀者應(yīng)該熟悉C語(yǔ)言編程和基本的數(shù)據(jù)結(jié)構(gòu)。如果你剛剛接觸UNIX,附錄A中給出了程序開(kāi)發(fā)的一些必備知識(shí)。本書(shū)中包括標(biāo)準(zhǔn)函數(shù)的概要,在“概要”的右下角列出了用來(lái)說(shuō)明函數(shù)的相關(guān)標(biāo)準(zhǔn)。知識(shí)的更新如此之快,然而書(shū)的內(nèi)容卻是有限的。我們歡迎讀者給我們提出意見(jiàn)和建議。讀者可以給我們發(fā)電子郵件authors@usp.cs.utsa.edu。我們盡了最大的努力來(lái)編寫一本無(wú)差錯(cuò)的書(shū)。但是,如果你是第一個(gè)向我們指出某個(gè)錯(cuò)誤的人,我們會(huì)在本書(shū)的網(wǎng)站上向你表示誠(chéng)摯的謝意。我們?cè)赪eb站http://usp.cs.utsa.edu/usp上提供了與本書(shū)相關(guān)的信息。本書(shū)包含的所有代碼都可以從這個(gè)Web站點(diǎn)上下載。譯者序:本書(shū)是一本介紹UNIX系統(tǒng)的工作原理以及學(xué)習(xí)UNIX系統(tǒng)程序編寫方法的經(jīng)典教材。對(duì)于程序員來(lái)說(shuō),本書(shū)同樣是一本不可多得的案頭必備參考書(shū)。讀者在掌握了操作系統(tǒng)、C語(yǔ)言以及計(jì)算機(jī)網(wǎng)絡(luò)的基本知識(shí)后學(xué)習(xí)本書(shū),會(huì)發(fā)現(xiàn)本書(shū)將使讀者對(duì)UNIX系統(tǒng)的理解登上一個(gè)新的高度,并將讀者編寫多線程和網(wǎng)絡(luò)通信程序的能力提高到一個(gè)新的境界。本書(shū)有以下幾個(gè)突出特點(diǎn):其一,在講述基本概念時(shí),本書(shū)圍繞主題設(shè)計(jì)了大量實(shí)例程序和練習(xí)來(lái)加深讀者對(duì)概念的理解;其二,在各部分的最后,作者精心設(shè)計(jì)了生動(dòng)有趣的項(xiàng)目來(lái)總結(jié)各部分的主要內(nèi)容。這些項(xiàng)目,例如破解命令解釋程序、WWW重定向、因特網(wǎng)音頻廣播、服務(wù)器性能等的取材都有很強(qiáng)的實(shí)際應(yīng)用背景,稍加完善就是一個(gè)可用的程序;其三,本書(shū)采用了最新的UNIX標(biāo)準(zhǔn):SingleUNIXSpecification,并在書(shū)中加入了大量的最新信息,如火星探路者中的優(yōu)先級(jí)反轉(zhuǎn)缺陷等。另外,本書(shū)各章末尾處的擴(kuò)展閱讀也給讀者指出了相關(guān)領(lǐng)域經(jīng)典的或最新的參考資料并進(jìn)行了細(xì)致的評(píng)價(jià),對(duì)讀者進(jìn)一步研究提供了很好的指導(dǎo)。如果您希望了解并掌握操作系統(tǒng)接口及其工作原理,我們相信本書(shū)將是一本合適的教材及參考書(shū);如果您已經(jīng)具備了初步的UNIX程序編寫能力,本書(shū)將會(huì)引領(lǐng)您進(jìn)入系統(tǒng)程序編寫者的行列;如果您已經(jīng)是一個(gè)熟練的系統(tǒng)程序員了,本書(shū)豐富的內(nèi)容實(shí)例、充實(shí)的知識(shí)架構(gòu)也一定會(huì)讓您對(duì)計(jì)算機(jī)系統(tǒng)的理解有新的升華。本書(shū)的第20、21、22章由趙振平翻譯,其他部分由陳涓翻譯。郭傳雄和趙振平校閱了全書(shū)。致謝我們非常感謝MikeSpeciner和BobLynch,他們通讀了全部手稿,并提出了很多有益的建議。我們尤其要對(duì)MaryLouNohr細(xì)心睿智的編輯工作表示感謝。我們還要對(duì)NealWagner和RadiaPerlman給予的鼓勵(lì)和建議表示感謝。從1988年至今(2003年),我們?yōu)榇髮W(xué)本科生和研究生開(kāi)設(shè)了操作系統(tǒng)課程,本書(shū)中很多資料都曾作為這些教學(xué)課程的一部分使用。學(xué)習(xí)此課程的學(xué)生們都經(jīng)歷了書(shū)稿發(fā)展的不同階段,并對(duì)不斷出現(xiàn)的項(xiàng)目進(jìn)行了實(shí)際的測(cè)試。他們提供的程序故障、注釋、抱怨和建議都使本書(shū)更加出色,并且使我們對(duì)這些主題之間的相互聯(lián)系有了更深刻的認(rèn)識(shí)。在早期書(shū)稿中發(fā)現(xiàn)錯(cuò)誤的學(xué)生有JosephBell、CarlosCardenas、IgorGrinshpan、JasonJendrusch和JamesManion。我們要感謝美國(guó)國(guó)家科學(xué)基金會(huì)通過(guò)NSF-ILI授權(quán)的USE-0950497對(duì)我們組建實(shí)驗(yàn)室提供的支持,這樣我們才有機(jī)會(huì)去開(kāi)展最初的課程,而這些課程正是本書(shū)的基礎(chǔ)。NSF(DUE-975093、DUE-9752165和DUE-0088769)還為開(kāi)發(fā)那些用來(lái)探索和分析操作系統(tǒng)概念的工具提供了支持。我們要感謝PrenticeHall的編輯GregDoench在整個(gè)過(guò)程中為我們提供的指導(dǎo),還要感謝我們的出版編輯WilliamMara使此書(shū)得以出版。我們用對(duì)本書(shū)進(jìn)行了排版,的制作者提供了可以免費(fèi)使用的軟件,我們還要向他們表達(dá)我們的謝意。我們特別要感謝我們的家人,他們給了我們無(wú)限的愛(ài)和支持,尤其要感謝我們的孩子Nicole和Thomas,他們對(duì)這項(xiàng)艱巨的任務(wù)表示了熱情和理解。

作者簡(jiǎn)介

  KayA.Robbins和StevenRobbins從麻省理工學(xué)院獲得博士學(xué)位。他們現(xiàn)任教于得克薩斯大學(xué)圣安東尼奧分校的計(jì)算機(jī)科學(xué)系。相關(guān)圖書(shū)數(shù)據(jù)倉(cāng)庫(kù)(原書(shū)第3版)編譯原理并行計(jì)算導(dǎo)論(原書(shū)第2版)離散數(shù)學(xué)導(dǎo)學(xué)數(shù)據(jù)庫(kù)設(shè)計(jì)教程(第2版)3D游戲卷1實(shí)時(shí)渲染與軟件技術(shù)3D游戲卷2動(dòng)畫(huà)與高級(jí)實(shí)時(shí)渲染技術(shù)數(shù)字圖像處理疑難解析現(xiàn)代信息檢索CAXA數(shù)控銑CAD/CAM技術(shù)C語(yǔ)言的科學(xué)和藝術(shù)計(jì)算機(jī)視覺(jué)信息系統(tǒng)原理:原書(shū)第6版計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)方案(原書(shū)第3版)計(jì)算機(jī)科學(xué)概論(原書(shū)第2版)可擴(kuò)展并行計(jì)算技術(shù)、結(jié)構(gòu)與編程數(shù)據(jù)庫(kù)原理、編程與性能Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程嵌入式微控制器微機(jī)接口技術(shù)實(shí)驗(yàn)教程神經(jīng)網(wǎng)絡(luò)原理(原書(shū)第2版)C++語(yǔ)言的設(shè)計(jì)和演化信息論、編碼與密碼學(xué)軟件需求組合數(shù)學(xué)(原書(shū)第4版)JAVA編程思想(第2版)數(shù)據(jù)庫(kù)系統(tǒng)導(dǎo)論并行程序設(shè)計(jì)數(shù)據(jù)庫(kù)與事務(wù)處理操作系統(tǒng)現(xiàn)代操作系統(tǒng)(第2版)計(jì)算機(jī)網(wǎng)絡(luò):自頂向下方法與Internet特色(原書(shū)第3版)高級(jí)編譯器設(shè)計(jì)與實(shí)現(xiàn)3D計(jì)算機(jī)圖形學(xué)(原書(shū)第3版)C程序設(shè)計(jì)語(yǔ)言(第2版·新版)習(xí)題解答計(jì)算機(jī)網(wǎng)絡(luò)與因特網(wǎng)(原書(shū)第4版)人工智能:英文C++編程思想。第2卷:實(shí)用編程技術(shù)模式分析的核方法

圖書(shū)目錄

第一部分  基礎(chǔ)知識(shí)
第1章  技術(shù)對(duì)程序的沖擊        1
1.1  變化中的術(shù)語(yǔ)        1
1.2  時(shí)間和速度        2
1.3  多道程序設(shè)計(jì)和分時(shí)        3
1.4  應(yīng)用層的并發(fā)        5
1.4.1  中斷        5
1.4.2  信號(hào)        5
1.4.3  輸入和輸出        6
1.4.4  進(jìn)程、線程和資源共享        6
1.4.5  共享內(nèi)存的多個(gè)處理器        6
1.4.6  網(wǎng)絡(luò)作為計(jì)算機(jī)        7
1.5  安全和容錯(cuò)        7
1.6  侵入帶來(lái)的緩沖區(qū)溢出        8
1.6.1  緩沖區(qū)溢出的后果        9
1.6.2  緩沖區(qū)溢出與安全        10
1.7  UNIX標(biāo)準(zhǔn)        11
1.8  擴(kuò)展閱讀        12
第2章  程序、進(jìn)程和線程        14
2.1  程序怎樣轉(zhuǎn)換成進(jìn)程        14
2.2  線程和執(zhí)行線程        15
2.3  程序映像的布局        15
2.4  庫(kù)函數(shù)調(diào)用        17
2.5  函數(shù)返回值和錯(cuò)誤        20
2.6  參數(shù)數(shù)組        21
2.6.1  用makeargv創(chuàng)建參數(shù)數(shù)組        22
2.6.2  makeargv的實(shí)現(xiàn)        23
2.7  線程安全的函數(shù)        26
2.8  靜態(tài)變量的使用        28
2.9  靜態(tài)對(duì)象的結(jié)構(gòu)        29
2.10  進(jìn)程環(huán)境        34
2.11  進(jìn)程終止        36
2.12  練習(xí):一個(gè)env工具        38
2.13  練習(xí):消息日志        39
2.14  擴(kuò)展閱讀        40
第3章  UNIX系統(tǒng)中的進(jìn)程        41
3.1  進(jìn)程標(biāo)識(shí)        41
3.2  進(jìn)程狀態(tài)        42
3.3  UNIX進(jìn)程的創(chuàng)建與fork調(diào)用        44
3.4  wait函數(shù)        49
3.5  exec函數(shù)        55
3.6  后臺(tái)進(jìn)程與守護(hù)進(jìn)程        59
3.7  臨界區(qū)        61
3.8  練習(xí):進(jìn)程鏈        61
3.9  練習(xí):進(jìn)程扇        62
3.10  擴(kuò)展閱讀        63
第4章  UNIX I/O        64
4.1  設(shè)備術(shù)語(yǔ)        64
4.2  讀和寫        64
4.3  打開(kāi)和關(guān)閉文件        72
4.4  select函數(shù)        76
4.5  poll函數(shù)        82
4.6  文件表示        84
4.6.1  文件描述符        85
4.6.2  文件指針和緩沖        87
4.6.3  文件描述符的繼承        88
4.7  過(guò)濾器和重定向        92
4.8  文件控制        94
4.9  練習(xí):原子日志        97
4.10  練習(xí):cat工具        102
4.11  擴(kuò)展閱讀        103
第5章  文件和目錄        104
5.1  UNIX文件系統(tǒng)導(dǎo)航        104
5.1.1  當(dāng)前工作目錄        105
5.1.2  搜索路徑        108
5.2  目錄訪問(wèn)        108
5.2.1  訪問(wèn)文件狀態(tài)信息        110
5.2.2  確定文件的類型        113
5.3  UNIX文件系統(tǒng)的實(shí)現(xiàn)        113
5.3.1  UNIX文件的實(shí)現(xiàn)        114
5.3.2  目錄的實(shí)現(xiàn)        116
5.4  硬鏈接和符號(hào)鏈接        116
5.4.1  創(chuàng)建或刪除一個(gè)鏈接        117
5.4.2  創(chuàng)建和刪除符號(hào)鏈接        120
5.5  練習(xí):which命令        125
5.6  練習(xí):通知程序        125
5.7  練習(xí):news biff程序        127
5.8  練習(xí):遍歷目錄        128
5.9  擴(kuò)展閱讀        130
第6章  UNIX特殊文件        131
6.1  管道        131
6.2  流水線        134
6.3  FIFO        137
6.4  管道與客戶機(jī)-服務(wù)器模型        140
6.5  終端控制        146
6.6  音頻設(shè)備        154
6.7  練習(xí):音頻        158
6.8  練習(xí):路障        160
6.9  練習(xí):stty命令        161
6.10  練習(xí):重溫客戶機(jī)-服務(wù)器        162
6.11  擴(kuò)展閱讀        162
第7章  項(xiàng)目:令牌環(huán)        163
7.1  環(huán)形拓?fù)?nbsp;       163
7.2  環(huán)的形成        164
7.3  環(huán)的研究        169
7.4  簡(jiǎn)單的通信        170
7.5  用令牌實(shí)現(xiàn)互斥        171
7.6  用投票實(shí)現(xiàn)互斥        172
7.7  匿名環(huán)中的領(lǐng)導(dǎo)者選舉        173
7.8  通信中使用的令牌環(huán)        174
7.9  應(yīng)用流水線技術(shù)的預(yù)處理器        176
7.10  并行環(huán)算法        177
7.10.1  圖像過(guò)濾        178
7.10.2  矩陣乘法        179
7.11  彈性環(huán)        180
7.12  擴(kuò)展閱讀        181
第二部分  異步事件
第8章  信號(hào)        183
8.1  信號(hào)的基本概念        183
8.2  產(chǎn)生信號(hào)        184
8.3  對(duì)信號(hào)掩碼和信號(hào)集進(jìn)行操作        187
8.4  捕捉與忽略信號(hào)—sigaction        192
8.5  等待信號(hào)—pause、sigsuspend和sigwait        197
8.5.1  pause函數(shù)        197
8.5.2  sigsuspend函數(shù)        198
8.5.3  sigwait函數(shù)        204
8.6  信號(hào)處理:錯(cuò)誤和異步信號(hào)安全        205
8.7  用siglongjmp和sigsetjmp進(jìn)行程序控制        207
8.8  用異步I/O編程        209
8.9  練習(xí):轉(zhuǎn)儲(chǔ)統(tǒng)計(jì)        218
8.10  練習(xí):同時(shí)操作慢速設(shè)備        218
8.11  擴(kuò)展閱讀        219
第9章  時(shí)間和定時(shí)器        220
9.1  POSIX時(shí)間        220
9.1.1  用從Epoch開(kāi)始的秒數(shù)來(lái)表示時(shí)間        220
9.1.2  顯示日期和時(shí)間        221
9.1.3  用struct timeval來(lái)表示時(shí)間        223
9.1.4  使用實(shí)時(shí)時(shí)鐘        225
9.1.5  實(shí)耗時(shí)間和處理器時(shí)間的對(duì)比        227
9.2  睡眠函數(shù)        230
9.3  POSIX:XSI間隔定時(shí)器        231
9.4  實(shí)時(shí)信號(hào)        235
9.5  POSIX:TMR間隔定時(shí)器        238
9.6  定時(shí)器漂移、超限和絕對(duì)時(shí)間        242
9.7  擴(kuò)展閱讀        250
第10章  項(xiàng)目:虛擬定時(shí)器        251
10.1  項(xiàng)目概述        251
10.2  簡(jiǎn)單的定時(shí)器        253
10.3  對(duì)五個(gè)定時(shí)器中的一個(gè)進(jìn)行設(shè)置        254
10.3.1  virtualtimers對(duì)象        254
10.3.2  hardwaretimer對(duì)象        256
10.3.3  主程序的實(shí)現(xiàn)        257
10.3.4  用show來(lái)置入定時(shí)器代碼        257
10.4  使用多個(gè)定時(shí)器        262
10.4.1  設(shè)置多個(gè)定時(shí)器        263
10.4.2  用多個(gè)定時(shí)器進(jìn)行測(cè)試        264
10.5  多定時(shí)器的健壯實(shí)現(xiàn)        266
10.6  POSIX:TMR 定時(shí)器的實(shí)現(xiàn)        268
10.7  mycron,一個(gè)小型的任務(wù)調(diào)度工具        269
10.8  擴(kuò)展閱讀        269
第11章  項(xiàng)目:破解命令解釋程序        270
11.1  建造一個(gè)簡(jiǎn)單的命令解釋程序        270
11.2  重定向        274
11.3  流水線        275
11.4  前臺(tái)的信號(hào)處理        278
11.5  進(jìn)程組、會(huì)話和控制終端        283
11.5.1  進(jìn)程組        283
11.5.2  會(huì)話        284
11.6  ush中的后臺(tái)進(jìn)程        287
11.7  作業(yè)控制        293
11.8  ush的作業(yè)控制        295
11.8.1  一個(gè)作業(yè)列表對(duì)象        295
11.8.2  ush中的作業(yè)列表        296
11.8.3  ush中的作業(yè)控制        297
11.8.4  等待流水線時(shí)的進(jìn)程行為        297
11.9  擴(kuò)展閱讀        298
第三部分  并      發(fā)
第12章  POSIX線程        299
12.1  監(jiān)視多個(gè)文件描述符的方法        299
12.2  使用線程來(lái)監(jiān)視多個(gè)文件描述符        300
12.3  線程管理        302
12.3.1  用ID引用線程        303
12.3.2  創(chuàng)建一個(gè)線程        304
12.3.3  分離和連接        305
12.3.4  退出和取消        306
12.3.5  向線程中傳遞參數(shù)并將值返回        309
12.4  線程安全        315
12.5  用戶線程和內(nèi)核線程        316
12.6  線程的屬性        318
12.6.1  線程狀態(tài)        319
12.6.2  線程棧        320
12.6.3  線程調(diào)度        321
12.7  練習(xí):并行文件拷貝        324
12.8  擴(kuò)展閱讀        325
第13章  線程同步        326
13.1  POSIX同步函數(shù)        326
13.2  互斥鎖        326
13.2.1  創(chuàng)建并初始化一個(gè)互斥量        327
13.2.2  銷毀一個(gè)互斥量        328
13.2.3  對(duì)互斥量的鎖定和解鎖        329
13.2.4  保護(hù)不安全的庫(kù)函數(shù)        330
13.2.5  對(duì)標(biāo)志符和全局值的同步        331
13.2.6  使數(shù)據(jù)結(jié)構(gòu)成為線程安全的        335
13.3  最多一次和至少一次的執(zhí)行        336
13.4  條件變量        340
13.4.1  創(chuàng)建和銷毀條件變量        341
13.4.2  等待并通知條件變量        342
13.5  信號(hào)處理與線程        345
13.5.1  將信號(hào)定向到一個(gè)特定的線程中去        346
13.5.2  為線程屏蔽信號(hào)        346
13.5.3  為信號(hào)處理指定專用線程        347
13.6  讀者和寫者        349
13.7  strerror_r的實(shí)現(xiàn)        353
13.8  死鎖和其他比較麻煩的問(wèn)題        354
13.9  練習(xí):多個(gè)路障        355
13.10  擴(kuò)展閱讀        356
第14章  臨界區(qū)和信號(hào)量        357
14.1  處理臨界區(qū)        357
14.2  信號(hào)量        359
14.3  POSIX:SEM 無(wú)名信號(hào)量        361
14.4  POSIX:SEM信號(hào)量操作        363
14.5  POSIX:SEM命名信號(hào)量        368
14.5.1  創(chuàng)建并打開(kāi)命名信號(hào)量        368
14.5.2  關(guān)閉并刪除命名信號(hào)量        370
14.6  練習(xí):許可證管理器        372
14.6.1  許可證對(duì)象        372
14.6.2  runsim主程序        373
14.6.3  對(duì)許可證管理器的擴(kuò)展        373
14.7  擴(kuò)展閱讀        373
第15章  POSIX IPC        374
15.1  POSIX:XSI進(jìn)程間通信        374
15.1.1  標(biāo)識(shí)并訪問(wèn)IPC對(duì)象        374
15.1.2  從命令解釋程序中訪問(wèn)POSIX:XSI IPC資源        375
15.2  POSIX:XSI信號(hào)量集        376
15.2.1  信號(hào)量集的創(chuàng)建        376
15.2.2  信號(hào)量集控制        378
15.2.3  POSIX信號(hào)量集操作        380
15.3  POSIX:XSI共享內(nèi)存        384
15.3.1  訪問(wèn)一個(gè)共享的內(nèi)存段        385
15.3.2  共享內(nèi)存段的連接和分離        385
15.3.3  控制共享內(nèi)存        386
15.3.4  共享內(nèi)存實(shí)例        387
15.4  POSIX:XSI消息隊(duì)列        392
15.5  練習(xí):POSIX無(wú)名信號(hào)量        398
15.6  練習(xí):POSIX命名信號(hào)量        398
15.7  練習(xí):用共享內(nèi)存實(shí)現(xiàn)管道        399
15.8  練習(xí):用消息隊(duì)列實(shí)現(xiàn)管道        401
15.9  擴(kuò)展閱讀        402
第16章  項(xiàng)目:生產(chǎn)者消費(fèi)者同步        403
16.1  生產(chǎn)者-消費(fèi)者問(wèn)題        403
16.2  受互斥鎖保護(hù)的有限緩沖區(qū)        404
16.3  使用信號(hào)量的緩沖區(qū)實(shí)現(xiàn)        406
16.4  一個(gè)簡(jiǎn)單的生產(chǎn)者-消費(fèi)者問(wèn)題        411
16.5  使用條件變量的有限緩沖區(qū)實(shí)現(xiàn)        414
16.6  帶有完成條件的緩沖區(qū)        414
16.7  并行文件拷貝        421
16.7.1  執(zhí)行并行文件拷貝的生產(chǎn)者        421
16.7.2  執(zhí)行并行文件拷貝的消費(fèi)者        422
16.7.3  執(zhí)行并行文件拷貝的main程序        422
16.7.4  對(duì)并行文件拷貝的增強(qiáng)        422
16.8  線程化打印服務(wù)器        423
16.8.1  請(qǐng)求緩沖區(qū)        424
16.8.2  生產(chǎn)者線程        425
16.8.3  消費(fèi)者線程        425
16.8.4  打印服務(wù)器        425
16.8.5  其他的增強(qiáng)功能        425
16.9  擴(kuò)展閱讀        426
第17章  項(xiàng)目:非完全并行虛擬機(jī)        427
17.1  PVM的歷史、術(shù)語(yǔ)和結(jié)構(gòu)        427
17.2  非完全并行虛擬機(jī)        429
17.3  NTPVM項(xiàng)目概述        430
17.3.1  NEWTASK分組        432
17.3.2  DATA分組        432
17.3.3  DONE分組        433
17.4  調(diào)度程序的I/O和測(cè)試        433
17.4.1  用多個(gè)窗口進(jìn)行測(cè)試        437
17.4.2  用遠(yuǎn)程日志進(jìn)行測(cè)試        439
17.5  沒(méi)有輸入的單任務(wù)        440
17.6  串行的任務(wù)        440
17.6.1  輸入線程        441
17.6.2  輸出線程        442
17.7  并發(fā)的任務(wù)        442
17.8  分組通信、廣播和路障        443
17.9  終止和信號(hào)        444
17.10  有序的消息傳遞        444
17.11  擴(kuò)展閱讀        444
第四部分  通      信
第18章  面向連接的通信        445
18.1  客戶機(jī)-服務(wù)器模型        445
18.2  通信信道        446
18.3  面向連接的服務(wù)器策略        448
18.4  通用因特網(wǎng)通信接口        450
18.4.1  錯(cuò)誤處理        452
18.4.2  讀和寫        452
18.5  不同服務(wù)器策略的UICI實(shí)現(xiàn)        452
18.6  UICI客戶機(jī)        455
18.7  UICI的套接字實(shí)現(xiàn)        459
18.7.1  socket函數(shù)        460
18.7.2  bind函數(shù)        460
18.7.3  listen函數(shù)        461
18.7.4  u_open的實(shí)現(xiàn)        462
18.7.5  accept函數(shù)        463
18.7.6  u_accept的實(shí)現(xiàn)        464
18.7.7  connect函數(shù)        465
18.7.8  u_connect的實(shí)現(xiàn)        466
18.8  主機(jī)名和IP地址        468
18.9  線程安全的UICI        475
18.10  練習(xí):ping服務(wù)器        476
18.11  練習(xí):音頻的傳輸        478
18.12  擴(kuò)展閱讀        479
第19章  項(xiàng)目:WWW重定向        480
19.1  萬(wàn)維網(wǎng)        480
19.2  統(tǒng)一資源定位符        481
19.3  HTTP入門        482
19.3.1  客戶請(qǐng)求        483
19.3.2  服務(wù)器響應(yīng)        483
19.3.3  HTTP消息交換        484
19.4  Web通信模式        485
19.4.1  隧道        486
19.4.2  代理        487
19.4.3  高速緩存和透明性        488
19.4.4  網(wǎng)關(guān)        489
19.5  單連接的通過(guò)型監(jiān)視器        490
19.6  隧道服務(wù)器的實(shí)現(xiàn)        492
19.7  用于測(cè)試的服務(wù)器驅(qū)動(dòng)程序        493
19.8  HTTP首部的解析        494
19.9  簡(jiǎn)單的代理服務(wù)器        495
19.10  代理監(jiān)視器        496
19.11  代理高速緩存        499
19.12  門戶網(wǎng)關(guān)        499
19.13  用于負(fù)載平衡的網(wǎng)關(guān)        500
19.14  事后的調(diào)查分析        500
19.14.1  線程和時(shí)序錯(cuò)誤        501
19.14.2  未捕捉到的錯(cuò)誤和錯(cuò)誤的退出        501
19.14.3  書(shū)寫風(fēng)格和表示方法        502
19.14.4  拙劣的測(cè)試及結(jié)果的表示        502
19.14.5  編程錯(cuò)誤和不好的風(fēng)格        503
19.15  擴(kuò)展閱讀        504
第20章  無(wú)連接通信和多播        505
20.1  無(wú)連接通信入門        505
20.2  無(wú)連接通信的簡(jiǎn)化接口        506
20.2.1  主機(jī)名和u_buf_t 結(jié)構(gòu)        507
20.2.2  UICI UDP 的各種返回錯(cuò)誤值        508
20.2.3  UDP 緩沖區(qū)大小與UICI UDP        508
20.3  簡(jiǎn)單-請(qǐng)求協(xié)議        508
20.4  請(qǐng)求-應(yīng)答協(xié)議        513
20.5  有超時(shí)和重試機(jī)制的請(qǐng)求-應(yīng)答協(xié)議        517
20.6  請(qǐng)求-應(yīng)答-確認(rèn)協(xié)議        521
20.7  UICI UDP的實(shí)現(xiàn)        522
20.7.1  u_openudp的實(shí)現(xiàn)        522
20.7.2  sendto函數(shù)        523
20.7.3  u_sendto和u_sendtohost的實(shí)現(xiàn)        524
20.7.4  recvfrom函數(shù)        525
20.7.5  u_recvfrom和u_recvfromtimed的實(shí)現(xiàn)        526
20.7.6  主機(jī)名和u_buf_t        527
20.8  UDP和TCP的比較        528
20.9  多播        529
20.9.1  多播編址        530
20.9.2  u_join的實(shí)現(xiàn)        531
20.9.3  u_leave的實(shí)現(xiàn)        532
20.10  練習(xí): UDP 端口服務(wù)器        532
20.11  練習(xí): 無(wú)狀態(tài)文件服務(wù)器        533
20.12  擴(kuò)展閱讀        535
第21章  項(xiàng)目:因特網(wǎng)音頻廣播        536
21.1  項(xiàng)目概述        536
21.2  音頻設(shè)備模擬        538
21.3  單節(jié)目和單接收者的UDP 實(shí)現(xiàn)        538
21.3.1    簡(jiǎn)單實(shí)現(xiàn)        538
21.3.2  接收者如何終止        540
21.3.3  接收者進(jìn)行緩沖以解決網(wǎng)絡(luò)延遲問(wèn)題        541
21.3.4  接收者進(jìn)行緩沖以解決亂序傳送的問(wèn)題        542
21.4  多節(jié)目和多接收者的UDP 實(shí)現(xiàn)        545
21.4.1  多節(jié)目單接收者        545
21.4.2  多節(jié)目多接收者        546
21.5  音頻廣播的UDP 實(shí)現(xiàn)        546
21.6  音頻廣播的多播實(shí)現(xiàn)        547
21.7  TCP 實(shí)現(xiàn)的差異        548
21.7.1  單節(jié)目單接收者的TCP實(shí)現(xiàn)        548
21.7.2  多節(jié)目單接收者的TCP實(shí)現(xiàn)        549
21.7.3  音頻廣播的TCP 實(shí)現(xiàn)        549
21.8  通過(guò)瀏覽器接收流式音頻        551
21.8.1  使用瀏覽器助手程序        551
21.8.2  為Web服務(wù)器設(shè)置一個(gè)新的MIME類型        553
21.8.3  設(shè)置瀏覽器以支持新的MIME類型        553
21.8.4  創(chuàng)建Web頁(yè)面        553
21.8.5  使用預(yù)定義的MIME類型        553
21.9    擴(kuò)展閱讀        554
第22章  項(xiàng)目:服務(wù)器性能        555
22.1  服務(wù)器性能的代價(jià)        555
22.2  服務(wù)器體系結(jié)構(gòu)        555
22.3  項(xiàng)目概述        559
22.4  單客戶端驅(qū)動(dòng)程序        559
22.4.1  處理一個(gè)連接        559
22.4.2  響應(yīng)編程        560
22.4.3  收集統(tǒng)計(jì)信息        560
22.4.4  對(duì)客戶端做測(cè)試        561
22.5  多客戶端驅(qū)動(dòng)程序        561
22.6  實(shí)現(xiàn)每個(gè)請(qǐng)求一個(gè)線程和每個(gè)請(qǐng)求一個(gè)進(jìn)程        563
22.7  多線程工作者池策略        564
22.8  使用有界緩沖的多線程工作者池        564
22.9  多進(jìn)程工作者池        565
22.10  磁盤I/O的影響        565
22.11  性能研究        568
22.11.1  基線測(cè)量        568
22.11.2  波動(dòng)性的根源        569
22.11.3  測(cè)量的各種錯(cuò)誤        569
22.11.4  同步        571
22.11.5  很簡(jiǎn)單的錯(cuò)誤        572
22.11.6  該測(cè)量哪些項(xiàng)目        573
22.11.7  數(shù)據(jù)分析和表達(dá)        575
22.12  書(shū)寫報(bào)告        575
22.12.1  引言        575
22.12.2  設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試        576
22.12.3  實(shí)驗(yàn)        576
22.12.4  結(jié)果及分析        576
22.12.5  結(jié)論        577
22.12.6  參考文獻(xiàn)        577
22.13  擴(kuò)展閱讀        577
附錄A  UNIX 基礎(chǔ)        578
附錄B  重啟庫(kù)        591
附錄C  UICI的實(shí)現(xiàn)        599
附錄D  日志函數(shù)        612
附錄E  POSIX擴(kuò)展        626
參考文獻(xiàn)        628
程序索引        636
索引        639

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)