第二章 分布式系統(tǒng)的通信_第1頁
第二章 分布式系統(tǒng)的通信_第2頁
第二章 分布式系統(tǒng)的通信_第3頁
第二章 分布式系統(tǒng)的通信_第4頁
第二章 分布式系統(tǒng)的通信_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第第2 2章章 分布式系統(tǒng)的通信分布式系統(tǒng)的通信 分層協(xié)議分層協(xié)議 異步傳輸模式網(wǎng)(異步傳輸模式網(wǎng)(ATMATM) 客戶客戶- -服務(wù)器模式服務(wù)器模式 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用 組通信組通信2.1 2.1 分層協(xié)議分層協(xié)議 開放系統(tǒng)互聯(lián)參考模型(開放系統(tǒng)互聯(lián)參考模型(OSIOSI) OSI 模型中的層、接口和協(xié)議模型中的層、接口和協(xié)議 網(wǎng)絡(luò)物理層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層傳輸層會話層表示層應(yīng)用層進(jìn)程A機(jī)器1物理層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層傳輸層會話層表示層應(yīng)用層進(jìn)程B機(jī)器2應(yīng)用層協(xié)議表示層協(xié)議會話層協(xié)議傳輸層協(xié)議網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)鏈路層協(xié)議物理層協(xié)議12345672.1 2.1 分層協(xié)議分層協(xié)議 開放系統(tǒng)互聯(lián)參考模型

2、(開放系統(tǒng)互聯(lián)參考模型(OSIOSI)典型消息結(jié)構(gòu)典型消息結(jié)構(gòu) 消息消息應(yīng)用層頭應(yīng)用層頭表示層頭表示層頭會話層頭會話層頭傳輸層頭傳輸層頭網(wǎng)絡(luò)層頭網(wǎng)絡(luò)層頭數(shù)據(jù)鏈路層頭數(shù)據(jù)鏈路層頭數(shù)據(jù)鏈路數(shù)據(jù)鏈路層尾層尾實(shí)際網(wǎng)絡(luò)中傳輸?shù)奈粚?shí)際網(wǎng)絡(luò)中傳輸?shù)奈?.22.2 異步傳輸模式網(wǎng)(異步傳輸模式網(wǎng)(ATMATM網(wǎng))網(wǎng)) 異步傳輸模式異步傳輸模式ATM模型模型 異步傳輸模式(異步傳輸模式(Asynchronous Transfer Mode)發(fā)送者首先建立一個連接(一條虛擬線路)到接收者。在建發(fā)送者首先建立一個連接(一條虛擬線路)到接收者。在建立過程中,從發(fā)送者到接收者之間建立一個路由,并將路由立過程中,從發(fā)送者

3、到接收者之間建立一個路由,并將路由信息放在沿途的交換機(jī)上。信息放在沿途的交換機(jī)上。系統(tǒng)發(fā)送包時,包先被硬件拆成固定大小的單位(信元),系統(tǒng)發(fā)送包時,包先被硬件拆成固定大小的單位(信元),信元沿著交換機(jī)中的路徑流動。信元沿著交換機(jī)中的路徑流動。當(dāng)不再需要連接時,釋放此連接,并從交換機(jī)中刪除該路由當(dāng)不再需要連接時,釋放此連接,并從交換機(jī)中刪除該路由信息。信息。2.2 2.2 異步傳輸模式網(wǎng)(異步傳輸模式網(wǎng)(ATMATM網(wǎng))網(wǎng)) 異步傳輸模式異步傳輸模式ATM協(xié)議分層協(xié)議分層 物理層(物理層(OSI第第1層)層)ATM層處理包括路由選擇在內(nèi)的信元和信元傳輸。層處理包括路由選擇在內(nèi)的信元和信元傳輸。(

4、包括包括OSI第第2,3層一部分層一部分) ATM不修復(fù)丟失或損壞的信元。不修復(fù)丟失或損壞的信元。適配層將包拆分成信元并在另一頭組裝。(適配層將包拆分成信元并在另一頭組裝。(OSI第第4層)層) 適配層適配層沒有提供可靠的端對端服務(wù),傳輸連接必須在上一層實(shí)現(xiàn)。沒有提供可靠的端對端服務(wù),傳輸連接必須在上一層實(shí)現(xiàn)。物理層ATM層適配層上面各層2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.1 2.3.1 客戶機(jī)和服務(wù)器客戶機(jī)和服務(wù)器基本思想基本思想 構(gòu)造一個操作系統(tǒng)構(gòu)造一個操作系統(tǒng),由一組協(xié)同進(jìn)程組成,這組進(jìn)程稱為服由一組協(xié)同進(jìn)程組成,這組進(jìn)程稱為服務(wù)器務(wù)器(server),為用戶提供服務(wù)

5、的進(jìn)程稱為客戶,為用戶提供服務(wù)的進(jìn)程稱為客戶(client). 客戶和服務(wù)器都運(yùn)行在相同的微內(nèi)核中??蛻艉头?wù)器都運(yùn)行在相同的微內(nèi)核中。 客戶和服務(wù)器都以用戶進(jìn)程方式運(yùn)行,客戶和服務(wù)器都以用戶進(jìn)程方式運(yùn)行, 一臺機(jī)器可以運(yùn)行一臺機(jī)器可以運(yùn)行于單個進(jìn)程、多個客戶、多個服務(wù)器或者兩者的混合。于單個進(jìn)程、多個客戶、多個服務(wù)器或者兩者的混合。2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.1 2.3.1 客戶機(jī)和服務(wù)器客戶機(jī)和服務(wù)器通信特點(diǎn)通信特點(diǎn) 客戶服務(wù)器模式通常以簡單的面向非連接的請求客戶服務(wù)器模式通常以簡單的面向非連接的請求/應(yīng)答協(xié)議應(yīng)答協(xié)議為基礎(chǔ)。通信服務(wù)可以簡化為由微內(nèi)核提供的兩個

