出版時(shí)間:2009-11 出版社:人民郵電出版社 作者:W.Richard Stevens 頁(yè)數(shù):1 字?jǐn)?shù):692000
Tag標(biāo)簽:無(wú)
前言
概述 大多數(shù)重要的程序都涉及進(jìn)程間通信(Interprocess Communication,IPC)。這是受下述設(shè)計(jì)原則影響的自然結(jié)果:把應(yīng)用程序設(shè)計(jì)為一組相互通信的小片斷比將其設(shè)計(jì)為單個(gè)龐大的程序更好。從歷史角度看,應(yīng)用程序有如下幾種構(gòu)建方法。 ?。?)用一個(gè)龐大的程序完成全部工作。程序的各部分可以實(shí)現(xiàn)為函數(shù),函數(shù)之間通過(guò)參數(shù)、返回值和全局變量來(lái)交換信息?! 。?)使用多個(gè)程序,程序之間用某種形式的IPC進(jìn)行通信。許多標(biāo)準(zhǔn)的Unix工具都是按這種風(fēng)格設(shè)計(jì)的,它們使用shell管道(IPC的一種形式)在程序之間傳遞信息?! 。?)使用一個(gè)包含多個(gè)線程的程序,線程之間使用某種IPC。這里仍然使用術(shù)語(yǔ)IPC,盡管通信是在線程之間而不是在進(jìn)程之間進(jìn)行的?! ∵€可以把后兩種設(shè)計(jì)形式結(jié)合起來(lái):用多個(gè)進(jìn)程來(lái)實(shí)現(xiàn),其中每個(gè)進(jìn)程包含幾個(gè)線程。在這種情況下,進(jìn)程內(nèi)部的線程之間可以通信,不同的進(jìn)程之間也可以通信。 上面講述了可以把完成給定任務(wù)所需的工作分到多個(gè)進(jìn)程中,或許還可以進(jìn)一步分到進(jìn)程內(nèi)的多個(gè)線程中。在包含多個(gè)處理器(CPU)的系統(tǒng)中,多個(gè)進(jìn)程也許可以(在不同的CPU上)同時(shí)運(yùn)行,或許給定進(jìn)程內(nèi)的多個(gè)線程也能同時(shí)運(yùn)行。因此,把任務(wù)分到多個(gè)進(jìn)程或線程中有望減少完成指定任務(wù)的時(shí)間?! ”緯?shū)詳細(xì)描述了以下4種不同的IPC形式: ?。?)消息傳遞(管道、FIFO和消息隊(duì)列); ?。?)同步(互斥量、條件變量、讀寫(xiě)鎖、文件和記錄鎖、信號(hào)量); ?。?)共享內(nèi)存(匿名的和具名的); ?。?)遠(yuǎn)程過(guò)程調(diào)用(Solaris門(mén)和Sun RPC)。 本書(shū)不討論如何編寫(xiě)通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)通信的程序。這種通信通常涉及使用TCP/IP協(xié)議族的套接字API,相關(guān)主題在第1卷[stevens 1998]中有詳細(xì)討論。
內(nèi)容概要
本書(shū)是一部UNIX網(wǎng)絡(luò)編程的經(jīng)典之作。進(jìn)程間通信(IPC)幾乎是所有Unix程序性能的關(guān)鍵,理解IPC也是理解如何開(kāi)發(fā)不同主機(jī)間網(wǎng)絡(luò)應(yīng)用程序的必要條件。本書(shū)從對(duì)Posix IPC和System V IPC的內(nèi)部結(jié)構(gòu)開(kāi)始討論,全面深入地介紹了4種IPC形式:消息傳遞(管道、FIFO、消息隊(duì)列)、同步(互斥鎖、條件變量、讀寫(xiě)鎖、文件與記錄鎖、信號(hào)量)、共享內(nèi)存(匿名共享內(nèi)存、具名共享內(nèi)存)及遠(yuǎn)程過(guò)程調(diào)用(Solaris門(mén)、Sun RPC)。附錄中給出了測(cè)量各種IPC形式性能的方法。 本書(shū)內(nèi)容詳盡且具權(quán)威性,幾乎每章都提供精選的習(xí)題,并提供了部分習(xí)題的答案,是網(wǎng)絡(luò)研究和開(kāi)發(fā)人員理想的參考書(shū)。
作者簡(jiǎn)介
W.Richarqd Stevens,國(guó)際知名的LINIX和網(wǎng)絡(luò)專(zhuān)家,備受贊譽(yù)的技術(shù)作家。他1951年2月5日出生于贊比亞,后隨父母回到美國(guó)。中學(xué)時(shí)就讀于弗吉尼亞菲什伯恩軍事學(xué)校,1973年獲得密歇根大學(xué)航空和航天工程學(xué)士學(xué)位。1975年至1982年,他在亞利桑那州圖森市的基特峰國(guó)家天文合從
書(shū)籍目錄
Part Ⅰ Introduction Chapter 1 Introduction 1.1 Introduction 1.2 Processes, Threads, and the Sharing of Information 1.3 Persistence of IPC Objects 1.4 Name Spaces 1.5 Effect of fork, exec, and exit on IPC Objects 1.6 Error Handling: Wrapper Functions 1.7 Unix Standards 1.8 Road Map to IPC Examples in the Text 1.9 Summary Chapter 2 Posix IPC 2.1 Introduction 2.2 IPC Names 2.3 Creating and Opening IPC Channels 2.4 IPC Permissions 2.5 Summary Chapter 3 System V IPC 3.1 Introduction 3.2 key_t Keys and ft:ok Function 3.3 ipc_perm Structure 3.4 Creating and Opening IPC Channels 3.5 IPC Permissions 3.6 Identifier Reuse 3.7 ipcs and ~porto Programs 3.8 Kernel Limits 3.9 SummaryPart 2 Message PassingPart 3 SynchronizationPart 2 Shared MemoryPart 2 Remote Procedure CallsEpilogueAppendix AAppendix BAppendix CBibliographyIndex
章節(jié)摘錄
1 The two processes on the left are sharing some information that resides in a file in the filesystem. To access this data, each process must go through the kernel (e.g., read, write iseek, and the like). Some form of synchronization is required when a file is being updated, both to protect multiple writers from each other, and to protect one or more readers from a writer. 2 The two processes in the middle are sharing some information that resides within the kernel. A pipe is an example of this type of sharing, as are System V message queues and System V semaphores. Each operation to access the shared information now involves a system call into the kernel. 3 The two processes on the right have a region of shared memory that each process can reference. Once the shared memory is set up by each process, the processes can access the data in the shared memory without involving the kernel at all. Some form of synchronization is required by the processes that are sharing the memory. Note that nothing restricts any of the IPC techniques that we describe to only two processes. Any of the techniques that we describe work with any number of processes. We show only two processes in Figure 1.1 for simplicity. Threads Although the concept of a process within the Unix system has been used for a long time, the concept of multiple threads within a given process is relatively new. The Posix.1 threads standard (called "Pthreads") was approved in 1995. From an IPC perspective.
媒體關(guān)注與評(píng)論
“我做專(zhuān)業(yè)程序員已經(jīng)二十余年了,每當(dāng)要寫(xiě)新程序的時(shí)候,我都要參考這本書(shū)。Stevens的書(shū)是我進(jìn)入VoIP和音頻CODEC網(wǎng)絡(luò)編程領(lǐng)域的敲門(mén)磚?!? ——C. T. Vanderdecken “在我做過(guò)的項(xiàng)目中,已經(jīng)記不清楚有多少次靠這套書(shū)挽狂瀾于既倒……每位真正的UNIX系統(tǒng)程序員都應(yīng)該買(mǎi)一套。” ——David Sharpe “對(duì)每位UNIX平臺(tái)的程序員而言,這本書(shū)都是必備的。它深入闡釋了UNIX平臺(tái)上的各種IPC API。既涵蓋System V也涉及POSIX標(biāo)準(zhǔn),對(duì)于IPC的論述無(wú)可匹敵。書(shū)末的附錄對(duì)各種管道、FIFO、Posix消息隊(duì)列、System V消息隊(duì)列、門(mén)、Sun RPC的性能進(jìn)行了比較,我從來(lái)沒(méi)有看到任何書(shū)能如此廣泛而深入地介紹這一主題。更何況,它出自權(quán)威人物之手。” ——asingh “Stevens是UNIX網(wǎng)絡(luò)編程的‘神’,至少是我的‘神’?!薄 狹atthew MacGibbon
編輯推薦
兩卷本的《UNIX網(wǎng)絡(luò)編程》是已故著名技術(shù)作家W.Richard Stevens的傳世之作。卷2著重討論如何讓?xiě)?yīng)用程序與在其他機(jī)器上的應(yīng)用程序進(jìn)行對(duì)話(huà)?! ×己玫倪M(jìn)程間通信(IPC)機(jī)制是提高UNIX程序性能的關(guān)鍵?!禪NIX網(wǎng)絡(luò)編程 卷2:進(jìn)程間通信(英文版·第2版)》全面深入地講解了各種進(jìn)程間通信形式,包括消息傳遞、同步、共享內(nèi)存及遠(yuǎn)程調(diào)用(RPC)。書(shū)中包含了大量經(jīng)過(guò)優(yōu)化的源代碼,幫助讀者加深理解。這些源代碼可以從圖靈網(wǎng)站《UNIX網(wǎng)絡(luò)編程 卷2:進(jìn)程間通信(英文版·第2版)》網(wǎng)頁(yè)免費(fèi)注冊(cè)下載?! 禪NIX網(wǎng)絡(luò)編程 卷2:進(jìn)程間通信(英文版·第2版)》是網(wǎng)絡(luò)研究和開(kāi)發(fā)人員公認(rèn)的權(quán)威參考書(shū),深入理解《UNIX網(wǎng)絡(luò)編程 卷2:進(jìn)程間通信(英文版·第2版)》內(nèi)容,方能設(shè)計(jì)出良好的UNIX軟件。 《UNIX網(wǎng)絡(luò)編程 卷2:進(jìn)程間通信(英文版·第2版)》中文版預(yù)計(jì)在2010年6月出版,敬請(qǐng)期待?! NIX和網(wǎng)絡(luò)專(zhuān)家W. Richard Stevens的傳世之作 UNIX系統(tǒng)網(wǎng)絡(luò)編程人員的必備經(jīng)典 內(nèi)容詳盡權(quán)威,提供精選習(xí)題及答案 詳細(xì)描述4種不同的IPC形式 在Unix系統(tǒng)上測(cè)試通過(guò)的真實(shí)、可運(yùn)行的代碼讓讀者輕松深入學(xué)習(xí)網(wǎng)絡(luò)編程復(fù)雜的新技術(shù)。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
UNIX網(wǎng)絡(luò)編程 卷2 PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版