第1章分布式計(jì)算概述_第1頁
第1章分布式計(jì)算概述_第2頁
第1章分布式計(jì)算概述_第3頁
第1章分布式計(jì)算概述_第4頁
第1章分布式計(jì)算概述_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)分布式計(jì)算與開發(fā)模式分布式計(jì)算與開發(fā)模式 Why What When Where How Exam 教材:機(jī)械工業(yè)出版社分布式計(jì)算、云計(jì)算與大數(shù)據(jù)林偉偉 主編第第1章章 分布式計(jì)算概述分布式計(jì)算概述分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)提提 綱綱 分布式計(jì)算概念 分布式系統(tǒng)介紹 分布式計(jì)算基礎(chǔ)技術(shù)分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)分布式計(jì)算的定義 分布式計(jì)算是一門計(jì)算機(jī)科學(xué),主要研究對(duì)象是分布式系統(tǒng)。在介紹分布式計(jì)算概念前,首先簡單了解一下什么是分布式系統(tǒng)。簡單地說,一個(gè)分布式系統(tǒng)是由若干通過網(wǎng)絡(luò)互聯(lián)的計(jì)算機(jī)組成的軟硬件系統(tǒng)1,且這些

2、計(jì)算機(jī)互相配合以完成一個(gè)共同的目標(biāo)(往往這個(gè)共同的目標(biāo)稱為“項(xiàng)目”)分布式計(jì)算指在分布式系統(tǒng)上執(zhí)行的計(jì)算。分布式計(jì)算是將一個(gè)大型計(jì)算任務(wù)分成很多部分分別交給其他的計(jì)算機(jī)處理,并將所有的計(jì)算結(jié)果合并為原問題的解決方案。這里與并行計(jì)算不同的是,并行計(jì)算是使用多個(gè)處理器并行執(zhí)行單個(gè)計(jì)算。分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)分布式計(jì)算的優(yōu)缺點(diǎn)優(yōu)點(diǎn)優(yōu)點(diǎn)超大規(guī)模超大規(guī)模 虛擬化虛擬化高可靠性高可靠性 通用性通用性 高可伸縮性高可伸縮性 按需服務(wù)按需服務(wù) 極其廉價(jià)極其廉價(jià) 容錯(cuò)性容錯(cuò)性弱點(diǎn)弱點(diǎn)多點(diǎn)故障多點(diǎn)故障一臺(tái)或多臺(tái)計(jì)算機(jī)的故障,或一條或多條網(wǎng)絡(luò)鏈路的故障,都會(huì)導(dǎo)致分布式系統(tǒng)出現(xiàn)問題安全性安全性分

3、布式系統(tǒng)為非授權(quán)用戶的攻擊提供了更多機(jī)會(huì)分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)分布式云計(jì)算相關(guān)計(jì)算形式分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)分布式云計(jì)算相關(guān)計(jì)算形式分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)集中計(jì)算與分布式計(jì)算mainframe computerworkstationnetwork hostnetwork linkterminalcentralized computingdistributed computing分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)串行運(yùn)算與并行運(yùn)算并行運(yùn)算與分布式計(jì)算的區(qū)別是:分布式計(jì)算強(qiáng)調(diào)的是任務(wù)的分布執(zhí)行,而并行計(jì)算強(qiáng)調(diào)的是任務(wù)的并發(fā)

