[發(fā)明專利]一種多核CPU加載Linux操作系統(tǒng)的方法及系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201010244460.0 | 申請(qǐng)日: | 2010-08-03 |
| 公開(公告)號(hào): | CN101901159A | 公開(公告)日: | 2010-12-01 |
| 發(fā)明(設(shè)計(jì))人: | 李弘博 | 申請(qǐng)(專利權(quán))人: | 中興通訊股份有限公司 |
| 主分類號(hào): | G06F9/445 | 分類號(hào): | G06F9/445;G06F15/16 |
| 代理公司: | 北京銀龍知識(shí)產(chǎn)權(quán)代理有限公司 11243 | 代理人: | 許靜 |
| 地址: | 518057 廣東省深圳市南山*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 多核 cpu 加載 linux 操作系統(tǒng) 方法 系統(tǒng) | ||
技術(shù)領(lǐng)域
本發(fā)明涉及采用Linux操作系統(tǒng)的多核CPU領(lǐng)域,特別涉及一種多核CPU加載Linux操作系統(tǒng)的方法及系統(tǒng)。
背景技術(shù)
目前多核CPU的應(yīng)用越來越廣泛,與傳統(tǒng)的單核CPU相比,多核CPU具有更強(qiáng)的并行處理能力、更高的計(jì)算密度和更低的功耗。在這種架構(gòu)中,多核CPU運(yùn)行操作系統(tǒng)的單一副本,共享高速緩存、內(nèi)存、I/O總線等資源。
目前Linux操作系統(tǒng)的運(yùn)轉(zhuǎn)方式主要有三種:非對(duì)稱多處理(AMP,Asymmetric?multiprocessing)、對(duì)稱多處理(SMP,Symmetric?multiprocessing)、混合多處理(BMP,Bound?multiprocessing)。非對(duì)稱多處理的方式中,每個(gè)CPU內(nèi)核運(yùn)行一個(gè)獨(dú)立的操作系統(tǒng)或同一操作系統(tǒng)的拷貝。對(duì)稱多處理的方式中,由一個(gè)操作系統(tǒng)統(tǒng)一管理所有的CPU內(nèi)核,進(jìn)程并不與某一個(gè)特定內(nèi)核相綁定。混合多處理的方式基于對(duì)稱多處理,由一個(gè)操作系統(tǒng)統(tǒng)一管理所有的CPU內(nèi)核,但是進(jìn)程可以與某一個(gè)特定內(nèi)核相綁定。
這三種方式各有優(yōu)缺點(diǎn)。非對(duì)稱多處理主要用于傳統(tǒng)的單核CPU運(yùn)行環(huán)境,一個(gè)進(jìn)程總是運(yùn)行在同一個(gè)內(nèi)核中,在多核CPU上,容易導(dǎo)致一個(gè)內(nèi)核要么沒有被充分利用,要么被利用過度。對(duì)稱多處理由操作系統(tǒng)實(shí)時(shí)監(jiān)控系統(tǒng)的運(yùn)行狀態(tài),在多核之間合理分配資源,使負(fù)載能夠均勻地分配到所有內(nèi)核之上,但可能導(dǎo)致一部分系統(tǒng)資源浪費(fèi)在頻繁的進(jìn)程切換之上。混合多處理吸取了前兩種方式的優(yōu)點(diǎn),在以對(duì)稱多處理方式運(yùn)行的Linux操作系統(tǒng)上,通過進(jìn)程綁定可以使進(jìn)程只能運(yùn)行在同一個(gè)內(nèi)核中。
本發(fā)明的發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中發(fā)現(xiàn):在采用多核CPU的領(lǐng)域,通常將多核劃分為控制CPU和數(shù)據(jù)CPU。控制CPU是在多個(gè)CPU以SMP或BMP方式運(yùn)行Linux操作系統(tǒng)時(shí),用于處理較復(fù)雜的業(yè)務(wù),并控制、維護(hù)、管理整個(gè)操作系統(tǒng)的CPU。控制CPU運(yùn)行有關(guān)系統(tǒng)管理方面的進(jìn)程,支持完整的Linux操作系統(tǒng),能夠處理所有復(fù)雜的業(yè)務(wù),但性能較差。數(shù)據(jù)CPU只專注于數(shù)據(jù)處理,注重的是處理的性能,要求一定時(shí)間內(nèi)處理盡可能多的業(yè)務(wù),往往只運(yùn)行一個(gè)任務(wù)。故而對(duì)于某些注重性能的數(shù)據(jù)處理,需要放到數(shù)據(jù)核上去執(zhí)行。這就對(duì)Linux操作系統(tǒng)在多核CPU上的加載提出了兩點(diǎn)要求:
1)所有內(nèi)核之間共享內(nèi)存、全局?jǐn)?shù)據(jù)結(jié)構(gòu)、API等資源;
2)控制CPU、數(shù)據(jù)CPU之間不能相互干擾。
上述要求1)可通過SMP方式實(shí)現(xiàn)。上述要求2)理論上可通過BMP方式實(shí)現(xiàn),即采用進(jìn)程與CPU綁定的方式,但利用這種BMP的方式實(shí)現(xiàn)時(shí)需要將所有的進(jìn)程一一和CPU進(jìn)行綁定,這樣操作起來十分繁瑣、復(fù)雜,維護(hù)起來也十分困難,且降低了系統(tǒng)的可維護(hù)性、可移植性、和可用性。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種改進(jìn)的多核CPU加載Linux操作系統(tǒng)的方法,該方法使得控制核和數(shù)據(jù)核之間不會(huì)相互影響,且無需將所有的進(jìn)程一一與CPU進(jìn)行綁定。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種多核CPU加載Linux操作系統(tǒng)的方法,所述多核CPU包括:至少一個(gè)控制核和至少一個(gè)數(shù)據(jù)核,其中,包括如下步驟:
步驟A,所述至少一個(gè)控制核中的一個(gè)作為主核加載Linux操作系統(tǒng),并在初始化過程中,喚醒所有從核,使所有從核進(jìn)入預(yù)定的死循環(huán)狀態(tài);
步驟B,所述主核設(shè)置CPU位圖,所述CPU位圖中只包括控制核;
步驟C,所述主核執(zhí)行Linux操作系統(tǒng)的對(duì)稱多處理初始化,并當(dāng)所述CPU位圖中包括除所述主核外的其它控制核時(shí),按照對(duì)稱多處理的方式對(duì)所述除主核外的其它控制核進(jìn)行二次喚醒;
步驟D,所述主核使所述至少一個(gè)數(shù)據(jù)核中的每個(gè)進(jìn)入各自的入口函數(shù)。
優(yōu)選地,所述的方法,其中,所述步驟C之后,所述步驟D之前還包括:
所述主核分配內(nèi)存空間,所述內(nèi)存空間用于作為所述至少一個(gè)數(shù)據(jù)核的堆棧和全局?jǐn)?shù)據(jù)區(qū);
所述主核分別配置所述至少一個(gè)數(shù)據(jù)核中每個(gè)數(shù)據(jù)核的堆棧指針、全局?jǐn)?shù)據(jù)指針和入口函數(shù)。
優(yōu)選地,所述的方法,其中,所述步驟D之后,還包括:
步驟E,所述至少一個(gè)數(shù)據(jù)核中的每個(gè)數(shù)據(jù)核加載預(yù)定的業(yè)務(wù)處理進(jìn)程。
優(yōu)選地,所述的方法,其中,所述步驟D之后,所述步驟E之前,還包括:
所述至少一個(gè)數(shù)據(jù)核中的每個(gè)數(shù)據(jù)核分別進(jìn)入各自的入口函數(shù),并在進(jìn)入各自的入口函數(shù)后,配置本核的中斷、快速重編址緩沖器、和/或異常處理函數(shù)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中興通訊股份有限公司,未經(jīng)中興通訊股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010244460.0/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- LINUX內(nèi)核動(dòng)態(tài)加載方法
- 一種Linux嵌入式系統(tǒng)的安全啟動(dòng)方法
- 一種加快嵌入式Linux系統(tǒng)啟動(dòng)的方法
- Linux文件系統(tǒng)的多點(diǎn)備份和實(shí)時(shí)保護(hù)方法
- 基于硬件的Linux軟件開發(fā)系統(tǒng)及其構(gòu)建方法
- 將VxWorks任務(wù)移植到Linux的方法及裝置
- 一種Linux內(nèi)核接管socket鏈接的方法和裝置
- 一種Linux系統(tǒng)的備份和還原方法
- 一種基于Linux系統(tǒng)盤的寫過濾系統(tǒng)和方法
- 一種基于Linux系統(tǒng)盤的熱插拔方法和系統(tǒng)





