天天看點

【作業系統】知識梳理(十)多處理機作業系統10.1 多處理機系統概述10.2 多處理機程序同步10.3 多處理機排程10.4 網絡作業系統 10.5 分布式檔案系統

10.1 多處理機系統概述

1.多處理機系統的類型

1)緊密耦合MPS和松散耦合MPS

按多個處理機之間的耦合程度,可将MPS分為緊密耦合MPS和松散耦合MPS兩類。

(1)緊密耦合MPS。 緊密耦合MPS通常是通過高速總線或高速交叉開關,來實作多個處理器之間的互連,系統中的所有資源和程序,都由作業系統實施統一控制和管理。 多個處理機可以共享主存儲器,即每個CPU都可以通路整個主存儲器,此時,通路一個存儲器字約需要10ns~50ns。緊密耦合MPS也可以不共享主存儲器,此時,每個CPU隻能通路自己的私有存儲器或存儲器子產品,CPU之間通過消息進行通信,消息傳遞大約需要10 μs~ 50 μs。

(2)松散耦合MPS。松散耦合MPS通常是通過通道或通信線路,來實作多台計算機之間的互連。每台計算機都有自己的存儲器和I/0裝置,并配置了OS來管理本地資源和在本地運作的程序。是以,每一台計算機都能獨立地工作,必要時可通過通信線路與其他計算機交換資訊,消息傳遞的時間一般需要10 ms~ 50 ms。

2)對稱多處理機系統和非對稱多處理機系統

按系統中所用的處理機的功能和結構是否相同,可将MPS分為對稱多處理機系統和非對稱多處理機系統兩類。

(1)對稱多處理機SMP系統。這種系統中,各處理機單元在功能和結構上都是相同的。目前的絕大多數MPS都屬于SMP系統。

(2) 非對稱多處理機ASMP系統。在這種系統中有-一個主處理機,其上配置有作業系統,而其他的處理機則為從處理機,它們執行由主處理機配置設定的任務。

2.多處理機系統的結構

對于共享存儲器的多處理機系統,根據各處理機對存儲器子產品存取速度是否相同,可形成UMA(Uniform Memory Access,統一記憶體通路)和NUMANonuniform-Memory- Access,非統一記憶體通路)兩種多處理機結構。

(1)UMA多處理機。在UMA結構的多處理機系統中,處理機對于每個存儲器單元的讀寫速度是相同的。各個處理機和存儲器之間可通過總線、交叉開關或者多級交換網路進行連接配接。

(2)NUMA多處理機。在NUMA多處理機系統中,擁有多個處理器子產品(也稱為節點),各節點之間通過一條公用總線或互連子產品進行連接配接和資訊互動。系統中的公共存儲器、各處理機的本地存儲器以及節點内的群共享存儲器,共同構成了系統的全部存儲空間,它們都能被所有的處理機通路,但每個處理機對本地存儲器、公共存儲器以及遠端存儲器的讀寫速度是不同的。

3.多處理機作業系統的類型

在多處理機系統中,目前所采用的作業系統主要有以下三種基本類型:

(1)主從式(master-slave)。 主從式系統中,有一台特定的處理機被稱為主處理機,其他處理機則稱為從處理機。作業系統始終隻運作在主處理機上,它負責管理整個系統的資源,并負責為從處理機配置設定任務。從處理機不具有排程功能,隻能運作主處理機配置設定給它的任務。

(2)獨立監督式(separate supervisor system)。這種方式- -般适 用于松散耦合的多處理機系統中。在這種系統中,每個處理機都有自己的專有資源(如存儲器、I/O 裝置和檔案系統等),并且在每個處理機上配置有作業系統,來管理自己的資源,并排程該處理機的程序集合中的程序。

(3)浮動監督式(loating supervisor control mode)。這種方式常用于緊密耦合式的對稱多處理機系統中。這種系統中,在某段時間内可以指定任何一.台(或多台)處理機,作為系統的控制處理機,即所謂“主”處理機(或組),由它(或它們)運作作業系統程式,負責全面管理功能,但根據需要,“主” 處理機是可以浮動的,即從一-台處理機切換到另一台處理機。

10.2 多處理機程序同步

1.自旋鎖

在多處理機作業系統中,常為互斥共享的資源設定一把自旋鎖,該鎖最多隻能被一個核心程序持有。在程序請求相應資源時,它先請求自旋鎖,如果鎖未被占用,那麼程序便能通路相應資源;否則,如果鎖已被其他程序占用,那麼請求鎖的程序會一直循環測試鎖的狀态(即自旋),直到鎖被釋放為止。自旋鎖适合用在互斥資源被占用時間較短的情況下,此時,阻塞并進行程序切換所花費的開銷會比自旋更大,使用自旋鎖的效率就會遠高于需要阻塞的信号量機制。

