《高級操作系統(tǒng)》配套教學(xué)課件_第1頁
《高級操作系統(tǒng)》配套教學(xué)課件_第2頁
《高級操作系統(tǒng)》配套教學(xué)課件_第3頁
《高級操作系統(tǒng)》配套教學(xué)課件_第4頁
《高級操作系統(tǒng)》配套教學(xué)課件_第5頁
已閱讀5頁,還剩483頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

高級操作系統(tǒng)1課程主要內(nèi)容介紹2分布式計算機系統(tǒng)分布式通信機制分布式協(xié)同處理分布式資源管理分布式進程與處理機任務(wù)分配與負(fù)載平衡分布式文件系統(tǒng)命名服務(wù)分布式事務(wù)處理故障恢復(fù)與容錯分布式共享內(nèi)存3

教學(xué)要求

要求學(xué)生掌握上述主要內(nèi)容中的基本概念,了解相關(guān)的一些典型算法,并就分布式操作系統(tǒng)中的設(shè)計模型、實現(xiàn)方法及有待進一步解決和探索的問題加以關(guān)注,寫出相關(guān)論文。1.1分布式系統(tǒng)概述1.2分布式計算機系統(tǒng)的特點1.3分布式計算機系統(tǒng)的體系結(jié)構(gòu)1.4分布式系統(tǒng)的拓?fù)浣Y(jié)構(gòu)1.5分布式資源管理1.6分布式操作系統(tǒng)4第一章分布式計算機系統(tǒng)1.1分布式系統(tǒng)概述

計算機技術(shù)發(fā)展迅猛。從1945年現(xiàn)代計算機時代開始直到1985年,計算機一直是龐大昂貴的設(shè)備。即便是小型計算機也要花數(shù)萬美元。這使得大多數(shù)機構(gòu)通常只有為數(shù)不多的幾臺機器,并且由于它們之間缺少互連的手段,這些機器都是各自獨立地工作。

51.1分布式系統(tǒng)概述

然而,從80年代開始,兩項技術(shù)進步改變了這種局面。第一項是功能日益強大的微型計算機的發(fā)展。第二項進步是高速局域網(wǎng)的出現(xiàn)。局域間能將數(shù)十臺機器、甚至數(shù)百臺機器連接在一起,數(shù)據(jù)在機器之間傳輸只需要幾us的時間。大量的數(shù)據(jù)能以超過10Mbps的速率傳輸。61.1分布式系統(tǒng)概述

分布式計算機系統(tǒng)是由多個分散的計算機經(jīng)互連網(wǎng)絡(luò)連接而成的計算機系統(tǒng)。其中各個資源單位(物理的或邏輯的)既相互協(xié)同又高度自治,能在全系統(tǒng)范圍內(nèi)實現(xiàn)資源管理,動態(tài)地進行任務(wù)分配或功能分配,并且能夠并行地運行分布式程序。71.1分布式系統(tǒng)概述8分布式計算機系統(tǒng)示意圖1.1分布式系統(tǒng)概述

分布式操作系統(tǒng)(DistributedOperatingSystem,縮寫為DOS)是為分布式計算機系統(tǒng)配置的操作系統(tǒng)。它在這種多機環(huán)境下,負(fù)責(zé)控制和管理以協(xié)同方式工作的多種系統(tǒng)(的物理和邏輯)資源,進程的同步和執(zhí)行,處理機間的通信、調(diào)度等控制事務(wù),自動實行全系統(tǒng)范圍內(nèi)的任務(wù)分配和負(fù)載平衡并具有高度并行性的一種高級軟件系統(tǒng)。91.2分布式系統(tǒng)的優(yōu)缺點(1)分布式系統(tǒng)相對于集中式系統(tǒng)的優(yōu)點優(yōu)點說明經(jīng)濟性微處理器能提供比大型機更好的性能價格比速度分布系統(tǒng)能提供比大型機更強的計算能力固有的分布性在一些應(yīng)用包含物理上分散的機器可靠性當(dāng)某臺機器崩潰時、整個系統(tǒng)仍能正常工作可擴展性計算能力逐步增加10表1分布式系統(tǒng)相對于集中式系統(tǒng)的優(yōu)點1.2分布式系統(tǒng)的優(yōu)缺點(2)分布式系統(tǒng)相對于獨立PC機的優(yōu)點優(yōu)點說明數(shù)據(jù)共享允許許多用戶共享同一個數(shù)據(jù)庫外設(shè)共享允許用戶共享昂貴的外設(shè),如彩色打印機通信使得人與人間的通信更加方便,例如通過電子郵件靈活性將工作負(fù)載更有效地分派到合適的機器上11表2分布式系統(tǒng)相對于PC機的優(yōu)點的優(yōu)點1.2分布式系統(tǒng)的優(yōu)缺點(3)分布式系統(tǒng)的缺點缺點說明軟件目前很少有分布式系統(tǒng)的軟件網(wǎng)絡(luò)網(wǎng)絡(luò)可能飽和,或讓系統(tǒng)遇到其他麻煩安全方便的數(shù)據(jù)共享意味著機密數(shù)據(jù)容易被竊取12表3分布式系統(tǒng)的缺點1.3分布式計算機系統(tǒng)的特點

分布式計算機系統(tǒng)具有如下明顯的主要特點:⑴結(jié)構(gòu)模塊性:分布式計算機系統(tǒng)的資源單位形成相對獨立的模塊,它們經(jīng)互連網(wǎng)絡(luò)連接成一個單一系統(tǒng)。模塊在一定范圍內(nèi)的增減或替換不影響系統(tǒng)的整體性。⑵資源分散性(distributed):系統(tǒng)資源分布于物理上分散的若干場點中。在對用戶透明基礎(chǔ)上實現(xiàn)資源共享,使單個用戶的可用資源成倍地增長。

131.3分布式計算機系統(tǒng)的特點14⑶協(xié)同自治性(autonomous):系統(tǒng)資源的操作是高度自治的,既不存在全系統(tǒng)的主/從控制關(guān)系,又能利用處理局部化的原則以減少各場點間的通信量。⑷工作并行性(parallesm):分布式計算機系統(tǒng)中分散的資源單位可以相互協(xié)作,一起解決同一個問題。在分布式操作系統(tǒng)控制下,實現(xiàn)按任務(wù)資源重復(fù)或按功能時間重疊等不同形式的并行性。15

⑸系統(tǒng)透明性(transparency):系統(tǒng)對于用戶是透明的。用戶可以像單機系統(tǒng)一樣使用分布式計算機系統(tǒng)。⑹整體強健性(robustness):系統(tǒng)中的資源的冗余和自治控制方式使系統(tǒng)具有動態(tài)重構(gòu)能力,即使系統(tǒng)受到局部性破壞也能繼續(xù)工作。所以具有可靠性和容錯性。1.3分布式計算機系統(tǒng)的特點1.3分布式計算機系統(tǒng)的特點⑺靈活的可擴充性:以模塊作為系統(tǒng)擴充或資源更新的增加單位,不必像集中式系統(tǒng)那樣替換整個系統(tǒng)或更改系統(tǒng)中的很大部分。系統(tǒng)的配置容易改變,以適應(yīng)不同應(yīng)用對象的各種需求。⑻良好的實時性:計算機資源更加靠近用戶,特別是使分散的用戶能得到計算機的快速響應(yīng)和直接服務(wù),從而把大型機的強功能、高速度與微型機的使用方便性、靈活性結(jié)合了起來。161.3分布式計算機系統(tǒng)的特點分布式計算機系統(tǒng)是近年來計算機科學(xué)技術(shù)領(lǐng)域中倍受青睞、發(fā)展迅速的一個方向。一些專家亦斷言:將來任何一個有效的計算機系統(tǒng),都將是一個分布式系統(tǒng)。17181.4分布式計算機系統(tǒng)的體系結(jié)構(gòu)

分布式計算機系統(tǒng)的體系結(jié)構(gòu)可用處理機之間的耦合度為主要標(biāo)志來加以描述。耦合度是系統(tǒng)模塊之間互連的緊密程度,它是數(shù)據(jù)傳輸率、響應(yīng)時間、并行處理能力等性能指標(biāo)的綜合反映,主要取決于所選用的互連拓?fù)浣Y(jié)構(gòu)和通信鏈路的類型。1.4分布式計算機系統(tǒng)的體系結(jié)構(gòu)運程計算機網(wǎng)絡(luò)采用串行數(shù)據(jù)傳輸,且受復(fù)雜的通信協(xié)議制約,故其耦合度最低,屬于松散耦合系統(tǒng)(looselycouple)。具有共享內(nèi)存的多處理機系統(tǒng)有著很高的并行處理速度,固其耦合度最高,屬于緊密耦合系統(tǒng)(looselycouple)。191.4分布式計算機系統(tǒng)的體系結(jié)構(gòu)按地理環(huán)境衡量耦合度,分布式計算機系統(tǒng)可以分為機體內(nèi)系統(tǒng)、建筑物內(nèi)系統(tǒng)、建筑物間系統(tǒng)和不同地理范圍的區(qū)域系統(tǒng)等,它們的耦合度依次由高到低。2021按應(yīng)用領(lǐng)域的性質(zhì)決定耦合度,可以分成三類。一種是面向計算任務(wù)的分布并行計算機系統(tǒng)和分布式多用戶計算機系統(tǒng),它們要求盡可能高的耦合度,以便發(fā)展成為能分擔(dān)大型計算機和分時計算機系統(tǒng)所完成的工作。第二種是面向管理信息的分布式數(shù)據(jù)處理系統(tǒng),耦合度可以適當(dāng)降低。第三種是面向過程控制的分布式計算機控制系統(tǒng)。耦合度要求適中,當(dāng)然對于某些實時應(yīng)用,其耦合度的要求可能很高。分布式計算機系統(tǒng)可看作是并行處理系統(tǒng)的一種常見形式和特例。1.4分布式計算機系統(tǒng)的體系結(jié)構(gòu)221.5分布式系統(tǒng)的拓?fù)浣Y(jié)構(gòu)

