分布式系統(tǒng)概述
在一個分布式系統(tǒng)中,一組獨立的計算機展現(xiàn)給用戶的是一個統(tǒng)一的整體,就好像是一個系統(tǒng)似的。系統(tǒng)擁有多種通用的物理和邏輯資源,可以動態(tài)的分配任務,分散的物理和邏輯資源通過計算機網絡實現(xiàn)信息交換。系統(tǒng)中存在一個以全局的方式管理計算機資源的分布式操作系統(tǒng)。通常,對用戶來說,分布式系統(tǒng)只有一個模型或范型。在操作系統(tǒng)之上有一層軟件中間件(middleware)負責實現(xiàn)這個模型。一個著名的分布式系統(tǒng)的例子是萬維網(World Wide Web),在萬維網中,所有的一切看起來就好像是一個文檔(Web頁面)一樣。 [1] 在計算機網絡中,這種統(tǒng)一性、模型以及其中的軟件都不存在。用戶看到的是實際的機器,計算機網絡并沒有使這些機器看起來是統(tǒng)一的。如果這些機器有不同的硬件或者不同的操作系統(tǒng),那么,這些差異對于用戶來說都是完全可見的。如果一個用戶希望在一臺遠程機器上運行一個程序,那么,他必須登陸到遠程機器上,然后在那臺機器上運行該程序。分布式系統(tǒng)和計算機網絡系統(tǒng)的共同點是:多數(shù)分布式系統(tǒng)是建立在計算機網絡之上的,所以分布式系統(tǒng)與計算機網絡在物理結構上是基本相同的。
他們的區(qū)別在于:分布式操作系統(tǒng)的設計思想和網絡操作系統(tǒng)是不同的,這決定了他們在結構、工作方式和功能上也不同。網絡操作系統(tǒng)要求網絡用戶在使用網絡資源時首先必須了解網絡資源,網絡用戶必須知道網絡中各個計算機的功能與配置、軟件資源、網絡文件結構等情況,在網絡中如果用戶要讀一個共享文件時,用戶必須知道這個文件放在哪一臺計算機的哪一個目錄下;分布式操作系統(tǒng)是以全局方式管理系統(tǒng)資源的,它可以為用戶任意調度網絡資源,并且調度過程是“透明”的。當用戶提交一個作業(yè)時,分布式操作系統(tǒng)能夠根據(jù)需要在系統(tǒng)中選擇最合適的處理器,將用戶的作業(yè)提交到該處理程序,在處理器完成作業(yè)后,將結果傳給用戶。在這個過程中,用戶并不會意識到有多個處理器的存在,這個系統(tǒng)就像是一個處理器一樣。 [1] 內聚性是指每一個數(shù)據(jù)庫分布節(jié)點高度自治,有本地的數(shù)據(jù)庫管理系統(tǒng)。透明性是指每一個數(shù)據(jù)庫分布節(jié)點對用戶的應用來說都是透明的,看不出是本地還是遠程。在分布式數(shù)據(jù)庫系統(tǒng)中,用戶感覺不到數(shù)據(jù)是分布的,即用戶不須知道關系是否分割、有無副本、數(shù)據(jù)存于哪個站點以及事務在哪個站點上執(zhí)行等。
分布式計算機系統(tǒng)的體系結構可用處理機之間的耦合度為主要標志來加以描述。耦合度是系統(tǒng)模塊之間互聯(lián)的緊密程度,它是數(shù)據(jù)傳輸率、響應時間、并行處理能力等性能指標的綜合反映,主要取決于所選用體系結構的互聯(lián)拓撲結構和通信鏈路的類型。按地理環(huán)境衡量耦合度,分布式系統(tǒng)可以分為機體內系統(tǒng)、建筑物內系統(tǒng)、建筑物間系統(tǒng)和不同地理范圍的區(qū)域系統(tǒng)等,它們的耦合度依次由高到低按應用領域的性質決定耦合度,可以分成三類: [2] 第一種是面向計算任務的分布并行計算機系統(tǒng)和分布式多用戶計算機系統(tǒng),它們要求盡可能高的耦合度,以便發(fā)展成為能分擔大型計算機和分時計算機系統(tǒng)所完成的工作。 [2] 第二種是面向管理信息的分布式數(shù)據(jù)處理系統(tǒng)。耦合度可以適當降低。 [2] 第三種是面向過程控制的分布式計算機控制系統(tǒng)。耦合度要求適中,當然對于某些實時應用,其耦合度的要求可能很高。
分布式系統(tǒng)是多個處理機通過通信線路互聯(lián)而構成的松散耦合的系統(tǒng)。從系統(tǒng)中某臺處理機來看,其余的處理機和相應的資源都是遠程的,只有它自己的資源才是本地的。至今,對分布式系統(tǒng)的定義尚未形成統(tǒng)一的見解。一般認為,分布式系統(tǒng)應具有以下四個特征: [3] (1)分布性。分布式系統(tǒng)由多臺計算機組成,它們在地域上是分散的,可以散布在一個單位、一個城市、一個國家,甚至全球范圍內。整個系統(tǒng)的功能是分散在各個節(jié)點上實現(xiàn)的,因而分布式系統(tǒng)具有數(shù)據(jù)處理的分布性。 [3] (2)自治性。分布式系統(tǒng)中的各個節(jié)點都包含自己的處理機和內存,各自具有獨立的處理數(shù)據(jù)的功能。通常,彼此在地位上是平等的,無主次之分,既能自治地進行工作,又能利用共享的通信線路來傳送信息,協(xié)調任務處理。 [3] (3)并行性。一個大的任務可以劃分為若干個子任務,分別在不同的主機上執(zhí)行。 [3] (4)全局性。分布式系統(tǒng)中必須存在一個單一的、全局的進程通信機制,使得任何一個進程都能與其他進程通信,并且不區(qū)分本地通信與遠程通信。同時,還應當有全局的保護機制。系統(tǒng)中所有機器上有統(tǒng)一的系統(tǒng)調用集合,它們必須適應分布式的環(huán)境。在所有CPU上運行同樣的內核,使協(xié)調工作更加容易。