作業系統學習 分布式系統結構

2021-08-15 17:01:01 字數 3148 閱讀 3710

分布式系統是一組不共享記憶體和時鐘的處理器的集合,即每個處理器都有它自己的記憶體,處理器之間的通訊可通過各種通訊網路加以實現。

一、動機

建立分布式系統主要由4個方面的原因:

1、資源共享

2、加快計算速度

3、可靠性

4、通訊

不同站點可以有機會交換資訊

二、分布式作業系統的型別

1、網路作業系統

通過遠端登入或從遠端機器傳送資料到自己機器的方式來訪問遠端資源。

易於實現,但難用。

2、分布式作業系統

使用者可以像訪問本地資源一樣來訪問遠端資源。從乙個站點到另一站點的資料和程式遷移由分布式作業系統控制。

1)資料遷移

分為整體遷移和按需遷移兩種。如果僅訪問大檔案中的小部分,按需遷移效率更高;如果訪問大部分,則複製整個檔案效率更高。這有點象資料庫的全表掃瞄。

2)計算遷移

系統之間傳遞計算而不是資料。比如,需要彙總不同站點的不同檔案,分別在各站點訪問,然後彙總處理結果(mapreduce)。

這種計算可用不同方法來實現:直接呼叫遠端主機的命令,或者傳送訊息到遠端主機,觸發其執行。

3)程序遷移

計算遷移的邏輯擴充套件。乙個程序可能分布在不同的站點上執行。這可以基於如下考慮:

負載平衡

計算加速

硬體偏好:程序可能更適合在特定的處理上執行

軟體偏好:程序可能需要在特定站點上的軟體加以執行

資料訪問:如果使用的資料非常多,遠端命令可能比傳遞資料到本地更為有效。

web具有許多分布式計算的特徵。

三、網路結構

區域網、廣域網

四、網路拓撲結構

分布式系統內的站點可用多種方法物理連線,每種都有優缺點。可按下面標準來比較:

安裝成本

通訊成本

有效性

五、通訊結構

通訊網路的設計必須考慮5個基本問題:

1、命名和名字解析

遠端系統的程序通常用《主機名,識別符號》來標識,其中主機名是網路內的唯一名稱,識別符號可以是程序識別符號或該主機的其他唯一號碼。為了方便使用者區分使用,主機名通常用字元標識。但對於機器而言,數字更加快速和簡單。因此有一種機制將主機名解析,把目標系統描述成連網硬體的主機id。呵呵,不錯,就是dns。

2、路由策略

每個站點擁有一張路由表,其中描述傳送一條訊息到其他站點的可選路徑;可能還包括各條路徑的速度和成本資訊。必要時,可以手動或通過交換路由資訊程式來更新這些資訊。最為通用的三種路由策略是

固定路由:成本最低

虛擬路由:會話期間固定。

動態路由:複雜,但在複雜環境中是最好方法

閘道器:知道如何連線到達本地網路和其他網路的節點。

路由器:計算機網路負責路由的實體。乙個路由器必須至少有兩個網路連線。路由器決定訊息的傳送路徑。路由器檢查它的路由表來決定目標主機的位置,或者目標主機所在的網路。

閘道器和路由都是專用的硬體裝置。

3、包策略

訊息通常長度不定,為了簡化系統設計,通用使用固定長度的包、幀或資料報來實現通訊。

4、連線策略

一旦訊息到達目的地,程序可建立通訊會話來交換資訊。最常用的是

電路交換:

兩個程序間建立乙個物理鏈路,通訊會話期間獨佔使用。

訊息交換:

兩個程序在傳送一條訊息期間建立乙個暫時的鏈路。多條訊息可以共用。

5、線路競爭

訊息傳遞過程中,可能會變得混亂而必須被丟棄,需要重新傳送。因此有個避免重複和衝突的問題。解決方法是

衝突檢測:

傳送報文之前,站點必須偵聽鏈路是否空閒(載波偵聽多路訪問),空閒開始傳輸,否則必須等待。如果兩個或更多站點同時傳輸,則必須記錄乙個衝突檢測,並停止傳輸,然後每個站點在隨機時間間隔後重新嘗試。

乙太網成功地應用了這一技術。(所謂乙太網,就是應用了這一技術的網路)

令牌傳遞:

一種獨特的稱為令牌的報文在系統中迴圈,等到令牌的站點才可以傳輸,傳完後重新傳送令牌。如果令牌丟失,系統通過選舉,選出乙個站點生成新令牌。

六、通訊協議

網路系統必須在乙個或一組能夠支援諸如確定主機名、網路的主機定位、建立連線等操作的協議上取得一致。為簡化設計,分為多個層次。

在邏輯上,協議的每一層與其他系統的同層通訊。而在物理上,乙個報文從應用層或更高層出發,依次通過每乙個更低的層,每一層可以修改此報文,包括新增報文頭部。我的理解就是,就好像乙個快遞乙個貨物,送出去前,快遞公司會先將貨物包裹一層,貼上標籤;然後送達接收人,他再剝開包裹,得到貨物。

tcp/ip協議比iso模型層少。

七、健壯性

分布式系統可能遇到各種硬體故障,比如鏈路故障、站點故障、報文丟失等。為了保證系統健壯,必須檢測到任何錯誤,重新配置系統以繼續執行,或復原。

1、故障檢測

使用握手過程來檢測鏈路或站點故障。

2、重構

站點發現故障後,必須啟動乙個程式,重新配置系統並繼續正常的操作模式。比如廣播此故障,避免其他站點使用該出錯站點的服務。

3、故障恢復

當鏈路或站點的錯誤被修復後,必須能夠與系統重新整合起來。

八、設計事項

把處理器和儲存裝置的多樣性設計成對使用者透明並不是一件簡單的任務。理想的情況是,分布式系統在使用者看來就像乙個傳統的集中式系統。

1、透明:乙個透明的分布式系統的使用者介面不應區分本地和遠端資源,即使用者能像在本地一樣地訪問遠端分布式系統。分布式系統應該負責查詢資源以及安排適當的互動操作。

2、靈活性:透明的另一方面體現在使用者的靈活性上。它允許使用者登入到系統的任意機器,而不是強迫使用特定。

3、容錯性:系統能在一定程度上容忍各種故障,出現了問題後,仍然能夠繼續執行。

4、可擴充套件性:適應日益增長的負荷能力。具有可擴充套件的潛力。

分布式系統學習 六 作業系統支援

一 核心作業系統元件 執行緒管理器 負責執行緒建立 同步和排程。通訊管理器 負責同一臺計算機上不同程序中的執行緒之間通訊。記憶體管理器 負責管理物理記憶體和虛擬記憶體。管理器 負責處理中斷 系統呼叫陷阱和其他異常,同時控制記憶體管理單元和硬體快取以及處理器和浮點暫存器操作。又稱為硬體抽象層。二 核心...

分布式系統學習

分布式系統中節點分布情況在空間上是隨意分布的。系統中所有節點都是對等的,沒有主從之分。副本是分布式系統對資料和服務提供的一種冗餘方式,資料副本是指在不同節點上持久化同乙份資料,解決單點故障資料丟失的問題,服務副本是指多個節點提供同樣的服務,每個節點都有能力接受來自外部的請求並進行相應的處理。分布式系...

分布式作業系統入門

什麼是中介軟體?分布式計算系統 集群運算 網格運算 雲計算 分布式資訊系統 分布式普適系統 網格計算 雲計算 硬體 基於匯流排的多處理機 基於交換的多處理機 基於匯流排的多計算機 基於交換的多計算機 軟體 分布式作業系統 網路操作i系統 中介軟體作業系統 客戶 伺服器端架構 無連線的服務 應用程式層...