分布式系統(tǒng)中的場點可用不同的方式將它們從物理上連結(jié)起來,每種方式都有優(yōu)缺點。下面簡單討論幾種常用的連結(jié)方式并按以下標(biāo)準(zhǔn)來比較它們的性能:⑴基本開銷:連結(jié)系統(tǒng)中的各個場點要多少花費?⑵通信開銷:從場點A發(fā)送消息到場點B需要多少時間?⑶可靠性:若系統(tǒng)中的場點或通信鏈路故障,余下的場點是否仍能彼此通信?一個系統(tǒng)稱之為分割的(partition),如果它已被分劃成兩個或多個子系統(tǒng),且不同子系統(tǒng)中的場點已不再能彼此通信。231.全互連結(jié)構(gòu)

在一個全互連結(jié)構(gòu)中,每個場點都直接與系統(tǒng)中所有其它的場點相連(圖1.2),這種構(gòu)形的基本開銷很高,場點間的消息轉(zhuǎn)移非常快,此外,這種結(jié)構(gòu)是很可靠的,因為只有在相當(dāng)多的通信鍵路故障的情況下,才可能分割該系統(tǒng)。圖1.2全互連拓?fù)浣Y(jié)構(gòu)242.部分互連結(jié)構(gòu)

在一個部分互連結(jié)構(gòu)中,有些場點間存在直接通信鏈路,但有些則沒有,如圖1.3所示。因此這種構(gòu)形的基本開銷比全互連結(jié)構(gòu)要低,但場點間的消息轉(zhuǎn)移可能經(jīng)由若干中間的場點,以致延緩了通信速度。例如,在圖1.3中,從場點⑤④.發(fā)送一消息到場點③必須經(jīng)由場點①和②。圖1.3部分互連拓?fù)浣Y(jié)構(gòu)25

此外,部分互連系統(tǒng)也不如全互連系統(tǒng)可靠,因為其中的一個通信鍵路故障就可能分割該系統(tǒng)。例如,在圖1.3中,若從場點①到場點②的通信鏈路故障,則該系統(tǒng)便分割成兩個子系統(tǒng),一個包括①,④,⑤;一個包括②和③,而且這兩個子系統(tǒng)中的場點彼此不再能通信。為了減少這種情況發(fā)生,通常讓每個場點要少與另外兩個場點連給。例如,如果我們在圖1.3中增加一條從場點③到場點⑤的通信鍵路,那么任何單條通信鏈路故障都不可能導(dǎo)致對該系統(tǒng)的分割。263.層次結(jié)構(gòu)

層次結(jié)構(gòu)中的各場點組織成樹形結(jié)構(gòu)。如圖1.4所示,其中,這種構(gòu)形的基本開銷一般小于部分互連結(jié)構(gòu)。在這種環(huán)境中,父子之間可直接通信,孩子之間只能經(jīng)由它們的共同父親進行通信,若父場點故障,那么,它的孩子們彼此就不能相互通信,也不能與其它進程通信。一般而言,除葉結(jié)點外,任何中間結(jié)點故障都可能將這種結(jié)構(gòu)分割成若干不相交的子樹。圖1.4層次結(jié)構(gòu)27

4.星形結(jié)構(gòu)

在星形結(jié)構(gòu)中,系統(tǒng)中的場點之一與系統(tǒng)中所有其余場點相連,其它的場點之間彼此不直接相連,見圖1.5。這種構(gòu)形的基本開銷是場點個數(shù)的線性函數(shù),其通信速度看起來也不會很慢,但這種通信速度卻是難以預(yù)測的,因為中央場點可能變成瓶頸,雖然轉(zhuǎn)移消息所需轉(zhuǎn)接的次數(shù)不多,但轉(zhuǎn)移消息所花的時間可能不少。在一些星形結(jié)構(gòu)系統(tǒng)中,中央場點完全擔(dān)負(fù)著消息轉(zhuǎn)接的任務(wù)。如果中央場點故障,那么該系統(tǒng)就完全地被分割了。圖1.5星形結(jié)構(gòu)285.環(huán)形結(jié)構(gòu)

在環(huán)形結(jié)構(gòu)中,每個場點物理上恰好與另外兩個場點相連,見圖1.6。這樣的環(huán)形結(jié)構(gòu)可以是單向的,也可以是雙向的。這種結(jié)構(gòu)的基本開銷不會很高,但通信代價可能較高,因為從一個場點向另一場點轉(zhuǎn)移消息需沿環(huán)按預(yù)定方向轉(zhuǎn)移直至到達(dá)目的地。在單向環(huán)結(jié)構(gòu)中,這最多可能需要n-1次轉(zhuǎn)接,在雙向環(huán)結(jié)構(gòu)中,則最多可能需要n/2次轉(zhuǎn)接,其中n是網(wǎng)絡(luò)中場點的個數(shù)。29圖1.6環(huán)形結(jié)構(gòu)

在雙向環(huán)形結(jié)構(gòu)中,其中兩條通信鏈路故障就可能導(dǎo)致分割整個系統(tǒng)。在單向環(huán)形結(jié)構(gòu)中,單個場點或單條通信鏈路故障,就可能分割整個系統(tǒng)。一種補救的辦法是通過提供雙通信鏈路來擴充這種結(jié)構(gòu),但這顯然會增加基本開銷,如圖1.6(b)所示。306.多存取總線結(jié)構(gòu)

在多存取總線結(jié)構(gòu)(簡稱總線結(jié)構(gòu))中,它可以組織成直線狀,見圖1.7(a),也可以組織成環(huán)狀,如圖1.7(b)所示,其中的場點可以經(jīng)由這條總線彼此直接進行通信。這類結(jié)構(gòu)的基本開銷是場點個數(shù)的線性函數(shù),通信代價也很低,除非這條總線變成了瓶頸。這類結(jié)構(gòu)類似于帶有一個中央場點的星形結(jié)構(gòu),其中某個場點故障不會影響其它場點間的通信,但是,若這條總線故障,那么該結(jié)構(gòu)就完全地被分割了。31圖1.7多存取總線結(jié)構(gòu)

327.環(huán)-星形結(jié)構(gòu)

環(huán)-星形結(jié)構(gòu)由環(huán)、星型結(jié)構(gòu)疊加而成,其優(yōu)缺點介于星形和環(huán)形結(jié)構(gòu)之間,見圖1.8。圖1.8環(huán)-星形結(jié)構(gòu)338.有規(guī)則結(jié)構(gòu)

有規(guī)則結(jié)構(gòu)(見圖1.9)中的每個場點都與它相鄰的上、下、左、右場點相連,因而具有高性能、高速度、和高可靠性。不過,這種結(jié)構(gòu)比較復(fù)雜,且一般要求各場點是完全一致的,構(gòu)造這種系統(tǒng)的費用也較高。圖1.9有規(guī)則結(jié)構(gòu)349.不規(guī)則結(jié)構(gòu)

不規(guī)則結(jié)構(gòu)中的各場點間的連接關(guān)系無一定規(guī)則可依,其優(yōu)點是:可隨意增加不同類型的結(jié)點,各結(jié)點互連起來也較方便,還可提供任意冗余和重組能力;其缺點是運行時需要較復(fù)雜的路徑選擇算法(見圖1.10)。圖1.10不規(guī)則結(jié)構(gòu)3510.立方體互連結(jié)構(gòu)

立方體互連結(jié)構(gòu)又稱n維立方體分布式網(wǎng)絡(luò)結(jié)構(gòu)。這種結(jié)構(gòu)把2n=N個計算機互連起來,各計算機分別位于該立方體的角頂。立方體的每條邊把兩個場點連接起來,而每個場點則有n個全雙向通路把它和n個其它計算機相連。例如,n=3,n=4時立方體互連結(jié)構(gòu)如圖1.11所示,其中,n為立方體的維數(shù)。此外,還有交叉開關(guān)網(wǎng)、樹形網(wǎng)、網(wǎng)狀網(wǎng)、立方體網(wǎng)和超立方體等。36圖1.11立方體互連結(jié)構(gòu)1.6分布式系統(tǒng)的資源管理資源管理有四種方式:(1)全集中管理方式(2)分擔(dān)管理方式(3)輪流管理方式(4)全分散管理方式采取哪種資源管理方式,必須根據(jù)總體要求和資源性質(zhì)決定。37381.7分布式操作系統(tǒng)1.多機操作系統(tǒng)的基本結(jié)構(gòu)

多機操作系統(tǒng)有以下三種基本結(jié)構(gòu):主從式獨立式分布式⑴主從式在多機系統(tǒng)上最早設(shè)計的多機操作系統(tǒng)都采用主從式,這是比較容易實現(xiàn)的一種形式。在具體設(shè)計和實現(xiàn)時,可在具備多道程序設(shè)計的操作系統(tǒng)基礎(chǔ)上加以擴充而成。但是,它在管理和利用全系統(tǒng)資源方面的效率較低。其主要特點為:39