4、執(zhí)行分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)云計(jì)算概念提出云計(jì)算概念提出l提出者:Google工程師,比希利亞,27歲l出發(fā)點(diǎn):推廣Google超級(jí)強(qiáng)大的計(jì)算資源,招賢納士 l結(jié)果:蜂擁而至,名噪一時(shí),被視為“云”的起源*- 10 -分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)云計(jì)算與網(wǎng)格計(jì)算云計(jì)算與網(wǎng)格計(jì)算v 網(wǎng)格計(jì)算:利用互聯(lián)網(wǎng)把地理上廣泛分布的各種資源(計(jì)算、存儲(chǔ)、帶寬、軟件、數(shù)據(jù)、信息、知識(shí)等)連成一個(gè)邏輯整體,就像一臺(tái)超級(jí)計(jì)算機(jī)一樣,為用戶提供一體化信息和應(yīng)用服務(wù)(計(jì)算、存儲(chǔ)、訪問等) 。v 網(wǎng)格計(jì)算強(qiáng)調(diào)資源共享,任何節(jié)點(diǎn)都可以請(qǐng)求使用其它節(jié)點(diǎn)的資源,任何節(jié)點(diǎn)都需要貢獻(xiàn)一定資源給

5、其他節(jié)點(diǎn)。云計(jì)算強(qiáng)調(diào)專有,請(qǐng)求或獲取的資源是專有的,并且由少數(shù)團(tuán)體提供,使用者不需要貢獻(xiàn)自己的資源。v 網(wǎng)格計(jì)算側(cè)重并行的計(jì)算集中性需求,并且難以自動(dòng)擴(kuò)展。云計(jì)算側(cè)重事務(wù)性應(yīng)用,大量的單獨(dú)的請(qǐng)求,可以實(shí)現(xiàn)自動(dòng)或半自動(dòng)的擴(kuò)展。云計(jì)算包含的網(wǎng)格計(jì)算特征:(1)提供在線的計(jì)算、存儲(chǔ)等服務(wù)(2)超大規(guī)模的資源組合(3)資源的虛擬化*11分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)云計(jì)算與分布式計(jì)算云計(jì)算與分布式計(jì)算v分布式計(jì)算(狹義):將待解決問題分成多個(gè)小問題,再分配給許多計(jì)算系統(tǒng)處理,最后將處理結(jié)果加以綜合。v特點(diǎn):把計(jì)算任務(wù)分派給網(wǎng)絡(luò)中的多臺(tái)獨(dú)立的機(jī)器v優(yōu)點(diǎn)稀有資源可以共享 通過分布式計(jì)算可以在

6、多臺(tái)計(jì)算機(jī)上平衡計(jì)算負(fù)載 可以把程序放在最適合運(yùn)行它的計(jì)算機(jī)上 云計(jì)算包含的分布式計(jì)算特征:(1)通過資源調(diào)度和組合滿足用戶的資源請(qǐng)求(2)對(duì)外提供統(tǒng)一的、單一的接口分布式郵箱系統(tǒng)*12分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)云計(jì)算與并行計(jì)算云計(jì)算與并行計(jì)算n 并行計(jì)算:是指同時(shí)使用多種計(jì)算資源解決計(jì)算問題的過程。通常指一個(gè)程序的多個(gè)部分同時(shí)運(yùn)行于多個(gè)處理器上。n 特點(diǎn):把計(jì)算任務(wù)分派給系統(tǒng)內(nèi)的多個(gè)運(yùn)算單元n 并行計(jì)算問題的特征n 將工作分離成離散部分,有助于同時(shí)解決n 隨時(shí)并及時(shí)地執(zhí)行多個(gè)程序指令(多條線同時(shí)運(yùn)行)n 多計(jì)算資源下解決問題的耗時(shí)要少于單個(gè)計(jì)算資源下的耗時(shí)云計(jì)算包含的并行計(jì)