6、系統(tǒng)調(diào)用,一為基礎(chǔ)。通信服務(wù)可以簡化為由微內(nèi)核提供的兩個系統(tǒng)調(diào)用,一個是負(fù)責(zé)發(fā)送報文(個是負(fù)責(zé)發(fā)送報文(send),一個是負(fù)責(zé)接收報文(),一個是負(fù)責(zé)接收報文(receive)。)。內(nèi)核內(nèi)核客戶客戶內(nèi)核內(nèi)核服務(wù)服務(wù)網(wǎng)絡(luò)網(wǎng)絡(luò)應(yīng)答應(yīng)答請求請求物理層物理層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層請求請求/應(yīng)答應(yīng)答12345672.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.3 2.3.3 尋址尋址機(jī)器機(jī)器.進(jìn)程編址方式進(jìn)程編址方式 機(jī)器號和進(jìn)程號,機(jī)器號用于使內(nèi)核將消息正確地發(fā)送到機(jī)器號和進(jìn)程號,機(jī)器號用于使內(nèi)核將消息正確地發(fā)送到適當(dāng)?shù)臋C(jī)器上。進(jìn)程號用來使內(nèi)核決定消息要給哪一個進(jìn)程。適當(dāng)?shù)臋C(jī)器上。進(jìn)程號用來使內(nèi)

7、核決定消息要給哪一個進(jìn)程。內(nèi)核內(nèi)核C內(nèi)核內(nèi)核S1:請求:請求243.0212:給:給199.0響應(yīng)響應(yīng)2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.3 2.3.3 尋址尋址帶有廣播的進(jìn)程編址帶有廣播的進(jìn)程編址 進(jìn)程在相當(dāng)大且專用的地址空間中選擇自己的標(biāo)識號。發(fā)進(jìn)程在相當(dāng)大且專用的地址空間中選擇自己的標(biāo)識號。發(fā)送者廣播一個特殊的定位包,包含目的進(jìn)程的地址,所有內(nèi)核檢送者廣播一個特殊的定位包,包含目的進(jìn)程的地址,所有內(nèi)核檢查并察看地址是不是它們的,如果是回答查并察看地址是不是它們的,如果是回答“我在這里我在這里”消息給出消息給出網(wǎng)絡(luò)地址,發(fā)送內(nèi)核使用這個地址并網(wǎng)絡(luò)地址,發(fā)送內(nèi)核使用這個地

8、址并“記住記住”它。它。 CS1:廣播:廣播432:“我在這里我在這里”123:請求:請求4:應(yīng)答:應(yīng)答2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.3 2.3.3 尋址尋址通過名字服務(wù)器進(jìn)行地址查詢通過名字服務(wù)器進(jìn)行地址查詢 在客戶機(jī)中存放在客戶機(jī)中存放ASCII服務(wù)器的名字,每次客戶機(jī)運(yùn)行時,服務(wù)器的名字,每次客戶機(jī)運(yùn)行時,首先試圖使用服務(wù)器,客戶機(jī)發(fā)出一請求消息給一個特殊映射服首先試圖使用服務(wù)器,客戶機(jī)發(fā)出一請求消息給一個特殊映射服務(wù)器,(常常稱為名字服務(wù)器)問一個目前服務(wù)器所在的機(jī)器號,務(wù)器,(常常稱為名字服務(wù)器)問一個目前服務(wù)器所在的機(jī)器號,有了這個地址后,可以直接發(fā)送請求

9、。有了這個地址后,可以直接發(fā)送請求。名字服務(wù)器SC1:查找:查找2:NS應(yīng)答應(yīng)答NS1:請求:請求2:應(yīng)答:應(yīng)答1234網(wǎng)絡(luò)網(wǎng)絡(luò)2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.3 2.3.3 尋址尋址進(jìn)程編址方法總結(jié)進(jìn)程編址方法總結(jié) 在客戶機(jī)代碼中指明機(jī)器在客戶機(jī)代碼中指明機(jī)器.號;號; 讓進(jìn)程選擇隨機(jī)地址,用廣播定位進(jìn)程。讓進(jìn)程選擇隨機(jī)地址,用廣播定位進(jìn)程。 在客戶機(jī)中存放在客戶機(jī)中存放ASCII服務(wù)器名字,運(yùn)行時尋找它。服務(wù)器名字,運(yùn)行時尋找它。三種方法的缺點(diǎn):三種方法的缺點(diǎn): 機(jī)器機(jī)器.進(jìn)程編址方式:不透明進(jìn)程編址方式:不透明 帶有廣播的進(jìn)程編址:給系統(tǒng)造成額外負(fù)擔(dān)帶有廣播的進(jìn)程

10、編址:給系統(tǒng)造成額外負(fù)擔(dān) 通過名字服務(wù)器進(jìn)行地址查詢:需要一個中間部件通過名字服務(wù)器進(jìn)行地址查詢:需要一個中間部件名字服務(wù)器。名字服務(wù)器。 2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.4 2.3.4 阻塞與非阻塞原語阻塞與非阻塞原語阻塞原語阻塞原語 阻塞的阻塞的Send:阻塞直到消息傳送完畢阻塞直到消息傳送完畢. 阻塞的阻塞的Receive: 阻塞直到消息被實(shí)際接收并放入由參數(shù)阻塞直到消息被實(shí)際接收并放入由參數(shù)指定的消息緩沖區(qū)指定的消息緩沖區(qū). 客戶阻塞客戶阻塞消息被發(fā)送消息被發(fā)送從內(nèi)核返回,從內(nèi)核返回,進(jìn)程釋放進(jìn)程釋放陷阱內(nèi)核陷阱內(nèi)核阻塞進(jìn)程阻塞進(jìn)程客戶運(yùn)行客戶運(yùn)行客戶運(yùn)行客戶運(yùn)