①管理程序始終由同一個處理機(稱為主機master)執(zhí)行,從而減化了控制信息的管理問題。若從機需要使用管理程序提供的服務(wù),則應(yīng)先向主機提出申請并等待現(xiàn)行程序中斷后,由管理程序根據(jù)一定策略來決定是否滿足這一申請并提供相應(yīng)的控制。管理程序及其所用子程序不得重入,因為使用它們的只有一臺處理機。②若主機不能以足夠快的速度執(zhí)行調(diào)度程序和收、發(fā)信息,以使從機保持充分地忙碌狀態(tài),那么從機的空閑時間就會增多,從而影響了整個系統(tǒng)的效率。③這種操作系統(tǒng)主要用于工作負(fù)載能精確給定的一些應(yīng)用場合,或由于從機能力小于主機能力的非對稱系統(tǒng)。④當(dāng)主機故障時,影響整個系統(tǒng),此時需外來干預(yù);整個系統(tǒng)的靈活性也較差。40

⑵獨立式獨立式操作系統(tǒng)的主要特點是:①系統(tǒng)中的每臺處理機的管理程序僅為自身的需要服務(wù)。某些程序所使用的子程序必須是再入式或復(fù)制品,以便為每臺處理機提供各自單獨的副本。②各臺處理機借助公用信息相互聯(lián)系。整個系統(tǒng)除了公用信息外,處理機的管理程序還可管理和使用各自的專用信息,因此,其信息的存取控制比主從式復(fù)雜。③系統(tǒng)中的每臺處理機各自都有一套顯示設(shè)備、I/O設(shè)備、文件、目錄等。41

⑶分布式①可由多臺處理機同時執(zhí)行管理、控制和服務(wù)程序,但“主處理機”是浮動的,可由一臺切換為另-臺。由于多臺處理機可同時執(zhí)行同一管理、控制和服務(wù)程序,因此,這些程序必須是再入式的。②在這種操作系統(tǒng)的管理和控制下,整個系統(tǒng)中的所有資源單元均可獲較好的負(fù)載平衡。③當(dāng)服務(wù)請求發(fā)生沖突時,可根據(jù)固定的優(yōu)先級或動態(tài)控制策略確定的優(yōu)先級予以解決。④當(dāng)系統(tǒng)中出現(xiàn)局部故障時,可通過自動重構(gòu),適度降級(gracefuldegradation)使用,或通過錯誤恢復(fù)手段使系統(tǒng)繼續(xù)運行,因而系統(tǒng)有較好的可用性和可靠性。422.設(shè)計分布式操作系統(tǒng)時應(yīng)考慮的問題

(1)靈活性

(2)可靠性

(3)性能

(4)可申縮性43

⑵分布式操作系統(tǒng)的結(jié)構(gòu)本身也應(yīng)是分布式的,系統(tǒng)中的各場點都可包含該操作系統(tǒng)或其中的一部分。一般把分布式操作系統(tǒng)劃分成若干不相交的并行模塊,并將它們分別指派給系統(tǒng)中的各場點,且每個場點都有一個局部操作系統(tǒng)的內(nèi)核模塊的副本。在系統(tǒng)運行時,各場點間的邏輯關(guān)系是完全平等的。分布式操作系統(tǒng)的模塊可以全部并行地在各場點上運行,而控制流和數(shù)據(jù)流的移動則在各場點上的局部操作系統(tǒng)的內(nèi)核模塊的合作協(xié)調(diào)下進行。⑶分布式操作系統(tǒng)可劃分為高層和局部,劃分的原則是:①屬于本機獨立運行的基本管理功能劃歸為本場點(本機)局部操作系統(tǒng)。②本場點(本機)與其它場點(它機)之間的通信、同步、消息轉(zhuǎn)移等管理功能也劃歸為本場點局部操作系統(tǒng)。44

③各場點間協(xié)調(diào)合作完成的功能,如任務(wù)分配、負(fù)載平衡、死鎖處理、錯誤處理與系統(tǒng)重構(gòu)等及其它公共事務(wù)劃歸為高層操作系統(tǒng)。這種劃分使各場點在運行中既有自治性,又能使系統(tǒng)中各場點協(xié)調(diào)一致地進行合作。④分布式操作系統(tǒng)的基本調(diào)度單位已不再是單機操作系統(tǒng)的進程,而是一種任務(wù)隊列,這種隊列是由位于多個場點上的并發(fā)進程所組成的任何隊列。同一任務(wù)隊列中的諸并發(fā)進程可分布在不同的場點上并行地執(zhí)行;同一場點上也可執(zhí)行多個不同的任務(wù)隊列中的并發(fā)進程。⑤在分布式系統(tǒng)中,需要提供一個支持資源共享的環(huán)境,把任務(wù)分解并分配到相應(yīng)的場點。若整個系統(tǒng)由不同類型的處理機組成,由于每個處理機的處理能力及硬設(shè)備配置等方面都可能各具特點。因此,操作系統(tǒng)應(yīng)該根據(jù)這些特點給處理機分配任務(wù)。45若系統(tǒng)由同類型的處理機組成,則在任何給定的時刻,任務(wù)都可分配給任何一個處理機,并可隨時進行任務(wù)的遷移,以平衡系統(tǒng)的負(fù)載。顯然,這要求分布式操作系統(tǒng)有任務(wù)或進程間通信及運程任務(wù)控制的能力。⑥分布式操作系統(tǒng)的構(gòu)成與分布式計算機系統(tǒng)的耦合方式緊密相關(guān)。在緊密耦合的分布式系統(tǒng)中,各處理機共享存儲器和時鐘,通信是經(jīng)由共享存儲器進行的,系統(tǒng)資源的耦合程度很高,因而需要專門的各種軟件和硬件機制來解決沖突和競爭等問題。在松散耦合的分布式系統(tǒng)中,各處理機無共享存儲器和時鐘,而都配有自己的本地資源,它們彼此之間經(jīng)由各種通信線路進行通信。因此,分布式操作系統(tǒng)必須解決的主要問題是處理機以及進程之間的通信和同步。所以,多機系統(tǒng)的耦合方式不同,相應(yīng)的分布式操作系統(tǒng)所要解決的主要問題也不同。⑦分布式操作系統(tǒng)必須具有探測任一處理機停機或發(fā)生故障的能力,并且要包含適當(dāng)?shù)奶幚泶胧?,如自動重?gòu),、降級使用和錯誤恢復(fù)等。463.構(gòu)造分布式操作系統(tǒng)的途徑

對于如何構(gòu)造分布式操作系統(tǒng),可歸納為下面幾個主要觀點:⑴從頭開始因為分布式操作系統(tǒng)不同于現(xiàn)有的單機、集中式和網(wǎng)絡(luò)操作系統(tǒng),因此,不少學(xué)者主張完全從頭開始構(gòu)造一個分布式操作系統(tǒng),即在裸機上重頭開始。這種途徑的最吸引人之處是給予設(shè)計者以完全的自由度。但不足之處在于其中所涉及到的所有系統(tǒng)軟件和應(yīng)用軟件幾乎全都要重新編寫。

⑵修改、擴充式對現(xiàn)有的操作系統(tǒng)進行修改和擴充,使之具有分布處理和通信的功能。這種途徑通過盡量保持與現(xiàn)有操作系統(tǒng)的相容性而使重新編寫新軟件的工作量減到最少。而且存在一個與開發(fā)期間的新版本進行比較的原有工作版本,這就給我們提供了測試和比較新版本性能的基礎(chǔ)。這種途徑的不利之處是開發(fā)期間的某些決策由于要考慮到如何與原有操作系統(tǒng)相容而不得不采取折衷方案。4748

⑶層次式在現(xiàn)有操作系統(tǒng)和用戶之間增加一個層次以提供分布處理和通信功能。這類系統(tǒng)有點類似網(wǎng)絡(luò)操作系統(tǒng),它具有前述兩種途徑的優(yōu)點且不必改動現(xiàn)有的操作家統(tǒng),其不足之處在于所有對底層操作系統(tǒng)的引用由于必須經(jīng)由中間層而使系統(tǒng)性能受到了衰減,此外,還有不少局限性。利用這三種途徑構(gòu)造分布式操作系統(tǒng)的示意圖,見圖1.15。49圖1.15構(gòu)造分布式操作系統(tǒng)的三種途徑504.分布式操作系統(tǒng)的結(jié)構(gòu)模型

分布式操作系統(tǒng)的結(jié)構(gòu)是指其整體邏輯結(jié)構(gòu),主要有以下幾種:⑴分布式操作系統(tǒng)內(nèi)核:各場點上都配有一個分布式操作系統(tǒng)內(nèi)核,它僅提供存儲管理、輔存管理、進程管理、進程間的同步與通信等核心管理功能及相應(yīng)的操作原語。例如,Accent和V核就屬于這種結(jié)構(gòu)模型。⑵集成式:集成式(integratedmodel)意指每個場點上運行著一個比較完整或集成的高度可組合的標(biāo)準(zhǔn)化的操作系統(tǒng)模塊集,該集包含相應(yīng)場點上所需要的幾乎所有的服務(wù)功能,決大多數(shù)工作都是在本場點上完成的。每個場點也可訪問遠(yuǎn)程資源,即當(dāng)必要時才發(fā)生場點間的交叉訪問。LOCUS等就是這種模型的例子。51

⑶客戶/服務(wù)器(client/server)模型:在這種模型中,系統(tǒng)中的場點分為客戶和服務(wù)器兩大類。分布式操作系統(tǒng)的所有服務(wù)程序及相應(yīng)的共享信息都分散地駐留在一些特定的場點上,并加以實現(xiàn)。而客戶場點僅包含足以訪問相應(yīng)服務(wù)器場點上服務(wù)程序及相應(yīng)的共享信息的接口軟件,參見。這種模型常常分為兩種形式:服務(wù)池模型和資源池模型。對于前者,系統(tǒng)中的所有服務(wù)功能都是由服務(wù)池按服務(wù)類提供的,如文件服務(wù)類、命名服務(wù)類、終端服務(wù)類和通信服務(wù)類等。對于后者,系統(tǒng)管理著一個可重用的資源池,如處理機、外設(shè)、文件、服務(wù)程序和數(shù)據(jù)等,其中的資源可動態(tài)地分配給申請者,用完后再收回到資源池中供再次使用。52

