SMP對稱多處理器技術(shù)是提高系統(tǒng)處理能力的一種方法,單個CPU只能處理一個線程,如果有許多線程需要執(zhí)行, CPU的數(shù)量必然是一個瓶頸,只能通過提高CPU頻率提高處理性能。MP多處理技術(shù)使用多個CPU能夠協(xié)同工作,并行處理,每個CPU在執(zhí)行隊列中選取一個線程執(zhí)行。MP系統(tǒng)依據(jù)資源共享的方式,有以下類型:
1、松耦合的多處理技術(shù)
許多不同的系統(tǒng)通過網(wǎng)絡(luò)通信技術(shù)進(jìn)行互聯(lián),通常通過軟件技術(shù)實現(xiàn),例如IBM的SP并行系統(tǒng)、使用群集軟件HACMP的并行版PSSP,建立起松耦合的多處理結(jié)構(gòu)。不同的系統(tǒng)被稱為節(jié)點,可以互相共享文件、存儲,但并不共享CPU和內(nèi)存,通過專用高速網(wǎng)絡(luò)進(jìn)行節(jié)點間通信,利用軟件控制任務(wù)分發(fā)和并行處理。
2、緊耦合的多處理技術(shù)
多個CPU之間共享部分內(nèi)存,但每個CPU都有自己的獨立內(nèi)存和總線結(jié)構(gòu),通過一個操作系統(tǒng)控制不同的處理器之間的協(xié)同工作,一般有一個主處理器,管理其他從處理器,如果此主處理器不能工作,則由第二候選處理器升級為主處理器。
3、對稱多處理技術(shù)
多個CPU之間沒有區(qū)別,平等地訪問內(nèi)存、外設(shè)、一個操作系統(tǒng)。操作系統(tǒng)管理著一個隊列,每個處理器依次處理隊列中的進(jìn)程。如果兩個處理器同時請求訪問一個資源,例如,同一段內(nèi)存地址,由硬件、軟件的鎖機(jī)制去解決資源的爭用問題。
IBM pSeries采用的就是SMP結(jié)構(gòu),在AIX中,每個處理器依據(jù)其物理位置,依次標(biāo)記為:proc0,proc1...不同的處理器在正常運行的時候沒有區(qū)別,但是在機(jī)器啟動的時候,通常由proc0 控制引導(dǎo)過程,如果必要,也可以控制系統(tǒng)內(nèi)核從其他的處理器引導(dǎo)系統(tǒng)。
由于SMP需要協(xié)調(diào)各個處理器之間的工作,因此當(dāng)處理器數(shù)量很多,或者執(zhí)行任務(wù)的并行度很差時,CPU的數(shù)量增加,則系統(tǒng)性能提高的比例遞減,也就是所謂的線性度不好。線性度與CPU設(shè)計、操作系統(tǒng)架構(gòu)及任務(wù)類型關(guān)系密切,每個計算機(jī)廠商都有自己的一套理論來支持自己的設(shè)計體系,并沒有那一種理論可以占據(jù)絕對的優(yōu)勢。