11、行2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.4 2.3.4 阻塞與非阻塞原語阻塞與非阻塞原語非阻塞原語非阻塞原語 非阻塞的非阻塞的Send:消息發(fā)送前取得系統(tǒng)控制權(quán)消息發(fā)送前取得系統(tǒng)控制權(quán). 非阻塞的非阻塞的Receive:告訴內(nèi)核消息緩沖區(qū)的位置告訴內(nèi)核消息緩沖區(qū)的位置,立即取得立即取得系統(tǒng)控制權(quán)系統(tǒng)控制權(quán).2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.4 2.3.4 阻塞與非阻塞原語阻塞與非阻塞原語非阻塞原語非阻塞原語 缺點(diǎn)缺點(diǎn)在消息被發(fā)送之前,發(fā)送者不能修改消息緩沖區(qū)。后繼在消息被發(fā)送之前,發(fā)送者不能修改消息緩沖區(qū)。后繼的進(jìn)程在傳輸過程中可能覆蓋該消息的進(jìn)程在傳輸

12、過程中可能覆蓋該消息 。發(fā)送進(jìn)程不知道傳送何時進(jìn)行,它無法知道何時重新使發(fā)送進(jìn)程不知道傳送何時進(jìn)行,它無法知道何時重新使用緩沖區(qū)。用緩沖區(qū)。2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式解決方法解決方法內(nèi)核將消息拷貝到內(nèi)部緩沖區(qū),其后允許進(jìn)程繼續(xù)執(zhí)行。內(nèi)核將消息拷貝到內(nèi)部緩沖區(qū),其后允許進(jìn)程繼續(xù)執(zhí)行。 當(dāng)消息發(fā)送后,中斷發(fā)送者并通知它緩沖區(qū)可用。當(dāng)消息發(fā)送后,中斷發(fā)送者并通知它緩沖區(qū)可用。 返回返回陷阱陷阱客戶運(yùn)行客戶運(yùn)行客戶運(yùn)行客戶運(yùn)行消息被發(fā)送消息被發(fā)送客戶阻塞客戶阻塞消息拷貝到消息拷貝到內(nèi)核緩沖內(nèi)核緩沖時間時間2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.5 2.3.5 有緩

13、沖和無緩沖原語有緩沖和無緩沖原語無緩沖原語無緩沖原語 一個地址指定給一個特定進(jìn)程。如調(diào)用一個地址指定給一個特定進(jìn)程。如調(diào)用receive(addr,&m) ,告,告訴運(yùn)行的機(jī)器內(nèi)核,調(diào)用的進(jìn)程正在監(jiān)聽地址訴運(yùn)行的機(jī)器內(nèi)核,調(diào)用的進(jìn)程正在監(jiān)聽地址addr,m指出消息指出消息緩沖區(qū),用于保存?zhèn)魉瓦^來的消息緩沖區(qū),用于保存?zhèn)魉瓦^來的消息。 內(nèi)核內(nèi)核C內(nèi)核內(nèi)核A S客戶客戶對應(yīng)一個進(jìn)程對應(yīng)一個進(jìn)程的地址的地址服務(wù)器服務(wù)器2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.5 2.3.5 有緩沖和無緩沖原語有緩沖和無緩沖原語無緩沖原語無緩沖原語 缺點(diǎn)缺點(diǎn) 如果在客戶機(jī)調(diào)用如果在客戶機(jī)調(diào)用se

14、nd原語之后調(diào)用原語之后調(diào)用receive原語,無法處原語,無法處理理 解決方法解決方法丟棄消息,使客戶機(jī)超時,并希望服務(wù)器在客戶機(jī)傳送前調(diào)丟棄消息,使客戶機(jī)超時,并希望服務(wù)器在客戶機(jī)傳送前調(diào)用接收原語。用接收原語。 讓接收內(nèi)核在短時間內(nèi)保存到來的消息,以防合適的讓接收內(nèi)核在短時間內(nèi)保存到來的消息,以防合適的receive原語可以很快完成。原語可以很快完成。 2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.5 2.3.5 有緩沖和無緩沖原語有緩沖和無緩沖原語有緩沖原語有緩沖原語 對接收消息感興趣的進(jìn)程讓內(nèi)核為之建立一個郵箱,并指定對接收消息感興趣的進(jìn)程讓內(nèi)核為之建立一個郵箱,并指定一個

15、地址以便于尋找網(wǎng)絡(luò)信包。所有具有該地址的輸入消息被放一個地址以便于尋找網(wǎng)絡(luò)信包。所有具有該地址的輸入消息被放入郵箱中,調(diào)用入郵箱中,調(diào)用receive時只要從郵箱中取出一條消息。時只要從郵箱中取出一條消息。 內(nèi)核內(nèi)核CS對應(yīng)一個郵箱對應(yīng)一個郵箱的地址的地址A網(wǎng)絡(luò)網(wǎng)絡(luò)2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.6 2.3.6 可靠和非可靠原語可靠和非可靠原語如何保證消息被成功發(fā)送如何保證消息被成功發(fā)送重新定義非可靠的重新定義非可靠的send語義。系統(tǒng)無法保證消息成功發(fā)送,語義。系統(tǒng)無法保證消息成功發(fā)送,完成可靠的通信依賴于用戶。完成可靠的通信依賴于用戶。要求接收機(jī)器的內(nèi)核給發(fā)送機(jī)器的

16、內(nèi)核發(fā)送一個確認(rèn)消息。要求接收機(jī)器的內(nèi)核給發(fā)送機(jī)器的內(nèi)核發(fā)送一個確認(rèn)消息。 客戶客戶服務(wù)器服務(wù)器31421.請求(客戶向服務(wù)器)請求(客戶向服務(wù)器)2.ACK(內(nèi)核給內(nèi)核)(內(nèi)核給內(nèi)核)3.應(yīng)答(服務(wù)器向客戶)應(yīng)答(服務(wù)器向客戶)4.ACK(內(nèi)核給內(nèi)核)(內(nèi)核給內(nèi)核)2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.6 2.3.6 可靠和非可靠原語可靠和非可靠原語如何保證消息被成功發(fā)送如何保證消息被成功發(fā)送 客戶機(jī)在發(fā)送消息后阻塞,服務(wù)器的內(nèi)核不發(fā)送確認(rèn)消息,客戶機(jī)在發(fā)送消息后阻塞,服務(wù)器的內(nèi)核不發(fā)送確認(rèn)消息,而是將應(yīng)答作為確認(rèn)消息。而是將應(yīng)答作為確認(rèn)消息。 折衷方案折衷方案 當(dāng)一個請求