⑷中央式:系統(tǒng)在硬件結(jié)構(gòu)上有一個中央場點和若干衛(wèi)星場點。中央場點運行一個中央控制程序,由它處理所有對分布式操作系統(tǒng)的調(diào)用。每個衛(wèi)星場點上運行的進程彼此不能直接通信,它們只能借助中央控制程序進行交往。⑸分散式:分散式模型意指將分布式操作系統(tǒng)的功能分散到各個場點,以構(gòu)成單個場點上的局部操作系統(tǒng),使得每個場點上的局部操作系統(tǒng)僅擔(dān)負(fù)整個系統(tǒng)的部分管理功能。由各場點上的局部操作系統(tǒng)的核模塊和核外部分采用協(xié)商、合作的方式來實現(xiàn)對全系統(tǒng)的管理That’sall532.1概述2.2消息傳遞2.3遠(yuǎn)程過程調(diào)用54第二章分布式通信機制552.1概述

本章討論分布式系統(tǒng)中的通信問題。在考慮這一問題時,應(yīng)注意以下幾個方面:

發(fā)送策略:如何通過通信網(wǎng)發(fā)送消息?

連接策略:如何去連接彼此希望通信的進程?

爭奪處理:由于通信網(wǎng)是共享資源,應(yīng)注意解決在利用它的過程中那些有沖突的要求和沖突現(xiàn)象。

保密:如何保住消息內(nèi)容的秘密?

通信機制:研究分布式操作系統(tǒng)中的基本通信機制。562.1.1發(fā)送策略

當(dāng)場點A上的一個進程希望同場點B上的另一個進程進行通信時,如何發(fā)送消息?常用的幾種發(fā)送策略是:

⑴固定發(fā)送:從A到B的信道事先已規(guī)定好并且不得更改,除非硬件的故障影響到它的通信能力。通常選擇物理上長度最短的信道,以減少通信開銷。⑵虛擬線路:從A到B的信道在一段時期內(nèi)是固定的,在不同時期,從A向B發(fā)送的消息可能經(jīng)由不同的信道發(fā)送。⑶動態(tài)發(fā)送:用于從A到B發(fā)送消息的信道僅當(dāng)該消息發(fā)送時才確定。由于這種選擇是自動進行的,單一的消息可能分給不同的信道。57上述幾種方案各有利弊。固定發(fā)送不適用于通信負(fù)載的改變。即如果已在場點A和B之間確立了一條信道,那么消息只能經(jīng)由這條信道傳送,即使這條信道已經(jīng)超載,而其它信道還處于尚未滿載的狀態(tài)。可以利用虛擬線路策略進行改善或通過動態(tài)發(fā)送策略來加以完全地解決。固定發(fā)送和虛擬線路策略可以確保按消息的發(fā)送次序從A向B發(fā)送消息。采用動態(tài)發(fā)送策略,消息的到達(dá)次序不一定和消息的發(fā)送次序相一致。這可以通過給每條消息賦以一個順序號來解決。582.1.2連接策略

有許多不同的方法來連接一對彼此希望通信的場點(或進程)。最常用的方法有線路轉(zhuǎn)換、消息轉(zhuǎn)換和消息包轉(zhuǎn)換。

⑴線路轉(zhuǎn)換(circulateswitch):如果兩個進程希望通信,那么就在它們之間設(shè)立一條永久性的物理通信鏈路。這條通信鏈路供其消息轉(zhuǎn)移期間使用,在這段期間其它進程不能使用這條鏈路。這種方案與電話系統(tǒng)類似,一旦一條通話線路已對通話雙方開通(例如甲方給乙方打電話),其它人就不能使用這條信道,除非甲乙兩方已明顯地結(jié)束其通話(例如一方已掛起話筒)。

⑵消息轉(zhuǎn)換(messageswitch):如果兩個進程希望通信,那么就確定一個臨時的通信鏈路供其消息轉(zhuǎn)移期間使用。物理通信鏈路則根據(jù)需要在用戶間動態(tài)進行分配,而且只允許使用較短的一段時間。每條消息由一個數(shù)據(jù)再加上某些系統(tǒng)信息(如發(fā)送處,接收處和錯誤校正碼等)組成,這些系統(tǒng)信息將輔助通信網(wǎng)絡(luò)正確地將消息轉(zhuǎn)移到目的地。這種方案與郵局系統(tǒng)類似,每封信可看作是包含發(fā)送處和接收處的一條消息,而且來自不同用戶的信件(消息)可在相同通信線路上轉(zhuǎn)移。5960

⑶消息包轉(zhuǎn)換(packetswitch):消息一般是可變長度的。為了簡化系統(tǒng)的設(shè)計。常常把消息設(shè)計成定長的形式,并把這種定長的形式稱為消息包(packet)。一條邏輯消息可能不得不劃分成若干消息包,每個消息包都可以經(jīng)由網(wǎng)絡(luò)中不同的路徑單獨地發(fā)送到其目的地,當(dāng)這些消息包都到達(dá)其目的地后,還得拼裝起來組成一條完整的消息。線路轉(zhuǎn)換需要安裝時間但傳送每條消息的開銷較少;消息轉(zhuǎn)換和消息包轉(zhuǎn)換需要較少的安裝時間,但轉(zhuǎn)移每條消息的開銷較大。此外,在采用消息包轉(zhuǎn)換方法時,每條消息可能得先“化整為零”,然后再“集零為整”。612.1.3爭奪處理

由于一條通信鏈路往往連結(jié)多個場點,而這些場點有可能希望同時在這條通信鏈路上轉(zhuǎn)移信息,從而發(fā)生爭奪現(xiàn)象。這種情況在環(huán)結(jié)構(gòu)或多存取總線結(jié)構(gòu)中表現(xiàn)得尤為突出。解決爭奪現(xiàn)象的技術(shù),常用的有沖突檢測,令牌轉(zhuǎn)移和消息槽。

⑴沖突檢測:一個場點要在某條通信線路上轉(zhuǎn)移消息之前,它必須進行監(jiān)測以確定當(dāng)前在該通信線路上是否正在轉(zhuǎn)移另外的消息。若該通信線路空閑,則這個場點可以開始發(fā)送,否則它必須等待(同時繼續(xù)監(jiān)測),直到這條線路空閑。采用這種途徑的主要問題是,當(dāng)系統(tǒng)非常忙時,可能發(fā)生許多沖突現(xiàn)象,因此整個系統(tǒng)的性能由于沖突檢測方面的工作而受到衰減。這種方法已成功地用在以太網(wǎng)系統(tǒng)。6263

⑵令牌轉(zhuǎn)移(TokenPassing):令牌是一個特殊的消息類型,它不斷地在系統(tǒng)(通常在一個環(huán)結(jié)構(gòu))中循環(huán)。希望轉(zhuǎn)移消息的場點必須等待直至令牌到達(dá)。當(dāng)令牌到達(dá)后,該場點就從環(huán)中取走令牌并開始轉(zhuǎn)移它的消息,當(dāng)它完成了相應(yīng)的消息轉(zhuǎn)移后再重新發(fā)送令牌,這就給另一個場點提供了占有令牌的機會,一旦占有,就可開始它的消息轉(zhuǎn)移。如果令牌丟失。那么系統(tǒng)應(yīng)能發(fā)現(xiàn)這種情況并產(chǎn)生一個新令牌。該方法已由Primenet系統(tǒng)所采用。64

⑶消息槽(slot):若干定長的消息槽連續(xù)不斷地在系統(tǒng)(通常是一個環(huán)結(jié)構(gòu))中循環(huán)。每個消息槽可以容納一定長的消息和有關(guān)的控制信息(如像發(fā)送處,接收處,消息槽滿/空等)。希望轉(zhuǎn)移消息的場點必須等待直到一個空消息槽到達(dá),然后,該場點將它的消息插入這個空消息槽并附上適當(dāng)?shù)目刂菩畔?,此消息在網(wǎng)絡(luò)中繼續(xù)流動,當(dāng)它到達(dá)某個特定的場點時,該場點就查看此消息槽的控制信息,以確認(rèn)此消息槽是否包含了發(fā)送給它的消息;若沒有,它就放過此消息槽,否則,它取走消息糟中的消息,重新設(shè)置控制信息以指明該消息槽為空。652.1.4保密問題

編碼是保護信息的常用方法之一。信息在發(fā)送之前先予以編碼,當(dāng)信息到達(dá)其目的地后就進行譯碼。編碼技術(shù),最常用的一種就是提供一個通用的編碼算法E,一個通用的譯碼算法D,并對每次應(yīng)用提供一個保密鍵(key),令Ek和Dk分別表示具有保密鍵k的那個特定應(yīng)用的編碼和譯碼算法,那么,對于任何消息m,該編碼系統(tǒng)必須滿足下面的特性:⑴Dk(Ek(m))=m;⑵Ek和Dk都能有效地計算;⑶該系統(tǒng)的保密性只依賴于鍵k的保密性而不依賴于算法E和D的保密性。66