7、算特征:(1)用戶資源(單一類型和組合類型)請(qǐng)求的同時(shí)處理*13分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)云計(jì)算與對(duì)等計(jì)算云計(jì)算與對(duì)等計(jì)算n 對(duì)等計(jì)算系統(tǒng)中,每個(gè)節(jié)點(diǎn)都擁有對(duì)等的功能與責(zé)任,既可以充當(dāng)服務(wù)器向其他節(jié)點(diǎn)提供數(shù)據(jù)或服務(wù),又可以作為客戶機(jī)享用其他節(jié)點(diǎn)提的供數(shù)據(jù)或服務(wù),節(jié)點(diǎn)之間的交互可以是直接對(duì)等的,任何節(jié)點(diǎn)可以隨時(shí)自由地加入或離開系統(tǒng)。對(duì)等計(jì)算:有可能作為云計(jì)算的一個(gè)類型n預(yù)測:將可能以“對(duì)等子云”的形式出現(xiàn)在云計(jì)算中。n依據(jù):云計(jì)算對(duì)超大規(guī)模、多類型資源的統(tǒng)一管理是困難的;對(duì)等計(jì)算具有魯棒性、可擴(kuò)展性、成本、搜索等方面的優(yōu)點(diǎn)Google的云計(jì)算服務(wù)曾出現(xiàn)嚴(yán)重問題,Gmail、Bl

8、ogger和Spreadsheet等服務(wù)均長時(shí)間當(dāng)機(jī)。亞馬遜S3云計(jì)算服務(wù)也曾出現(xiàn)問題。而P2P系統(tǒng)則有更強(qiáng)的抗毀能力。*14分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)提提 綱綱 分布式計(jì)算概念 分布式系統(tǒng)介紹 分布式計(jì)算基礎(chǔ)技術(shù)分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)分布式系統(tǒng)介紹分布式系統(tǒng)介紹The Interneta network hostworkstationsa local network分布式系統(tǒng)指通過網(wǎng)絡(luò)分布式系統(tǒng)指通過網(wǎng)絡(luò)互連,可協(xié)作執(zhí)行某個(gè)任務(wù)互連,可協(xié)作執(zhí)行某個(gè)任務(wù)的獨(dú)立計(jì)算機(jī)集合。不共享的獨(dú)立計(jì)算機(jī)集合。不共享內(nèi)存或程序執(zhí)行空間的一系內(nèi)存或程序執(zhí)行空間的一系列計(jì)算

9、機(jī)被認(rèn)為是相互獨(dú)立列計(jì)算機(jī)被認(rèn)為是相互獨(dú)立的的。2022-6-26Distributed Computing,Chap 117Distributed computing目前因特網(wǎng)上參加人數(shù)最多的分布式計(jì)算項(xiàng)目目前因特網(wǎng)上參加人數(shù)最多的分布式計(jì)算項(xiàng)目SETIhome分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)v 可靠性:指一個(gè)分布式系統(tǒng)在它的某一個(gè)或多個(gè)硬件的軟件組件造成故障時(shí),仍能提供服務(wù)的能力。v 可擴(kuò)展性:指一個(gè)系統(tǒng)為了支持持續(xù)增長的任務(wù)數(shù)量可以不斷擴(kuò)展的能力。v 可用性:指一個(gè)系統(tǒng)盡可能地限制系統(tǒng)因故障而暫停的能力。v 高效性:指一個(gè)分布式系統(tǒng)通過分散的計(jì)算資源來實(shí)現(xiàn)任務(wù)執(zhí)行的高效率。*

10、18分布式系統(tǒng)特征分布式系統(tǒng)特征分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)CAP理論理論分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)提提 綱綱 分布式計(jì)算概念 分布式系統(tǒng)介紹 分布式計(jì)算基礎(chǔ)技術(shù)分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)進(jìn)程間通信進(jìn)程間通信Process 1Process 2datasenderreceiveru分布式計(jì)算的核心技術(shù)是進(jìn)程間通信(分布式計(jì)算的核心技術(shù)是進(jìn)程間通信(interprocess communication,IPC),即在互相獨(dú)立的進(jìn)程(進(jìn)程是程序的運(yùn)行時(shí)表示)間通信及共同協(xié)作),即在互相獨(dú)立的進(jìn)程(進(jìn)程是程序的運(yùn)行時(shí)表示)間通信及共同協(xié)作以完成某項(xiàng)