17、到達(dá)服務(wù)器內(nèi)核,計(jì)時器啟動,如果服務(wù)器當(dāng)一個請求到達(dá)服務(wù)器內(nèi)核,計(jì)時器啟動,如果服務(wù)器能很快給出應(yīng)答,這個應(yīng)答就是確認(rèn)消息。否則,單獨(dú)發(fā)送能很快給出應(yīng)答,這個應(yīng)答就是確認(rèn)消息。否則,單獨(dú)發(fā)送確認(rèn)消息。確認(rèn)消息??蛻舴?wù)器2131.請求(客戶向服務(wù)器) 2.應(yīng)答(服務(wù)器向客戶) 3.ACK(內(nèi)核給內(nèi)核)2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.7 2.3.7 客戶機(jī)客戶機(jī)- -服務(wù)器模式的實(shí)現(xiàn)服務(wù)器模式的實(shí)現(xiàn)四個設(shè)計(jì)問題的選擇四個設(shè)計(jì)問題的選擇項(xiàng)目項(xiàng)目選擇選擇1選擇選擇2選擇選擇3尋址尋址機(jī)器數(shù)目機(jī)器數(shù)目共享進(jìn)程地址共享進(jìn)程地址ASCII名字通過服名字通過服務(wù)器查找務(wù)器查找阻塞阻塞

18、阻塞原語阻塞原語具有拷貝到核的非阻塞具有拷貝到核的非阻塞具有中斷的非阻塞具有中斷的非阻塞緩沖緩沖無緩沖,丟棄無緩沖,丟棄不希望的消息不希望的消息無緩沖,臨時保持不期無緩沖,臨時保持不期望的消息望的消息郵箱郵箱可靠性可靠性非可靠非可靠請求請求-確認(rèn)確認(rèn)-應(yīng)答確認(rèn)應(yīng)答確認(rèn)請求請求-應(yīng)答應(yīng)答-確認(rèn)確認(rèn)34=81種組合種組合 2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.7 2.3.7 客戶機(jī)客戶機(jī)- -服務(wù)器模式的實(shí)現(xiàn)服務(wù)器模式的實(shí)現(xiàn)大報文傳輸問題大報文傳輸問題將大報文分成多個包分別傳遞,給每個報文分配一個報文號,將大報文分成多個包分別傳遞,給每個報文分配一個報文號,并將該報文號放入屬于這

19、個報文的包中,有一系列的數(shù)字給并將該報文號放入屬于這個報文的包中,有一系列的數(shù)字給出信包的順序。出信包的順序。確認(rèn)消息確認(rèn)消息對每個單獨(dú)的包進(jìn)行確認(rèn)。優(yōu)點(diǎn):如果一個包丟失,僅僅這對每個單獨(dú)的包進(jìn)行確認(rèn)。優(yōu)點(diǎn):如果一個包丟失,僅僅這個包需要重新傳遞。缺點(diǎn):網(wǎng)絡(luò)上會有更多的包。個包需要重新傳遞。缺點(diǎn):網(wǎng)絡(luò)上會有更多的包。僅僅對一個報文確認(rèn)。優(yōu)點(diǎn):信包少。缺點(diǎn):一旦包丟失,僅僅對一個報文確認(rèn)。優(yōu)點(diǎn):信包少。缺點(diǎn):一旦包丟失,恢復(fù)起來更復(fù)雜?;謴?fù)起來更復(fù)雜。2.3 2.3 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.7 2.3.7 客戶機(jī)客戶機(jī)- -服務(wù)器模式的實(shí)現(xiàn)服務(wù)器模式的實(shí)現(xiàn)客戶客戶-服務(wù)器協(xié)議中的

20、包類型服務(wù)器協(xié)議中的包類型代碼代碼包類型包類型 來源來源 至至說明說明REQ請求請求客戶客戶 服務(wù)器服務(wù)器客戶要求服務(wù)客戶要求服務(wù)REP應(yīng)答應(yīng)答服務(wù)器服務(wù)器客戶客戶 服務(wù)器對客戶的應(yīng)答服務(wù)器對客戶的應(yīng)答ACK確認(rèn)確認(rèn)服務(wù)器、客服務(wù)器、客戶戶其他其他前面的包已到達(dá)前面的包已到達(dá)AYA 你在這里嗎?你在這里嗎?客戶客戶服務(wù)器服務(wù)器查看服務(wù)器是否崩潰查看服務(wù)器是否崩潰IAA我在這里我在這里服務(wù)器服務(wù)器客戶客戶服務(wù)器沒有崩潰服務(wù)器沒有崩潰TA再試一次?再試一次?服務(wù)器服務(wù)器客戶客戶服務(wù)器沒有空間服務(wù)器沒有空間AU地址未知地址未知服務(wù)器服務(wù)器客戶客戶沒有進(jìn)程再使用此地沒有進(jìn)程再使用此地址址2.3 2.3

