操作系統(tǒng)教程—Linux實例分析 孟慶昌 第10章 分布式系統(tǒng).ppt_第1頁
操作系統(tǒng)教程—Linux實例分析 孟慶昌 第10章 分布式系統(tǒng).ppt_第2頁
操作系統(tǒng)教程—Linux實例分析 孟慶昌 第10章 分布式系統(tǒng).ppt_第3頁
操作系統(tǒng)教程—Linux實例分析 孟慶昌 第10章 分布式系統(tǒng).ppt_第4頁
操作系統(tǒng)教程—Linux實例分析 孟慶昌 第10章 分布式系統(tǒng).ppt_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第10章分布式系統(tǒng) 10 1概述10 2分布式操作系統(tǒng)10 3分布式系統(tǒng)的通信10 4分布式進程管理10 5分布式系統(tǒng)中的同步10 6分布式系統(tǒng)中的死鎖10 7分布式文件系統(tǒng)習題 10 1概述 10 1 1分布式系統(tǒng)特征一般認為 分布式處理是把計算任務(wù)和智能由主機分散到構(gòu)成整個系統(tǒng)的各個子系統(tǒng)和外部設(shè)備中 實現(xiàn)系統(tǒng)和資源的動態(tài)管理和分配 具有這種結(jié)構(gòu)和功能的完整系統(tǒng)就認為是分布式處理系統(tǒng) 簡稱分布式系統(tǒng) 圖10 1分布式系統(tǒng)的總體結(jié)構(gòu) 分布式系統(tǒng)是多個處理機通過通信線路互連而構(gòu)成的松散耦合系統(tǒng) 系統(tǒng)中每個站點都是一個完整的計算機系統(tǒng) 有自己的本地內(nèi)存和I O設(shè)備等資源 在統(tǒng)一的協(xié)調(diào)和管理下 實現(xiàn)全系統(tǒng)資源的透明共享 如圖10 1所示 因此 分布式系統(tǒng)具有以下特征 1 分布性 2 自治性 3 并行性 4 全局性 10 1 2分布式系統(tǒng)優(yōu)點1 資源共享若干個不同的站點通過通信網(wǎng)絡(luò)彼此互連 這樣 一個站點上的用戶就可以使用其他站點上的資源 如允許設(shè)備共享 使眾多用戶共享昂貴的外部設(shè)備 如彩色打印機 允許數(shù)據(jù)共享 使眾多用戶訪問共用的數(shù)據(jù)庫 可以共享遠程的文件 使用遠程特有的硬件設(shè)備 如高速陣列處理器 以及執(zhí)行其他操作 2 加快計算速度如果一個特定的計算機任務(wù)可以劃分成若干并行運行的子任務(wù) 那么我們就可以把這些子任務(wù)分散到不同的站點上 它們同時在這些站點上運行 從而加快計算速度 3 可靠性高分布式系統(tǒng)具有高可靠性的優(yōu)點 如果其中某一站點失效了 那么其余的站點可以繼續(xù)操作 整個系統(tǒng)就不至于因一個或少數(shù)幾個站點的故障而全體崩潰 分布式系統(tǒng)有很好的容錯性能 4 方便快捷的通信分布式系統(tǒng)中各站點通過一個通信網(wǎng)絡(luò)互連在一起 通信網(wǎng)絡(luò)是由通信線路 調(diào)制解調(diào)器和通信處理器等組成的 10 1 3三種多機操作系統(tǒng)的比較在分布式系統(tǒng)中必須有一個單一的 全局進程通信機制 所以任何進程之間都可彼此通信 而且通信機制是相同的 不管是在不同機器上 還是本地通信或者遠程通信 都一樣 也必須有一個全局保護模式 在分布式系統(tǒng)中任何地方的進程管理都必須相同 不同機器上 進程的創(chuàng)建 終止 啟動及停止等都沒有區(qū)別 在所有機器上都使用同一組系統(tǒng)調(diào)用 并且不會產(chǎn)生異樣感覺 總之 分布式操作系統(tǒng)與多處理器操作系統(tǒng)和網(wǎng)絡(luò)操作系統(tǒng)相比 既有相同之處 又有差別 表10 1列出了這三種操作系統(tǒng)之間的某些不同點 表10 1三種多機操作系統(tǒng)的比較 10 2分布式操作系統(tǒng) 10 2 1分布式操作系統(tǒng)的功能在分布式操作系統(tǒng)中 用戶訪問遠程資源的方式和訪問本地資源的方式是相同的 在這種操作系統(tǒng)的控制下 可以實現(xiàn)數(shù)據(jù)和進程從一個站點到另一個站點的遷移 分布式操作系統(tǒng)要實現(xiàn)用戶面前的虛擬單處理機系統(tǒng)到具體的分布式系統(tǒng)的映射 它的基本功能包括 1 進程管理 2 通信管理 3 資源管理 10 2 2分布式操作系統(tǒng)的設(shè)計因素1 透明性設(shè)計透明性最重要的一個問題或許是如何實現(xiàn)單一系統(tǒng)映像 即如何讓每個用戶感覺這種分布式系統(tǒng)就是老式的單處理器分時系統(tǒng) 實現(xiàn)這一目標的系統(tǒng)通常被稱為是透明的 透明性概念可以用于分布式系統(tǒng)的若干方面 表10 2列出了不同種類的透明性 表10 2分布式系統(tǒng)不同種類的透明性 2 靈活性系統(tǒng)應該是靈活的 它可以根據(jù)用戶需求和使用情況 方便地進行修改或者擴充 操作系統(tǒng)結(jié)構(gòu)有兩種主要模型 一種是整體核心 它大而且復雜 另一種是微內(nèi)核 它小巧靈活 易于擴充或移植 多數(shù)分布式系統(tǒng)都采用這種設(shè)計模型 微內(nèi)核是操作系統(tǒng)的極小核心 3 可靠性建立分布式系統(tǒng)的基本目標之一是使它們比單處理器系統(tǒng)更可靠 如果某個機器不能工作了 那么有另外的機器做它的工作 可靠性有幾個方面 可用性 安全性和容錯性 4 高性能分布式系統(tǒng)有很高的性能 這是不言而喻的 性能指標包括多個方面 如執(zhí)行速度 響應時間 吞吐量 系統(tǒng)利用率 網(wǎng)絡(luò)通信能力等等 利用基準測試 Benchmark 手段可以部分度量系統(tǒng)的性能 5 可擴充性擴充可分為水平擴充和垂直擴充 前者是指添加或移去客戶工作站對性能影響很小 后者是指移植到更大的或者更快的服務(wù)器機器或多服務(wù)器上 分布式系統(tǒng)應能根據(jù)使用環(huán)境的應用需要 方便地擴充或縮減其規(guī)模 10 3分布式系統(tǒng)的通信 10 3 1ISOOSI參考模型OSI OpenSystemsInterconnection 參考模型是ISO開發(fā)出的協(xié)議分層模型 OSI模型共分七層 如圖10 2所示 圖10 2OSI模型示意 各層功能敘述如下 1 物理層 涉及在物理信道上傳輸原始比特 即0 1電位 處理與物理傳輸介質(zhì)有關(guān)的電氣的 機械的和信號的接口 2 數(shù)據(jù)鏈路層 分為介質(zhì)訪問控制 MAC 和邏輯鏈路控制 LLC 兩個子層 3 網(wǎng)絡(luò)層 負責將數(shù)據(jù)從物理連接的一端傳到另一端 主要任務(wù)是路由選擇 以及與之相關(guān)的流量控制和堵塞控制等 4 傳輸層 通過向上提供一個標準的 通用的界面 使上層與通信子網(wǎng) 下三層 的細節(jié)相隔離 5 會話層 主要任務(wù)包括會話管理 傳輸同步以及活動管理等 它主要針對遠程終端訪問 6 表示層 主要功能是信息轉(zhuǎn)換 包括信息壓縮 加密 與標準格式的轉(zhuǎn)換 以及上述各操作的逆操作 等 7 應用層 提供最常用的通用應用程序 包括電子郵件 文件傳輸和與遠程終端的連接等 10 3 2客戶 服務(wù)器模型如上所述 每次傳送一個消息要通過很多層次 還要對消息逐層加頭 到接收方又要逐層去頭 等等 做這些工作都要花費時間 在廣域網(wǎng)上 數(shù)據(jù)傳輸速率往往相當慢 如64kb s 在這種情況下 上述開銷還并不算是嚴重問題 影響性能的關(guān)鍵因素是線路傳輸能力 而對于基于LAN的分布式系統(tǒng)來說 這種協(xié)議開銷就往往很大了 CPU因運行協(xié)議而耗費了時間 從而影響了LAN的吞吐能力 所以 多數(shù)基于LAN的分布式系統(tǒng)不采用分層協(xié)議模型 而采用客戶 服務(wù)器模型 客戶 服務(wù)器模型的思想是 把操作系統(tǒng)作為一組協(xié)作進程加以構(gòu)造 它們?yōu)橛脩籼峁└鞣N服務(wù) 用戶也稱為客戶 協(xié)作進程也稱為服務(wù)器 客戶和服務(wù)器機器通常全部運行相同的微內(nèi)核 客戶和服務(wù)器都作為用戶進程運行 一臺機器可以只運行一個進程 也可以運行多個客戶進程 多個服務(wù)器進程或者二者的混合 圖10 3客戶 服務(wù)器模型 10 3 3遠程過程調(diào)用盡管客戶 服務(wù)器模型提供了構(gòu)造分布式操作系統(tǒng)的簡便方法 但它也存在根本缺陷 進行通信要做大量的I O工作 發(fā)送過程和接收過程基本上都忙于I O 圍繞著I O建立系統(tǒng)并非最佳方法 RPC的思想很簡單 允許程序調(diào)用另外機器上的過程 當機器A的一個進程 或者線程 調(diào)用機器B上的一個過程時 A上的調(diào)用進程掛起 被調(diào)過程在B上開始執(zhí)行 調(diào)用者以參數(shù)形式把信息傳送給被調(diào)用者 被調(diào)用者把過程執(zhí)行結(jié)果回送給調(diào)用者 對程序員來說 完全看不到消息傳送或者I O RPC像一個常規(guī)過程 要進行同步 調(diào)用者發(fā)出命令后一直等待著 直到它得到結(jié)果 RPC把過程調(diào)用在網(wǎng)絡(luò)環(huán)境所產(chǎn)生的各種復雜情況都隱藏起來 10 3 4組通信在上面通信模式中認為通信只涉及兩個進程 發(fā)送進程和接收進程 但在實際的系統(tǒng)中 通信可能涉及到多個進程 所謂組是進程的集合 它們按照某個系統(tǒng)或用戶指定的方式協(xié)同工作 組的重要特性是 當某個消息發(fā)送到一個組時 組內(nèi)的所有成員都能接收到該消息 可見 組通信具有 一對多 的形式 即一個發(fā)送者 多個接收者 而不是簡單的 點 點 的通信方式 組是動態(tài)的 可以創(chuàng)建新組 撤消舊組 一個進程可以加入某個組 也可以離開某個組 一個進程可以同時是多個組的成員 為此 需要有一個機制來管理組和組成員 1 組播 在一些網(wǎng)絡(luò)中 可以為組指定一個特殊的網(wǎng)絡(luò)地址 例如 將節(jié)點機網(wǎng)絡(luò)地址的高位置1 該組的成員利用這個地址進行監(jiān)聽 2 廣播 有的網(wǎng)絡(luò)不允許組播 那么可以采用廣播方式 3 單播 如果網(wǎng)絡(luò)不支持組播和廣播方式 那么就采用單播方式實現(xiàn)組通信 即讓消息發(fā)送者分別給組的每個成員發(fā)送消息 10 4分布式進程管理 10 4 1進程遷移1 數(shù)據(jù)遷移 DataMigration 假設(shè)站點A上的用戶想訪問站點B上的數(shù)據(jù) 例如一個文件 系統(tǒng)傳送數(shù)據(jù)的方法有兩種 整體傳送和部分傳送 1 整體傳送 就是把那個文件整體地從站點B傳送到站點A 2 部分傳送 僅把文件中用戶當前需要的那部分從站點B傳到站點A 2 計算遷移 ComputationMigration 在某些情況下 傳送計算比傳送數(shù)據(jù)更有效 這種方法稱為計算遷移 3 進程遷移 ProcessMigration 進程遷移是計算遷移的邏輯延伸 當一個進程被提交執(zhí)行時 并不一定始終都在同一站點上運行 整個進程或者其一部分可能在不同的站點上執(zhí)行 在分布式系統(tǒng)中引入進程遷移可以使各站點工作負載平衡 加快計算速度 為進程運行提供更合適的硬件和軟件環(huán)境 另外也避免大量數(shù)據(jù)遷移帶來的影響 有兩種技術(shù)可用于進程遷移 第一種是系統(tǒng)對客戶隱藏進程遷移的事實 這種方式的優(yōu)點是 用戶不必顯式地編寫程序來實現(xiàn)進程遷移 這種方式往往用于在同構(gòu)系統(tǒng)間實現(xiàn)負載均衡和加速計算 另一種方式是允許 或要求 用戶顯式地指定進程應如何遷移 這種方式往往用于為了滿足偏愛硬件或軟件的特定條件而必須遷移進程的情況 10 4 2分布式系統(tǒng)的進程管理在分布式系統(tǒng)中往往采用線程概念實現(xiàn)進程管理 如第2章所述 線程是一個獨立的執(zhí)行單位 一個線程只能屬于一個進程 一個進程可以有多個線程 但至少有一個線程 同一進程的所有線程共享該進程的所有資源 線程創(chuàng)建快速 維護方便 可以更自然地共享數(shù)據(jù) 提供非常經(jīng)濟的多任務(wù)形式 線程允許并行機制 例如有一個文件服務(wù)器 在它的進程內(nèi)線程的組織形式可以有三種 分派者 工作者模式 工作組模式和管道模式 如圖10 4所示 圖10 4一個進程內(nèi)的三種線程組織形式 a 分派者 工作者模式 b 工作組模式 c 管道模式 10 4 3處理器分配分布式系統(tǒng)由多個處理器組成 它們可以構(gòu)成個人工作站集合體 公用處理器池或者某種混合形式 在各種情況下都需要采用某種算法來決定哪個進程在哪臺機器上運行 處理器的分配策略主要分為兩類 非遷移型和遷移型 10 5分布式系統(tǒng)中的同步 分布式系統(tǒng)的同步機制比集中式系統(tǒng)更為復雜 在集中式系統(tǒng)中可以把系統(tǒng)的所有信息收集到一個地方 然后由某個進程檢測這些信息 再做出同步?jīng)Q策 而在分布式系統(tǒng)中往往不可能這樣做 分布式系統(tǒng)使用分布式算法 一般有以下特點 1 相關(guān)信息分布在多臺機器上 2 進程只根據(jù)本地可用的信息做出決策 3 應避免系統(tǒng)中因單機失效而使系統(tǒng)工作不可靠 4 沒有公共時鐘或其他精確的全局時間源 10 5 1事件排序在分布式系統(tǒng)中沒有全局一致的時間 每個機器都有自己的時鐘 因此 時鐘之間的不同步會產(chǎn)生戲劇性的結(jié)果 一件后面發(fā)生的事反而可能被賦予較早的發(fā)生時間 這種情況下 象make之類的程序就無法得到正確結(jié)果 定義一組事件的前趨關(guān)系如下 1 若A和B是同一進程的兩個事件 且A在B之前發(fā)生 則有前趨關(guān)系A(chǔ) B 2 若A是一個進程發(fā)送消息的事件 而B是另一個進程接收該消息的事件 則 A B 3 若A B且B C 則A C 即前趨關(guān)系有傳遞性 10 5 2互斥1 集中式算法集中式算法是對單處理器系統(tǒng)中互斥方法的模擬 其基本思想是 在系統(tǒng)的所有活動進程中選擇一個進程作為協(xié)調(diào)者 即運行在最高網(wǎng)址的機器上的某個進程 2 分布式算法由于協(xié)調(diào)者的故障會導致系統(tǒng)的癱瘓 這通常是不可接受的 于是 研究人員提出了分布式算法 該算法的工作過程描述如下 當某個進程想進入臨界區(qū)時 它就建立一個消息 其中包含臨界區(qū)名 進程號和時間戳 然后將該消息發(fā)送給系統(tǒng)中所有進程 概念上也包括自己 假定消息發(fā)送是可靠的 即每個消息都得到確認 如果存在可靠的組通信 就采用組通信方式 當一個進程收到其他進程發(fā)來的消息后 執(zhí)行下列操作 1 如果接收者不在臨界區(qū)內(nèi)且不想進入 則立即返回一個OK消息給發(fā)送者 2 如果接收者在臨界區(qū)內(nèi) 則不做任何響應 只是將該請求送入等待隊列 3 如果接收者也想進入臨界區(qū) 但尚未進入 則將自己請求消息的時間戳與所接收的消息的時間戳進行比較 分布式算法可以實現(xiàn)進程間的互斥 而且不會產(chǎn)生死鎖和饑餓 但是該算法存在以下問題 1 每個想進入臨界區(qū)的進程必須知道系統(tǒng)中所有進程的名字 2 如果系統(tǒng)中有一個進程失效 則必然使發(fā)出請求消息的進程無法收到全部響應 而默認為訪問被拒絕 3 沒能進入臨界區(qū)的進程必須頻繁地暫停 以便其他進程進入臨界區(qū) 3 令牌環(huán)算法令牌本身是一種特定格式的報文 系統(tǒng)中的進程一旦持有令牌 便具有進入臨界區(qū)的權(quán)利 由于系統(tǒng)中僅有一個令牌 因此在任何時刻 只能有一個進程在臨界區(qū)內(nèi) 系統(tǒng)中的進程在邏輯上 而不是物理拓撲 組成一個環(huán) 環(huán)中每個進程都有惟一的前趨者和惟一的后繼者 令牌在環(huán)中循環(huán) 10 6分布式系統(tǒng)中的死鎖 10 6 1死鎖的檢測在分布式系統(tǒng)中所采用的死鎖檢測算法其基本原理與在集中式系統(tǒng)中采用的是相同的 即首先按照各進程之間對共享資源的占有和申請情況 構(gòu)成進程等待圖 然后檢測該等待圖 1 集中式死鎖檢測法在該算法中 每個節(jié)點維持自己的進程 資源圖 同時用一個中心協(xié)調(diào)者維護整個系統(tǒng)的資源圖 是所有單個圖的并集 2 分布式死鎖檢測法每臺機器上的進程可能等待本地資源 也可能等待分布在其他機器上的資源 10 6 2死鎖的預防死鎖的預防算法的基本思想是 進程因等待另一進程正在使用的資源而被阻塞時 先檢查它們的時間戳哪個大 即更年輕 如果等待進程的時間戳小于被等待進程的時間戳 即更老 就允許進程阻塞等待 按照這種辦法 沿著任何等待鏈 時間戳都是增加的 因此不會出現(xiàn)環(huán)路 10 7分布式文件系統(tǒng) 10 7 1文件服務(wù)接口文件可以有屬性 它是有關(guān)該文件的若干信息 但并不是文件本身的一個部分 典型的文件屬性有文件主 大小 創(chuàng)建日期和存取權(quán)限 通常文件服務(wù)提供了對某些屬性進行讀 寫的原語 通常情況下 文件被創(chuàng)建后可以進行修改 但在某些分布式系統(tǒng)中對文件的操作只有CREATE和READ 這樣 一旦文件被創(chuàng)建 它就是不變的 其好處是很容易支持文件緩存和復制 分布式系統(tǒng)中文件保護所用技術(shù)基本上與單CPU系統(tǒng)相同 存取權(quán)限和存取控制表 存取權(quán)限針對用戶 指明其擁有的存取類型 存取控制表針對文件 它指明每個文件允許哪類用戶進行何種訪問 文件服務(wù)可分成兩種類型 上載 下載模式和遠程存取模式 前者如圖10 5 a 所示 文件服務(wù)僅提供兩個主要操作 讀文件和寫文件 讀文件把整個文件從一個文件服務(wù)器傳送到所需的客戶 寫文件把整個文件從客戶傳到服務(wù)器 整個文件可在兩個方向上移動 根據(jù)需要 文件可存于內(nèi)存或本地磁盤上 上載 下載模式的優(yōu)點是概念清晰 圖10 5文件服務(wù)的兩種類型 a 上載 下載模式 b 遠程存取模式 10 7 2目錄服務(wù)器接口目錄服務(wù)提供的操作有創(chuàng)建和刪除目錄 命名和重新命名文件 把文件從一個目錄移到另一個目錄 目錄服務(wù)的特性并不依賴于單個文件是整體傳送還是遠程存取 文件名由字母 數(shù)字和某些專用字符組成 有的系統(tǒng)把文件名分為兩部分 文件名和擴展名 后者標識文件類型 所有分布式系統(tǒng)允許目錄包含子目錄 從而用戶可把相關(guān)文件組織在一起 子目錄還可包含子目錄 構(gòu)成樹型目錄 往往稱為層次文件系統(tǒng) 如圖10 6 a 所示 在某些系統(tǒng)中可以建立任意目錄間的鏈接 從而不僅構(gòu)成目錄樹 而且構(gòu)成任意目錄圖 其功能更強 如圖10 6 b 所示 樹和圖之間的差別在分布式系統(tǒng)中格外重要 圖10 6分布式系統(tǒng)目錄結(jié)構(gòu) a 在一個機器上包含的目錄樹 b 在兩個機器上的目錄圖 1 命名透明性這種路徑命名形式的基本問題是非完全透明性 透明性有兩種形式 位置透明性和位置無關(guān)性 前者只表明路徑名 并未給出文件 或其他對象 位于何處的暗示 如路 徑 server1 dir1 dir2 ff告訴ff位于服務(wù)器1上 但并未告訴服務(wù)器1位于何處 該服務(wù)器可自由移到網(wǎng)中的任何地方 不必修改路徑名 這樣該系統(tǒng)

溫馨提示

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

評論

0/150

提交評論