一個稱之為“數(shù)據(jù)編碼標(biāo)準(zhǔn)”(DataEncryptionStandard)的編碼系統(tǒng)已由美國國家標(biāo)準(zhǔn)局所采用。不過,該方案還存在“鍵分布”問題,即,開始通信之前,保密鍵必須秘密地轉(zhuǎn)移給發(fā)送者和接收者,但在一個通信網(wǎng)絡(luò)環(huán)境中很難有效地完成這一點。解決此問題的辦法之一是利用一個“公共鍵”(publickey)編碼方案。每個用戶有一個公共鍵和一個私有鍵,兩個彼此知道他們的公共鍵的用戶才可以相互通信?;谏鲜鏊枷氲木幋a方案已設(shè)計出來了。這個方案曾被認(rèn)為是差不多不可破譯的。其中的公共編碼鍵是一對偶(e,n),私有鍵是對偶(d,n),這里e,d,n都是正整數(shù)。每條消息用0~n-1之間的一個整數(shù)表示(較長的消息可分成若干較短的消息,它們每一個都可用這樣的一個整數(shù)表示),函數(shù)E和D定義為:67E(m)=memodn=CD(C)=Cdmodn

這里的主要問題是選擇編碼和譯碼鍵。整數(shù)n可用下式計算n=pq

其中p和q是隨機選取的兩個較大的素數(shù)(例如,它們是由100位或更多位數(shù)字組成),d是隨機選取的一個與(p-1)(q-1)互質(zhì)的較大整數(shù),即d滿足GCD(d,(p-1)(q-1))=1

而e則應(yīng)滿足edmod(p-1)(q-1)=1

應(yīng)指出的是,雖然n可能是大家知道的,但p和q卻很難為他人所知。因為,對這里的n進行因式分解是比鉸困難的。因此,d和e也是不易試探出來的。

68例如,令p=5和q=7,那么n=35,(p-1)(q-1)=24。由于11與24互質(zhì),所以可選取d=11。因為1111mod24=12lmod24=1,因此,e=11。假定,給定m=3,那么C=memodn=311mod35=12而Cdmodn=1211mod35=3=m因此,如果我們利用e對m進行編碼,那么,我們就能用d對它進行譯碼。692.2消息傳遞2.2.1消息傳遞原語

在分布式系統(tǒng)中,進程相互通信是通過彼此交換消息進行的。一個消息是從一進程發(fā)往另一些進程的信息單位。源進程通過執(zhí)行send操作發(fā)送消息,宿進程則通過執(zhí)行receive操作來獲取消息;如果必要,在其獲取消息后再通過執(zhí)行reply操作給發(fā)送者一個回復(fù)。因此,分布式操作系統(tǒng)通常提供send、receive和reply等基本通信原語來實現(xiàn)進程間的通信和同步。70

消息轉(zhuǎn)移原語分為兩類:同步型和異步型。

1.異步型:在這類通信機制中,轉(zhuǎn)移消息的進程不等待接收者的回復(fù),又稱“不等”轉(zhuǎn)移(sendnoWait),即允許發(fā)送方可任意超前于接收方,因而具有下面的特征:①接收方收到的消息與發(fā)送方目前的狀態(tài)是無關(guān)的;②由于通信機制與同步機制幾乎被截然分開,因此,系統(tǒng)應(yīng)具有“無限”的緩沖空間來容納任意超前發(fā)出而尚未處理的消息,以此來解決消息發(fā)送速度和消息處理速度之間的差異;③能比較充分地利用系統(tǒng)的潛在能力,但實現(xiàn)時須解決許多實際的控制問題。71圖2.2同步消息傳遞和異步消息傳遞72

2.同步型:它與異步型消息轉(zhuǎn)移正好相反,總是要求發(fā)送方等待接收方的回復(fù),然后,發(fā)送方與接入方同步繼續(xù)向下執(zhí)行,其主要特征是:①消息的發(fā)送方和接收方在完成信息交換后彼此知道對方的狀態(tài);②同步機制和通信機制合二為一,一般無需大的緩沖區(qū);③實現(xiàn)容易,但效率較低。同步型消息轉(zhuǎn)移和異步型消息轉(zhuǎn)移示意圖,見圖2.2。73

消息本身要占用存貯空間,并常常存放在系統(tǒng)的緩沖區(qū)中。當(dāng)使們異步消息轉(zhuǎn)移機制時,系統(tǒng)中的每個進程在某一時刻可能有多個尚未處理的消息。由于消息緩沖區(qū)是一個有窮的資源,因此,當(dāng)使用異步消息傳遞方式傳遞消息時,可能會發(fā)生消息緩沖區(qū)溢出的情況。因此,異步消息傳遞需要特定的消息緩沖區(qū)管理算法來處理這方面的問題。但在采用同步消息傳遞方式時,系統(tǒng)中的每個進程決不可能存在一個以上尚未處理的消息,因此,其消息緩沖區(qū)的管理算法比較簡單。742.2.2同步消息傳遞方式的應(yīng)用

同步消息轉(zhuǎn)移方式特別適合于client/server模型。一個client通過向一個server發(fā)送一個消息來請求該server為它服務(wù),然后這個client就掛起,直至對應(yīng)的server發(fā)來回復(fù)消息(即告之所請求的服務(wù)已經(jīng)完成)。server可以寫成一個無窮循環(huán)程序,它等待接收請求,然后處理相應(yīng)的請求,最后發(fā)回復(fù)消息。client們在等待所請求的服跟務(wù)完成時就阻塞自己。僅當(dāng)沒有消息給server,即沒有供它做的事情時,該server就阻塞,見圖2.3,其中c1ient們向time-server發(fā)送一請求給出時間的消息:send(time-server,gettime.time)。time-server循環(huán)等待請求讀時鐘的消息,然后執(zhí)行“讀時鐘”工作,并在處理下一請求消息之前發(fā)出回復(fù),即time-server和client可分別編寫成如下的程序段:75timeserver:

whiletruedo receive(request); readclock(time); reply(time);end;client:send(timeserver,gettime,time);圖2.3使用消息轉(zhuǎn)移方式的client/server模型76

一般,server可以設(shè)計成依次重復(fù)執(zhí)行下述步驟的程序段:⑴等待接收來自clients發(fā)送的“請求服務(wù)”的消息;⑵接收clients發(fā)來的“請求服務(wù)”的消息;⑶處理clients發(fā)來的“請求服務(wù)”的消息;⑷向clients發(fā)送“服務(wù)已完成”的回復(fù)消息。僅當(dāng)沒有“請求服務(wù)”的消息到達(dá)時,server就阻塞自己。clients在等待server的回復(fù)消息時就阻塞它們自己,從而實現(xiàn)了clients與server的同步。在設(shè)計server進程時,通常要求:⑴server必須能調(diào)度和回復(fù)多個并發(fā)的請求消息;⑵server處理請求消息和發(fā)送回復(fù)消息的次序與接收該請求消息的次序無關(guān);⑶在server給client發(fā)送回復(fù)消息時,決不應(yīng)阻塞;⑷某個相關(guān)的client故障,不應(yīng)影響server的操作。77

同步原語有一種與信息交換不同的特性。當(dāng)一個進程引用了一個掛起的原語時,它就阻塞自己直至此原語執(zhí)行完畢。同步原語的這種”阻塞”特性,類似于單處理機中所使用的信號量,可用于同步目的。圖2.4(a)展示了兩個進程使用信號量進行同步例子,其中,當(dāng)P1在信號量sem上等待時,它就彼阻塞直至P2喚醒它。一個進程等待另一進程的類似效果也可利用同步send/receive原語實現(xiàn),見圖2.4(b)。78圖2.4同步79

還有不少其它形式的send/receive原語。例如,“選擇性接收”(selectivereceive)和”條件發(fā)送”(conditionalsend)。一個selectivereceive操作允許其用戶選擇一個進程或一組進程去接收發(fā)送來的消息。當(dāng)執(zhí)行conditionalsend操作時,如果相關(guān)的接收者不是處于阻塞狀態(tài)正等待接收消息,那么它將立即完成而不發(fā)送消息。實際上,大多數(shù)異步send操作后緊隨著一個receive操作。基于這個原因,許多分布式操作系統(tǒng)只提供同步消息傳遞原語。

802.3遠(yuǎn)程過程調(diào)用

遠(yuǎn)程過程調(diào)用(RemoteProcedureCall)就是把過程調(diào)用的概念加以擴允后引入分布式環(huán)境中的一種形式。遠(yuǎn)程過程調(diào)用的形式和行為與傳統(tǒng)的過程調(diào)用的形式和行為類似,主要差別在于被調(diào)用的過程實際運行在一個與調(diào)用者所在場點不同的場點上,見圖2.6。因此,需要設(shè)計相應(yīng)的軟件來實現(xiàn)兩者之間的連接和信息溝通。81圖2.5消息轉(zhuǎn)移與過程調(diào)用的類似性圖2.6遠(yuǎn)程過程調(diào)用示意圖822.3.1RPC機制的結(jié)構(gòu)及實現(xiàn)1.RPC機制的結(jié)構(gòu)由下列成份組成:⑴stub:client和server各一個;⑵控制部分:為追蹤RPC的調(diào)用狀態(tài)所設(shè);⑶傳送部分:確定如何將信息從一個場點傳送到另一個場點。實現(xiàn)RPC的一般過程可概括如圖2.7所示:圖2.7實現(xiàn)RPC的一般過程83client’sstub與一個client連接,它對于該client就像一個“server”。在調(diào)用時,它截取client的遠(yuǎn)程過程調(diào)用命令后,利用通信網(wǎng)絡(luò)向server發(fā)送“請求服務(wù)”的信息。在返回時,它獲取返回消息,并帶返回結(jié)果返回到client,然后client繼續(xù)執(zhí)行。

