高級操作系統(tǒng)第四章分布式系統(tǒng)通信-課件_第1頁
高級操作系統(tǒng)第四章分布式系統(tǒng)通信-課件_第2頁
高級操作系統(tǒng)第四章分布式系統(tǒng)通信-課件_第3頁
高級操作系統(tǒng)第四章分布式系統(tǒng)通信-課件_第4頁
高級操作系統(tǒng)第四章分布式系統(tǒng)通信-課件_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章分布式系統(tǒng)通信進(jìn)程間的通信是一切分布式系統(tǒng)的基礎(chǔ),它基于底層網(wǎng)絡(luò)提供的底層消息傳遞機(jī)制分層協(xié)議遠(yuǎn)程過程調(diào)用遠(yuǎn)程對象調(diào)用面向消息的通信多播通信2020/11/241層次協(xié)議(1)OSI模型中的層、接口和協(xié)議2-1必須在不同層次制訂多種協(xié)議,包括從位傳輸?shù)牡讓蛹?xì)節(jié)到信息表示的高層細(xì)節(jié):0,1的電壓表示消息的結(jié)束位檢測消息的丟失或損壞及其處理數(shù)值、字符串及其它數(shù)據(jù)項的長度和表示方法面向連接的協(xié)議:電話無連接的協(xié)議:郵箱2020/11/242精品資料3你怎么稱呼老師?如果老師最后沒有總結(jié)一節(jié)課的重點的難點,你是否會認(rèn)為老師的教學(xué)方法需要改進(jìn)?你所經(jīng)歷的課堂,是講座式還是討論式?教師的教鞭“不怕太陽曬,也不怕那風(fēng)雨狂,只怕先生罵我笨,沒有學(xué)問無顏見爹娘……”“太陽當(dāng)空照,花兒對我笑,小鳥說早早早……”4層次協(xié)議(2)在網(wǎng)絡(luò)上傳輸?shù)牡湫拖?-22020/11/245遠(yuǎn)程過程調(diào)用

(RemoteProcedureCall)RPC是分布式系統(tǒng)通信處理的事實標(biāo)準(zhǔn),實現(xiàn)消息傳輸?shù)耐该餍?。常?guī)過程調(diào)用客戶存根和服務(wù)器存根參數(shù)傳遞2020/11/246常規(guī)過程調(diào)用Count=read(fd,buf,nbyte),本地過程調(diào)用中的參數(shù)傳遞:調(diào)用read前的堆棧狀態(tài)過程調(diào)用執(zhí)行時的堆棧狀態(tài)2020/11/247客戶存根和服務(wù)器存根客戶和服務(wù)器間的RPC原理2020/11/248遠(yuǎn)程過程調(diào)用步驟客戶過程以正常的方式調(diào)用客戶存根客戶存根生成一個消息,然后調(diào)用本地操作系統(tǒng)客戶端操作系統(tǒng)將消息發(fā)送給遠(yuǎn)程操作系統(tǒng)遠(yuǎn)程操作系統(tǒng)將消息交給服務(wù)器存根服務(wù)器存根將參數(shù)提取出來,然后調(diào)用服務(wù)器服務(wù)器執(zhí)行要求的操作,操作完成后將結(jié)果返回給服務(wù)器存根服務(wù)器存根將結(jié)果打包成一個消息,然后調(diào)用本地操作系統(tǒng)服務(wù)器操作系統(tǒng)將含有結(jié)果的消息發(fā)送回客戶端操作系統(tǒng)客戶端操作系統(tǒng)將消息交給客戶存根客戶存根將結(jié)果從消息中提取出來,返回給調(diào)用它的客戶過程2020/11/249參數(shù)傳遞-傳遞值參(1)通過RPC進(jìn)行遠(yuǎn)程計算的步驟2-82020/11/2410傳遞值參(2)Pentium上的原始消息SPARC收到的消息進(jìn)行逆轉(zhuǎn)后的消息2020/11/2411傳遞引用參數(shù)對于簡單數(shù)組和結(jié)構(gòu):使用復(fù)制-還原代替引用調(diào)用很難傳遞一般意義的指針:如復(fù)雜圖形的指針2020/11/2412參數(shù)說明RPC雙方必須就交換的格式達(dá)成一致一個過程相應(yīng)的消息2020/11/2413異步RPC傳統(tǒng)RPC交互過程異步RPC交互過程2020/11/2414延遲的同步RPC2020/11/2415遠(yuǎn)程對象調(diào)用使用客戶端代理的遠(yuǎn)程對象的一般組織結(jié)構(gòu)2-162020/11/2416面向消息的通信

