《分布式系統原理與范型》習題答案 5 同步

2022-08-21 17:33:11 字數 4334 閱讀 8065

1、說出至少三種可在wwv廣播時間和在分布式系統中處理機設定內部時鐘之間引入的延遲源。

答:訊號在大氣中的傳播延遲,當機器在協調wwv接受者與乙太網時的碰撞延遲,包在區域網上的傳播延遲,各個處理器由於中斷處理延遲和內部佇列延遲所產生的延遲。 

2、考慮分布式系統中的兩台機器的行為。這兩台機器的時鐘假設每毫秒滴答1000次。但實際上只有一台是這樣的,另一台每毫秒滴答990次。如果utc每分鐘更新一次,那麼時鐘的最大偏移量是多大?

答:第二台時鐘每秒滴答990,000次,每秒的偏移量為10ms,所以一分鐘偏移量為600ms。 

3、向圖5.7中加入乙個與訊息a併發的新訊息,即它既不發生在a的前面也不發生在a的後面。

答:在0時刻從程序2傳送訊息,並且在8時刻到達程序1,或者是在0時刻從程序1傳送訊息並在10時刻到達程序2。這兩種方法都可以滿足要求。 

4、要使用lamport時間戳實現全序多播,是不是每個訊息都必須要被嚴格地確認?

答:不是。只要訊息的時間戳比所接收的訊息的時間戳大,就有足夠的時間多播其他型別的訊息。將訊息m傳送到應用程式的條件是:以乙個很大的時間戳從其它所有程序那裡接受到其他訊息。這保證了進行中的訊息都使用更小的時間戳。 

5、考慮乙個訊息只是以它們被傳送的順序被傳遞的通訊層。給出乙個不需要這種限制的例子。

答:想象傳輸乙個大的影象,影象被分成連續的塊。每塊以它在原始影象中的位置標識,可能還有高度和寬度。如果是那樣的話,fifo的順序就不是必要的,因為接受者可以很容易地把到來的塊拼接到正確的位置。 

6、假設兩個程序同時檢測到協調者崩潰了,並且它們都使用欺負演算法主持乙個選舉。這時將發生什麼。

答:每個更高位置的處理器都會收到兩個election訊息,但是會忽略掉第二個。選舉會象往常一樣進行下去。 

7、在圖5。12中,我們有兩個election訊息同時在迴圈,當對它們都沒有什麼不利影響時,殺掉乙個將更好。設計這樣乙個演算法,該演算法在不影響基本的選舉操作演算法的情況下完成此項任務。

答:當乙個程序接受到election訊息,它會檢查訊息是誰開始傳送的,如果是它自己開始的(例如它的位置在列表的首位),它會把訊息變成協調者訊息並在正文裡描述它。如果訊息不是它開始的,它會加入其程序號並沿著環向前傳送。然而,如果它更早地傳送了自己的選舉訊息並發現了競爭者,它會將創始人的程序號與自己的相比較。如果其他程序擁有較小的號碼,它會丟棄那個訊息而不是傳遞訊息。如果競爭者更大,那麼訊息將以平常的方式傳送。這樣,如果多個選舉訊息被開始傳送,那麼入口最大的訊息將會倖存,其他訊息將沿著路由被忽略掉。 

8、許多分布式演算法需要使用協調程序。討論一下,這樣的演算法實際上可以在什麼程度上被看作是分布式的?

答:在集中式的演算法中,常常是固定的程序充當協調者。分布**於其他程序在不同的機器上執行的事實。在分布式演算法中,沒有固定的協調者,協調者從組成部分演算法的程序中選出。事實是協調者能使演算法更具分布性。 

9、在集中式互斥方法中(圖5。13),協調者在收到乙個程序釋放它獨佔訪問的臨界區的訊息後,通常給等待佇列中的第乙個程序授權,允許其訪問臨界區。請給出協調者另乙個可能的演算法。