11、任務(wù)的能力。以完成某項(xiàng)任務(wù)的能力。u在分布式計(jì)算中,兩個(gè)或多個(gè)進(jìn)程按約定的某種協(xié)議進(jìn)行在分布式計(jì)算中,兩個(gè)或多個(gè)進(jìn)程按約定的某種協(xié)議進(jìn)行IPC,此處協(xié)議,此處協(xié)議是指數(shù)據(jù)通信各參與進(jìn)程必須遵守的一組規(guī)則。在協(xié)議中,一個(gè)進(jìn)程有些時(shí)候是指數(shù)據(jù)通信各參與進(jìn)程必須遵守的一組規(guī)則。在協(xié)議中,一個(gè)進(jìn)程有些時(shí)候可能是發(fā)送者,在其他時(shí)候則可能是接收者。當(dāng)一個(gè)進(jìn)程與另一個(gè)進(jìn)程進(jìn)行通可能是發(fā)送者,在其他時(shí)候則可能是接收者。當(dāng)一個(gè)進(jìn)程與另一個(gè)進(jìn)程進(jìn)行通信時(shí),信時(shí),IPC被稱為單播(被稱為單播(unicast);當(dāng)一個(gè)進(jìn)程與另外一組進(jìn)程進(jìn)行通信時(shí),);當(dāng)一個(gè)進(jìn)程與另外一組進(jìn)程進(jìn)行通信時(shí),IPC被稱為組播(被稱為組播(

12、multicast)。)。P2P1P1P2P3P4.unicastmulticastmmmm分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)IPC程序接口的四種基本操作程序接口的四種基本操作u發(fā)送(發(fā)送(Send)。該操作由發(fā)送進(jìn)程發(fā)起,旨在向接收進(jìn)程傳輸數(shù)據(jù)。操)。該操作由發(fā)送進(jìn)程發(fā)起,旨在向接收進(jìn)程傳輸數(shù)據(jù)。操作必須允許發(fā)送進(jìn)程識(shí)別接收進(jìn)程和定義待傳數(shù)據(jù)。作必須允許發(fā)送進(jìn)程識(shí)別接收進(jìn)程和定義待傳數(shù)據(jù)。u接收(接收(Receive)。該操作由接收進(jìn)程發(fā)起,旨在接收發(fā)送進(jìn)程發(fā)來的數(shù))。該操作由接收進(jìn)程發(fā)起,旨在接收發(fā)送進(jìn)程發(fā)來的數(shù)據(jù)操作必須允許接收進(jìn)程識(shí)別發(fā)送進(jìn)程和定義保存數(shù)據(jù)的內(nèi)存空間,該內(nèi)存隨

13、據(jù)操作必須允許接收進(jìn)程識(shí)別發(fā)送進(jìn)程和定義保存數(shù)據(jù)的內(nèi)存空間,該內(nèi)存隨后被接收者訪問。后被接收者訪問。u連接(連接(Connect)。對(duì)面向連接的)。對(duì)面向連接的IPC,必須有允許在發(fā)起進(jìn)程和指定進(jìn),必須有允許在發(fā)起進(jìn)程和指定進(jìn)程間建立邏輯連擊的操作:其中以進(jìn)程發(fā)出請(qǐng)求連接操作而另一進(jìn)程發(fā)出接受程間建立邏輯連擊的操作:其中以進(jìn)程發(fā)出請(qǐng)求連接操作而另一進(jìn)程發(fā)出接受連接操作。連接操作。u斷開連接(斷開連接(Disconnect)。對(duì)面向連接的)。對(duì)面向連接的IPC,該操作允許通信的雙方關(guān),該操作允許通信的雙方關(guān)閉先前建立起來的某一邏輯連接。閉先前建立起來的某一邏輯連接。分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)