21、 客戶機(jī)服務(wù)器模式客戶機(jī)服務(wù)器模式2.3.7 2.3.7 客戶機(jī)客戶機(jī)- -服務(wù)器模式的實(shí)現(xiàn)服務(wù)器模式的實(shí)現(xiàn)客戶客戶-服務(wù)器通信使用的包交換示例服務(wù)器通信使用的包交換示例服務(wù)器服務(wù)器客戶客戶REQ REP服務(wù)器服務(wù)器客戶客戶REQ REPACK服務(wù)器服務(wù)器客戶客戶REQ ACKACK REP服務(wù)器服務(wù)器客戶客戶REQ ACKAYA IAA REPACK2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.1 2.4.1 基本基本RPCRPC操作操作 RPC的基本思想:調(diào)用遠(yuǎn)程過程就像調(diào)用本地過程一樣。的基本思想:調(diào)用遠(yuǎn)程過程就像調(diào)用本地過程一樣。 傳統(tǒng)過程調(diào)用傳統(tǒng)過程調(diào)用主函數(shù)主函數(shù)局部變量局部變量

22、主函數(shù)主函數(shù)局部變量局部變量主函數(shù)主函數(shù)局部變量局部變量Read的局部變量的局部變量返回地址返回地址fdbufbytesSP SP SP 0 0 2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.1 基本基本RPCRPC操作操作 RPC中的調(diào)用與消息中的調(diào)用與消息 圖圖2-162.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.1 2.4.1 基本基本RPCRPC操作操作 RPC的主要步驟的主要步驟 客戶過程以普通方式調(diào)用相應(yīng)的客戶存根客戶過程以普通方式調(diào)用相應(yīng)的客戶存根; 客戶存根建立消息并激活內(nèi)核陷阱客戶存根建立消息并激活內(nèi)核陷阱; 內(nèi)核將消息發(fā)送給遠(yuǎn)程內(nèi)核內(nèi)核將消息發(fā)送給遠(yuǎn)程內(nèi)核; 遠(yuǎn)程內(nèi)核將

23、消息送到服務(wù)器存根遠(yuǎn)程內(nèi)核將消息送到服務(wù)器存根; 服務(wù)器存根取出消息中的參數(shù)后調(diào)用服務(wù)器存根服務(wù)器存根取出消息中的參數(shù)后調(diào)用服務(wù)器存根; 服務(wù)器完成工作后將結(jié)果返回給服務(wù)器存根服務(wù)器完成工作后將結(jié)果返回給服務(wù)器存根; 服務(wù)器存根將它打包并激活內(nèi)核陷阱服務(wù)器存根將它打包并激活內(nèi)核陷阱; 遠(yuǎn)程內(nèi)核將消息發(fā)送給客戶內(nèi)核遠(yuǎn)程內(nèi)核將消息發(fā)送給客戶內(nèi)核; 客戶內(nèi)核將消息交給客戶存根客戶內(nèi)核將消息交給客戶存根; 客戶存根從消息中取出結(jié)果返回給客戶客戶存根從消息中取出結(jié)果返回給客戶.2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.2 2.4.2 參數(shù)傳遞參數(shù)傳遞 Sum(4,7)遠(yuǎn)程計(jì)算遠(yuǎn)程計(jì)算 sum47n

24、=sum(4,7)內(nèi)核內(nèi)核sum47 sum(i,j) int i.j; return(i+j);內(nèi)核內(nèi)核Message存根存根客戶機(jī)客戶機(jī)服務(wù)器機(jī)服務(wù)器機(jī)2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.2 2.4.2 參數(shù)傳遞參數(shù)傳遞 數(shù)字、字符格式不同數(shù)字、字符格式不同設(shè)計(jì)一個網(wǎng)絡(luò)標(biāo)準(zhǔn)或規(guī)范化的格式設(shè)計(jì)一個網(wǎng)絡(luò)標(biāo)準(zhǔn)或規(guī)范化的格式 根據(jù)需要轉(zhuǎn)換(在消息中加入格式信息)根據(jù)需要轉(zhuǎn)換(在消息中加入格式信息)存根從何處來存根從何處來根據(jù)形式說明和編碼規(guī)則自動生成根據(jù)形式說明和編碼規(guī)則自動生成 如何處理指針如何處理指針通常采用復(fù)制通常采用復(fù)制/恢復(fù)機(jī)制恢復(fù)機(jī)制2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用

25、2.4.3 動態(tài)捆綁動態(tài)捆綁 客戶如何定位服務(wù)器客戶如何定位服務(wù)器服務(wù)器向服務(wù)器向Binder注冊,注冊時需要登記服務(wù)器的名字、注冊,注冊時需要登記服務(wù)器的名字、版本、句柄、唯一標(biāo)識,以便客戶進(jìn)程能尋找到服務(wù)器進(jìn)版本、句柄、唯一標(biāo)識,以便客戶進(jìn)程能尋找到服務(wù)器進(jìn)程。程??蛻魪目蛻魪腂inder獲得服務(wù)器句柄獲得服務(wù)器句柄 和唯一標(biāo)識??蛻舸娓鶎⒑臀ㄒ粯?biāo)識。客戶存根將句柄作為地址,向它發(fā)送消息。句柄作為地址,向它發(fā)送消息。不足之處:不足之處: 輸入和輸出接口需要額外的開銷。在大型分布式系統(tǒng)輸入和輸出接口需要額外的開銷。在大型分布式系統(tǒng)中,中,binder會成為系統(tǒng)瓶頸。會成為系統(tǒng)瓶頸。2.4 2

26、.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.4 2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 客戶無法定位服務(wù)器客戶無法定位服務(wù)器原因:服務(wù)器關(guān)閉,客戶存根過時原因:服務(wù)器關(guān)閉,客戶存根過時解決方法解決方法使用全局變量使用全局變量異常處理機(jī)制異常處理機(jī)制客戶請求消息丟失客戶請求消息丟失解決方法解決方法使用計(jì)時器重發(fā)消息。使用計(jì)時器重發(fā)消息。2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.4 2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 服務(wù)器應(yīng)答消息丟失服務(wù)器應(yīng)答消息丟失無法區(qū)分請求丟失、應(yīng)答丟失、服務(wù)器太慢。無法區(qū)分請求丟失、應(yīng)答丟失、服務(wù)器太慢。解決方法:解決方法:將請求