Server’sstub與一個server連接,它對于該server就像一個“client”。在調(diào)用時,它收到遠(yuǎn)程調(diào)用請求后,產(chǎn)生一個本地調(diào)用,去執(zhí)行被請求的遠(yuǎn)程過程。在返回時,它截取遠(yuǎn)程過程的返回結(jié)果,并形成返回消息發(fā)送出去。stub包含了一組RPC機制的操作原話,這些原語構(gòu)成了RPC調(diào)用的實現(xiàn)細(xì)節(jié),它可獨立于client和server編程,在編譯時再連接起來84RPC的實現(xiàn)要考慮兩個方面的問題。第一,當(dāng)進行遠(yuǎn)程過程調(diào)用時,調(diào)用場點必須能定位出被調(diào)用的過程實際上運行在哪個場點上;第二,相關(guān)的兩個場點必須能協(xié)同合作交換信息。所有這些對用戶都是透明的,這些的工作是依次進行的。下面介紹一種實現(xiàn)RPC的方法.其實現(xiàn)思想已概括在圖2.8中。8586圖2.8RPC的實現(xiàn)概況87

每個遠(yuǎn)程過程由若干成分組成:調(diào)用者(caller)或用戶(user)調(diào)用代碼段以及被調(diào)用者(callee)或server被調(diào)用代碼段。這些都可用常規(guī)的程序設(shè)計語言編寫,不需要利用特別的設(shè)施,就象它們在同一場點上執(zhí)行一樣。與調(diào)用者相關(guān)的stub與被調(diào)用者相關(guān)的stubRPCruntime子程序,可在系統(tǒng)中所有場點上運行。2.

RPC的實現(xiàn)stub程序的功能是把這種過程調(diào)用中所帶的參數(shù)組裝和拆卸成消息形式,并進行相應(yīng)的類型檢查,然后把這些消息轉(zhuǎn)移給RPCruntime子程序,后者再把它們發(fā)送到系統(tǒng)中的其它場點。程序設(shè)計者定義了過程并寫好了過程體,而系統(tǒng)生成了對應(yīng)的stub。實現(xiàn)一個遠(yuǎn)程過程調(diào)用的主要工作環(huán)節(jié)如下。88⑴調(diào)用者用通常方式調(diào)用對應(yīng)stub中的一個過程;⑵這個stub過程把有關(guān)的參數(shù)組裝成一個消息包或一組消息包,以形成一條消息。運行此過程的那個場點的“地址”和那個場點上指稱此過程的“標(biāo)識符”都應(yīng)包含在這條消息中;⑶將這條消息發(fā)送給對應(yīng)的RPCruntme子程序,該子程序再把它發(fā)送給指定的場點。89⑷在接收此消息時,遠(yuǎn)程runtime子程序引用與被調(diào)用者對應(yīng)的stub中的一個子程序,并讓它來處理這條消息;⑸被調(diào)用者對應(yīng)的stub中的這個子程序拆卸有關(guān)的參數(shù)并用通常的過程調(diào)用方式調(diào)用所需的過程。⑹返回調(diào)用結(jié)果,整個遠(yuǎn)程過程調(diào)用以與調(diào)用者對應(yīng)的stub程序執(zhí)行“return”語句返回到用戶而終止。90

在上面的述中,我們回避了一個重要的問題,即與用戶對應(yīng)的stub如何知道實際運行遠(yuǎn)程過程的場點之地址呢?一些解決這一向題的方法:⑴當(dāng)系統(tǒng)生成與調(diào)用者對應(yīng)的stub時,可把該遠(yuǎn)程場地的地址也一同并入其中,不過這種做法不太靈活。⑵在進行調(diào)用之前,與調(diào)用者對應(yīng)的stub向系統(tǒng)中的其它場點進行廣播,請求有關(guān)的場點通報其地址,這必然引起一系列的消息轉(zhuǎn)移。特別,當(dāng)這種廣播是在若干網(wǎng)絡(luò)之間進行時,其轉(zhuǎn)移速度是很慢的。⑶由系統(tǒng)管理一個表,其表項的內(nèi)容為①場點地址;②該場點上將運行的遠(yuǎn)程過程的名字。

912.3.2RPC執(zhí)行時各部分之間的關(guān)系

RPC執(zhí)行時,各部分的關(guān)系如圖2.9所示。其中,傳輸部分是RPC的最低層,其主要功能為:⑴提供對網(wǎng)絡(luò)傳輸層協(xié)議的選擇;⑵建立/釋放邏輯信道,發(fā)送/接收消息等;⑶管理RPC中的消息緩沖區(qū)。9293圖2.9RPC執(zhí)行時各部分的關(guān)系圖94

控制部分的主要功能是:⑴確定RPC中消息的方向(發(fā)送或接收);當(dāng)client的stub開始一次RPC調(diào)用或者server向server的stub返回調(diào)用結(jié)果時,該部分負(fù)責(zé)控制傳輸部分進行發(fā)送。⑵場點間會合與進程同步;場點間會合是指為使兩個場點間進程同步,它們必須同意“會合(rendezvous)”,即早到達(dá)的進程要等待晚到達(dá)的進程。會話進程通過場點間會合建立一致的起點,并以該起點作為進程同步點進行對話。⑶若干狀態(tài)信息的處理。由上可知,由于client的stub的作用,使得client可用常規(guī)過程調(diào)用方式去調(diào)用遠(yuǎn)程過程;由于server的stub的作用,使得server程序可以獨立于調(diào)用者來編程,因而比較靈活。

本地調(diào)用和遠(yuǎn)程過程調(diào)用之間存在許多不同之處。如果遠(yuǎn)程調(diào)用是在兩種異型機器間進行,這就存在數(shù)據(jù)表示問題,例如,這兩類機器的字長可能不同。解決這一向題的方法之一是它在轉(zhuǎn)移數(shù)據(jù)之前,讓RPC機制將有關(guān)的數(shù)據(jù)轉(zhuǎn)換成一種統(tǒng)一的格式,接收場點在接收數(shù)據(jù)時,再把它們轉(zhuǎn)換成本地所允許的數(shù)據(jù)格式。第二個問題是如何解釋指針,更確切他說,一個指針到底訪問的是什么,在不具有共享地址空間的情況下,RPC不可能允許在網(wǎng)絡(luò)范圍內(nèi)轉(zhuǎn)移指針。因此,在RPC中是不可能用“reference方式”傳遞參數(shù)的。

952.3.3RPC的語義

更嚴(yán)重的問題是調(diào)用者和被調(diào)用者都可能在調(diào)用期間發(fā)生故障,而且經(jīng)常是被調(diào)用者故障,留下調(diào)用者掛起。如果發(fā)生這種情況,調(diào)用者可能不得不夭折,這在本地調(diào)用中是決不會出現(xiàn)的。96

一個遠(yuǎn)程過程調(diào)用故障之后,調(diào)用者很難得知在故障發(fā)生前,該過程調(diào)用已經(jīng)進行到了哪一步。這通常有三種可能:⑴在被調(diào)用者接收到調(diào)用它的命令之前,它發(fā)生了故障。⑵在執(zhí)行其過程體時,被調(diào)用者發(fā)生了故障;⑶被調(diào)用者正確地完成了其過程體的執(zhí)行,但在把結(jié)果返回給調(diào)用者之前發(fā)生了故障。此外,還有調(diào)用者在發(fā)出調(diào)用命令之后并在獲得調(diào)用結(jié)果之前發(fā)生了故障。

97

由于調(diào)用者無法知道到底出現(xiàn)哪種情況,因此,系統(tǒng)必須提供一些基本的保護機制來確保RPC正確效果。不過,這個問題由于通信方面也可能出錯以及系統(tǒng)試圖進行錯誤矯正而混雜在一起,使得一個遠(yuǎn)程過程在成功地完成其執(zhí)行之前,實際上可能引用了若干次。不同的RPC實現(xiàn)方案定義的這種效果或RPC語義是有差別的,幾種常用的定義RPC語義的規(guī)則是:98

⑴1ast-of-many對執(zhí)行一個遠(yuǎn)程過程調(diào)用而言,被調(diào)用的過程可能執(zhí)行若干次,但規(guī)定其最后一次執(zhí)行的結(jié)果作為返回結(jié)果;⑵at-most-once若調(diào)用者收到了回復(fù)消息,則被調(diào)用的過程正確地完成了它的一次(僅僅一次)執(zhí)行。如果調(diào)用者沒收到回復(fù)消息,或者,如果調(diào)用者在獲得回復(fù)消息之前發(fā)生故障,那么,這時的調(diào)用效果就看作是根本就沒有執(zhí)行相應(yīng)的過程。

99

⑶at-1east-once在場點正常情況下,則遠(yuǎn)程過程至少執(zhí)行一次,且回復(fù)消息可能返回一次或多次。在場點故障時,就不能保證遠(yuǎn)程過程是否已被執(zhí)行或曾返回任何回復(fù)消息。⑷exactly-once若server正常,則遠(yuǎn)程過程將恰好執(zhí)行一次,并返回一個調(diào)用結(jié)果。同send/receive通信原語有許多變種一樣,RPC也有一些不同的形式。例如可以允許異步遠(yuǎn)程過程調(diào)用,因此,調(diào)用者和被調(diào)用者可以并行執(zhí)行,調(diào)用者負(fù)責(zé)在稍后某一時刻執(zhí)行一個所謂的會合(rendezvous)來獲取調(diào)用結(jié)果。100101Thanks!第3章分布式協(xié)同處理

3.1時間定序與時戳3.2分布式互斥算法3.3選擇算法

