張菡
摘 要:20世紀(jì)70年代出現(xiàn)了多處理器系統(tǒng)即MPS,進入90年代中后期,功能較強的主機系統(tǒng)和服務(wù)器幾乎都采用了多處理機系統(tǒng),本文主要介紹了多處理機系統(tǒng)的引入,多處理機系統(tǒng)的類型和多處理機系統(tǒng)的結(jié)構(gòu)這三方面內(nèi)容。
關(guān)鍵詞:多處理機操作系統(tǒng);多處理機類型;多處理機結(jié)構(gòu)
提高計算機系統(tǒng)性能的主要途徑有兩條:一是提高構(gòu)成計算機的元器件運行速度;二是改進計算機系統(tǒng)的體系結(jié)構(gòu),特別是在系統(tǒng)中引入多個處理器或多臺計算機,以實現(xiàn)對信息的高度并行處理。
1 多處理機系統(tǒng)的引入
多處理機系統(tǒng)MPS就是采用并行技術(shù),令多個單CPU同時運行,使總體計算能力比單CPU計算機系統(tǒng)強大得多。引入多處理機系統(tǒng)的原因大致如下:
1.1 CPU時鐘頻率問題
CPU的時鐘頻率受限于信號在介質(zhì)上的傳輸時間,顯然這對縮小元器件體積的要求越來越高。但是,隨著元器件,尤其是CPU體積的縮小,散熱又成了一個棘手的問題。CPU時鐘頻率越高,產(chǎn)生的熱量也越多,散熱問題越難解決。目前在高端的Pentium系統(tǒng)中,CPU散熱器的體積已經(jīng)超過了其本身的體積。可見目前的這種依靠提高CPU時鐘頻率來提高計算機運算速度的方法,已經(jīng)接近了極限。
1.2 增加系統(tǒng)吞吐量
隨著系統(tǒng)中處理機數(shù)目的增加,系統(tǒng)的處理能力也相應(yīng)增強,這可使系統(tǒng)在單位時間內(nèi)完成更多的工作,即增加系統(tǒng)吞吐量。為了能使多個處理機協(xié)調(diào)工作,系統(tǒng)必須為此付出一定的開銷。因此利用n臺處理機運行時所獲得的加速比,并不能達到一臺處理機時的n倍。
1.3 節(jié)省投資
在達到相同處理能力的情況下,與n臺獨立的計算機相比,采用具有n個處理機的系統(tǒng),可以更節(jié)省費用。因為此時的n個處理機可以做在同一個機箱中,使用同一個電源和共享一部分資源。
1.4 提高系統(tǒng)可靠性
在MPS中,通常都具有系統(tǒng)重構(gòu)的功能,即當(dāng)其中任何一個處理機發(fā)生故障時,系統(tǒng)可以進行重構(gòu),然后繼續(xù)運行??梢粤⒓磳⒐收咸幚頇C上所處理的任務(wù)遷移到其他的一個或多個處理機上繼續(xù)處理,保證整個系統(tǒng)仍能正常運行,其影響僅僅表現(xiàn)為系統(tǒng)性能上的少許降低。
2 多處理機系統(tǒng)的類型
對于多處理機系統(tǒng)而言,為了解決某個問題,需要多個CPU協(xié)同處理,彼此之間交換大量的信息。為此必須將這些處理機加以互連。但是不同互連技術(shù)形成了不同類型的系統(tǒng)及軟件組織結(jié)構(gòu)。一般可以從不同角度對多處理機系統(tǒng)的結(jié)構(gòu)進行如下分類:
2.1 緊密耦合MPS和松散耦合MPS
從多處理機之間耦合的緊密程度上,可把MPS分為兩類:
(1)緊密耦合MPS。緊密耦合是通過高速總線或高速交叉開關(guān)來實現(xiàn)多個處理器之間的互連的。系統(tǒng)有兩種實現(xiàn)方式:多處理器共享主存儲器系統(tǒng)和I/O設(shè)備,每臺處理器都可以對整個存儲器進行訪問;將多處理器與多個存儲器分別相連,或?qū)⒅鞔鎯ζ鲃澐譃槿舾蓚€能被獨立訪問的存儲器模塊,每個處理器對應(yīng)一個存儲器模塊,每個處理器只能訪問其所對的存儲器模塊。
(2)松散耦合MPS。在松散耦合MPS中,通常是通過通道或通道線路來實現(xiàn)多臺計算機之間的互連。每臺計算機都有自己的存儲器和I/O設(shè)備,并配置了OS來管理本地資源和在本地運行的進程。因此每一臺計算機都能獨立地工作,必要時可通過通信線路與其他計算機交換信息,以及協(xié)調(diào)它們之間的工作。
2.2 對稱多處理器系統(tǒng)和非對稱多處理器系統(tǒng)
根據(jù)系統(tǒng)中所用處理器相同與否,可將MPS分為兩類:
(1)對稱多處理器系統(tǒng)。在系統(tǒng)中所包含的各處理器單元,在功能和結(jié)構(gòu)上都相同,當(dāng)前絕大多數(shù)的MPS都屬于SMP系統(tǒng)。
(2)非對稱多處理器系統(tǒng)。在系統(tǒng)中有多種類型的處理單元,它們的功能和結(jié)構(gòu)各不相同。系統(tǒng)中只有一個主處理器,有多個從處理器。
3 多處理機系統(tǒng)的結(jié)構(gòu)
由于程序或進程對不同存儲器模塊的讀寫速度可能存在差異,形成了不同的多處理機體系結(jié)構(gòu):UMA多處理機結(jié)構(gòu)和NUMA多處理機結(jié)構(gòu)。
3.1 UMA多處理機結(jié)構(gòu)
所謂UMA即統(tǒng)一內(nèi)存訪問。在這種結(jié)構(gòu)的多處理機系統(tǒng)中,各處理器單元在功能和結(jié)構(gòu)上都是相同的,在處理上沒有主從之分,每個處理機可以訪問不同模塊中的存儲器單元,并且對于每個存儲單元的讀寫速度是相同的,根據(jù)處理機與存儲器模塊的連接方式不同,可以分為以下三種結(jié)構(gòu):基于單總線的SMP結(jié)構(gòu)、使用多層總線的SMP結(jié)構(gòu)、使用單級交叉開關(guān)的系統(tǒng)結(jié)構(gòu)。
3.2 NUMA多處理機結(jié)構(gòu)
所謂NUMA多處理機結(jié)構(gòu)即非統(tǒng)一內(nèi)存訪問。在這種結(jié)構(gòu)的多處理機系統(tǒng),其訪問時間隨存儲字的位置不同而變化,系統(tǒng)中的公共存儲器和分布在所有處理機的本地存儲器共同構(gòu)成了系統(tǒng)的全局地址空間,可被所有的處理機訪問。
NUMA多處理機結(jié)構(gòu)的特點:所有共享存儲器在物理上是分布式的,在邏輯上是連續(xù)的,所有這些存儲器的集合就是全局地址空間,系統(tǒng)中的每一個CPU都可以訪問整個系統(tǒng)的內(nèi)存,但訪問時所使用的指令不同。
參考文獻:
[1]陳向群,向勇,王雷等.Windows操作系統(tǒng)原理(2版)[M].北京:機械工業(yè)出版社,2004.
[2]吳旭光,何軍紅.嵌入式操作系統(tǒng)原理與應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2007.
[3]張堯?qū)W等.計算機操作系統(tǒng)教程[M].北京:清華大學(xué)出版社,2013.