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