




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 進程間的通信是一切分布式系統的基礎,進程間的通信是一切分布式系統的基礎,它基于底層網絡提供的底層消息傳遞機制它基于底層網絡提供的底層消息傳遞機制 分層協議分層協議 遠程過程調用遠程過程調用 遠程對象調用遠程對象調用 面向消息的通信面向消息的通信 多播通信多播通信 OSI 模型中的層、接口和協議模型中的層、接口和協議2-1必須在不同層次制訂多必須在不同層次制訂多種協議,包括從位傳輸種協議,包括從位傳輸的底層細節到信息表示的底層細節到信息表示的高層細節:的高層細節:0,1的電壓表示的電壓表示消息的結束位消息的結束位檢測消息的丟失或損壞檢測消息的丟失或損壞及其處理及其處理數值、字符串及其它數數值、
2、字符串及其它數據項的長度和表示方法據項的長度和表示方法面向連接的協議:電話面向連接的協議:電話無連接的協議:郵箱無連接的協議:郵箱 在網絡上傳輸的典型消息在網絡上傳輸的典型消息2-2 RPC是分布式系統通信處理的事實標準是分布式系統通信處理的事實標準,實現實現消息傳輸的透明性。消息傳輸的透明性。 常規過程調用常規過程調用 客戶存根和服務器存根客戶存根和服務器存根 參數傳遞參數傳遞Count=read(fd,buf,nbyte),本地過程調用中的參數傳遞:本地過程調用中的參數傳遞:調用調用read前的堆棧狀態前的堆棧狀態過程調用執行時的堆棧狀態過程調用執行時的堆棧狀態 客戶和服務器間的客戶和服務
3、器間的RPC原理原理1.客戶過程以正常的方式調用客戶存根客戶過程以正常的方式調用客戶存根2.客戶存根生成一個消息,然后調用本地操作系統客戶存根生成一個消息,然后調用本地操作系統3.客戶端操作系統將消息發送給遠程操作系統客戶端操作系統將消息發送給遠程操作系統4.遠程操作系統將消息交給服務器存根遠程操作系統將消息交給服務器存根5.服務器存根將參數提取出來,然后調用服務器服務器存根將參數提取出來,然后調用服務器6.服務器執行要求的操作,操作完成后將結果返回給服務器服務器執行要求的操作,操作完成后將結果返回給服務器存根存根7.服務器存根將結果打包成一個消息,然后調用本地操作系服務器存根將結果打包成一個
4、消息,然后調用本地操作系統統8.服務器操作系統將含有結果的消息發送回客戶端操作系統服務器操作系統將含有結果的消息發送回客戶端操作系統9.客戶端操作系統將消息交給客戶存根客戶端操作系統將消息交給客戶存根10. 客戶存根將結果從消息中提取出來,返回給調用它的客戶客戶存根將結果從消息中提取出來,返回給調用它的客戶過程過程 通過通過RPC進行遠程計算的步驟進行遠程計算的步驟 2-8a) Pentium上的原始消息上的原始消息b) SPARC收到的消息收到的消息c) 進行逆轉后的消息進行逆轉后的消息 對于簡單數組和結構:使用復制對于簡單數組和結構:使用復制-還原代替引還原代替引用調用用調用 很難傳遞一般
5、意義的指針:如復雜圖形的指很難傳遞一般意義的指針:如復雜圖形的指針針RPC雙方必須就交換的格式達成一致雙方必須就交換的格式達成一致一個過程一個過程相應的消息相應的消息傳統傳統RPC交互過程交互過程異步異步RPC交互過程交互過程 使用客戶端代理的遠程對象的一般組織結構使用客戶端代理的遠程對象的一般組織結構2-16 當遠程過程調用和遠程對象調用不適用時,當遠程過程調用和遠程對象調用不適用時,需要面向消息的通信。需要面向消息的通信。 消息中的持久性和同步性消息中的持久性和同步性 面向消息的暫時通信面向消息的暫時通信 面向消息的持久通信面向消息的持久通信 通信系統的通用結構通信系統的通用結構2-20
6、驛馬快遞時代使用的驛馬快遞時代使用的持久通信持久通信:通信雙方不必保持運行:通信雙方不必保持運行 在在暫時通信暫時通信中,通信系統只在發送者和接收者運行時存儲消息中,通信系統只在發送者和接收者運行時存儲消息a)持久持久異步通信異步通信:提交消息后立即執行其他程序,電子郵件:提交消息后立即執行其他程序,電子郵件b)持久持久同步通信同步通信:提交消息后會被阻塞,直到消息已到達并:提交消息后會被阻塞,直到消息已到達并存儲在接收主機存儲在接收主機2-22.1c)暫時異步通信暫時異步通信d)基于基于接收接收的的暫時同步通信暫時同步通信2-22.2e)基于基于交付交付的的暫時通信暫時通信f)基于基于響應響
7、應的同步通信的同步通信 不提供消息的中介存儲,實時性要求高不提供消息的中介存儲,實時性要求高(幾秒甚至幾毫秒)(幾秒甚至幾毫秒) Berkeley Sockets Message-Passing Interface TCP/IP套接字原語套接字原語原語原語含義含義Socket創建新的通信端點創建新的通信端點Bind將本地地址附加(將本地地址附加(attach)到套接字上)到套接字上Listen宣布已準備好接受連接宣布已準備好接受連接Accept在收到連接請求前阻塞調用方在收到連接請求前阻塞調用方Connect主動嘗試建立連接主動嘗試建立連接Send通過連接發送數據通過連接發送數據Receive
8、通過連接接收數據通過連接接收數據Close釋放連接釋放連接 使用套接字的面向連接通信模式使用套接字的面向連接通信模式 適用于高速互聯網絡,為高性能并行應用程序設計,有更適用于高速互聯網絡,為高性能并行應用程序設計,有更高級的特性:緩沖、同步高級的特性:緩沖、同步 MPI中的基本消息傳遞原語中的基本消息傳遞原語原語原語含義含義MPI_bsend將消息追加到本地發送緩沖區中將消息追加到本地發送緩沖區中MPI_send發送消息,并等待到消息復制到本地或遠程緩沖區為止發送消息,并等待到消息復制到本地或遠程緩沖區為止MPI_ssend 發送消息,并等待到對方開始接收為止發送消息,并等待到對方開始接收為止
9、MPI_sendrecv發送消息,并等待到收到應答消息為止發送消息,并等待到收到應答消息為止MPI_isend傳遞要發送消息的引用,然后繼續執行傳遞要發送消息的引用,然后繼續執行MPI_issend傳遞要發送消息的引用,并等待到對方開始接收為止傳遞要發送消息的引用,并等待到對方開始接收為止MPI_recv接受消息,如果不存在的等待的消息則阻塞接受消息,如果不存在的等待的消息則阻塞MPI_irecv檢查是否有輸入的消息,但無論有無消息都不會阻塞檢查是否有輸入的消息,但無論有無消息都不會阻塞 提供消息的中介存儲,實時性要求低(幾分鐘)提供消息的中介存儲,實時性要求低(幾分鐘) Message-Qu
10、euing system 消息隊列系統消息隊列系統 應用程序通過在特定隊列中插入消息來進行通信應用程序通過在特定隊列中插入消息來進行通信 只保證發送者的消息最終被放置到接收者的隊列中,只保證發送者的消息最終被放置到接收者的隊列中,并不保證時間,也不保證消息被讀取。并不保證時間,也不保證消息被讀取。 使用隊列的松耦合通信的四種組合方式使用隊列的松耦合通信的四種組合方式2-26 消息隊列系統中隊列的基本接口消息隊列系統中隊列的基本接口原語原語含義含義Put將消息追加到指定隊列將消息追加到指定隊列Get調用進程阻塞,直到指定隊列非空,取出第一個消息調用進程阻塞,直到指定隊列非空,取出第一個消息Pol
11、l察看指定隊列的消息,取出第一個消息,不阻塞調用進程察看指定隊列的消息,取出第一個消息,不阻塞調用進程Notify注冊一個處理程序,在有消息進入指定隊列時調用該處理程序注冊一個處理程序,在有消息進入指定隊列時調用該處理程序 源隊列,目的隊列源隊列,目的隊列 隊列級編址與網絡級編址間的關系隊列級編址與網絡級編址間的關系 含有路由器的消息隊列系統的通用體系結構含有路由器的消息隊列系統的通用體系結構2-29 The general organization of a message broker in a message-queuing system.2-30多播通信多播通信 多播:服務器向其他多播
12、:服務器向其他N臺服務器發送更新時,底臺服務器發送更新時,底層的網絡負責向多個接收者發送一個消息,高效層的網絡負責向多個接收者發送一個消息,高效 網絡層多播網絡層多播 應用層多播:將節點組織成一個覆蓋網絡,用它應用層多播:將節點組織成一個覆蓋網絡,用它來傳播信息給其成員,路由并非最佳來傳播信息給其成員,路由并非最佳 覆蓋網絡的構建:覆蓋網絡的構建: 樹狀網絡:路徑唯一樹狀網絡:路徑唯一 網狀網絡;多個路徑網狀網絡;多個路徑覆蓋網絡路由并非最佳覆蓋網絡路由并非最佳基于基于 Epidemic協議使用本地信息在大型節點集中快速地傳播信息協議使用本地信息在大型節點集中快速地傳播信息 提供提供最終一致性
13、最終一致性:保證所有的副本最終是一致的:保證所有的副本最終是一致的一個服務器可以是:一個服務器可以是: 傳染性的:持有愿意向其他服務器散布的更新傳染性的:持有愿意向其他服務器散布的更新 易感的:尚未更新的服務器易感的:尚未更新的服務器 隔離的:已更新的服務器如果不愿意或不能擴散其更新隔離的:已更新的服務器如果不愿意或不能擴散其更新反熵反熵傳播模型:服務器傳播模型:服務器P周期的隨機選取一臺服務器周期的隨機選取一臺服務器Q交換更新,方式包括:交換更新,方式包括: P只把自己的更新推入只把自己的更新推入Q:較差的選擇:較差的選擇 P只從只從Q拉出新的更新拉出新的更新 P和和Q相互發送更新相互發送更
14、新 可以證明:如果初始只有一臺服務器具有傳染性,無論采用哪種形式,可以證明:如果初始只有一臺服務器具有傳染性,無論采用哪種形式,更新最終將被傳播到所有服務器上:更新最終將被傳播到所有服務器上:O(log(N), N為系統結點數為系統結點數 思想:思想: 如果服務器如果服務器P剛剛因為數據項剛剛因為數據項x而被更新,那么它聯系任而被更新,那么它聯系任意一個其他服務器意一個其他服務器Q,并試圖將更新推入,并試圖將更新推入Q。 如果如果Q已經被其他服務器更新了,已經被其他服務器更新了, P可能會失去繼續擴散可能會失去繼續擴散的興趣,變成隔離的(這種可能性是的興趣,變成隔離的(這種可能性是1/k) 快
15、速傳播更新的方法快速傳播更新的方法 但不能保證所有的服務器都被更新了但不能保證所有的服務器都被更新了 s=e-(k+1)(1-s) ,k=3時,時,s小于小于2%;k=4時,時,s小于小于0.7% 可以將可以將gossiping和反熵模型結合和反熵模型結合 分層協議分層協議 遠程過程調用遠程過程調用 遠程對象調用遠程對象調用 面向消息的通信面向消息的通信 多播通信多播通信高級操作系統編程作業一高級操作系統編程作業一任務任務使用使用socket編程實現一個簡單的文件服務器。客戶端程序實現編程實現一個簡單的文件服務器。客戶端程序實現put功能功能(將一個文件從本地傳到文件服務器將一個文件從本地傳到文件服務器)和和get功能功能(從文件服務器取一遠程從文件服務器取一遠程文件存為本地文件文件存為本地文件)。客戶端和文件服務器不在同一臺機器上。客戶端和文件服務器不在同一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論