27、構(gòu)造成冪等的。將請求構(gòu)造成冪等的??蛻魞?nèi)核給要發(fā)送的消息分配一個序號??蛻魞?nèi)核給要發(fā)送的消息分配一個序號。 2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.4 2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 服務(wù)器崩潰服務(wù)器崩潰客戶無法區(qū)分執(zhí)行前或執(zhí)行后崩潰??蛻魺o法區(qū)分執(zhí)行前或執(zhí)行后崩潰。接收接收執(zhí)行執(zhí)行應(yīng)答應(yīng)答REQREP服務(wù)器服務(wù)器接收接收執(zhí)行執(zhí)行REQREP服務(wù)器服務(wù)器crash接收接收REQNOREP服務(wù)器服務(wù)器crash正常狀態(tài)正常狀態(tài)執(zhí)行后崩潰執(zhí)行后崩潰執(zhí)行前崩潰執(zhí)行前崩潰2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.4 2.4.4 失敗情況下的失敗情況下的RPCRP

28、C語義語義 服務(wù)器崩潰服務(wù)器崩潰解決方法:解決方法:至少一次語義。等待服務(wù)器重新啟動,然后重發(fā)請求。至少一次語義。等待服務(wù)器重新啟動,然后重發(fā)請求。最多一次語義。立即放棄并報告失敗。最多一次語義。立即放棄并報告失敗。不作任何保證。當(dāng)服務(wù)器崩潰時,客戶得不到任何幫助不作任何保證。當(dāng)服務(wù)器崩潰時,客戶得不到任何幫助和保證。和保證。精確一次語義。不容易實(shí)現(xiàn)。精確一次語義。不容易實(shí)現(xiàn)。2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 客戶機(jī)崩潰客戶機(jī)崩潰存在孤兒問題存在孤兒問題孤兒:客戶已發(fā)出請求但在應(yīng)答到來之前崩潰了,此時孤兒:客戶已發(fā)出請求但在應(yīng)答到

29、來之前崩潰了,此時已激活了服務(wù)器中的相應(yīng)計(jì)算,但沒有客戶在等待結(jié)果。已激活了服務(wù)器中的相應(yīng)計(jì)算,但沒有客戶在等待結(jié)果。這樣的計(jì)算成為孤兒。這樣的計(jì)算成為孤兒。解決方法解決方法根除:客戶存根發(fā)送一個根除:客戶存根發(fā)送一個RPC前在日志文件中記下要執(zhí)前在日志文件中記下要執(zhí)行操作的信息。當(dāng)客戶重新啟動后,系統(tǒng)檢查日志文件,行操作的信息。當(dāng)客戶重新啟動后,系統(tǒng)檢查日志文件,并準(zhǔn)確清除孤兒。并準(zhǔn)確清除孤兒。2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 客戶機(jī)崩潰客戶機(jī)崩潰解決方法解決方法再生:將時間劃分成順序編號的紀(jì)元。當(dāng)一客戶重新啟動時,再生:將時間

30、劃分成順序編號的紀(jì)元。當(dāng)一客戶重新啟動時,它向所有機(jī)器廣播一個新紀(jì)元的開始。廣播后,所有遠(yuǎn)程計(jì)算它向所有機(jī)器廣播一個新紀(jì)元的開始。廣播后,所有遠(yuǎn)程計(jì)算被終止。被終止。溫和再生:當(dāng)接到客戶開始新紀(jì)元的廣播后,每臺機(jī)器檢查自溫和再生:當(dāng)接到客戶開始新紀(jì)元的廣播后,每臺機(jī)器檢查自己是否有遠(yuǎn)程計(jì)算,若有則試圖去找到該遠(yuǎn)程計(jì)算的調(diào)用者。己是否有遠(yuǎn)程計(jì)算,若有則試圖去找到該遠(yuǎn)程計(jì)算的調(diào)用者。若沒有找到該計(jì)算的調(diào)用者,則終止計(jì)算。若沒有找到該計(jì)算的調(diào)用者,則終止計(jì)算。過期:每一個過期:每一個RPC執(zhí)行時事先分給一個標(biāo)準(zhǔn)時間段執(zhí)行時事先分給一個標(biāo)準(zhǔn)時間段T 。當(dāng)。當(dāng)T到到期而調(diào)用未完成時再申請一個期而調(diào)用未完

31、成時再申請一個T。如果客戶崩潰,服務(wù)器在客。如果客戶崩潰,服務(wù)器在客戶重新啟動前等候了一個戶重新啟動前等候了一個T后,所有孤兒都被清除。后,所有孤兒都被清除。2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.5 2.4.5 實(shí)現(xiàn)的問題實(shí)現(xiàn)的問題 RPC協(xié)議族協(xié)議族任何已經(jīng)存在的能夠?qū)崿F(xiàn)從客戶內(nèi)核到服務(wù)器內(nèi)核之間按任何已經(jīng)存在的能夠?qū)崿F(xiàn)從客戶內(nèi)核到服務(wù)器內(nèi)核之間按位傳送的協(xié)議都可以作為位傳送的協(xié)議都可以作為RPC的協(xié)議。的協(xié)議。如何選擇對性能有很大影響如何選擇對性能有很大影響面向連接還是面向非連接的協(xié)議面向連接還是面向非連接的協(xié)議標(biāo)準(zhǔn)的通用協(xié)議還是專門為標(biāo)準(zhǔn)的通用協(xié)議還是專門為RPC設(shè)計(jì)的協(xié)議設(shè)計(jì)的協(xié)議信