14、算大數(shù)據(jù)大數(shù)據(jù)HTTP進(jìn)程間通信實(shí)例進(jìn)程間通信實(shí)例C1C2S3S4C4Web serverWeb browsera processan operationdata flowoperations:S1: accept connectionS2: receive (request)S3: send (response)S3: disconnectC1: make connectionC2: send (request)C3: receive (response)C4: disconnectS2C3S1HTTPrequestHTTPresponse分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)事件同步

15、事件同步uIPC中的一個(gè)主要難點(diǎn)是進(jìn)行中的一個(gè)主要難點(diǎn)是進(jìn)行IPC的各相關(guān)進(jìn)程是獨(dú)立執(zhí)行的,各進(jìn)程不的各相關(guān)進(jìn)程是獨(dú)立執(zhí)行的,各進(jìn)程不知道對(duì)方進(jìn)程的情況。協(xié)議涉及的雙方必須按特定順序發(fā)起知道對(duì)方進(jìn)程的情況。協(xié)議涉及的雙方必須按特定順序發(fā)起IPC操作,否則可操作,否則可能通信失敗。能通信失敗。u因此,參與通信的兩個(gè)進(jìn)程需要同步他們的操作,由一方發(fā)送數(shù)據(jù),另一因此,參與通信的兩個(gè)進(jìn)程需要同步他們的操作,由一方發(fā)送數(shù)據(jù),另一方則需要等待所有數(shù)據(jù)發(fā)送完成時(shí),開始接收數(shù)據(jù)。方則需要等待所有數(shù)據(jù)發(fā)送完成時(shí),開始接收數(shù)據(jù)。uIPC設(shè)施提供事件同步的最簡單的方法是使用阻塞(設(shè)施提供事件同步的最簡單的方法是使用

16、阻塞(blocking)機(jī)制或同)機(jī)制或同步(步(synchronous) ,即掛起某一進(jìn)程的執(zhí)行,直到該進(jìn)程發(fā)起的某個(gè)操作,即掛起某一進(jìn)程的執(zhí)行,直到該進(jìn)程發(fā)起的某個(gè)操作執(zhí)行結(jié)束。執(zhí)行結(jié)束。u另外,另外,IPC操作可以是異步(操作可以是異步(asynchronous)或非阻塞操作)或非阻塞操作(nonblocking)。進(jìn)程發(fā)起的異步操作不會(huì)引起阻塞。因此,一旦向)。進(jìn)程發(fā)起的異步操作不會(huì)引起阻塞。因此,一旦向IPC設(shè)設(shè)施發(fā)出異步操作后,進(jìn)程可以繼續(xù)執(zhí)行。當(dāng)該異步操作完成后,進(jìn)程才會(huì)隨后施發(fā)出異步操作后,進(jìn)程可以繼續(xù)執(zhí)行。當(dāng)該異步操作完成后,進(jìn)程才會(huì)隨后得到得到IPC設(shè)施的通知。設(shè)施的通知。

17、分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)同步send和同步receive process 1running on host 1blocking send startsblocking send returnsblocking receive startsblocking receive endsexecution flowsuspended periodSynchronous Send and Receivean operationacknowledgement of data receivedprovided by the IPC facility process 2running on

18、 host 2receive操作的發(fā)出導(dǎo)致該發(fā)起進(jìn)程掛起,直到接收完成該操作的所有數(shù)據(jù)。同樣地,send操作的發(fā)出導(dǎo)致發(fā)送進(jìn)程掛起。當(dāng)發(fā)送的數(shù)據(jù)被進(jìn)程2接收后,主機(jī)2的IPC設(shè)施向主機(jī)1的IPC設(shè)施發(fā)送一條確認(rèn)信息,進(jìn)程1隨后可被解鎖。注意,消息確認(rèn)由兩臺(tái)主機(jī)的IPC設(shè)施處理,并且對(duì)兩個(gè)進(jìn)程是透明的。分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)異步send和同步receiveProcess 1Process 2blocking receive startsblocking receive returnsexecution flowsuspended periodAsynchronous Sen