3.1時間定序與時戳3.1.1分布式算法的基本特征

在集中式方案中,一個場點被指定為中央控制場點,由它來控制對共享資源的存取。每當(dāng)一個場點希望存取一共享對象時,它就向該中央場點發(fā)一請求消息。當(dāng)所指共享對象可供某場點使用時,控制場點就回送一個“可以訪問”的消息給它。這種方案的弱點是中央控制場點可能變成瓶頸,而且一旦它故障,整個系統(tǒng)就崩潰了??梢?,一個集中式算法具有兩個明顯的特點:⑴只有一個中央控制場點在進行決策;⑵所有必要的信息都集中在該中央控制場點上。

與之相反,一個分布式算法的基本特征是:⑴所有的場點都有差不多同等數(shù)量的信息;⑵所有的場點都是根據(jù)本地信息來進行決策的;⑶所有的場點對最終的決策都負(fù)有同等的責(zé)任;⑷所有的場點在影響最終決策時都付出了同等的努力;⑸算法具有強健性,系統(tǒng)的局部故障不影響算法的有效性。實際上,不管分布的程度和方式如何,對所有的分布式算法都有如下兩種基本的假定。

假定1每個場點只是整個系統(tǒng)的一部分,且決策都是根據(jù)本地信息進行的;

假定2不存在全系統(tǒng)范圍內(nèi)的公共時鐘。

假定2是一個主要的制約,因為能確定出事件發(fā)生的先后次序是極其重要的,它是計算系統(tǒng)中的一個基本概念。例如,在進行資源分配時,通常規(guī)定僅當(dāng)某資源已經(jīng)釋放之后才可再次使用它。在分布式系統(tǒng)中,由于沒有公共時鐘,所以直接說某事件在另一事件之前或之后發(fā)生是不嚴(yán)格的。為了確定設(shè)計分布式算法的牢固基礎(chǔ),我們必須尋求一種在全分布式系統(tǒng)范圍內(nèi)進行事件定序的方法。3.1.2分布式系統(tǒng)中的事件定序方法

由于沒有公共的時鐘如何定序分布式系統(tǒng)中的事件呢?因為進程本身具有順序性,所以在單個進程中的事件是按時間完全定序的。此外,根據(jù)因果法則我們可以假定”發(fā)送”一個消息的事件發(fā)生在“接收”同一消息的事件之前。以上兩點自然給系統(tǒng)中的事件提供了一個偏序,稱之為HappenedBefore關(guān)系(筒稱HB),并用“”表示,其定義如下:

⑴ab①若a和b是同一進程中的兩個事件,且a在b前發(fā)生;或者,②若a是一進程中發(fā)送消息的事件,且b是另一進程中接收同一消息的事件。

⑵該關(guān)系是轉(zhuǎn)移的,即若ab且bc,則有ac。

⑶該關(guān)系是非自反的。

⑷若兩個不同的事件之間不存在這種關(guān)系,即(ab)且(ba),則a和b稱為并發(fā)事件。因而,它們可以并發(fā)執(zhí)行。例如,圖中某些事件的HB關(guān)系是:

p1q2 r0q4 q3r1 p1q4(因為p1q2且q2q4)圖中的某些并發(fā)事件是:

q0和p2 r0和q3 r0和p3 q3和p3圖3.1三個并發(fā)進程的相對時間并發(fā)和HB關(guān)系可用圖示加以說明,如圖3.1所示,

因此,引進一個系統(tǒng)的邏輯時鐘,用它的值來反映這個關(guān)系,從而實現(xiàn)整個系統(tǒng)中的事件定序?,F(xiàn)假定,對每個進程pi,有一個與其相關(guān)的邏輯時鐘Ci,賦給進程pi中事件a的邏輯時鐘之值即Ci(a)。這種邏輯時鐘可用一個計數(shù)器實現(xiàn)。若用C表示系統(tǒng)的邏輯時鐘,則為使系統(tǒng)的邏輯時鐘C能正確的計值,下面的條件應(yīng)成立:時鐘(clock)條件:對系統(tǒng)中的任何事件a和b,若ab,則C(a)<C(b)。若下面兩個條件滿足,則時鐘條件成立:

條件1:對于進程pi中的兩個事件a和b,若ab則有Ci(a)<Ci(b);

條件2:若a是進程pi發(fā)送消息的事件,b是進程pj接收同一消息的事件,則有Ci(a)<Cj(b)

若按下面方法實現(xiàn)這種邏輯時鐘,則上述兩條件可以滿足:⑴進程pi在其任何兩個相繼的事件之間使Ci增值;⑵若事件a表示進程pi中發(fā)送消息m的事件,則發(fā)送消息m的事件就附有時間戳Tm=Ci(a);⑶若事件b是進程pj(ij)中接收消息m的事件,pj就置Cj(b)之值為Cj(b)=max(Cj,Tm)+1

我們稱進程pi中的事件a先于進程pj中的事件b(以ab表示)當(dāng)且僅當(dāng)⑴Ci(a)<Cj(b);或⑵Ci(a)=Cj(b),且pipj,其中關(guān)系“”是進程的一個任意偏序。實現(xiàn)關(guān)系“”的一個簡單方法是給系統(tǒng)中每個進程賦以一個唯一的進程號,且規(guī)定:若i<j,則pipj??梢宰C明下列結(jié)果:⑴若ab,則一定不成立ba。⑵若ab,則ab。⑶若ab,bc則ac。分布式互斥的幾點要求:(1)安全性:在某一時刻至多只有一個進程在臨界段內(nèi)執(zhí)行。(2)可用性:請求進入臨界段的進程終將準(zhǔn)入。(3)定序:按關(guān)系“”排定的次序進入臨界段。3.2分布式互斥算法3.2.1分布式互斥算法的基本假定分布式算法有如下的基本假定:⑴一個分布式系統(tǒng)由n個場點組成,它們從1到n唯一地編號,每個場點含有一個進程,而且進程和場點間存在一一對應(yīng)的關(guān)系。⑵流水線(pipeline)特性成立,即從一個進程發(fā)送給另一進程的消息是按它們發(fā)送的次序接收的。⑶每條消息在有窮時間間隔內(nèi)都能正確地轉(zhuǎn)移到它的目的地。⑷系統(tǒng)是全互連的,因而每個進程都可直接給其它的進程發(fā)送消息。3.2.2集中式算法

分布式系統(tǒng)中實現(xiàn)互斥最直接的方法就是模擬單處理器系統(tǒng)的互斥方法。選擇一個進程作為協(xié)調(diào)者(即運行在最高網(wǎng)址的機器上的某個進程)。某個進程要進入臨界區(qū)時,向協(xié)調(diào)者發(fā)請求信息,指出它要進入臨界區(qū),然后等待協(xié)調(diào)者的許可。如果當(dāng)前沒有其他進程在該臨界區(qū)中,協(xié)調(diào)者就返回一個許可消息,請求信息的進程接收到許可響應(yīng)后,就進入臨界區(qū),否則就要等待。如下圖所示集中式算法3.2.3分布式算法(Lamport算法)

第一個分布式方法是由Lamport[1978]提出的。算法的工作過程如下。進程要進入臨界區(qū)時,建立一個包含臨界區(qū)名,進程號和當(dāng)前時間的消息。然后將該消息發(fā)送給其他所有進程,概念上說也包括發(fā)送消息的進程本身。每個進程管理一個請求隊列。發(fā)送進入臨界區(qū)的請求消息后,進程就坐等其他進程的許可消息。一但它得到所有進程的許可,就可以進入臨界區(qū)了。進程退出臨界區(qū)時,向在該進程的隊列中的所有進程發(fā)送OK消息,并從隊列中刪除這些進程。某進程接收到其他進程發(fā)送的請求消息后。所采取的動作由它和消息中所包含臨界區(qū)名決定。共分以下三種情況:

1)如果接收者不在臨界區(qū)內(nèi),而且它不想進人臨界區(qū),就返回一個OK消息給發(fā)送者。

2)如果接收者在臨界區(qū)內(nèi),就不做任何響應(yīng),只是將請求送入等待隊列。

3)如果接收者要進入臨界區(qū)。但還沒有進入,它就比較接收到的消息中的時間戳與它自己發(fā)送給其他進程的請求消息中的時間戳。時間戳小的請求獲勝。如果當(dāng)前接收到的消息中的時間戳小,就發(fā)送一個OK消息。否則,如果該進程自己發(fā)送的消息中的時間戳小,就不做任何響應(yīng),只將接收到的請求放入隊列中。分布式算法改進的Lamport算法

設(shè)R是某分布式系統(tǒng)中所有進程的集合,R={P1,P2,……Pn},Ti是Pi進程的邏輯時間戳。一個進程要進入臨界區(qū)需要執(zhí)行以下的算法步驟:申請臨界區(qū)

當(dāng)Pi進程要進入臨界區(qū)時,向R中的每一個進程發(fā)送消息REQ(Ti,Pi);當(dāng)Pj接收到來自Pi的請求消息時,可以根據(jù)臨界區(qū)的使用情況及進程自己的狀態(tài),做出三種處理:第一種情況,若接收者Pj不在臨界區(qū)中,也不想進入臨界區(qū),Pj向Pi發(fā)送REPLY應(yīng)答消息。第二種情況,若接收者Pj已在臨界區(qū)中,則不應(yīng)答并暫存Pi的請求消息,對請求隊列排隊。第三種情況,若接收者Pj也向R中的其他進程發(fā)送了進入臨界區(qū)的請求,但還沒有進入臨界區(qū)時,Pj將接收到的消息與自己發(fā)送的消息的時間戳進行比較,如果接收到的Pi時間戳小,進程Pj向Pi發(fā)送REPLY應(yīng)答消息;否則,接收者Pj的時間戳小,則不應(yīng)答任何請求消息,只負(fù)責(zé)暫存請求消息和對請求隊列的排隊。進入臨界區(qū)