32、包和報文的長度信包和報文的長度2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.5 實(shí)現(xiàn)的問題實(shí)現(xiàn)的問題 確認(rèn)確認(rèn)停等協(xié)議停等協(xié)議 爆發(fā)協(xié)議爆發(fā)協(xié)議0 1 2 30123ACK 0ACK 1ACK 2ACK 30123ACK 0-3Timeclientserverclientserver4k data2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.5 實(shí)現(xiàn)的問題實(shí)現(xiàn)的問題 確認(rèn)確認(rèn)如何處理超限錯誤如何處理超限錯誤如果超限錯誤是由于芯片處理中斷而暫時無法接收信包如果超限錯誤是由于芯片處理中斷而暫時無法接收信包引起的,發(fā)送者可在發(fā)送兩個信包之間加入一段延遲時引起的,發(fā)送者可在發(fā)送兩個信包之間加入一段延遲時間

33、。間。如果超限錯誤是由于芯片的緩沖區(qū)不夠而引起的,如果如果超限錯誤是由于芯片的緩沖區(qū)不夠而引起的,如果緩沖區(qū)容量為緩沖區(qū)容量為n個信包,則可在發(fā)送個信包,則可在發(fā)送n個信包后留一個個信包后留一個間隙,或是在發(fā)出間隙,或是在發(fā)出n個信包后,得到一個確認(rèn)后再發(fā)送個信包后,得到一個確認(rèn)后再發(fā)送后面的包。后面的包。2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.5 2.4.5 實(shí)現(xiàn)的問題實(shí)現(xiàn)的問題 關(guān)鍵路徑關(guān)鍵路徑每個每個RPC執(zhí)行的一系列指令順序稱為關(guān)鍵路徑。執(zhí)行的一系列指令順序稱為關(guān)鍵路徑。調(diào)用存根過程準(zhǔn)備消息緩沖區(qū)組裝參數(shù)到緩沖區(qū)填入消息頭信息陷阱到內(nèi)核切換到內(nèi)核將消息拷貝到內(nèi)核確定目的地址將地

34、址放入消息頭啟動網(wǎng)絡(luò)接口開始計(jì)時執(zhí)行服務(wù)調(diào)用服務(wù)器啟動棧上的參數(shù)拆卸成參數(shù)形式切換到服務(wù)器存根將消息拷貝到服務(wù)器檢查該村更是否在等待選定哪一個服務(wù)器存根檢查包的有效性處理中斷客戶客戶存根內(nèi)核服務(wù)器服務(wù)器存根內(nèi)核服務(wù)器機(jī)客戶機(jī)2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.5 2.4.5 實(shí)現(xiàn)的問題實(shí)現(xiàn)的問題 在關(guān)鍵路徑在關(guān)鍵路徑的什么地方的什么地方耗時最多?耗時最多?2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.5 實(shí)現(xiàn)的問題實(shí)現(xiàn)的問題 拷貝拷貝八次拷貝八次拷貝 客戶存根客戶存根客戶內(nèi)核緩沖區(qū)客戶內(nèi)核緩沖區(qū)客戶接口芯片緩沖區(qū)客戶接口芯片緩沖區(qū)服服務(wù)器接口芯片緩沖區(qū)務(wù)器接口芯片緩沖區(qū)服務(wù)器內(nèi)核

35、緩沖區(qū)服務(wù)器內(nèi)核緩沖區(qū)服務(wù)器存根服務(wù)器存根如果此調(diào)用含有一個大的值參數(shù)組時,還需另外三步拷如果此調(diào)用含有一個大的值參數(shù)組時,還需另外三步拷貝:貝:v將數(shù)組拷入客戶進(jìn)程的堆棧以調(diào)用客戶存根。將數(shù)組拷入客戶進(jìn)程的堆棧以調(diào)用客戶存根。v客戶存根組裝時,將數(shù)組從堆??截惖较⒕彌_區(qū)中??蛻舸娓M裝時,將數(shù)組從堆??截惖较⒕彌_區(qū)中。v服務(wù)器存根將數(shù)組從消息中取出,放入服務(wù)器進(jìn)程服務(wù)器存根將數(shù)組從消息中取出,放入服務(wù)器進(jìn)程的堆棧中。的堆棧中。 2.4 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.5 實(shí)現(xiàn)的問題實(shí)現(xiàn)的問題 拷貝拷貝分散分散-集中集中(匯集)匯集)具有分散具有分散-集中能力網(wǎng)絡(luò)接口芯片可以減少拷

36、貝次數(shù)。集中能力網(wǎng)絡(luò)接口芯片可以減少拷貝次數(shù)。它通過連接兩個或多個內(nèi)存緩沖區(qū)來裝配一個信包。它通過連接兩個或多個內(nèi)存緩沖區(qū)來裝配一個信包。在發(fā)送端,在發(fā)送端, 由客戶內(nèi)核緩沖區(qū)生成報文消息頭,由客由客戶內(nèi)核緩沖區(qū)生成報文消息頭,由客戶存根生成報文消息體,當(dāng)發(fā)送時,由網(wǎng)絡(luò)芯片組裝報戶存根生成報文消息體,當(dāng)發(fā)送時,由網(wǎng)絡(luò)芯片組裝報文。文。接受端將接收來的報文分解成消息體和消息頭,并放入接受端將接收來的報文分解成消息體和消息頭,并放入相應(yīng)的緩沖區(qū)。相應(yīng)的緩沖區(qū)。 2.4 遠(yuǎn)程過程調(diào)用遠(yuǎn)程過程調(diào)用2.4.5 實(shí)現(xiàn)的問題實(shí)現(xiàn)的問題 計(jì)時管理計(jì)時管理使用排序表使用排序表 使用進(jìn)程表使用進(jìn)程表 142001

37、4205進(jìn)程進(jìn)程 314212進(jìn)程進(jìn)程 214216進(jìn)程進(jìn)程 00現(xiàn)在時間現(xiàn)在時間142001421601421214205現(xiàn)在時間現(xiàn)在時間進(jìn)程表進(jìn)程表01232.5 2.5 組通信組通信2.5.1 2.5.1 組通信的引入組通信的引入 組組及其主要性質(zhì)及其主要性質(zhì) 組:組是指在某系統(tǒng)或用戶指定方式下協(xié)同工作的多個進(jìn)組:組是指在某系統(tǒng)或用戶指定方式下協(xié)同工作的多個進(jìn)程的集合。程的集合。 主要性質(zhì):當(dāng)一條消息發(fā)送到該組后,組內(nèi)的所有成員都主要性質(zhì):當(dāng)一條消息發(fā)送到該組后,組內(nèi)的所有成員都能收到該消息。能收到該消息。 三種通信方式:多點(diǎn)傳送、廣播通信和單點(diǎn)傳送。三種通信方式:多點(diǎn)傳送、廣播通信和單