10、請再考慮圖5。13,假設協調者崩潰了,這會必然導致整個系統癱瘓嗎?如果不會,那麼在什麼情況下會呢?有什麼方法避免了這個問題的發生,使系統能夠忍受協調者的崩潰?

答:在允許和拒絕的條件下,假定演算法是只要有請求,就立即回應。如果沒有程序在臨界區並且沒有進行在排隊,那麼這個崩潰不是毀滅性的。下乙個請求准許的的程序將不會獲得任何回應並且初始乙個協調者的選舉。在傳送回應之前,使用協調者儲存每個到來的請求將會使系統更加健壯。這樣的話,在崩潰事件中,新的協調者將會重建乙個活動臨界區域列表並將從磁碟讀檔案的行為排隊。 

11、ricart和agrawala演算法會有這樣的問題:如果乙個程序崩潰,並且沒有對另乙個要求進入臨界區的程序的請求作應答,沒有應答意味著拒絕請求,我們建議所有的請求應用立即被應答,以便很容易地檢測到崩潰的程序,是否存在一些情況,即使使用這種方法也還不足夠?請討論。

答:假定乙個程序在拒絕許可並在那時崩潰。請求程序會認為它是活動的,但許可永遠不會到來。一種方法為是請求者並不真正阻塞,而是休眠一定的時間。在休眠後,請求者將會測試所有拒絕許可的程序是否還是活動的。 

12、如果我們假設該演算法可以在支援硬體廣播的lan中實現,那麼圖5。16中的實何時將如何改變?

答:僅僅只有分布式案例的實體改變。因為傳送乙個點對點的訊息的花費與廣播訊息一樣多,所以我們只需要傳送乙個廣播訊息到所有的程序去請求實體到臨界區。同樣地,僅僅乙個出口的廣播訊息是需要的。延遲變成1+(n-1):乙個延遲**於廣播請求,再加上n-1,因為在被允許進入臨界區之前,我們仍然需要從其他每個程序接受到訊息。 

13、分布式系統可能有多個互相獨立的臨界區,假設程序0想進入臨界區a而程序1想進入臨界區b,ricart和agrawala的演算法會導致死鎖嗎?請解釋原因。

答:這取決於程式的基本規則。如果程序嚴格地依次進入臨界區域,也就是說乙個臨界區內的程序不會試圖進入其他程序的臨界區,那麼當它擁有其他程序程序想要獲取的資源(比如臨界區)的時候,它是不會阻塞的。系統於是死鎖釋放。另一方面,如果程序0進入臨界區a並且試圖進入臨界區b,如果另外的程序以相反的順序獲取它們時,死鎖就會發生。因為每個臨界區被所有的程序獨立處理,所以rucart和agrawala演算法不會造成死鎖。 

14、在圖5。17中,我們看到一種用磁帶實現對存貨表自動更新的方法。因為磁帶可以很容易地用磁碟上的乙個檔案來模擬,你認為為什麼不使用這種方法(用磁碟檔案代替)呢?

答:第乙個原因大概是人類變得更加貪婪和想要做更多他們過去習慣的東西。如果使用者滿足於每天執行一次簡單的儲存詳細目錄,可以用磁碟。問題在於每個人都想即時訪問資料庫,這會使得將詳細目錄儲存在磁帶是不可能的。 

15、在圖5。25(d)中有三個排程策略,兩個合法,乙個非法的。對於同乙個事務處理,給出臨終x所有的可能值和合法的與非法的狀態的乙個完整表。

答:合法的值為1,2,3。非法的值為4,5,6。4可以通過中間的事務處理來實現,其他兩個的交錯是不正確的。5在策略3中實現。6可以通過首先三次設定x為0,然後三次增加它實現。 

16、當乙個私有工作空間用於實現事務處理時,可能需要將大量的檔案索引複製到父輩工作區,怎樣在不引入競爭條件下實現這種操作?

答:一種辦法為在系統頂層設定鎖以阻止所有的活動直到所有的索引都被重寫。在預防崩潰以前,建立乙個目的表也許是明智的。 