當(dāng)遠(yuǎn)程過程調(diào)用和遠(yuǎn)程對象調(diào)用不適用時,需要面向消息的通信。消息中的持久性和同步性面向消息的暫時通信面向消息的持久通信2020/11/2417消息中的持久性和同步性(1)通信系統(tǒng)的通用結(jié)構(gòu)2-202020/11/2418消息中的持久性和同步性(2)驛馬快遞時代使用的持久通信:通信雙方不必保持運行在暫時通信中,通信系統(tǒng)只在發(fā)送者和接收者運行時存儲消息2020/11/2419消息中的持久性和同步性(3)持久異步通信:提交消息后立即執(zhí)行其他程序,電子郵件持久同步通信:提交消息后會被阻塞,直到消息已到達(dá)并存儲在接收主機(jī)2-22.12020/11/2420消息中的持久性和同步性(4)暫時異步通信基于接收的暫時同步通信2-22.22020/11/2421消息中的持久性和同步性(5)基于交付的暫時通信基于響應(yīng)的同步通信2020/11/2422面向消息的暫時通信不提供消息的中介存儲,實時性要求高(幾秒甚至幾毫秒)BerkeleySocketsMessage-PassingInterface2020/11/2423BerkeleySockets(1)TCP/IP套接字原語原語含義Socket創(chuàng)建新的通信端點Bind將本地地址附加(attach)到套接字上Listen宣布已準(zhǔn)備好接受連接Accept在收到連接請求前阻塞調(diào)用方Connect主動嘗試建立連接Send通過連接發(fā)送數(shù)據(jù)Receive通過連接接收數(shù)據(jù)Close釋放連接2020/11/2424BerkeleySockets(2)使用套接字的面向連接通信模式2020/11/2425TheMessage-PassingInterface(MPI)適用于高速互聯(lián)網(wǎng)絡(luò),為高性能并行應(yīng)用程序設(shè)計,有更高級的特性:緩沖、同步MPI中的基本消息傳遞原語原語含義MPI_bsend將消息追加到本地發(fā)送緩沖區(qū)中MPI_send發(fā)送消息,并等待到消息復(fù)制到本地或遠(yuǎn)程緩沖區(qū)為止MPI_ssend發(fā)送消息,并等待到對方開始接收為止MPI_sendrecv發(fā)送消息,并等待到受到應(yīng)答消息為止MPI_isend傳遞要發(fā)送消息的引用,然后繼續(xù)執(zhí)行MPI_issend傳遞要發(fā)送消息的引用,并等待到對方開始接收為止MPI_recv接受消息,如果不存在的等待的消息則阻塞MPI_irecv檢查是否有輸入的消息,但無論有無消息都不會阻塞2020/11/2426面向消息的持久通信提供消息的中介存儲,實時性要求低(幾分鐘)Message-Queuingsystem消息隊列系統(tǒng)應(yīng)用程序通過在特定隊列中插入消息來進(jìn)行通信只保證發(fā)送者的消息最終被放置到接收者的隊列中,并不保證時間,也不保證消息被讀取。2020/11/2427Message-QueuingModel(1)使用隊列的松耦合通信的四種組合方式2-262020/11/2428Message-QueuingModel(2)消息隊列系統(tǒng)中隊列的基本接口原語含義Put將消息追加到指定隊列Get調(diào)用進(jìn)程阻塞,直到指定隊列非空,取出第一個消息Poll察看指定隊列的消息,取出第一個消息,不阻塞調(diào)用進(jìn)程Notify注冊一個處理程序,在有消息進(jìn)入指定隊列時調(diào)用該處理程序2020/11/2429消息隊列系統(tǒng)的通用體系結(jié)構(gòu)(1)源隊列,目的隊列隊列級編址與網(wǎng)絡(luò)級編址間的關(guān)系2020/11/2430消息隊列系統(tǒng)的通用體系結(jié)構(gòu)(2)含有路由器的消息隊列系統(tǒng)的通用體系結(jié)構(gòu)2-292020/11/2431(消息轉(zhuǎn)換器)MessageBrokersThegeneralorganizationofamessagebrokerinamessage-queuingsystem.2-302020/11/2432多播通信多播:服務(wù)器向其他N臺服務(wù)器發(fā)送更新時,底層的網(wǎng)絡(luò)負(fù)責(zé)向多個接收者發(fā)送一個消息,高效網(wǎng)絡(luò)層多播應(yīng)用層多播:將節(jié)點組織成一個覆蓋網(wǎng)絡(luò),用它來傳播信息給其成員,路由并非最佳覆蓋網(wǎng)絡(luò)的構(gòu)建:樹狀網(wǎng)絡(luò):路徑唯一網(wǎng)狀網(wǎng)絡(luò);多個路徑2020/11/2433覆蓋網(wǎng)絡(luò)的構(gòu)建覆蓋網(wǎng)絡(luò)路由并非最佳2020/11/2434基于gossiping的數(shù)據(jù)通信Epidemic協(xié)議使用本地信息在大型節(jié)點集中快速地傳播信息提供最終一致性:保證所有的副本最終是一致的一個服務(wù)器可以是:傳染性的:持有愿意向其他服務(wù)器散布的更新易感的:尚未更新的服務(wù)器隔離的:已更新的服務(wù)器如果不愿意或不能擴(kuò)散其更新反熵傳播模型:服務(wù)器P周期的隨機(jī)選取一臺服務(wù)器Q交換更新,方式包括:P只把自己的更新推入Q:較差的選擇P只從Q拉出新的更新P和Q相互發(fā)送更新可以證明:如果初始只有一臺服務(wù)器具有傳染性,無論采用哪種形式,更新最終將被傳播到所有服務(wù)器上2020/11/2435gossiping思想:如果服務(wù)器P剛剛因為數(shù)據(jù)項x而被更新,那么它聯(lián)系任意一個其他服務(wù)器Q,并試圖將更新推入Q。如果Q已經(jīng)被其他服務(wù)器更新了,P可能會失去繼續(xù)擴(kuò)散的興趣,變成隔離的(這種可能性是1/k)快速傳播更新的方法但不能保證所有的服務(wù)器都被更新了s=e-(k+1)(1-s),k=3時,s小于2%;k=4時,s小于0.7%可以將gossiping和反熵結(jié)合2020/11/2436小結(jié)分層協(xié)議遠(yuǎn)程過程調(diào)用遠(yuǎn)程對象調(diào)用面向消息的通信多播通信2020/11/2437高級操作系統(tǒng)編程作業(yè)一任務(wù)使用socket編程實現(xiàn)一個簡單的文件服務(wù)器。客戶端程序?qū)崿F(xiàn)put功能(將一個文件從本地傳到文件服務(wù)器)和get功能(從文件服務(wù)器取一遠(yuǎn)程文件存為本地文件)??蛻舳撕臀募?wù)器不在同一臺機(jī)器上。p

溫馨提示

  • 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

提交評論