多處理機操做系統前端
進入70年代後,已採用多處理機的系統結構從提升運行速度方面來加強系統性能。實際上,多處理機系統MPS就是採用並行技術,令多個單CPU同時運行,使整體的計算能力比單CPU計算機系統的強大得多。算法
1. CPU的時鐘頻率問題瀏覽器
在早期,人們首先是採用提升CPU時鐘頻率的方法提升計算速度。CPU的時鐘頻率已從早期的每秒鐘嘀嗒數十次,發展到如今的數兆赫茲(GHz),這主要得益於芯片製造工藝水平的提升。緩存
2. 增長系統吞吐量安全
隨着系統中處理機數目的增長,系統的處理能力也相應加強,顯然,這可以使系統在單位時間內完成更多的工做,即增長系統吞吐量。固然,爲了能使多個處理機協調地工做,系統也必須爲此付出必定的開銷。所以,利用n臺處理機運行時所得到的加速比,並不能達到一臺處理機時的n倍。服務器
3. 節省投資網絡
在達到相同處理能力的狀況下,與n臺獨立的計算機相比,採用具備n個處理機的系統,能夠更節省費用。這是由於,此時的n個處理機能夠作在同一個機箱中,使用同一個電源和共享一部分資源,如外設、內存等。數據結構
4. 提升系統可靠性併發
在MPS中,一般都具備系統重構的功能,即當其中任何一個處理機發生故障時,系統能夠進行重構,而後繼續運行。亦便可以當即將故障處理機上所處理的任務遷移到其它的一個或多個處理機上繼續處理,保證整個系統仍能正常運行,其影響僅僅表現爲系統性能上的少量下降。例如,對於一個含有10個CPU的系統,若是其中某一個CPU出現故障,整個系統性能大約下降10%。app
1.緊密耦合MPS和鬆弛耦合MPS
從多處理機之間耦合的緊密程度上,可把MPS分爲兩類:
(1) 緊密耦合(Tightly Coupled)MPS。
(2) 鬆散耦合(Loosely Coupled)MPS。
2. 對稱多處理器系統和非對稱多處理器系統
根據系統中所用處理器的相同與否,可將MPS分爲以下兩類:
(1) 對稱多處理器系統SMPS(Symmetric Multiprocessor System)。
(2) 非對稱多處理器系統ASMPS (Asymmetric Multiprocessor System)。
所謂UMA(Uniform Memory Access),即統一內存訪問(也稱一致性內存訪問)。在這種結構的多處理機系統中,各處理器單元(CPU)在功能和結構上都是相同的,在處理上沒有主從之分(即屬於SMP系統),每一個處理機能夠訪問不一樣模塊中的存儲器單元,而且對於每一個存儲器單元的讀寫速度是相同的。
1. 基於單總線的SMP結構
如圖10-1(a)所示,在這種結構的系統中,把多個處理器與一個集中的存儲器相連,全部處理器都經過公用總線訪問同一個系統的物理存儲器,每一個處理機能夠訪問不一樣存儲器模塊中的單元,以及與其它處理機進行通訊。這就意味着該系統只須要運行操做系統的一個拷貝,所以,爲單處理器系統編寫的應用程序能夠直接移植到這種系統中運行。
圖10-1 基於總線的SMP結構
2. 使用多層總線的SMP結構
對於單總線結構中存在的總線瓶頸問題的另外一個解決方法,就是使用多層總線結構。在這種結構中,系統中全部的CPU不只共享一個高速緩存,還有一個本地私有的存儲器,如圖10-1(c)所示。
3. 使用單級交叉開關的系統結構
在這種結構中,利用電話交換系統中使用交叉開關(crossbar switch)的方法,如圖10-2所示,將系統中全部的CPU與存儲器結點,經過交叉開關陣列相互鏈接。每一個交叉開關均爲其中兩個結點(CPU與存儲器模塊)之間提供一條專用鏈接通路,從而避免了在多個 CPU之間由於要訪問存儲器模塊所造成的對鏈路的爭奪。並且,在任意兩個結點(CPU與CPU)之間也都能找到一個交叉開關,在它們之間創建專用鏈接通路,方便CPU之間的通訊。
圖10-2 使用交叉開關的UMA多處理機系統
4. 使用多級交換網絡的系統結構
圖10-3(a)是一個最簡單的2 交叉開關,它有兩個輸入和兩個輸出。送入任一輸入的信息能夠交換到任一輸出線上。能夠將這樣的多級小交換開關分級鏈接起來,造成多級交叉開關網絡,如圖10-3(b)所示,圖中的1A、2A、…、1B、…、3C等都是一個交叉開關級,在相鄰級別的交叉開關之間設置固定的物理鏈接。處理機和存儲器模塊分別位於網絡的兩側,每臺處理機經過網絡訪問存儲器模塊,並且全部處理機的訪問方式都是同樣的,機會均等。
圖10-3 使用多級交換網絡的SMP結構示意圖
1. NUMA結構和特色
所謂NUMA(Nonuniform-Memory- Access),即非統一內存訪問(也稱非一致存儲訪問)。在這種結構的多處理機系統中,其訪問時間隨存儲字的位置不一樣而變化,系統中的公共存儲期和分佈在全部處理機的本地存儲器共同構成了系統的全局地址空間,可被全部的處理機訪問。
圖10-4 NUMA結構的多處理機系統
2. CC-NUMA構造方法
目前,對於構造大型的CC-NUMA多處理機系統,最經常使用的方法是採用基於目錄的多處理機。其基本思想是:對於系統中每個CPU所擁有的若干高速緩存單元,都以必定數量的單元爲一組,構成一個高速緩存塊,爲每一個CPU配置一張高速緩存塊目錄表(下簡稱目錄表),對每個高速緩存塊的位置和狀態進行記錄和維護。每一個CPU的每條訪問存儲器單元的指令都必須首先查詢這張表,從中判斷該存儲器單元是否在目錄表中,即其內容是否已存在於某個高速緩存塊中,並進行相應的操做。
圖10-5 CC-NUMA構造方法
多處理機操做系統是在單機多道程序系統的基礎上發展起來的,它們之間有許多類似之處,但也存在着較大的差別。概括起來,多處理機操做系統具備如下幾方面的新特徵:
1. 並行性
單機多道程序系統的主要目標是,爲用戶創建多個虛擬處理機以及模擬多處理機環境,使程序能併發執行,從而改善資源利用率並提升系統的吞吐量。而在多處理機系統中,因爲存在着多個實處理機,已經可以使多個進程並行執行,所以,多處理機操做系統的主要目標應是進一步加強程序執行的並行性程度,以得到更高的系統吞吐量及提升系統的運算速度。
2. 分佈性
在單處理機系統中,全部的任務都是在同一臺處理機上執行的,全部的文件和資源也都處於操做系統的統一管理之下。然而對於多處理機系統而言,不管其結構如何,在任務、資源和對它們的控制等方面,都呈現出必定的分佈性。這種狀況,在鬆散耦合系統中表現尤爲明顯:
(1) 任務的分佈
(2) 資源的分佈
(3) 控制的分佈
3. 機間的通訊和同步性
在多處理機系統中,不只在同一處理機上併發執行的諸進程之間,因爲資源共享和相互合做的須要,須實現同步和通訊,並且在不一樣處理機上運行的不一樣進程之間,也須要進行同步和通訊,除了它們之間也須要資源共享和相互合做外,這對於提升程序執行的並行性、改善系統的性能相當重要。
4. 可重構性
爲提升系統的可靠性,在多處理機系統中,應使操做系統具備這樣的能力:當系統中某個處理機或存儲模塊等資源發生故障時,系統可以自動切除故障資源,換上備份資源,並對系統進行重構,保證其能繼續工做。
1. 進程管理
對於多處理機系統中的進程管理,主要體如今進程同步和進程通訊幾個方面:
1) 進程同步
2) 進程通訊
3) 進程調度
2. 存儲器管理
在多處理機環境下,一般每一個處理機都有屬於本身局部的(本地)存儲器,也有可供多個處理機所共享的(系統)存儲器。每一個處理機在訪問本地存儲器模塊時,與訪問系統存儲器或其它處理機的局部存儲器模塊(統稱遠地存儲器)時相比,所花費的時間也多是不一樣的。
所以,在多處理機系統中,存儲器系統的結構十分複雜,導致對存儲器系統的管理也變得很是複雜:除了須要具備單機多道程序系統中的地址變換機構和虛擬存儲器功能外,還應加強和增長下面的功能和機制:
(1) 地址變換機構。
(2) 訪問衝突仲裁機構。
(3) 數據一致性機制。
3. 文件管理
在單處理機系統中,一般只有一個文件系統,全部的文件都存放在磁盤上,採用集中統一管理方式,也稱爲集中式文件系統。而在多處理機系統中,則可能採用如下三種文件系統管理方式:
(1) 集中式。
(2) 分散式。
(3) 分佈式。
4. 系統重構
在單處理機系統中,一旦處理機發生故障,將引起整個系統的崩潰。但在多處理機系統中,尤爲是在對稱多處理機系統中,因爲各處理機的結構和功能相同,爲了提升系統的可靠性,應使操做系統具備重構能力,即當系統中某個處理機或存儲塊等資源發生故障時,系統可以自動切除故障資源並換上備份資源,使之繼續工做。若是沒有備份資源,則重構系統使之降級運行。若是在故障的處理機上有進程亟待執行,操做系統應能安全地把它遷移到其它處理機上繼續運行,對處於故障處的其它可利用資源一樣也予以安全轉移。
1. 主從式(master-slave)
在這種類型的操做系統中,有一臺特定的處理機被稱爲主處理機(Master Processor),其它處理機則稱爲從處理機。操做系統始終運行在主處理機上,負責保持和記錄系統中全部處理機的屬性、狀態等信息,而將其它從處理機視作爲可調度和分配的資源,負責爲它們分配任務。從處理機不具備調度功能,只能運行主處理機分配給它的任務。
主從式操做系統具備以下優缺點:
(1) 易於實現。
(2) 資源利用率低。
(3) 安全性較差。
2. 獨立監督式(separate supervisor System)
獨立監督式操做系統具備以下的優缺點:
(1) 自主性強。
(2) 可靠性高。
(3) 實現複雜。
(4) 存儲空間開銷大。
(5) 處理機負載不平衡。
3. 浮動監督式(floating supervisor Control Mode)
浮動監督式,也稱爲浮動管理程序控制方式,這是最複雜的,但也是最有效、最靈活的一種多處理機操做系統方式,經常使用於緊密耦合式的對稱多處理機系統中。
浮動監督式操做系統具備以下的優缺點:
(1) 高靈活性。
(2) 高可靠性。
(3) 負責均衡。
(4) 實現複雜。
在多處理機系統中,進程間的同步顯得更加劇要和複雜。在緊密耦合多處理機中,多個處理機是共享存儲的,所以各處理機上的諸進程之間可經過該共享存儲來實現同步,進程間的同步實現相對也比較簡單。但對於鬆散耦合的多處理機,進程之間的同步可能採起的方式較多且複雜,可分爲集中式和分佈式兩大類同步方式。
1. 中心同步實體
爲實現進程之間的同步,系統中必須有相應的同步實體(Synchronizing Entity),如硬件鎖、信號量以及進程等。若是該同步實體知足下述兩個條件,則稱之爲中心同步實體:
(1) 具備惟一的名字,而且爲彼此必須同步的全部進程所知道。
(2) 在任什麼時候刻,這些進程中的任何一個均可以訪問該同步實體。
2. 集中式同步機構
基於中心同步實體所構成的全部同步機構被稱爲集中式同步機構。相應的,其它同步機構則稱爲非集中式同步機構。
3. 集中式與分佈式同步算法
在多處理機系統中,爲實現進程同步,每每還須要有相應的同步算法支持同步機構,通常分爲如下兩種:
(1) 集中式同步算法。
(2) 分佈式同步算法。
4. 中心進程方式
該方式是在系統中設置一箇中心進程(或稱爲協調進程),該進程保存了全部用戶的存取權限、衝突圖(conflict graph)等信息。
1. 自旋鎖的引入
如前所述,在單CPU系統中,CPU在執行讀—修改—寫原語操做時,是具備原子性的,即在執行這些操做時不會被中斷。保證原子性的基本方法是,在執行原語以前關中斷,完成後再開中斷。
2. 實現對總線互斥訪問的方法
利用自旋鎖實現對總線互斥訪問的方法是:在總線上設置一個自旋鎖,該鎖最多隻能被一個內核進程持有。
3. 自旋鎖與信號量的主要差異
自旋鎖與信號量的主要差異在於:自旋鎖可避免調用進程阻塞。因爲自旋鎖使用者通常保持鎖時間很是短,調用進程用「旋轉」來取代進程切換。而咱們知道進程切換須要花費必定開銷,而且會使高速緩存失效,直接影響系統的性能,所以將自旋鎖應用於對總線資源的競爭,其效率遠高於信號量機制,且在多處理器環境中很是方便。
4. 自旋鎖的類型
使用自旋鎖的基本形式爲:
spin_lock(&lock);
/*臨界區代碼;*/
……
spin_unlock(&lock);
1. 讀—拷貝—修改鎖(RCU)的引入
不管是第二章中的讀寫問題,仍是前面所介紹的讀寫自旋鎖,都是容許多個進程同時讀,但只要有一個寫進程在寫,便禁止全部讀進程去讀,使讀者進入阻塞狀態。若是寫的時間很是長,將嚴重影響到多個讀進程的工做。是否能改善這一狀況呢? 即便有寫進程在寫,讀進程仍能夠去讀,不會引發讀進程的阻塞。回答是確定的,其解決方法是改變寫進程對文件(共享數據結構)進行修改(寫)的方式。
2. RCU(Read-Copy-Update)鎖
RCU鎖用來解決讀者—寫者問題。對於被RCU保護的共享文件(數據結構),不管讀者和寫者,都是以讀的方式對其進行訪問的,對於讀者而言,不須要得到任何鎖就能夠訪問它,對於寫者而言,在訪問它時,先製做該文件的一個副本,只對副本上的內容進行修改,而後使用一個回調(callback)機制,即向系統中一個稱爲垃圾收集器的機構註冊一個回調函數。最後,在適當的時機,由垃圾收集器調用寫者註冊的回調函數,把指向原來數據的指針從新指向新的被修改的數據,完成最後的數據釋放或修改操做。
3. 寫回時機
在RCU鎖機構中,如何肯定將修改後的內容寫回的時機? 顯然,最好是在全部讀者都已完成本身的讀任務後再將修改後的文件寫回。
4. RCU鎖的優勢
RCU其實是一種改進的讀寫自旋鎖。它的主要優勢表現爲以下兩方面:
(1) 讀者不會被阻塞。
(2) 無需爲共享文件(數據)設置同步機構。
1. 二進制指數補償算法
多個CPU在對共享數據結構互斥訪問時,若是該數據結構已被佔用,就須要不斷地對鎖進行測試,形成總線流量的增大。
2. 待鎖CPU等待隊列機構
如何及時發現鎖空閒,另外一種同步機構——鎖等待隊列機構很好地解決了這一問題。這種機構的核心思想是:爲每個CPU配置一個用於測試的私有鎖變量和一個記錄待鎖CPU的待鎖清單,存放在其私有的高速緩存中。
1. 時間郵戳定序機構(Timestamp Ordering Mechanism)
對時間郵戳定序機構最基本的要求是,在系統中應具備惟一的、由單一物理時鐘驅動的物理時鐘體系,確保各處理機時鐘間的嚴格同步。該定序機構的基本功能是:
(1) 對全部的特殊事件,如資源請求、通訊等,加印上時間郵戳;
(2) 對每一種特殊事件,只能使用惟一的時間郵戳;
(3) 根據事件上的時間郵戳,定義全部事件的全序。
2. 事件計數(Event Counts)同步機構
1) wait(E,V)
每當進程要進入臨界區以前,先執行await操做,若是E ,將執行進程插入到EQ隊列,並從新調度;不然進程繼續執行。
2) dvance(E)
每當進程退出臨界區時,應執行advance(E)操做,使E值增1。若是EQ隊列不空,則進一步檢查隊首進程的V值;若E=V,則喚醒該進程。
該算法是最先的分佈式進程同步算法,是利用事件排序的方法對要求訪問臨界資源的所有事件進行排序,按照FCFS 次序對事件進行處理。
該算法屬於分佈式同步算法,是將全部進程組成一個邏輯環(Logical Ring),系統中設置一個象徵存取權力的令牌(Token),它是一種特定格式的報文,在進程所組成的邏輯環中,不斷地循環傳遞,得到令牌的進程,纔有權力進入臨界區,訪問共享資源。
在多處理機系統中,進程的調度與系統結構有關。例如,在同構型系統中,因爲全部的處理機都是相同的,於是可將進程分配到任一處理機上運行; 但對於非對稱多處理機系統,則只能把進程分配到適合於它運行的處理機上去執行。
1. 任務流時間
把完成任務所須要的時間定義爲任務流時間,例如,如圖10-6所示,圖中有三臺處理機P1~P3和五個任務T1~T5,調度從時間0開始,共運行了7個時間單位,在處理機P1上運行任務T1和T2,分別須要5個和1.5個時間單位;在處理機P2上運行任務T2和T1,分別用了5個和2個時間單位;在處理機P3上運行任務T三、T4和T5,每個都須要2個時間單位。所以,完成任務T1共須要5 個時間單位,而完成任務T2共須要5 .5 .5個時間單位。
圖10-6 任務流和調度流示意圖
2. 調度流時間
在多處理機系統中,任務能夠被分配到多個處理機上去運行。一個調度流時間是系統中全部處理機上的任務流時間的總和。在如圖10-6所示的例子中,在三臺處理機上,調度流時間=T1流+T2流+T3流+T4流+T5流=7+6.5+2+2+2=
19.5(個時間單位)。
3. 平均流
平均流等於調度流時間除以任務數。平均流時間越小,表示任務佔用處理機與存儲器等資源的時間越短,這不只反應了系統資源利用率高,並且還能夠下降任務的機時費用。更爲重要的是,還可以使系統有更充裕的時間處理其它任務,有效地提升了系統的吞吐量。所以,最少平均流時間就是系統吞吐率的一個間接度量參數。
4. 處理機利用率
處理機的利用率等於該處理機上任務流之和除以最大有效時間單位。在如圖10-7所示的例子中,最大有效時間單位爲7.0,三臺處理機P一、P二、P3的空閒時間分別爲0.五、0.0和1.0,忙時間分別爲6.五、7.0、6.0,它們爲各處理機上的任務流之和。由此能夠獲得P一、P二、P3的處理機利用率分別爲0.9三、1.00和0.86。處理機平均利用率=(0.93+1.00+0.86)÷3
=0.93。
5. 加速比
加速比等於各處理機忙時間之和除以並行工做時間,其中,各處理機忙時間之和,至關於單機工做時間,在上例中爲19.5個時間單位;並行工做時間,則至關於從第一個任務開始到最後一個任務結束所用的時間,在上例中爲7個時間單位。由此獲得加速比爲19.5個時間單位/7個時間單位。
6. 吞吐率
吞吐率是單位時間(例如每小時)內系統完成的任務數。能夠用任務流的最小完成時間來度量系統的吞吐率。吞吐率的高低與調度算法有着十分密切的關係,一般具備多項式複雜性的調度算法是一個高效的算法。而具備指數複雜性的調度算法則是一個低效算法。
1. 對稱多處理機系統中的進程分配方式
在SMP系統中,全部的處理機都是相同的,於是可把全部的處理機做爲一個處理機池(Processor pool),由調度程序或基於處理器的請求,將任何一個進程分配給池中的任何一個處理機去處理。對於這種進程分配,可採用如下兩種方式之一。
1) 靜態分配(Static Assigenment)方式
2) 動態分配(Dynamic Assgement)方式
2. 非對稱MPS中的進程分配方式
對於非對稱MPS,其OS大多采用主—從(MasterSlave)式OS,即OS的核心部分駐留在一臺主機上(Master),而從機(Slave)上只是用戶程序,進程調度只由主機執行。每當從機空閒時,便向主機發送一索求進程的信號,而後,便等待主機爲它分配進程。在主機中保持有一個就緒隊列,只要就緒隊列不空,主機便從其隊首摘下一進程分配給請求的從機。從機接收到分配的進程後便運行該進程,該進程結束後從機又向主機發出請求。
1. 自調度(Self-Scheduling)方式
1) 自調度機制
在多處理器系統中,自調度方式是最簡單的一種調度方式。它是直接由單處理機環境下的調度方式演變而來的。在系統中設置有一個公共的進程或線程就緒隊列,全部的處理器在空閒時,均可本身到該隊列中取得一進程(或線程)來運行。
2) 自調度方式的優勢
自調度方式的主要優勢表現爲:首先,系統中的公共就緒隊列可按照單處理機系統中所採用的各類方式加以組織;其調度算法也可沿用單處理機系統所用的算法,亦即,很容易將單處理機環境下的調度機制移植到多處理機系統中,故它仍然是當前多處理機系統中較經常使用的調度方式。其次,只要系統中有任務,或者說只要公共就緒隊列不空,就不會出現處理機空閒的狀況,也不會發生處理機忙閒不均的現象,於是有利於提升處理機的利用率。
3) 自調度方式的缺點
自調度方式的缺點不容忽視,主要表現以下:
(1) 瓶頸問題。
(2) 低效性。
(3) 線程切換頻繁。
2. 成組調度(Gang Scheduling)方式
1) 面向全部應用程序平均分配處理器時間
假定系統中有N個處理機和M個應用程序,每一個應用程序中至多含有N個線程,則每一個應用程序至多可有1/M的時間去佔有N個處理機。例如,有4臺處理器及兩個應用程序,其中,應用程序A中有4個線程,應用程序B中有一個線程。這樣,每一個應用程序可佔用4臺處理機一半(1/2)的時間。
圖10-7 兩種分配處理機時間的方法
2) 面向全部線程平均分配處理機時間
因爲應用程序A中有4個線程,應用程序B中只有1個線程,所以,應爲應用程序A分配4/5的時間,只爲應用程序B分配1/5的時間,如圖10-7(b)所示。此時,將只有15%的處理機時間被浪費。可見,按線程平均分配處理機時間的方法更有效。
3. 專用處理機分配(Dedicated Processor Assigement)方式
1989年Tucker提出了專用處理機分配方式。該方式是指在一個應用程序的執行期間,專門爲該應用程序分配一組處理機,每個線程一個處理機。這組處理機僅供該應用程序專用,直至該應用程序完成。很明顯,這會形成處理機的嚴重浪費。
圖10-8 線程數對加速比的影響
4. 動態調度
該調度方式容許進程在執行期間動態地改變其線程的數目。這樣,操做系統和應用程序可以共同地進行調度決策。操做系統負責把處理機分配給做業,而每一個做業負責將分配到的處理機再分配給本身的某一部分可運行任務。
在這種方法中,操做系統的調度責任主要限於處理機的分配,並遵循如下的原則:
(1) 空閒則分配。
(2) 新做業絕對優先。
(3) 保持等待。
(4) 釋放即分配。
1. 死鎖的類型
在多處理機系統中,死鎖能夠分紅資源死鎖和通訊死鎖。前者是由於競爭系統中可重複使用的資源(如打印機、磁帶機、存儲器等)時,因爲進程的推動順序不當引發的。
2. 死鎖的檢測和解除
1) 集中式檢測
在每臺處理機上都有一張進程資源圖,用於描述進程及其佔有資源的情況,在負責控制的中心處理機上,配置一張整個系統的進程資源圖,並設置一個檢測進程,負責整個系統的死鎖檢測。當檢測進程檢測到環路時,就選擇停止環路中的一個進程,以解決死鎖。
2) 分佈式檢測
分佈式檢測是經過系統中競爭資源的各個進程間的相互協做,實現對死鎖的檢測,無需設置一個檢測進程,專門用於對全局資源使用狀況進行檢測。
計算機網絡是指經過數據通訊系統把地理上分散的自主計算機系統鏈接起來,以達到數據通訊和資源共享目的的一種計算機系統。自主計算機是指具備獨立處理能力的計算機。可見,計算機網絡是在計算機技術和通訊技術高度發展的基礎上相結合的產物,是多個處理機經過通訊線路互連而構成的鬆散耦合系統,通訊系統爲計算機之間的數據傳送提供最重要的支持。
1. 計算機網絡的組成
計算機網絡從構造的物理結構而言,是經過包括星形、樹形、公用總線形、環形和網狀形等不一樣的拓撲結構,將地理上分散的計算機鏈接起來的網絡。而從邏輯結構而言,計算機網絡是由三個部分組成:
(1) 通訊子網:
(2) 資源子網:
(3) 網絡協議:
2. 網絡協議
網絡協議是一組控制數據交互過程的通訊規則,規定了通訊雙方所交換數據(控制信息)的格式和時序。網絡協議的三要素分別是:
(1) 語義
(2) 語法
(3) 時序
3. 互連網協議IP v4和IP v6
1) P v4協議
IP v4是早期在Internet上使用的網絡互連協議,可利用它來實現網絡互連,爲此,IP v4協議應解決三個問題:
① 尋址
② 分段和從新組裝
③ 源路由選擇
2) P v6協議
IP v6協議繼承了IP v4協議的一切優勢,而針對其不足之處作了多方面的修改,使之能更好地知足當今Internet網絡的須要。
4. 傳輸層協議 TCP和UDP
1) 傳輸控制協議TCP
TCP提供了面向鏈接的、可靠的端-端通訊機制。所謂可靠,是指即便網絡層(通訊子網)出現了差錯,TCP協議仍能正確地控制鏈接的創建、數據的傳輸和鏈接的釋放。此外,在進行正常的數據交換時也要有流量控制,即控制發方發送數據的速度不該超過接收方接收數據的能力。
2) 用戶數據報協議UDP
若是所傳輸的數據並不那麼重要,可考慮利用UDP協議來傳輸數據。該協議是一種無鏈接的、不可靠的協議。它無需在數據傳送以前先創建端-端之間的鏈接,也就不要拆除鏈接。在數據傳送過程當中,無需對傳送的數據進行差錯檢測。換而言之,它是以一種比較簡單的方式來傳送數據,於是有效地提升了傳輸速率。
5. 網絡體系結構
爲了簡化對複雜的計算機網絡的研究、設計和分析工做,通常把計算機網絡的功能分紅若干層。層次結構就是指把一個複雜的系統設計問題分解成多個井井有條的局部問題,並規定每一層次所必須完成的功能。
圖10-9 OSI七層模型
1. 網絡操做系統及其特徵
網絡操做系統(Network Operating System)是在計算機網絡環境下,對網絡資源進行管理和控制,實現數據通訊及對網絡資源的共享,爲用戶提供與網絡資源之間接口的一組軟件和規程的集合。網絡操做系統創建在網絡中計算機各自不一樣的單機操做系統之上,爲用戶提供使用網絡系統資源的橋樑。
2. 網絡操做系統的分類
1) 對等模式(peer-to-peer model)
在該模式的操做系統管理下,網絡上的每臺計算機處於平等的地位,系統中不設專用服務器,任何一臺計算機和其它計算機之間沒有從屬關係。原則上網絡中的任意兩個節點之間都直接通訊,系統中的每一臺計算機都能訪問計算機上的共享資源,每臺聯網計算機都分前臺方式和後臺方式工做,前臺爲本地服務,後臺爲其它結點的網絡用戶服務。
2) 工做站/服務器模式(Workstation/Server model)
該模式將網絡中的節點計算機分爲兩類:網絡服務器(Server)和網絡工做站(Workstation)。服務器以集中方式管理網絡中的共享資源,爲工做站提供服務,服務器再也不做其它用途。工做站爲本地用戶訪問本地資源和訪問網絡資源服務。
3) 客戶/服務器模式(Client/Server model)
在計算機網絡中,從硬件角度看,客戶/服務器模式是指,某項任務分配在兩臺或多臺機器上,其中用於接受請求並提供各類資源、數據和服務的計算機稱爲服務器,而面向用戶,提供用戶接口和前端處理,並向服務器提出資源、數據和服務請求的計算機稱爲客戶機。
4) 瀏覽器/服務器模式(Browser/Server model)
客戶/服務器模式可分爲兩層C/S模式和三層C/S模式兩種。傳統的小型局域網採用兩層客戶/服務器模式,在大型網絡中一般採用三層C/S模式。三層C/S模式,即將客戶機鏈接到一臺Web服務器(並配上瀏覽器軟件,用於實現客戶與Web服務器之間的交互)上,即在客戶機與服務器之間再增長一臺Web服務器,它至關於前面所介紹的應用服務器。
1. 數據通訊
爲了實現網絡中計算機之間的數據通訊,網絡OS應具備以下基本功能:
(1) 鏈接的創建與拆除。
(2) 報文的分解與組裝。
(3) 傳輸控制。
(4) 流量控制。
(5) 差錯的檢測與糾正。
2. 應用互操做
爲了實現多個網絡之間的通訊和資源共享,不只須要將它們從物理上鍊接在一塊兒,並且還應使不一樣網絡的計算機系統之間能進行通訊(信息互通)和實現資源共享(信息互用)。爲此,在網絡OS中必須提供應用互操做功能,以實現「信息互通性」及「信息互用性」。
(1) 信息的互通性。
(2) 信息的「互用性」。
3. 網絡管理
1) 網絡管理的目標
(1) 加強網絡的可用性,如經過預測及時地檢測出網絡故障,爲關鍵設備配置冗餘的設備等;
(2) 提升網絡的運行質量,隨時監測網絡中的負荷及流量;
(3) 提升網絡的資源利用率,長期監測網絡,對網絡資源進行合理的調整;
(4) 保障網絡數據的安全性,採起多級安全保障機制;
(5) 提升網絡的社會和經濟效益。
2) 網絡管理的功能
ISO爲網絡管理定義了差錯、配置、性能、計費和安全五大管理功能:
(1) 配置管理
(2) 故障管理
(3) 性能管理
(4) 安全管理
(5) 計費管理
分佈式文件系統是配置在分佈式系統上的,所以,本節在介紹分佈式文件系統這個主題前,先對所涉及的分佈式系統的知識和概念作個扼要的介紹。
1. 分佈式系統的特徵
分佈式系統(distributed system),是基於軟件實現的一種多處理機系統,是多個處理機經過通訊線路互連而構成的鬆散耦合系統,系統的處理和控制功能分佈在各個處理機上。換言之,是利用軟件系統方式構建在計算機網絡之上的一種多處理機系統。
與前面所述的多種多處理機系統(包括多處理機和多計算機等)相比,分佈式系統的不一樣在於:① 分佈式系統中的每一個節點都是一臺獨立的計算機,並配置有完整的外部設備;② 分佈式系統中節點的耦合程度更爲分散,地理分佈區域更加廣闊;③ 分佈式系統中的每一個節點能夠運行不一樣的操做系統,每一個節點擁有本身的文件系統,除了本節點的管理外,還有其它多個機構對其實施管理。
對分佈式系統有不少不一樣的定義,好比:「一個分佈式系統是一些獨立的計算機集合,可是對這個系統的用戶來講,系統就像一臺計算機同樣」,或者,「分佈式系統是能爲用戶自動管理資源的網絡操做系統,由它調用完成用戶任務所須要的資源,而整個網絡像一個大的計算機系統同樣對用戶是透明的。」等等,概括起來,分佈式系統應具備如下幾個主要特徵:
(1) 分佈性。
(2) 透明性。
(3) 同一性。
(4) 全局性。系
2. 分佈式系統的優勢
分佈式系統與集中式系統相比具備如下一些優勢:
(1) 計算能力強。
(2) 易於實現共享。
(3) 方便通訊。
(4) 可靠性高。
(5) 可擴充性好。
3. 分佈式操做系統
分佈式操做系統是配置在分佈式系統上的公用操做系統,以全局的方式對分佈式系統中的全部資源進行統一管理,能夠直接對系統中地理位置分散的各類物理和邏輯資源進行動態的分配和調度,有效地協調和控制各個任務的並行執行,協調和保持系統內的各個計算機間的信息傳輸及協做運行,並向用戶提供一個統一的、方便的、透明的使用系統的界面和標準接口。一個典型的例子是萬維網(World Wide Web),在萬維網中,全部的操做只經過一種界面——Web頁面。
分佈式操做系統除了涵蓋單機操做系統的主要功能外,還應該包括:
(1) 通訊管理功能。
(2) 資源管理功能。
(3) 進程管理功能。
1. DFS的實現方式
DFS有多種實現方式,通常分爲如下兩類:
1) 共享文件系統方式(shared file system approach)
該方式也稱專用服務器方式。相似於本地文件系統使用樹形目錄結構,管理本地計算機存儲設備上的文件方式。共享文件系統方式也採用一個邏輯樹的結構,對整個系統中的文件系統進行管理。
2) 共享磁盤方式(shared disk approach)
該方式也稱爲無服務器方式。在這種方式中,系統中沒有專門的文件服務器,而是配置了一個共享磁盤(通常爲高速磁盤,如IBM SSA),並將其與主機、客戶機都鏈接在內部的高速網絡(如光通道)上,主機和客戶機都將共享磁盤做爲它們的存儲設備,直接以盤塊方式讀寫磁盤上的文件,實現共享。
2. 基本要求
相對於LFS,DFS除了大容量的要求外,還有不少基本要求:
(1) 透明性。
(2) 高性能和高可靠性。
(3) 容錯性。
(4) 安全性。
(5) 一致性。
1. 命名
如前面章節所述,對於OS管理的存儲資源,文件系統經過抽象,屏蔽了對物理設備的操做以及資源管理的細節,並向用戶提供統一的、對象化的訪問接口。
2. 共享語義
對於DFS,須要保證多個客戶機併發訪問時的數據一致性,所以,當多個客戶共享同一個文件時,必須對客戶機和服務器之間的交互協議精確處理,即精肯定義讀和寫的語義。
3. 租賃協議
租賃協議是一個比較具備表明性的一致性訪問協議。當客戶機向服務器發出一個讀請求時,不只收到所請求的數據,還會收到一個租賃憑據。該憑據附帶一個有效期,保證服務器在該有效期內不會對客戶機收到的數據進行更新。
1. 緩存和遠程服務的比較
(1) 使用緩存時,大量的遠程訪問可轉爲對本地的緩存訪問,所以而得到的服務速度與本地訪問的同樣快。
(2) 使用緩存時,服務器的負載和網絡通訊量都減小了,擴充能力增強了。而在使用遠程服務方法時,每次遠程訪問都是跨過網絡處理的,明顯增長了網絡通訊量和服務器負載,引發性能降低。
(3) 緩存時,就網絡總開銷而言,與遠程服務針對個別請求一系列應答的傳輸開銷相比,緩存採用以整個文件或文件的若干個頁面這樣的大批數據傳輸方式時,開銷仍是要低不少。
(4) 緩存的主要缺點是一致性問題。在針對不常常寫入的訪問模式中,緩存方法是優越的;但在頻繁寫的狀況下,用於解決一致性問題的機制反而致使在性能、網絡通訊量和服務器負載等方面的大量開銷。
(5) 在用緩存做爲遠程訪問方法的系統中,仿真集中式系統的共享語義是很困難的。使用遠程服務時,服務器將全部訪問串行化,所以可以實現任何集中的共享語義。
(6) 機器間的接口不一樣,遠程服務方式僅僅是本地文件系統接口在網絡上的擴展,機器間的接口就是本地客戶機和文件系統之間的接口。而緩存方式中,數據是在服務器和客戶機之間總體傳輸,機器間的接口與上級的用戶接口是不一樣的。
2. 緩存的粒度和位置
1) 緩存的粒度
在DFS中,緩存的數據粒度(即數據單元)能夠是文件的若干塊,也能夠是若干個文件,乃至整個文件系統。
2) 緩存的位置
在一個各自有主存和磁盤的客戶-服務器系統中,有四個地方能夠用來存儲文件或存儲部分文件:服務器磁盤、服務器主存、客戶機磁盤或者客戶機主存。
存儲全部文件最直接的位置是在服務器磁盤上,使用磁盤緩存最明顯的優勢就是可靠性不會由於系統的故障而丟失。
3. 緩存的更新
對於緩存中更新的數據塊,選擇什麼時間和方式將其寫回服務器,對系統的性能和可靠性具備關鍵性的影響。
4. 數據一致性
對於本地緩存的數據副本與服務器中的主副本,客戶機須要進行有效性檢查,判斷它們是否一致後才能使用。若是不一致,則代表本地緩存的數據已通過時,那麼這些數據就不能爲客戶機提供數據訪問服務,須要進行更新。
1. 無狀態服務和有狀態服務
當客戶機對遠程文件進行訪問時,有關被訪問的文件、目錄和客戶機的信息等, 在服務器端是否須要進行跟蹤、檢查和保存等處理,存在着兩種策略:
(1) 有狀態服務(stateful file service):
(2) 無狀態服務(stateless file service):
2. 容錯性
有關DFS的容錯性環境,定義了三種文件屬性:
(1) 可恢復性
(2) 堅決性
(3) 可用性
3. 可用性與文件複製
文件複製是保證可用性的一個冗餘措施。這裏的文件複製不是前面章節所講的SFT三級容錯技術中的磁盤鏡像(同一臺機器不一樣介質上的文件複製),而是在DFS系統不一樣節點的主機磁盤上的複製。
習 題 8:
1. 爲何說依靠提升CPU時鐘頻率提升計算機運算速度的方法已接近了極限?
2. 試說明引入多處理機系統的緣由有哪些。
3. 什麼是緊密耦合MPS和鬆弛耦合MPS?
4. 何謂UMA多處理機結構? 它又可進一步分爲哪幾種結構?
5. 試說明基於單總線的SMP結構和多層總線的SMP結構。
6. 試說明使用單級交叉開關的系統結構和使用多級交換網絡的系統結構。
7. 什麼是NUMA多處理機系統結構? 它有何特色?
8. 爲何要爲每一個CPU配置高速緩衝區? CC-NUMA和NC-NUMA所表明的是什麼?
9. 試說明多處理機操做系統的特徵。
10. 試比較在單處理機OS和多處理機OS中的進程管理。
11. 試比較在單處理機OS和多處理機OS中的內存管理。
12. 何謂中心同步實體、集中式同步機構和非集中式同步機構?
13. 集中式同步算法具備哪些特徵和缺點?
14. 一個徹底分佈式同步算法應具備哪些特徵?
15. 如何利用自旋鎖來實現對總線的互斥訪問? 它與信號量的主要差異是什麼?
16. 爲何要引入讀—拷貝—修改鎖(RCU)? 它對讀者和寫者分別有何影響?
17. 何謂二進制指數補償算法? 它所存在的主要問題是什麼?
18. 時間郵戳定序機構和事件計數的做用是什麼?
19. 什麼是任務流時間和調度流時間? 請舉例說明之。
20. 試比較多處理機系統中靜態分配方式和動態分配方式。
21. 何謂自調度方式? 該方式有何優缺點?
22. 何謂成組調度方式? 按進程平均分配處理器和按線程平均分配處理器時間的方法,哪一個更有效?
23. 試說明採用專用處理器分配方式的理由。
24. 在動態調度方式中,調度的主要責任是什麼? 在調度時應遵循哪些原則?