19、d and Synchronous Receivenonblocking sendoperationreceive操作的發(fā)出將導(dǎo)致接收進(jìn)程掛起,直到接收到滿足操作的所有數(shù)據(jù)為止。然而,send操作的發(fā)出不會(huì)導(dǎo)致發(fā)送進(jìn)程掛起。在本例中,發(fā)送進(jìn)程永遠(yuǎn)不會(huì)被阻塞,因此,進(jìn)程2所在主機(jī)的IPC設(shè)施不必發(fā)送確認(rèn)消息。分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)同步send和異步receive情形1Process 1Process 2nonblocking receive issuedexecution flowsuspended periodSynchronous Send and Asynchrono

20、us Receiveblocking send issuedScenario Atransparent acknowledgementprovided by the IPC facility接收操作請(qǐng)求的數(shù)據(jù)在receive操作發(fā)出時(shí)已經(jīng)到達(dá),在這種情況下,數(shù)據(jù)被立即傳送到進(jìn)程2,主機(jī)2的IPC設(shè)施返回的確認(rèn)消息將進(jìn)程1解鎖。分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)同步send和異步receive情形2indefiniteblockingProcess 1Process 2nonblocking receive issuedand returned immediatelyexecution

21、 flowsuspended periodSynchronous Send and Asynchronous Receiveblocking send issuedScenario BProcess 1Process 2receive操作請(qǐng)求的數(shù)據(jù)仍未到達(dá);沒有數(shù)據(jù)傳遞到該進(jìn)程。接收進(jìn)程負(fù)責(zé)確定已真正接收到數(shù)據(jù),如果需要的話,重復(fù)receive操作,直到數(shù)據(jù)到達(dá)(注意,通常由程序使用循環(huán)來重復(fù)發(fā)出receive操作,直到等待的數(shù)據(jù)全部接收。這種重復(fù)嘗試技術(shù)被稱為輪詢技術(shù))。進(jìn)程1被無限期阻塞,直到進(jìn)程2重發(fā)receive請(qǐng)求,并最終收到主機(jī)2 IPC設(shè)施的確認(rèn)消息分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)

22、算大數(shù)據(jù)大數(shù)據(jù)同步send和異步receive情形3Process 1Process 2nonblocking receive issuedand returned immediatelyexecution flowsuspended periodSynchronous Send and Asynchronous Receiveblocking send issuedScenario Cprocess is notifiedof the arrival ofdatatransparent acknowledgementprovided by the IPC facilityreceive操作請(qǐng)

23、求的數(shù)據(jù)仍未到達(dá)。當(dāng)請(qǐng)求數(shù)據(jù)到達(dá)時(shí),主機(jī)2的IPC設(shè)施將通告進(jìn)程2,此時(shí)進(jìn)程2可以繼續(xù)處理數(shù)據(jù)。該情形要求進(jìn)程2提供一個(gè)可以被IPC設(shè)施調(diào)用的偵聽接口或事件號(hào),用于向進(jìn)程通告請(qǐng)求數(shù)據(jù)的到達(dá)分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)異步send和異步receiveProcess 1Process 2nonblocking receive issuedand returned immediatelyexecution flowsuspended periodAsynchronous Send and Asynchronous Receiveblocking send issuedScenario