2.二進制指數補償算法

多個CPU在對共享資料結構互斥通路時,如果該資料結構已被占用,請求者就需要不斷地對鎖進行測試,是以造成總線流量的增大。減少總線資料流量的一個方法是二進制指數補償算法,它在每-一個 CPU對鎖進行再次測試的TSL指令之前插入一個延遲時間,該延遲時間是按照一個TSL指令執行周期的二進制指數方式增加的。例如第一次測試時,發現鎖不空閑,便推遲第二次測試指令的執行時間,等到2'個指令執行周期後再執行,如果第二次測試仍未成功,則将第三次測試指令的執行時間推遲到22個指令執行周期後,......以此類推,直到一個設定的最大值。雖然二進制指數補償算法能有效降低總線上的資料流量,但當鎖被釋放時,可能由于各CPU的測試指令的延遲時間未到,沒有一個CPU會及時地對鎖進行測試,即不能及時地發現鎖的空閑,造成浪費。

3.待鎖CPU等待隊列機構

待鎖CPU等待隊列機構不僅能夠減少總線的資料流量,還可以解決無法及時發現鎖空閑的問題。當多個CPU需要互斥通路某個共享資料結構時,該機構會給未獲得鎖的CPU配置設定一個私有鎖變量,并把它附在占用該共享資料結構的CPU待鎖清單末尾。私有鎖變量存放在相應CPU的私有高速緩存中,是以,CPU 等待私有鎖進行的循環測試不占用總線。當共享資料結構的占有者CPU退出臨界區時,它釋放自己所占有的鎖,同時釋放待鎖清單中的首個私有鎖,進而允許首個待鎖CPU及時地進入臨界區。

4.面包房算法和令牌環算法

面包房算法和令牌環算法均可用來實作分布式程序對臨界資源的互斥通路。面包房算法按照FCFS方式進行服務,當程序Pi請求臨界資源時,它把一條帶時間戳的請求資訊request(Ti, i)發送給系統中的所有程序,然後等待其他程序的回答消息reply(Tj, j)。通過這些消息和其中的時間戳,系統允許首個請求臨界資源的程序進入臨界區。而令牌環算法則把所有的程序組成一一個邏輯環, 并在環中按固定的方向和順序發送一個特定格式的封包(即令牌),獲得令牌的程序有權進入臨界區,當其退出臨界區時,再将令牌繼續傳遞下去,以便其他程序可進入臨界區。

10.3 多處理機排程

1.程序配置設定方式

(1) SMP系統中的程序配置設定方式。在SMP系統中,可采用靜态配置設定方式,為每個處理器設定一個專用就緒隊列,其中的程序固定地配置設定到該處理器上執行;也可采用動态配置設定方式,在系統中設定一個公共的就緒隊列,其中的程序可配置設定到任何一個處理器上執行。

(2) ASMP 系統中的程序配置設定方式。在ASMP系統中,常采用主一從式OS,隻在主處理機上配置OS,由它進行程序排程。從處理機空閑時,便向主處理機發送索求程序的信号,等待主處理機為它配置設定程序。

2.程序(線程)排程方式

多處理機中的程序(線程)排程常采用以下幾種方式:

(1)自排程。系統中有一個公共的程序或線程就緒隊列,所有的處理器在空閑時,都可以自已到該隊列中取得一程序(或線程)來運作。這種方式由單處理機的程序排程方式演變而來,實作簡單,且不會發生處理器忙閑不均的現象。自排程的主要缺點是公共的就緒隊列容易成為系統性能的瓶頸,處理機的高速緩存的使用效率較低,線程切換比較頻繁。

(2) 成組排程。成組排程将一個程序中的-組線程同時配置設定到一組處理機上去運作。這種方式可以顯著地降低排程頻率,減少排程的開銷;另外,由于一組互相合作的線程能同時運作,可有效減少線程的切換次數,改善系統的性能。

(3)專用處理機配置設定。這種方式将屬于一個應用程式的一組線程, 配置設定到一組處理機上,在應用程式未結束之前,這些處理機專用于處理這組線程。專用處理機配置設定可以完全避免程序或線程的切換,進而可大大加速程式的運作。

(4)動态排程。該排程方式允許作業系統和應用程式共同進行排程決策。作業系統負責把處理機配置設定給作業,而每個作業負責将配置設定到的處理機再配置設定給自己的某一個線程。動态排程方式優于成組排程和專用處理機排程方式,但其開銷較大。

10.4 網絡作業系統

1.網絡作業系統分類

按照網絡作業系統的工作模式,可将網絡作業系統分為:

1)基于伺服器模式