當(dāng)Pi進程接收到R進程集合中所有的應(yīng)答消息REPLY后,Pi進程進入臨界區(qū)。退出臨界區(qū)

當(dāng)Pi進程退出臨界區(qū)時,向排隊等候進入臨界區(qū)的所有進程發(fā)送REPLY消息。3.2.4令牌環(huán)算法

這里有一個總線網(wǎng)絡(luò)如圖所示,(如,以太網(wǎng)),其中的進程沒有內(nèi)定的次序。軟件中構(gòu)造一個邏輯環(huán)每個進程在環(huán)上被給定一個位置,

初始化環(huán)時,給進程0一個令牌(token)。令牌在環(huán)上循環(huán)傳播。令牌從進程k到進程k+1(對環(huán)的大小取模)由點到點的消息完成。進程從它的相鄰結(jié)點獲得令牌后,檢查自己是否要進入臨界區(qū),如果是,就進入臨界區(qū),完成所需要工作后退出臨界區(qū)。退出之后,該進程就將令牌在環(huán)上向后傳遞。這里不允許某個進程利用同一個令牌進人第二個臨界區(qū)。

如果進程得到令牌時不要進入臨界區(qū),它就將令牌直接傳送給環(huán)上的下一個結(jié)點。因此,所有的進程都不需進入臨界區(qū)時,令牌就在環(huán)上高速循環(huán)傳送。該算法的正確性是顯而易見的。任何時刻都只有一個進程得到令牌,因此只有一個進程可以進入臨界區(qū)。三種算法的比較三種互斥算法的比較算法進入/退出臨界區(qū)所需的消息數(shù)等待進入延遲(消息時間)問題集中式32協(xié)調(diào)著崩潰分布式3(n-1)2(n-1)任何進程崩潰令牌環(huán)1~∞0~n-1令牌丟失,進程崩潰3.3選舉算法許多分布式算法中都要一個進程充當(dāng)協(xié)調(diào)者。假定每個進程都有一個唯一的進程號,通常選舉算法都指定具有最高進程號的進程作為協(xié)調(diào)者。

選舉算法的目的就是:保證在選舉執(zhí)行后,所有進程都認(rèn)可某個進程成為了新的協(xié)調(diào)者。3.3.1Bully算法

當(dāng)某個進程注意到協(xié)調(diào)者無法響應(yīng)進程的請求時,該進程就初始啟動一個選舉過程。進程P執(zhí)行的選舉過程如下:

l)P向所有進程號比它高的進程發(fā)ELECTION消息。

2)如果得不到其他進程的響應(yīng),進程P獲勝,成為協(xié)凋者。

3)如果有一個進程號更高的進程響應(yīng),該進程就接管選舉過程。進程P的任務(wù)完成。

bully選舉算法

3.3.2環(huán)算法

另外一個選舉算法利用了環(huán),但與前不同的是,這里沒有用到令牌。假定對所有進程進行了物理或邏輯排序,因此每個進程都知道它的后繼進程是哪個進程。任何一個進程發(fā)現(xiàn)協(xié)調(diào)者不再起作用時,就創(chuàng)建一條包含該進程號的ELECTION消息.并將該消息發(fā)送給其后繼進程。如果后繼進程已經(jīng)中止,就跳過它發(fā)送給下一個進程,依此類推.直到找到一個正在運行的進程為止。每個進程接收到ELECTION消息后,就將自己的進程號加入消息中的進程表。最后ELECTION消息會回到創(chuàng)建它的那個進程。進程接收到的ELECTION消息中已經(jīng)包含該進程的進程號時,就可以斷定這條消息是由它自己創(chuàng)建的。這時,將消息類型改為COORDINATOR,再次在環(huán)上循環(huán)發(fā)送。這次是將新的協(xié)調(diào)者(進程表中進程號最大的進程)和環(huán)上現(xiàn)有的成員通知給其他進程,COORDINATOR消息在環(huán)上循環(huán)一周后,從環(huán)上移去該消息,各進程恢復(fù)其原有操作。環(huán)選舉算法That'sAll!第四章分布式資源管理1354.1資源共享4.2資源管理策略4.3分布式系統(tǒng)中的死鎖處理1364.1資源共享實現(xiàn)資源共享的三種方法。4.1.1數(shù)據(jù)遷移數(shù)據(jù)遷移的兩種方法:

第一種方法是將整個文件轉(zhuǎn)移給場點A,爾后,所有對該文件的存取都是局部的了。當(dāng)用戶不再需要訪問該文件時,它的副本(如果它被修改過)被回送給場點B。對一個文件的任何微小的修改,都得將這整個文件傳送回去。137

另一種方法是只將該文件中實際需要的部分轉(zhuǎn)移給A。一旦用戶不再使用該文件,該文件的任何已作過修改時部分必須回送給場點B。顯然,如果只訪問一個較大文件的一小部分,那么采用后一種方法較好;否則采用第一種方法較合適。不過,僅僅從一個場點向另一個場點轉(zhuǎn)移數(shù)據(jù)是不夠的,系統(tǒng)還得執(zhí)行各種數(shù)據(jù)轉(zhuǎn)換(如果兩個場點不是直接兼容的話)。例如,如果它們使用了不同的字符代碼表示。138

4.1.2計算遷移

在某些情形中,轉(zhuǎn)移計算比轉(zhuǎn)移數(shù)據(jù)更有效。例如,考慮這樣一個作業(yè),它需要存取位于不同場點上的若干較大的文件,以獲得它們的概況。一種比較有效的辦法是在它們駐留的場點上各自存取這些文件,然后分別回送所需要的值給初啟該計算的那個場點。計算的實現(xiàn)方式:可用一個遠(yuǎn)程過程調(diào)用來初啟。進程p引用場點A上預(yù)定義的一個過程,該過程執(zhí)行完后給p回送所需要的結(jié)果。139

通過消息傳遞的方式。進程p可以發(fā)送一條消息給場點A,操作系統(tǒng)在場點A創(chuàng)建一個新進程q,q的功能是執(zhí)行由該消息所指定的任務(wù),當(dāng)q完成其執(zhí)行后,它又通過消息系統(tǒng)給p回送所需要的結(jié)果。這兩種方案都可用來存取駐留在各個場點上的若干文件。1404.1.3作業(yè)遷移當(dāng)一個作業(yè)提交給系統(tǒng)后,系統(tǒng)可以在一特定的場點上執(zhí)行這整個作業(yè),或在不同的場點上執(zhí)行它的某一部分利用這種方案的主要原因是:⑴負(fù)載均衡:作業(yè)(或子作業(yè))可以分散到系統(tǒng)中以均衡系統(tǒng)的工作負(fù)載。⑵計算速度的提高:如果單個作業(yè)可以分解成若干子作業(yè),這些子作業(yè)可以在不同的場點并發(fā)地執(zhí)行,那么,整個作業(yè)的周轉(zhuǎn)時間將會減少。

⑶硬件特性:該作業(yè)可能有這祥一些特性,即它比較適合于在某些特殊的處理機上執(zhí)行。例如,矩陣轉(zhuǎn)換就比較適合于在陣列機上執(zhí)行。⑷軟件特性:該作業(yè)可能需要特定場點上的軟件或不能移動的軟件,或者移動該作業(yè)比較劃算。顯示遷移隱式遷移1411424.2資源管理管理策略

分布式系統(tǒng)對于資源管理有兩種基本的觀點:單個資源管理單個資源與多個管理機構(gòu)相互關(guān)系的角度進行分析。多個資源管理多個資源與多個管理機構(gòu)相互關(guān)系的角度進行分析。前者是后者的基礎(chǔ),后者是前者的提高。143

⑴單個資源管理,有四種資源管理方式:集中管理方式:只有一個管理者對該資源的各種活動統(tǒng)一進行管理,其它管理者對該資源均不具有管理職能和責(zé)任。該方式也稱為專制(autocratic)管理方式。功能分布管理方式:多個管理者按照不同的資源活動分擔(dān)管理職能和責(zé)任,且每種活動只由一個管理者管理。該方式也稱為分擔(dān)管理方式或分割(partitioned)管理方式。144浮動管理方式:多個管理者均可同等地?fù)?dān)負(fù)管理職能和責(zé)任,但在一段時間內(nèi),只有一個管理者行使職權(quán),“任期”滿后再由另一管理者接替,如此輪流下去。該方式也稱輪流(successive)管理方式。分散管理方式:多個管理者采取協(xié)商一致的原則對資源活動進行全面管理,其中各個管理者的地位和功能是完全平等的。該方式也稱民主(democratic)管理方式。

145⑵從多個資源管理,可分為如下四種管理方式:

集中:每一類資源只屬一個管理者管理。它控制該類全部資源。

分管(集中分布式):每一類資源由多個管理者管理,但每一資源只屬一個管理者管理。

合管(完全分布式):不僅每一類資源存在多個管理者管理,而且該類中每個資源屬于全部管理者共同管理。

部分管理:每一類資源由多個管理者管理,每一資源屬于若干管理者管理。如圖4.1所示。其中圓圈表示管理者,三角形表示資源。146圖4.1資源管理方式147

分布式管理方式和集中式管理方式的主要區(qū)別是對同類資源是采用多個管理者還是一個管理者

溫馨提示

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

評論

0/150

提交評論