版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第十一章 分布式共享存儲器 11.1 基本概念,什么是分布式共享存儲器系統(tǒng),分布式共享存儲器系統(tǒng)是分布式操作系統(tǒng)中的一個資源管理部件,它在沒有物理上共享的存儲器的分布式操作系統(tǒng)中實現(xiàn)了共享存儲器模式。這種共享存儲器模式在分布式系統(tǒng)中提供了一個可供系統(tǒng)內(nèi)所有節(jié)點(diǎn)所共享的虛擬地址空間。程序設(shè)計者可以像使用傳統(tǒng)的存儲器一樣使用該虛擬地址空間。這種物理上分布邏輯上共享的存儲器就叫做分布式共享存儲器(Distributed Shared MemoryDSM)。 每一個節(jié)點(diǎn)都可以擁有存儲在共享空間的數(shù)據(jù),數(shù)據(jù)的所有者也可以跟隨數(shù)據(jù)從一個節(jié)點(diǎn)移到另一個節(jié)點(diǎn)。當(dāng)一個進(jìn)程訪問共享地址空間中的數(shù)據(jù)時,映像管理員就
2、把共享存儲器地址變換到本地地址或遠(yuǎn)程的物理存儲器地址。,第十一章 分布式共享存儲器 11.1 基本概念,什么是分布式共享存儲器系統(tǒng),第十一章 分布式共享存儲器 11.1 基本概念,為什么需要分布式共享存儲器,DSM的計算模型和RPC的計算模型相比各有優(yōu)缺點(diǎn): DSM的計算模型支持?jǐn)?shù)據(jù)在系統(tǒng)內(nèi)移動,使數(shù)據(jù)更容易訪問。 RPC計算模型是把操作移到數(shù)據(jù)所在位置。RPC不支持程序利用其訪問的局部性優(yōu)點(diǎn),對一塊遠(yuǎn)程數(shù)據(jù)的每個操作都產(chǎn)生通信,對數(shù)據(jù)的操作必須先定義好。但是RPC支持異構(gòu)型。 DSM可把數(shù)據(jù)移到本地節(jié)點(diǎn),允許程序利用其訪問的局部性優(yōu)點(diǎn),使用緩存器可以改善響應(yīng)時間。移動性要求對數(shù)據(jù)位置進(jìn)行跟蹤
3、;緩存要求解決各副本的一致性。當(dāng)數(shù)據(jù)正向某個主機(jī)移動時,不能對它進(jìn)行處理。如果數(shù)據(jù)經(jīng)常修改,RPC模型可能更好些。,第十一章 分布式共享存儲器 11.1 基本概念,為什么需要分布式共享存儲器,從通信機(jī)制來看,DSM與報文傳遞方式有以下不同 : 訪問的透明性。使用報文傳遞方式訪問共享的數(shù)據(jù)變量時,程序必須明確地使用節(jié)點(diǎn)地址信息和通信原語(如SEND和RECEIVE)。而在DSM中系統(tǒng)提供了一種抽象的共享地址空間從而隱匿了物理地址和通信細(xì)節(jié),使得程序直接面向共享的數(shù)據(jù)。 共享數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性和異構(gòu)性。使用報文傳遞方式,由于數(shù)據(jù)是在不同的地址空間之間傳遞,從而使得具有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)難于在不同類型
4、的計算機(jī)及進(jìn)程之間傳遞。而在DSM中,可以借助引用機(jī)制(reference)去實現(xiàn)上述數(shù)據(jù)訪問,復(fù)雜性與異構(gòu)性的問題由引用機(jī)制去處理,從而進(jìn)一步簡化了并行程序設(shè)計。,第十一章 分布式共享存儲器 11.1 基本概念,為什么需要分布式共享存儲器,從通信機(jī)制來看,DSM與報文傳遞方式有以下不同 : (3) 數(shù)據(jù)的局部性。在DSM中,新訪問的數(shù)據(jù)項與其周圍的數(shù)據(jù)一起按塊或按頁移動,而不是只移動新訪問的數(shù)據(jù)本身。根據(jù)程序的局部性原理,這樣可以大大地減小網(wǎng)絡(luò)的通信開銷。,第十一章 分布式共享存儲器 11.1 基本概念,為什么需要分布式共享存儲器,與緊密耦合的多機(jī)系統(tǒng)相比,DSM系統(tǒng)具有以下特點(diǎn): (1)
5、規(guī)??蓴U(kuò)充。在緊密耦合的多機(jī)系統(tǒng)中,由于各處理機(jī)共享的是一個單一的物理存儲器,主存訪問都要經(jīng)過一個集中環(huán)節(jié)(例如總線)進(jìn)行,這就限制了多機(jī)系統(tǒng)的規(guī)模(一般為幾十臺處理機(jī))。DSM不存在這樣的限制,可以擴(kuò)充至很大的規(guī)模(多至上千個節(jié)點(diǎn))。 (2) 廉價。由于DSM系統(tǒng)可以用現(xiàn)有的硬件來構(gòu)造,并且無需連接共享存儲器與處理機(jī)的復(fù)雜接口,因而DSM的構(gòu)造成本要低于緊密耦合的多機(jī)系統(tǒng)。 (3) 兼容性。在共享存儲器多機(jī)系統(tǒng)上編寫的程序原則上都可以無需修改或稍加修改后轉(zhuǎn)換到DSM系統(tǒng)上運(yùn)行。,第十一章 分布式共享存儲器 11.1 基本概念,共享存儲器中緩存一致性方法,有兩類基本方法實現(xiàn)緩存一致性:即探聽緩
6、存方法和使用目錄的方法。 探聽(snooping)緩存方法用于具有廣播能力的通信介質(zhì)中,例如共享總線。每個緩存器為了保持自己數(shù)據(jù)的一致性要監(jiān)聽共享總線上進(jìn)行的由其他處理機(jī)發(fā)出的存儲器操作。 Berkeley是一個典型例子,它是一種寫無效協(xié)議,它假設(shè)通過單總線訪問共享的物理存儲器。此協(xié)議采用一個所有權(quán)方案。一個數(shù)據(jù)塊的所有者是一個緩存器,是上次對該數(shù)據(jù)塊的修改者,如果該塊被其所有者清除,則主存作為其所有者。,第十一章 分布式共享存儲器 11.1 基本概念,共享存儲器中緩存一致性方法,Berkeley探聽協(xié)議數(shù)據(jù)塊有四種狀態(tài):重寫(dirty)、共享重寫、有效和無效: (1)無效。該緩存塊不包含有
7、效數(shù)據(jù)。 (2)有效。該緩存塊中數(shù)據(jù)是有效的。 (3)重寫。共享存儲器中的數(shù)據(jù)是不正確的,該緩存塊是唯一有效的數(shù)據(jù)副本。該緩存塊是數(shù)據(jù)的所有者。 (4)共享重寫。共享存儲器中的數(shù)據(jù)是不正確的,該緩存塊是數(shù)據(jù)的所有者,其他緩存中有同樣的副本。,第十一章 分布式共享存儲器 11.1 基本概念,共享存儲器中緩存一致性方法,探聽協(xié)議的寫操作:數(shù)據(jù)只能由所有者提供。有效塊和無效塊在替換時可以簡單地扔掉。重寫塊和共享重寫塊在替換時要寫回共享存儲器,并把共享存儲器設(shè)置為所有者。如果對緩存塊進(jìn)行寫,而緩存塊的狀態(tài)是重寫的,則寫操作可以直接進(jìn)行;但是如果緩存塊是共享重寫、或有效,則必須向其他緩存器發(fā)送“無效”信
8、號,然后可以進(jìn)行寫操作;如果緩存塊是無效的,要從當(dāng)前所有者那里取得數(shù)據(jù)塊,再向其他緩存器發(fā)送“無效”信號,然后可以進(jìn)行寫操作。,第十一章 分布式共享存儲器 11.1 基本概念,共享存儲器中緩存一致性方法,目錄協(xié)議:在共享存儲器中設(shè)置存儲器塊的目錄。當(dāng)發(fā)生緩存不命中時,先把請求轉(zhuǎn)到此目錄。通常目錄項中包含所有權(quán)、副本集(copyset)和該塊的重寫位。副本集指出該塊數(shù)據(jù)在哪些緩存器中有副本,可用位向量來實現(xiàn)。發(fā)生讀未命中時,先檢查重寫位,如果該塊不處于重寫狀態(tài),則共享存儲器中的版本是有效的,于是簡單地返回該塊,并對副本集信息進(jìn)行更新;如果該塊的重寫位置位,則該塊的所有者必須修改該塊,并且要更新共
9、享存儲器中的版本,向讀者提供讀副本。寫未命中或者從讀權(quán)變成寫權(quán)時,要求目錄的副本集使其他副本無效。與探聽緩存方案不同,讀副本的位置都已經(jīng)知道,因此,可以用順序方式而不是以廣播方式發(fā)送“無效”報文。目錄方案不要求廣播介質(zhì),但在每次緩存未命中時要增加一次查表。,第十一章 分布式共享存儲器 11.1 基本概念,DSM的設(shè)計與實現(xiàn)問題,共享地址空間結(jié)構(gòu)和粒度。共享地址空間的結(jié)構(gòu)指的是存儲器中共享數(shù)據(jù)的布局方法,它依賴于應(yīng)用程序類型,地址空間可以是平面的,分段的或物理的。粒度是指共享單元的大小,可以是字節(jié)、字、頁或復(fù)雜的數(shù)據(jù)結(jié)構(gòu),它也是可用的并行性的度量,依賴于通信開銷和應(yīng)用程序表現(xiàn)的局部性類型。結(jié)構(gòu)和
10、粒度是密切相關(guān)的。 緩存一致性協(xié)議。不同的協(xié)議有不同的假設(shè),選擇協(xié)議依賴于存儲器訪問模式和支持環(huán)境。在寫無效協(xié)議中,一塊共享數(shù)據(jù)可能有很多個只讀副本,但僅有一個可寫副本,每進(jìn)行一次寫時,除了一個以外,其他副本均變成無效。在寫更新協(xié)議中。每次寫都要對所有副本進(jìn)行更新。,第十一章 分布式共享存儲器 11.1 基本概念,DSM的設(shè)計與實現(xiàn)問題,同步原語。在并發(fā)訪問下,光有緩存一致性協(xié)議還不能維持共享數(shù)據(jù)一致性。尚需要同步原語對訪問共享數(shù)據(jù)的活動進(jìn)行同步,例如信號燈、事件計數(shù)和鎖等。 替換策略。在允許數(shù)據(jù)遷移的系統(tǒng)中,當(dāng)共享數(shù)據(jù)占滿了緩存器的有效空間時,必須決定將那些數(shù)據(jù)轉(zhuǎn)移出去并且放到哪里去。 可擴(kuò)
11、充性。DSM系統(tǒng)比起緊密耦合系統(tǒng)來,一個重大的優(yōu)點(diǎn)是具有可擴(kuò)充性。限制可擴(kuò)充性有兩個因素:集中的瓶頸(像緊密耦合系統(tǒng)中的總線)和全局公用信息的操作及存儲(如廣播報文或目錄等)。,第十一章 分布式共享存儲器 11.1 基本概念,DSM的設(shè)計與實現(xiàn)問題,異構(gòu)性。如何實現(xiàn)對兩個具有不同體系結(jié)構(gòu)的機(jī)器的存儲器共享是個很困難的問題。兩個機(jī)器甚至對基本數(shù)據(jù)類型(如整數(shù)、浮點(diǎn)數(shù)等)都使用不同的表達(dá)方式。 數(shù)據(jù)定位和訪問。為了在一個DSM系統(tǒng)中共享數(shù)據(jù),應(yīng)用程序必須能找到并且檢索所需要的數(shù)據(jù)。對于一個支持?jǐn)?shù)據(jù)遷移的系統(tǒng),實現(xiàn)這一點(diǎn)就更為復(fù)雜。 顛簸。DSM系統(tǒng)特別容易出現(xiàn)顛簸,例如若兩個節(jié)點(diǎn)對一個數(shù)據(jù)項同時進(jìn)
12、行寫,就可能產(chǎn)生以高速率來回傳送數(shù)據(jù)的現(xiàn)象(乒乓效應(yīng)),使得任何實際工作都不能進(jìn)行。,第十一章 分布式共享存儲器 11.1 基本概念,一致性語義,共享存儲器中常使用的一些一致性語義 : 嚴(yán)格一致性。對一個數(shù)據(jù)項所進(jìn)行的任何讀操作所返回的值總是對該數(shù)據(jù)項最近一次進(jìn)行寫操作的結(jié)果。 順序一致性。所有進(jìn)程對數(shù)據(jù)項的所有操作可以認(rèn)為是按照某個順序進(jìn)行的,任何進(jìn)程對這個順序的觀點(diǎn)是一樣的。 處理機(jī)一致性。不僅要求一個進(jìn)程中的所有寫操作能夠以它在該進(jìn)程中出現(xiàn)的順序被所有其他進(jìn)程看見,還要求不同進(jìn)程對同一個數(shù)據(jù)項的寫操作,應(yīng)該被所有進(jìn)程以相同的順序看見。,第十一章 分布式共享存儲器 11.1 基本概念,一致
13、性語義,共享存儲器中常使用的一些一致性語義 : 弱一致性。程序員使用同步算符,使得對數(shù)據(jù)的多個操作組來說是順序一致性的。即不同進(jìn)程的多個操作組可以認(rèn)為是按照某個順序進(jìn)行的,任何進(jìn)程對這個順序的觀點(diǎn)是一樣的。但是操作組內(nèi)的多個操作其他進(jìn)程是不可見的。對同步算符是順序一致性的。 釋放一致性。使用了“獲得”和“釋放”這兩類同步算符,對同步算符是處理機(jī)一致的。,第十一章 分布式共享存儲器 11.2 實現(xiàn)DSM的算法,算法使用的模型和環(huán)境,共享存儲器模型為訪問共享數(shù)據(jù)提供了兩個基本操作: data:=read(address) write(data,address) read返回由address指出的數(shù)
14、據(jù)項。Write把由地址address指出的內(nèi)容設(shè)置為data。,根據(jù)是否允許遷移或復(fù)制,可以將DSM的實現(xiàn)算法分成四類:中央服務(wù)員算法、遷移算法、讀復(fù)制算法和全復(fù)制算法。,第十一章 分布式共享存儲器 11.2 實現(xiàn)DSM的算法,算法使用的模型和環(huán)境,第十一章 分布式共享存儲器 11.2 實現(xiàn)DSM的算法,中央服務(wù)員算法,使用一個中央服務(wù)員,負(fù)責(zé)為所有對共享數(shù)據(jù)的訪問提供服務(wù)并保持共享數(shù)據(jù)唯一的副本。讀和寫操作都包括由執(zhí)行該操作的進(jìn)程向中央服務(wù)員發(fā)送請求報文,中央服務(wù)員執(zhí)行請求并回答,讀操作時回答數(shù)據(jù)項,寫操作時回答一個承認(rèn)。,第十一章 分布式共享存儲器 11.2 實現(xiàn)DSM的算法,遷移算法,
15、數(shù)據(jù)總是被遷移到訪問它的節(jié)點(diǎn)。這是一個“單讀者/單寫者”(SRSW)協(xié)議,因為在整個系統(tǒng)中,一次只有一個進(jìn)程讀或?qū)懸粋€給定的數(shù)據(jù)項。,第十一章 分布式共享存儲器 11.2 實現(xiàn)DSM的算法,讀復(fù)制算法,對于一個當(dāng)前不在本地的塊中的一個數(shù)據(jù)項進(jìn)行讀操作時,先與遠(yuǎn)程節(jié)點(diǎn)通信以獲得那個塊的一個只讀副本,然后再進(jìn)行讀操作。若被執(zhí)行寫操作的數(shù)據(jù)所在的塊不在本地或在本地但主機(jī)無寫權(quán)時,必須先使此塊在其他節(jié)點(diǎn)的所有副本無效,之后再進(jìn)行寫操作。,第十一章 分布式共享存儲器 11.2 實現(xiàn)DSM的算法,全復(fù)制算法,全復(fù)制算法允許數(shù)據(jù)塊在進(jìn)行寫時也可以復(fù)制,因而它遵從了“多讀者/多寫者”(MRMW)協(xié)議。保持復(fù)制
16、數(shù)據(jù)一致性的一種可能的方法是對所有的寫操作進(jìn)行全局排序,而只對與發(fā)生在執(zhí)行讀操作節(jié)點(diǎn)上的寫操作相關(guān)的那些讀操作進(jìn)行排序 。,第十一章 分布式共享存儲器 11.2 實現(xiàn)DSM的算法,算法性能,基本代價: (1) p:一個包事件的代價,即發(fā)送或接收一個短包的處理代價,包括可能的任務(wù)切換、數(shù)據(jù)復(fù)制及中斷處理開銷。實際系統(tǒng)的典型值的變化范圍是1到幾個毫秒。 (2) P:發(fā)送或接收一個數(shù)據(jù)塊的代價。這與p十分相似,但P值要高得多。對于一個通常需要多個包的8K字節(jié)的塊來說,典型值的范圍是20至40個毫秒。 (3) S:參與分布式共享內(nèi)存的節(jié)點(diǎn)數(shù)。 (4) r:讀/寫比,即平均有r個讀操作時才有一個寫操作。
17、這個參數(shù)也用于整個塊的訪問模式。顯然這兩個比可能不同,但為了簡化分析假定相等。,第十一章 分布式共享存儲器 11.2 實現(xiàn)DSM的算法,算法性能,基本代價: (5) f:非復(fù)制數(shù)據(jù)塊(用于遷移算法)訪問故障的概率。它等于單一節(jié)點(diǎn)連續(xù)訪問一個塊(以后由另一個節(jié)點(diǎn)訪問此塊導(dǎo)致故障)的平均次數(shù)的倒數(shù)。它說明遷移算法數(shù)據(jù)訪問的局部性。 (6) f:讀復(fù)制算法用于對復(fù)制數(shù)據(jù)塊訪問故障的概率。它是連續(xù)訪問本地數(shù)據(jù)塊中數(shù)據(jù)項(以后訪問一個非本地數(shù)據(jù)塊中某數(shù)據(jù)項)的平均次數(shù)的倒數(shù)。它說明讀復(fù)制算法數(shù)據(jù)訪問的本地性。,第十一章 分布式共享存儲器 11.2 實現(xiàn)DSM的算法,算法性能,四種算法的平均訪問代價: 中
18、央服務(wù)員算法:Cc=(1-1/S)4p 遷移算法:Cm=f(2P+4p) 讀復(fù)制算法:Crr=f2P+4p+Sp/(r+1) 全復(fù)制算法:Cfr=1/(r+1)(S+2)p 每一個表達(dá)式都有兩部分,第一部分在“”的左邊,表示訪問遠(yuǎn)程數(shù)據(jù)項的概率。第二部分在“”的右邊,等于訪問遠(yuǎn)程數(shù)據(jù)項的平均代價。,第十一章 分布式共享存儲器 11.3 使用目錄的DSM,目錄方案的分類,目錄:不用廣播的緩存器一致性協(xié)議必須保存每塊共享數(shù)據(jù)的所有緩存器副本的位置。此緩存位置表,不管是集中的還是分散的,都叫做目錄。 每個數(shù)據(jù)的目錄項包括許多指針,用來指出此塊各副本所在位置。每一個目錄項還有一個“重寫”位用來指明是否
19、允許某一個(只有一個)緩存器進(jìn)行寫。 目錄協(xié)議有三種主要類型:全映像目錄、有限目錄和鏈?zhǔn)侥夸?。全映像目錄的每個目錄項保持N個指針,這里N是系統(tǒng)中處理器的個數(shù)。有限目錄和全映像目錄的不同之處在于,有限目錄的每個目錄項具有固定數(shù)量的指針,與系統(tǒng)中處理機(jī)數(shù)量無關(guān)。鏈?zhǔn)侥夸浥c全映像目錄相似,只是它將目錄分布于各緩存器。,第十一章 分布式共享存儲器 11.3 使用目錄的DSM,全映像目錄,全映像目錄協(xié)議使用的目錄每項包含每個處理機(jī),有一個指針并且有一個“重寫”位。指針?biāo)鶎?yīng)的每一位代表該塊在相應(yīng)處理機(jī)緩存器中的狀態(tài)(存在或不存在)。如果“重寫”位置位,那么有且只有一個處理機(jī)的指針位被置位,允許這個處理
20、機(jī)對該數(shù)據(jù)塊進(jìn)行寫操作。緩存器保存每塊數(shù)據(jù)的兩個狀態(tài)位:一位表明此數(shù)據(jù)塊是否有效,另一位表明一個有效的數(shù)據(jù)塊是否可寫。緩存器一致性協(xié)議必須在存儲器目錄中保存這些狀態(tài)位,并維持緩存一致性。,第十一章 分布式共享存儲器 11.3 使用目錄的DSM,全映像目錄,第十一章 分布式共享存儲器 11.3 使用目錄的DSM,全映像目錄,寫過程: (1) C3檢測到包含單元X的數(shù)據(jù)塊是有效的,但是該處理機(jī)對數(shù)據(jù)塊無寫的權(quán)限,這由塊的允許寫位表示。 (2) C3發(fā)出一個對包含單元X的存儲模塊的寫請求,并且停止處理機(jī)P3。 (3) 存儲器模塊向C1和C2發(fā)出無效請求。 (4) C1和C2收到無效請求后,設(shè)置對應(yīng)的
21、位指出包含單元X的數(shù)據(jù)塊是無效的,并向存儲器模塊發(fā)回一個承認(rèn)。 (5) 存儲器模塊收到這個承認(rèn),將“重寫”位置位,清除指向C1和C2的指針,并向C3發(fā)出寫允許報文。 (6) C3收到寫允許報文,更新該緩存器中的狀態(tài),并且激活處理機(jī)P3。,第十一章 分布式共享存儲器 11.3 使用目錄的DSM,有限目錄,有限目錄協(xié)議是為解決目錄大小問題而設(shè)計的。限制對同一數(shù)據(jù)塊同時進(jìn)行緩存的任務(wù)數(shù)目,即限制一個數(shù)據(jù)塊的緩存數(shù)目,就可以將每個目錄項的大小限定為一個常數(shù)。,第十一章 分布式共享存儲器 11.3 使用目錄的DSM,鏈?zhǔn)侥夸?它通過保持一個目錄指針鏈對共享副本進(jìn)行跟蹤。,單向鏈?zhǔn)浇Y(jié)構(gòu):,第十一章 分布式
22、共享存儲器 11.3 使用目錄的DSM,鏈?zhǔn)侥夸?緩存器塊的替換 :假設(shè)從C1到CN都有單元X的副本,并且單元X和單元Y都直接映射到緩存器同一行上。如果處理機(jī)Pi讀單元Y,必須從它的緩存器中先驅(qū)逐單元X。在這種情況下,有兩種可能性: (1) 沿著鏈路向Ci-1發(fā)送一個報文,將Ci-1的指針指向Ci+1,將Ci從鏈路中脫離開。 (2) 使從Ci到CN中的單元X無效。,第十一章 分布式共享存儲器 11.3 使用目錄的DSM,鏈?zhǔn)侥夸?雙向鏈?zhǔn)浇Y(jié)構(gòu):另外一種解決替換問題的方法是使用雙向鏈。這種方案為每個緩存器副本保持一個向前和一個向后的指針,這樣當(dāng)緩存器替換時,協(xié)議不必遍歷整個鏈。雙向鏈目錄優(yōu)化替換
23、條件是以更大的平均報文長度(由于傳送更多的目錄指針)、緩存器中的指針的存儲空間加倍和更為復(fù)雜的一致性協(xié)議為代價的。,第十一章 分布式共享存儲器 11.4 DSM系統(tǒng)的實現(xiàn),實現(xiàn)DSM的基本方法,DSM有三種實現(xiàn)方法,有的系統(tǒng)使用了不止一種方法。 (1) 硬件實現(xiàn)。把傳統(tǒng)的高速緩存技術(shù)擴(kuò)展到可擴(kuò)充的體系結(jié)構(gòu)中。 (2) 操作系統(tǒng)和程序庫的實現(xiàn)。通過虛擬存儲器的管理機(jī)構(gòu)達(dá)到共享和一致性。 (3) 編譯程序的實現(xiàn)。把共享訪問自動轉(zhuǎn)換成同步和一致性原語。,第十一章 分布式共享存儲器 11.4 DSM系統(tǒng)的實現(xiàn),結(jié)構(gòu)和粒度,DSM的硬件實現(xiàn)方法典型地支持了較小的粒度。 頁的大小:較大的頁能夠減少分頁的開
24、銷,但是可能引起爭用可能性越大。另一個影響頁大小選擇的因素是必須保留該系統(tǒng)中有關(guān)頁的目錄信息:頁越小,則目錄越大。 結(jié)構(gòu)化共享存儲器的一個實現(xiàn)方法是根據(jù)數(shù)據(jù)類型進(jìn)行共享。這種方法是把共享存儲器作為面向?qū)ο蟮姆植际较到y(tǒng)中的對象而進(jìn)行構(gòu)造。 另一個方法是把共享存儲器構(gòu)造成像一個數(shù)據(jù)庫。Linda就是一個這種模式的系統(tǒng)。它把它的共享存儲器安排成為一個相聯(lián)存儲器,叫做元組(tuple)空間。,第十一章 分布式共享存儲器 11.4 DSM系統(tǒng)的實現(xiàn),數(shù)據(jù)定位與訪問,集中的服務(wù)員:集中的服務(wù)員來跟蹤所有共享數(shù)據(jù)。這種集中的方法有兩個缺陷:服務(wù)員串行執(zhí)行定位查詢,從而削弱了并行性;服務(wù)員負(fù)載過重,降低了整個
25、系統(tǒng)的速度。 廣播數(shù)據(jù)請求:不幸的是,廣播的可擴(kuò)充性不好,所有的節(jié)點(diǎn)(不僅是數(shù)據(jù)所在的節(jié)點(diǎn))都必須處理廣播請求。廣播在網(wǎng)絡(luò)上的等待有可能使訪問花費(fèi)很長時間才能完成。 基于所有者的分布式的模型:每一塊數(shù)據(jù)都有一個與之相聯(lián)系的所有者,這個所有者就是擁有數(shù)據(jù)主副本的節(jié)點(diǎn)。當(dāng)數(shù)據(jù)在整個系統(tǒng)中遷移時,它的所有者也會隨之而改變。當(dāng)另一個節(jié)點(diǎn)需要數(shù)據(jù)的一個副本時,就向所有者發(fā)送請求。所有者如果仍保留著這個數(shù)據(jù),就返回該數(shù)據(jù);若所有者已將數(shù)據(jù)發(fā)送給其他節(jié)點(diǎn),則把這一請求轉(zhuǎn)發(fā)給那個新所有者。缺點(diǎn)是一個請求可能被轉(zhuǎn)發(fā)多次后才能到達(dá)當(dāng)前所有者。,第十一章 分布式共享存儲器 11.4 DSM系統(tǒng)的實現(xiàn),一致性協(xié)議,兩
26、類一致性協(xié)議:寫無效協(xié)議和寫更新協(xié)議 在寫無效協(xié)議中,一塊數(shù)據(jù)可能有很多個只讀副本,但是,只有一個是可寫副本。這種協(xié)議之所以被稱作寫無效協(xié)議,是因為在開始一次寫操作之前,除了將被寫的那個副本之外,其他副本均變成無效。 在寫更新方式中,一次寫操作將更新所有副本。,Dash系統(tǒng)簡化的寫無效協(xié)議(DC代表目錄控制器),Plus寫更新協(xié)議,MCM代表存儲一致性控制器,第十一章 分布式共享存儲器 11.4 DSM系統(tǒng)的實現(xiàn),顛簸,DSM系統(tǒng)特別容易出現(xiàn)顛簸。如果兩個節(jié)點(diǎn)對一個數(shù)據(jù)項同時進(jìn)行寫,該數(shù)據(jù)項就有可能以高速率來來回回地被傳送(乒乓效應(yīng)),任何實際工作都做不成 。 Munin系統(tǒng)允許程序員把共享數(shù)
27、據(jù)和類型聯(lián)系起來:寫一次、寫多次、生產(chǎn)者消費(fèi)者、專用、遷移、結(jié)果、常讀、同步及一般的讀/寫。為避免兩個競爭寫者的顛簸,一個程序員可以把類型指定為寫多次,系統(tǒng)將使用延遲寫策略。 Mirage系統(tǒng)在一致性協(xié)議中,增加了一個動態(tài)可調(diào)整參數(shù),它決定一頁在一個節(jié)點(diǎn)上保持可用的最小時間量()。例如若一個節(jié)點(diǎn)對一個共享頁執(zhí)行一次寫操作,則此頁在該節(jié)點(diǎn)上時間內(nèi)是可寫的。,第十一章 分布式共享存儲器 11.4 DSM系統(tǒng)的實現(xiàn),可擴(kuò)充性,DSM系統(tǒng)一個理論上的優(yōu)點(diǎn)是它們比緊密耦合系統(tǒng)具有更好的可擴(kuò)充性。前面說過,對可擴(kuò)充性限制有兩種因素:集中瓶頸(例如緊密耦合系統(tǒng)中的總線)和全局公用信息的操作及存儲(例如廣播報
28、文或目錄,它的大小與節(jié)點(diǎn)數(shù)成比例)。,第十一章 分布式共享存儲器 11.4 DSM系統(tǒng)的實現(xiàn),異構(gòu)性,在Agora系統(tǒng)中,把存儲器構(gòu)造為在異構(gòu)性機(jī)器之間共享對象。 Mermaid探索了另一種不同尋常的方法:存儲器以頁方式共享,并且一頁只包含一種數(shù)據(jù)類型。當(dāng)在不同體系結(jié)構(gòu)的兩個系統(tǒng)之間移動一頁時,變換子程序都會把該頁上的數(shù)據(jù)轉(zhuǎn)換成適當(dāng)?shù)母袷健?第十一章 分布式共享存儲器 11.5 DSM實例:Ivy和MemNet,Ivy軟件實現(xiàn)的DSM,Ivy中進(jìn)程地址空間分成專用和共享兩部分。專用部分不能由其他進(jìn)程尋址。共享部分由虛擬共享存儲器實現(xiàn),是個平面地址空間,為運(yùn)行在不同節(jié)點(diǎn)上的所有進(jìn)程所共享,也就是
29、被各線程共享的單地址空間。 地址空間是分頁的。一頁是同步的最小單位,當(dāng)需要時它可以從一個節(jié)點(diǎn)遷移到另一個節(jié)點(diǎn)。每個節(jié)點(diǎn)上有一個存儲器管理程序,滿足本地和遠(yuǎn)程請求并實現(xiàn)緩存器一致性協(xié)議。當(dāng)訪問共享空間的一個地址時,阻塞故障進(jìn)程,Ivy存儲器管理程序檢查待訪問頁是否在本地。如果不在本地,向遠(yuǎn)程存儲器發(fā)送請求。得到該頁后,發(fā)生頁故障的進(jìn)程恢復(fù)執(zhí)行。,第十一章 分布式共享存儲器 11.5 DSM實例:Ivy和MemNet,Ivy一致性協(xié)議,Ivy所使用的一致性概念是多個讀/單個寫的語義。對某地址的讀操作總是得到最近對該地址寫的值,一致性協(xié)議保證執(zhí)行這一語義。 Ivy的每個處理機(jī)都有自己的頁表。表中的每
30、一項紀(jì)錄著該主機(jī)的訪問權(quán),可以對一頁擁有讀、寫權(quán)或無任何權(quán)利。一頁的訪問權(quán)是與緩存器中一個塊的狀態(tài)相當(dāng)?shù)摹?第十一章 分布式共享存儲器 11.5 DSM實例:Ivy和MemNet,Ivy一致性協(xié)議,當(dāng)訪問一個共享地址時,該主機(jī)檢查它是否有權(quán)在指定方式下訪問含有此地址的那一頁。如果沒有,則根據(jù)訪問方式產(chǎn)生一個讀或者寫故障,其步驟如下: 讀故障: (1) 找出誰是所有者; (2) 所有者把該故障主機(jī)填入副本集; (3) 所有者把自己的訪問權(quán)變成只讀; (4) 所有者向故障主機(jī)發(fā)送該頁。,第十一章 分布式共享存儲器 11.5 DSM實例:Ivy和MemNet,Ivy一致性協(xié)議,當(dāng)訪問一個共享地址時,
31、該主機(jī)檢查它是否有權(quán)在指定方式下訪問含有此地址的那一頁。如果沒有,則根據(jù)訪問方式產(chǎn)生一個讀或者寫故障,其步驟如下: 寫故障: (1) 找到所有者; (2) 所有者向故障主機(jī)發(fā)送該頁和該頁的副本集,并將它的那項標(biāo)為無效; (3) 故障主機(jī)根據(jù)副本集送出“無效”報文; (4) 返回對“無效”報文的承認(rèn),進(jìn)程繼續(xù)執(zhí)行。,第十一章 分布式共享存儲器 11.5 DSM實例:Ivy和MemNet,Ivy一致性協(xié)議,三種不同的一致性協(xié)議 : 集中管理者方法類似于管程,管程由一個數(shù)據(jù)結(jié)構(gòu)和一些過程組成,提供對數(shù)據(jù)結(jié)構(gòu)的互斥訪問。集中管理者固定在一個處理機(jī)上,維持一張頁表。每個處理機(jī)也有一張頁表,每一項有兩個域
32、:訪問和鎖。訪問域記錄本地處理機(jī)上的頁面的可訪問信息。每個處理機(jī)知道中心管理者,并且在本地沒有數(shù)據(jù)對象時能夠向管理者發(fā)出請求。當(dāng)一個處理機(jī)上有多個進(jìn)程等待同一個頁面時,加鎖機(jī)制防止處理機(jī)發(fā)出多個請求。對一個頁面成功執(zhí)行寫操作就會成為頁面的所有者。,第十一章 分布式共享存儲器 11.5 DSM實例:Ivy和MemNet,Ivy一致性協(xié)議,三種不同的一致性協(xié)議 : 有兩種類型的固定分布式管理者算法:固定的和廣播的。固定算法中,每個處理機(jī)預(yù)定管理一部分頁面。通常一個適當(dāng)?shù)纳⒘泻瘮?shù)用于把頁面映射到處理機(jī)。廣播算法中,訪問頁面出故障的處理機(jī)發(fā)出廣播確定頁面的真正所有者。廣播算法性能比較差,因為所有處理機(jī)
33、必須處理每個請求,減慢處理機(jī)的計算。,第十一章 分布式共享存儲器 11.5 DSM實例:Ivy和MemNet,Ivy一致性協(xié)議,三種不同的一致性協(xié)議 : 動態(tài)分布式管理者方法的核心是每個處理機(jī)的頁表中記錄所有頁的所有者。頁表中,集中管理者算法中的所有者域被替換成另一個域,叫做可能所有者(probowner)域,它可能是頁面的真正所有者,也可能是頁面的可能所有者。可能所有者域構(gòu)成一個鏈,從一個節(jié)點(diǎn)到另一個節(jié)點(diǎn),最終會指向真正的所有者。,第十一章 分布式共享存儲器 11.5 DSM實例:Ivy和MemNet,Ivy存儲器管理,頁替換。 Ivy的虛擬共享存儲器的頁有五種:可寫的、所有者可讀的、只讀的
34、、空的和不使用的??枕摵筒挥庙摱季哂凶罡叩谋惶鎿Q優(yōu)先權(quán),即如果需要一頁則先替換它們。由于只讀頁可被其所有者制造備份,所以可以簡單地丟棄。對于所有者讀的頁和可寫頁的丟棄當(dāng)然需要所有權(quán)的轉(zhuǎn)讓。 存儲器分配。為了支持動態(tài)數(shù)據(jù)結(jié)構(gòu),使用動態(tài)存儲器分配方案是必要的。Ivy有兩種方法。第一種是集中式方法,即所有進(jìn)程向集中式的“存儲器分配程序”請求存儲器和歸還存儲器。這是個簡單的方法。第二個方法,除了集中式分配程序外,每個節(jié)點(diǎn)還有它自己的分配子程序。每個節(jié)點(diǎn)請求一大塊存儲器并執(zhí)行來自本地進(jìn)程的存儲器請求。僅在本地節(jié)點(diǎn)用完存儲器時才和集中式管理程序聯(lián)系。,第十一章 分布式共享存儲器 11.5 DSM實例:Iv
35、y和MemNet,MemNet硬件實現(xiàn)的DSM,在MemNet中,全部主機(jī)共享一個公共的地址空間。此地址空間是分頁的,這些頁可根據(jù)要求在系統(tǒng)內(nèi)遷移。對此地址空間的訪問被直接送到主機(jī)內(nèi)的接口部件(作為一個智能存儲器模塊)。這個部件能緩存一部分共享存儲器并和其他主機(jī)的這種部件相互作用調(diào)進(jìn)另外的頁。,第十一章 分布式共享存儲器 11.5 DSM實例:Ivy和MemNet,MemNet緩存一致性協(xié)議,MemNet使用的緩存一致性協(xié)議和Ivy使用的相同,即讀操作必須總是返回該數(shù)據(jù)最近的值。每個MemNet部件有一塊表,表中每項對應(yīng)整個共享地址空間中的每一塊,還包括下述狀態(tài)標(biāo)志: (1) 有效。指出此緩存器對該塊是否有一個有效副本。 (2) 獨(dú)占。指
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026江蘇連云港市灌云萬邦人力資源有限公司招聘10人考試備考試題及答案解析
- 2025年港大中國語言文學(xué)筆試及答案
- 2025年臨沂下半年事業(yè)編考試及答案
- 2025年撫州國企招聘筆試及答案
- 2025年秘書職業(yè)技能大賽筆試題及答案
- 2025年沈陽工程輔導(dǎo)員筆試及答案
- 2025年杭商傳媒記者崗筆試及答案
- 2025年百度財務(wù)助理筆試及答案
- 湖北省省屬國企外包員工招聘3人筆試備考試題及答案解析
- 2025年農(nóng)職院中職筆試真題及答案
- 基于表型分型的COPD患者呼吸康復(fù)與營養(yǎng)支持策略優(yōu)化
- 超市門口鑰匙管理制度
- 華為人力資源管理綱要2.0
- 骨科圍手術(shù)期病人營養(yǎng)支持
- 中東地區(qū)禮儀規(guī)范
- 病蟲害防治操作規(guī)程編制
- 豆制品企業(yè)生產(chǎn)過程節(jié)能降耗方案
- 臨床醫(yī)學(xué)三基三嚴(yán)培訓(xùn)
- 北師版一年級上冊數(shù)學(xué)全冊教案教學(xué)設(shè)計含教學(xué)反思
- 危化品安全培訓(xùn)
- 云南少數(shù)民族介紹
評論
0/150
提交評論