17、給出乙個完整的演算法判定乙個試圖鎖住乙個檔案的操作是否成功。要同時考慮到讀鎖和寫鎖,以及檔案被解鎖,讀鎖寫或寫鎖寫的可能性。

答:演算法如下:如果檔案沒被鎖,那麼操作通常是成功的。如果檔案被讀鎖定並且操作是另乙個讀鎖定,那麼操作也是成功的。在其他情況,操作是失敗的(例如,寫鎖定乙個被鎖檔案會失敗,當乙個檔案被寫鎖定時,讀鎖定會失敗) 

18、用鎖定的方法實現併發控制的系統通常區分讀鎖和寫鎖,如果乙個程序已經得到了乙個讀鎖但現在又想將它換成寫鎖,將會怎麼樣呢?

答:乙個讀鎖只有在沒有其它讀程序的情況下才可能被轉換成乙個寫鎖。一種有效的方法就是先釋放這個讀鎖,然後馬上再獲得乙個寫鎖。如果有其它的讀程序的話這個操作將會失敗。如果有其它程序正在等待獲得乙個寫鎖時,這個操作是否成功取決於具體的策略,而不是技術上的問題。將乙個寫鎖降低優先順序為乙個讀鎖問題可行的,並且不會出錯。 

19、在分布式事務中使用時間戳排序,假設寫操作write(t1,x)被傳給資料管理器,因為僅有的可能發生衝突的操作write(t2,x)的時間戳較早,為什麼讓排程管理器推遲傳遞write(t1,x )直到t2完成呢?答:通過推遲到t2完成,排程器可以避免由於t2執行的失敗而造成的其它一系列的執行失敗。20、樂觀併發控制與使用時間戳相比是更嚴格還是更不嚴格呢?為什麼?

答:它更加嚴格。因為通過使用樂觀併發控制的機制,如果乙個事務正在交付並且發現另外乙個事務也在更改當前事務使用的檔案,它問題會退出。如果使用時間戳的話,如果另乙個事務的時間戳更低的話,這個事務有時候可能會成功。 

21、使用時間戳來進行併發控制能保證序列性嗎?請討論。

答:可以的。它要麼按照事務的時間戳全部序列地完成,要麼只完成一部分。 

22、我們常說事務被中止時,一切都恢復到它以前的狀態,就好像事務從來沒有發生一樣,實現上我們在說謊。請給出乙個重新恢復一切是不可能的例子。

答:物理i/o發生的事務不能夠被重置。比如說,乙個程序列印出了一些資料,這些墨不能夠從紙上移掉。同樣,乙個控制所有程序的系統也不大可能會恢復一切事務到它們以前的狀態。

分布式三 雲計算 分布式系統范型

雲計算是乙個新技術,同時也是乙個新概念,乙個新模式,而不是單純的指某項具體的應 用和標準。方便 按需 2.雲計算分類 1 按照是否公開發布服務分類 訪問物件 公有雲 所有客戶 私有雲 企業內部 混合雲 重點 2 按照服務模式,雲計算可以分為 iaas paas saas三種型別。iaas infra...

分布式計算范型

1 訊息傳遞范型 訊息傳遞是程序間通訊的基本途徑。兩個程序間傳遞訊息,乙個為傳送者,乙個為接收者。傳送者傳送一條請求訊息,該訊息被傳送到接收者,由接收著處理後返回一條應答訊息。2 客戶 伺服器范型 網路應用中使用最多的一種分布式計算型別。由客戶端和伺服器組成,將非對稱角色分配各兩個協作程序,客戶程序...

分布式計算范型

布式計算范型 1 訊息傳遞范型 1 訊息傳遞泛型 2 訊息系統泛型 2 客戶 伺服器傳遞范型 當前最流行的網際網路應用www 或稱為萬維 網 是基於客戶 伺服器范型的乙個典型分布式應用 3 p2p范型 在p2p網路中,每個使用者端既是乙個節點,又有伺服器的功能,任何乙個節點無法直接找到其他節點,必須...