24、 Cprocess is notifiedof the arrival ofdata如果雙方都沒有阻塞,數(shù)據(jù)能傳送到接收者的唯一途徑就是由IPC設(shè)施保留接收到的數(shù)據(jù)。接收進(jìn)程隨后可以被通告數(shù)據(jù)到達(dá)了。另外,接收進(jìn)程也可以輪詢數(shù)據(jù)是否已經(jīng)到達(dá),并在所等待的數(shù)據(jù)到達(dá)時(shí),對(duì)其進(jìn)行處理分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)死鎖和超時(shí)死鎖和超時(shí)u雖然阻塞提供雖然阻塞提供IPC必要的同步,阻塞以錯(cuò)誤的順序發(fā)起是可能會(huì)引起必要的同步,阻塞以錯(cuò)誤的順序發(fā)起是可能會(huì)引起死鎖死鎖( deadlocks )。u連接和接收操作可能會(huì)導(dǎo)致連接和接收操作可能會(huì)導(dǎo)致無限期的阻塞(無限期的阻塞( indefinite

25、blocking ),死,死鎖也可能造成鎖也可能造成無限期的阻塞無限期的阻塞。u例如,進(jìn)程例如,進(jìn)程Process1和進(jìn)程和進(jìn)程Process2因相互等待對(duì)方而無限期阻塞,此因相互等待對(duì)方而無限期阻塞,此時(shí),即由無限期阻塞而產(chǎn)生了進(jìn)程的死鎖。見后頁的圖示說明。時(shí),即由無限期阻塞而產(chǎn)生了進(jìn)程的死鎖。見后頁的圖示說明。u我們一般不期望被請(qǐng)求的進(jìn)程被無期限掛起(即無期限阻塞),無期限阻我們一般不期望被請(qǐng)求的進(jìn)程被無期限掛起(即無期限阻塞),無期限阻塞可以通過使用超時(shí)或子線程來避免。塞可以通過使用超時(shí)或子線程來避免。分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)死鎖receive from proces

26、s 2 issued;receive from process 1 issued;process 1 blocked pending datafrom process 2.process 2 blocked pending datafrom process 1.Process 1Process 2processexecutingprocessblockedan operation盡管阻塞機(jī)制為IPC提供了必要的同步,但是同步操作如果按照錯(cuò)誤的順序執(zhí)行就可能會(huì)產(chǎn)生死鎖,造成進(jìn)程被無限期掛起。分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)用線程實(shí)現(xiàn)異步操作processmain threadnew

27、thread issues a blocking IPC operationthread is blockedthread is unblocked after the operation is fulfilledmain thread continues withother processing在使用IPC編程接口時(shí),了解該操作是同步操作還是異步操作是非常重要的。如果阻塞操作僅僅是發(fā)送或接收,那么編程人員就可以使用子進(jìn)程或線程來提供阻塞,讓程序的主線程或父進(jìn)程繼續(xù)執(zhí)行其他的任務(wù),而子進(jìn)程或線程將被掛起,直到接收到響應(yīng)為止,這就是所說的異步處理。分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)事件

28、狀態(tài)圖Process 1Process 2interprocess communicationexecution flowprocess blockedEvent diagram for a protocolrequest 1response 1response2request 2time一個(gè)包括兩個(gè)并發(fā)進(jìn)程A和B的請(qǐng)求-響應(yīng)協(xié)議的事件狀態(tài)圖。每個(gè)進(jìn)程隨事件變化的執(zhí)行情況用垂直線表示,時(shí)間沿垂直線向下增加。執(zhí)行線上的實(shí)線段表示進(jìn)程處于活動(dòng)狀態(tài)的時(shí)間段,虛線段表示進(jìn)程被阻塞的時(shí)間段。分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)HTTP順序狀態(tài)圖Process AProcess Binterpro

29、cess communicationrequest 1response 1request 2response 2Process AProcess Binterprocess communicationrequest 1response 1request 2response 2Web BrowserWeb ServerHttp requestHttp response分布式計(jì)算分布式計(jì)算云計(jì)算云計(jì)算大數(shù)據(jù)大數(shù)據(jù)HTTP會(huì)話期間的對(duì)話Script started on Tue Oct 10 21:49:28 2000 9:49pm telnet 80 Trying 0. Connected to . Escape character is . GET /mliu/ HTTP/1.0 H HT TT TP P R Re eq qu ue es st t HTTP/1.1 200 OK H HT TT TP P r r

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論