38、點(diǎn)傳送。 SRSRRRRRRRR2.5 2.5 組通信組通信2.5.2 2.5.2 設(shè)計(jì)的問題設(shè)計(jì)的問題 封閉組與開放組封閉組與開放組 封閉組:只允許組內(nèi)成員給該組發(fā)送消息,組外成員不能封閉組:只允許組內(nèi)成員給該組發(fā)送消息,組外成員不能向作為一個整體的組發(fā)送消息。并行系統(tǒng),如象棋游戲。向作為一個整體的組發(fā)送消息。并行系統(tǒng),如象棋游戲。 開放組:系統(tǒng)內(nèi)任何進(jìn)程可以給任何組發(fā)送消息,如復(fù)制開放組:系統(tǒng)內(nèi)任何進(jìn)程可以給任何組發(fā)送消息,如復(fù)制服務(wù)器。服務(wù)器。 不允許不允許進(jìn)程不是進(jìn)程不是組的成員組的成員封閉組封閉組允許允許進(jìn)程不是進(jìn)程不是組的成員組的成員開放組開放組2.5 2.5 組通信組通信2.5.

39、2 2.5.2 設(shè)計(jì)的問題設(shè)計(jì)的問題 對等組與分層組對等組與分層組 對等組:所有進(jìn)程地位相同,做決定需組內(nèi)成員表決。對等組:所有進(jìn)程地位相同,做決定需組內(nèi)成員表決。 分層組:分層組:由協(xié)調(diào)者負(fù)責(zé)作出決定。由協(xié)調(diào)者負(fù)責(zé)作出決定。 對等組對等組分層組分層組協(xié)調(diào)者協(xié)調(diào)者工作人員工作人員優(yōu)點(diǎn):對稱的,沒有單點(diǎn)故障優(yōu)點(diǎn):對稱的,沒有單點(diǎn)故障缺點(diǎn):組內(nèi)要做出決定更為復(fù)雜缺點(diǎn):組內(nèi)要做出決定更為復(fù)雜優(yōu)點(diǎn):組內(nèi)要做出決定簡單優(yōu)點(diǎn):組內(nèi)要做出決定簡單缺點(diǎn):單點(diǎn)故障缺點(diǎn):單點(diǎn)故障2.5 2.5 組通信組通信2.5.2 2.5.2 設(shè)計(jì)的問題設(shè)計(jì)的問題 組的成員組的成員 組管理:組管理:使用組服務(wù)器使用組服務(wù)器分布

40、式方法管理組內(nèi)成員分布式方法管理組內(nèi)成員 兩個帶欺騙性的問題兩個帶欺騙性的問題 區(qū)分組成員自愿離開和崩潰區(qū)分組成員自愿離開和崩潰加入與離開一個組與發(fā)送的消息同步加入與離開一個組與發(fā)送的消息同步2.5 2.5 組通信組通信2.5.2 設(shè)計(jì)的問題設(shè)計(jì)的問題 組的編址組的編址 給每個組一個唯一的地址,有三種實(shí)現(xiàn)方法:給每個組一個唯一的地址,有三種實(shí)現(xiàn)方法:進(jìn)程進(jìn)程0 0向包括進(jìn)程向包括進(jìn)程1 1,3 3,4 4的進(jìn)程組發(fā)消息的進(jìn)程組發(fā)消息0123401234內(nèi)核丟棄消息內(nèi)核丟棄消息多點(diǎn)傳送多點(diǎn)傳送01234單點(diǎn)傳送單點(diǎn)傳送廣播傳送廣播傳送2.5 2.5 組通信組通信2.5.2 2.5.2 設(shè)計(jì)的問題

41、設(shè)計(jì)的問題 組的編址組的編址 發(fā)送者提供一個所有目的地址的顯示列表發(fā)送者提供一個所有目的地址的顯示列表不透明;一旦組成員改變,用戶進(jìn)程必須更新器組成員不透明;一旦組成員改變,用戶進(jìn)程必須更新器組成員列表列表。 判定編址判定編址每條消息包含一個需要計(jì)算的判定每條消息包含一個需要計(jì)算的判定是一個布爾表達(dá)式,涉及到接收者的機(jī)器號、它的局部是一個布爾表達(dá)式,涉及到接收者的機(jī)器號、它的局部變量或其他因素。變量或其他因素。布爾表達(dá)式為布爾表達(dá)式為TRUE,則消息被接收。如果為,則消息被接收。如果為FALSE,則消息被丟棄。則消息被丟棄。2.5 2.5 組通信組通信2.5.2 2.5.2 設(shè)計(jì)的問題設(shè)計(jì)的問題 發(fā)送和接收原語發(fā)送和接收原語如何將點(diǎn)對點(diǎn)通信和組通信融于一個單獨(dú)的原語集之中。如何將點(diǎn)對點(diǎn)通信和組通信融于一個單獨(dú)的原語集之中。采用單向通信模型采用單向通信模型send和和receive的顯示調(diào)用。系統(tǒng)根據(jù)的顯示調(diào)用。系統(tǒng)根據(jù)地址地址 (進(jìn)程地址或者組地址)區(qū)分。(進(jìn)程地址或者組地址)區(qū)分。一些系統(tǒng)引入新的庫例程一些系統(tǒng)引入新的庫例程 group_send group_receive原子性原子性 原子性:當(dāng)一條消息發(fā)給一個組后,要么該組的所有成員原子性:當(dāng)一條消息發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論