最常見的基于伺服器模式為客戶/伺服器(C/S)模式,它将網絡中的各個站點分成伺服器和客戶機兩大類。伺服器是網絡的控制中心,其任務是向客戶提供一種或多種服務,在伺服器中包含了大量的服務程式和服務支撐軟體。客戶則是指使用者用于本地處理和通路伺服器的站點,在客戶中包含了本地處理軟體和通路伺服器上服務程式的軟體接口。這種模式的客戶器可直接與伺服器進行互動,通常稱之為兩層結構的C/S模式,它常用在傳統的小型區域網路中。

Internet采用的是浏覽器/伺服器(B/S)工作模式,它增加了一個Web伺服器,此時的客戶機不是直接去通路Internet 中的(資料庫)伺服器,而是去通路Web伺服器,再由Web伺服器代理客戶機去通路某台(些)(資料庫)伺服器。由于已配上浏覽器軟體的客戶機可以浏覽在Internet中幾乎所有的允許通路的伺服器,是以,這時便把客戶機稱為Web浏覽器,進而形成Web浏覽器、Web伺服器和(資料庫)伺服器的三層的C/S模式。通常把這種三層結構的模式稱為B/S模式。

2)對等模式

采用對等模式時,系統中不設專用伺服器,網絡上的每台計算機處于平等地位,每台計算機既可作為客戶去通路其他站點,又可作為伺服器向其他站點提供服務。此時,每台計算機都分前台和背景方式工作,前台為本地服務,背景為其他結點的網絡使用者服務。

2.網絡作業系統的功能

網絡作業系統應該具有下述幾方面的功能:

(1)資料通信。這是網絡最基本的功能,其主要任務是在源主機和目标主機之間,實作無差錯的資料傳輸。具體功能包括建立和拆除通信鍊路、封包的分解與組裝、傳輸控制、差錯控制、流量控制和路由選擇等。

(2)應用互操作功能。所謂互操作,是指不同的網絡結點間不僅能夠通過同一類型的傳輸協定(如TCP/IP)實作通信,而且還能實作資訊的互用,亦即一個網絡中的使用者能夠去通路另一個網絡檔案系統中的檔案。

(3)網絡管理功能。網絡管理包括網絡配置管理、故障管理、性能管理、安全管理和計費管理,其目的在于最大限度地增加網絡的可用時間,提高網絡裝置的使用率,改善網絡的服務品質,并保障網絡的安全性。

 10.5 分布式檔案系統

1.遠端檔案的通路方法

遠端:檔案的通路方法主要有緩存機制和遠端服務機制兩種方式。緩存機制将遠端伺服器上的檔案複制到本地,以後對檔案的通路便可在本地的副本中進行,更新過的副本需要寫回到遠端伺服器中。遠端服務機制則将客戶機的通路請求發送給伺服器,由伺服器執行通路,并将結果回送給使用者。前一種方式的主要問題是資料一-緻性問題:而後-種方式每次遠端通路都是跨越網絡處理的,會明顯增加網絡通信量和伺服器負擔,引起性能下降。

2.命名

在分布式系統中,檔案和目錄的命名方式主要有以下三種形式:

(1) 主機名+本地名。如檔案名為“/hostlocal-name-path"。 該方案,檔案名中隐含了檔案的位置,而且當檔案需要從一個伺服器移到另一個伺服器時,其檔案名也需随着改變,是以不符合命名的透明性。

(2)将伺服器中的遠端目錄加載到客戶機的本地目錄中。該方案管理複雜度很高,結構混亂,而且安全程度也低,一旦一個伺服器故障,将導緻客戶機上的目錄集的失效。

(3) 全局統一 命名。系統采用統一 的全局命名結構,每個檔案和目錄使用唯一 命名。考慮到不同系統中的一些特殊檔案, 使得該方案實作難度較大。

3.共享語義

在單處理器系統中,多個程序共享檔案時,讀和寫的語義是: 一個寫操作後跟一個讀操作,讀操作将傳回剛寫入的值;若兩個連續的寫操作後,跟一個讀操作,則讀操作将傳回後一個寫入的值。在分布式系統中,若隻有一個檔案伺服器,且不是采用緩存機制通路檔案,則所有的客戶機都将看到同樣的讀寫順序,保證順序一緻性: 若有多個伺服器,或者采用緩存機制通路檔案,則需要精确定義讀和寫的共享語義,以保證客戶機并發通路資料的一緻性。客戶機共享檔案的語義主要有以下幾種:

(1) UNIX語義,檔案上的每個操作對所有程序都是瞬間可見的。

(2) 會話語義,在檔案關閉之前,所有改動隻對作改動的程序本身可見,對其他程序都是不可,見的。

(3)不允許更新檔案,不能進行更改,隻能簡單地進行共享和複制。

(4)事務處理,所有改動以原子操作的方式(順序)發生。

繼續閱讀