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