1 / 24

Operating System Principles 作業系統原理 CHAPTER 14 分散式作業系統

Operating System Principles 作業系統原理 CHAPTER 14 分散式作業系統. 著者 ABRAHAM SILBERSCHATZ Yale University PETER BAER GALVIN Corporate Technologies GREG GAGNE Westminster College 譯者 駱詩軒 駱詩富 鄧俊修 投影片編撰 鄧有光. 第六篇 分散式處理系統. 分散式處理系統是未共用記憶體或時脈之一群處理器。 相反地,每個處理器具有其局部之記憶體,並且處理器問經由不同之聯繫線路來互相通訊。

nicola
Download Presentation

Operating System Principles 作業系統原理 CHAPTER 14 分散式作業系統

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operating System Principles作業系統原理CHAPTER 14 分散式作業系統 著者 ABRAHAM SILBERSCHATZ Yale University PETER BAER GALVIN Corporate Technologies GREG GAGNE Westminster College 譯者 駱詩軒 駱詩富 鄧俊修 投影片編撰 鄧有光

  2. 第六篇 分散式處理系統 • 分散式處理系統是未共用記憶體或時脈之一群處理器。 • 相反地,每個處理器具有其局部之記憶體,並且處理器問經由不同之聯繫線路來互相通訊。 • 分散式處理系統之處理器的大小及功能各異。包括小型手提或即時裝置、個人電腦、工作站、迷你電腦,以及大型一般用途之電腦系統。

  3. 14.1 動機 14.2 分散式作業系統的型態 14.3 網路型態 14.4 網路拓墣架構 14.5 通信結構 14.6 通信協定 14.7 強韌性 14.8 設計議題 14.9 網路的例子 CHAPTER 14 分散式作業系統

  4. 14.1 動機 • 分散式系統 (distributed system)是藉由通信網路 (communication network)連接的一群鬆散耦合處理器。從系統中一個特定處理器之觀點來看,其它處理器及其資源是屬於遠程(remote)的,而其本身之資源則為局部 (local)的。 • 建立分散式系統主要的理由有四項: • 資源共用(resource sharing) • 加速計算(computation speedup) • 提高可信度(reliability) • 通信(communication)

  5. 14.2 分散式作業系統的型態 • 14.2.1 網路作業系統(network operating system) • 遠端登入(remote login) • 遠端檔案移轉(remote file transfer) • 14.2.2 分散式作業系統(distributed operating system) • 運算移轉(computation migration) • 行程移轉(processes) • 負載平衡 (load balancing) • 加速運算 (computation speedup) • 硬體偏好 (hardware preference) • 軟體偏好 (software preference) • 資料存取(data access)

  6. 14.3 網路型態 (Network Types) • 14.3.1 區域網路(LAN, Local Area Network)

  7. 14.3.2 廣域網路(WAN, Wide Area Network)

  8. 14.4 網路拓墣架構 (Topology) • 比較: • 安裝代價:將系統中的不同站連結在一起的代價是多少? • 通信代價:將一段訊息由A站送至B站要花多久的時間? • 可靠度:如果連接的某個站或系統中的某個位址出了錯誤,其餘的站是否仍然 可以相互的連繫呢?

  9. 14.5 通信結構 • 14.5.1 命名和名稱決定(naming and name solutions) • 區域命名系統 (domain-name system,簡稱 DNS),則是目前使用的方法。 • DNS規定了主機的名稱結構,以及名稱對映到位址的結果。Internet上的電腦主機在邏輯上都是用多重部份主機去命名。名稱是由最特定的部份到最普通的部份,並以逗點隔開每一項。例如 bob.cs.brown.edu 就表示了在布朗大學計算機中心部門區域edu 中的bob主機。

  10. 14.5.2 路徑策略(routing strategies) • 由A通往B,那麼就存在有許多條路徑可供選擇。 • 每個站都有一個路徑表( routing table),其中標示者可以用來將訊息傳至其它站的不同路徑。這個表寡面可能包括了速度和不同通信路徑的代價等資料,在必要的時候也需要更新其內容,可藉由程式來改變路徑的訊息。最常見的三種路徑是 • 固定路徑(fixed route)-無法適應承載改變 • 虛擬路徑(virtual route)-部份解決無法適應承載改變,固定路徑與虛擬線路可以保證訊息能夠按照其被傳送的順序由A送抵B • 動態路徑(dynamic route)-訊息抵達時可能不按照順序來。

  11. 14.5.3 封包策略 • 一般而言,訊息長度是不固定的。為了簡化系統設計,我們一般是用稱為封包(packet)、框 (frame)或資料封包 (datagram)的固定長度訊息來製作通訊。 • 用封包方式製作的通訊,可以用非連結訊息 (connectionless message)的方式傳送到它的目的地。 • 不可信任的(unreliable),它的意義是傳送器不受保證和不能告知,假如這個封包已經到達它的目的地。 • 可信任的 (reliable),通常從目的地回送另一個封包來指示這個封包已經到達。

  12. 14.5.4 連接策略(connection strategies) • 一旦訊息到達目的地,行程可以設置通信會談 (communication session)來交換訊息。有許多不同的方法可以用來將任一對想要在網路中聯絮的行程連接起來。最常見的三種方法就是 • 線路切換(circuit switching) • 訊息切換(message switching) • 封包切換(package switching)

  13. 14.5.5 爭執(contention) • 許多方法都是設計出來避免反覆衝突,其中包括 • 衝突偵測(CSMA/CD, carrier sense with multiple access / collision detection)-先檢查看看是否已有其它的訊息目前正在該條線上傳送;如果該線有空,這站就可以開始傳送了。否則,它就必須等該線有空的時候。如果正好在某一時刻有兩個以上的站開始傳送,那麼它們就必須做CD的記錄並且停止傳送 • 許可證傳送(token pass)-許可證 (token),不 斷地在系統中來回走動 (通常是在環狀結構中)。一個等待著要傳送資訊的站 必須等待許可證到達。它就把該許可證從環中拿走並且開始傳送它的訊息。當 該站要發送的訊息傳送完了之後,它就把許可證重新傳出去。

  14. 14.6 通信協定 (Protocol) • ISO, International Standard Organization 所提出:

  15. ISO • 實體層(physical layer):處理實際傳遞一串位元串的機械與電子部份的細節,以網路設備的硬體來實現。 • 資料連結層 (data-link layer):資料連結層負責處理固定長度的封包或框,包括在 實體層中任何錯誤的偵測與修復。 • 網路層 (network layer):網路層負責提供通信網路的連接以及封包的傳送,包括要送出的封包位址控制、被送來封包的位址解碼、並且為了正確反應承載變動而保存的路徑資料。繞路/路由器(router)在這層工作。 • 傳遞層(transport layer):傳遞層負責網路的低階存取和使用者之間的訊息傳送,其中包括將訊息分割為封包、保存封包的次序、流程控制與實際位址的產生。

  16. ISO • 會議層 (session layer):會議層負責實現會議,或行程對行程的通信協定。通常這些協定是遠端登入 (remote login)、檔案和郵件傳遞的真正通信。 • 表現層 (Presentation layer):表現層負責解決網路中的不同站上所使用的格式,包括字元轉換,以及半雙向和全雙向的轉換half duplex full duplex)(字元回應)等。 • 應用層 (application layer): 應用層負責直接和使用者接觸的工作。這一層負責檔案傳遞、遠端登入協定和電子郵件,以及訂定各分散資料庫的型態。

  17. 14.7 強韌性(Robust) • 14.7.1 故障偵測 • 可以採用握手(handshaking)的方式來進行。假設站A和B之間存在一條實際連結線Physical link),則在固定時段內,兩個站都必須傳送一個訊I-am-up給對方。如果站A在這段事先講好的時間內沒有收到站B傳送的聯繫訊息,則A假設B已經發生故障,或A到B之間的連結線發生故障,要不然就是聯繫訊息傳丟了。 • 時間到了的方法(time-out scheme)-當A送出訊息Are-you-up?時,它必須同時指定一個時間值,如果在這時間值內B回答了,那麼A便可以斷定B還是好好的。但是如果超過這時間值B還沒有回答.則A還是只能所定底下四種情況中,必有一種或多種已經發生: • 站B已經故障, • 從A到B之間的直接連結線 (link)已經故障, • A到B的另一條連結線已經故障,或 • 訊息被傳送丟了。

  18. 14.7.2 重組架構(Reconfiguration) • 確實已有故障情況存在,則它必須啟動一個程序,使系統能夠重組其架構,以恢復正常的運作。 • 如果是A到B之間的直接連結線故障,則系統必須將此狀況傳播給每一工作站,使各站能及時更新所保有的各種路徑表(routing table)。 • 如果其中某一個站確實已經壞了,則系統必須告知其它每一個站,以免再有站 試圖要去使用故障站所擁有的資源。如果發生故障的,是擔負某種協調工作的 站(如死結偵測等),則必須選擇另一個新的站來充當。同樣地,如果故障的是邏輯環狀結構中的某一站,則必須另建一新的邏輯環狀結構。有一點值得我們注意的就是,萬一站根本沒有故障,而只是沒有辦法連結到,則可能會造成 兩個協調程式同時並存的現象。當整個網路被分成兩部份之後,兩個協調程式 (每一部份一個)之間,可能會發生衝突的現象。

  19. 14.7.3 故障修復 • 當故障的連結線或站修復之後,我們必須很順利地將它加入系統內。 • 如果是A和B之間的連結線故障,則在修復之後,必須同時通知A和B。這通知的動作可經由不斷重複的握手方式來完成。 • 如果是站B故障,則在修復之後,它必須通知每個站,說它已經恢復運作 了。然後接著站B便可以陸陸績續地再接到其它站傳給它的資訊,好讓它可 以更新其區域控制表,諸如路徑表、故障站的名稱或無法傳送的訊息和郵件等。即使站並沒有真的故障,只是聯繫不到,這些資訊也是不可缺少的。

  20. 14.8 設計議題 (Design Issues) • 使用者感到多個處理器及儲存裝置的存在感到透明 (transparent)-使用者可以存取遠程之分散式系統,就如同那些系統是在本身一般,而且分散式系統要擔負找尋資源及安排適當交互活動之責任。一個透明的分散式系統可提供使用者其有活動性,使之能在簽入之機器上直接得到其設定之使用者環境 。 • 容錯 (fault tolerance)-通信錯誤、標器錯誤、儲存裝置之碰撞損毀,以及儲存物質之腐壞均視為必須容忍至某一程度的錯誤。 • 統適應漸增服務負載之能力稱為規模性(scalability)。其備有限資源之系統在漸增的負荷之下會達到完全飽和。實際上可用叢聚 (clustering)之方法來近似對稱的及自主的組態。系統分割成一群半自主性的叢聚。一個註聚由一組機器及其專用之叢聚伺服器組成。

  21. 14.9 網路的例子 ( example: networking) • 一旦一台乙太網路的裝置宣佈它的主機識別碼和位址之後,通信就可以開始。一個行程可以設定它要溝通的主機名稱。核心程式得到名字之後,就使用DNS查詢法決定出目的地的Internet號碼。要傳送的訊息從應用層,透過層層軟體到達硬體層。在硬體層,封包的開頭是乙太網路號碼,結束是一個尾巴(trailer),以表明封包的結束,並且加入一個檢查碼 (checksum),以便偵測封包是否有毀損 。

More Related