專利名稱:一種多操作系統(tǒng)的資源分配方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種多操作系統(tǒng)的資源分配方法和裝置。
背景技術(shù):
隨著計算機技術(shù)的飛速發(fā)展,多核CPU目前得到了日益廣泛的應(yīng)用,許多操作系 統(tǒng)(OS)都支持多個CPU核,比如Linux可以使用服務(wù)器消息塊(SMB)方式支持多CPU核, 多個CPU核共同支持一個操作系統(tǒng)。目前,基于多CPU核的產(chǎn)品,進一步提出了多核雙系統(tǒng)(MCDS,Multi-Core Dual-System)技術(shù),即不同CPU核上運行不同的操作系統(tǒng),這種技術(shù)在軟件特性上容易集 成不同操作系統(tǒng)平臺的業(yè)務(wù)功能,靈活和豐富了軟件的系統(tǒng)架構(gòu),擴展了與第三方合作的 領(lǐng)域和內(nèi)容。MCDS系統(tǒng)模型可以如圖1所示,OSl和0S2分別控制同一個CPU的不同CPU 核,如圖1中所示,OSl占用了 20個CPU核,0S2占用了 12個CPU核。兩個操作系統(tǒng)分別擁 有獨立的內(nèi)存區(qū),獨立運行互不干擾,同時通過共享內(nèi)存區(qū)完成系統(tǒng)間的配置和業(yè)務(wù)交互。由于MCDS技術(shù)中兩個操作系統(tǒng)運行在同一個CPU上面,則需要對硬件資源進行 分配,使每個操作系統(tǒng)都擁有自己的硬件資源。其中,分配給各操作系統(tǒng)的硬件資源包括 CPU核以及內(nèi)存。但是,目前業(yè)界尚沒有提出任何關(guān)于MCDS技術(shù)的多操作系統(tǒng)資源分配方 法。如果按照常規(guī)的分配方式,即為各操作系統(tǒng)固定分配硬件資源,則會存在缺乏可擴展性 和靈活性的缺陷。例如,由于不同設(shè)備的CPU核和內(nèi)存資源是不一樣的,顯然固定分配硬件 資源的方式對于操作系統(tǒng)的設(shè)計帶來一定困難;由于用戶組網(wǎng)是千差萬別的,在某種特殊 應(yīng)用場合下,固定分配的硬件資源可能對于一個操作系統(tǒng)并不足夠使用,而對于另一個操 作系統(tǒng)則出現(xiàn)空閑,顯然,固定分配硬件資源的方式不能使設(shè)備的整體性能達到最優(yōu),缺乏 靈活性。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種多操作系統(tǒng)的資源分配方法,以便于提高資源分配 的可擴展性和靈活性。一種多操作系統(tǒng)的資源分配方法,該方法包括主控操作系統(tǒng)在啟動過程中,指定分配給主控操作系統(tǒng)的CPU核coreO讀取靜態(tài) 存儲器中的資源分配表,觸發(fā)資源分配表中分配給該主控操作系統(tǒng)的其它CPU核進行啟 動;主控操作系統(tǒng)完成啟動后,所述coreO觸發(fā)資源分配表中分配給輔助操作系統(tǒng)的 其中一個CPU核CoreN開始啟動,并將資源分配表信息發(fā)送給所述coreN ;輔助操作系統(tǒng)在啟動過程中,所述coreN按照所述資源分配表信息讀取資源分配 表,觸發(fā)資源分配表中分配給該輔助操作系統(tǒng)的其它CPU核進行啟動。一種多操作系統(tǒng)的資源分配裝置,設(shè)置在CPU核中,該裝置包括資源表讀取單元,用于在所述CPU核被分配給的操作系統(tǒng)啟動過程中,讀取靜態(tài)存儲器中的資源分配表,或者按照接收到的資源分配表信息讀取資源分配表;啟動觸發(fā)單元,用于按照所述資源表讀取單元讀取的資源分配表,觸發(fā)資源分配 表中分配給所述操作系統(tǒng)的其它CPU核進行啟動;在所述操作系統(tǒng)完成啟動后,如果存在 沒有啟動的輔助操作系統(tǒng),則觸發(fā)資源分配表中分配給所述輔助操作系統(tǒng)的其中一個CPU 核開始啟動,并將資源分配表信息發(fā)送給所述輔助操作系統(tǒng)的其中一個CPU核。由以上技術(shù)方案可以看出,在本發(fā)明中各操作系統(tǒng)在啟動過程中實現(xiàn)的硬件資源 分配都是以靜態(tài)存儲器中的資源分配表為依據(jù)的,這就使得修改各操作系統(tǒng)的硬件資源分 配成為可能,只要對靜態(tài)存儲器中的資源分配表進行修改即可實現(xiàn)各操作系統(tǒng)的硬件資源 分配。顯然,這種方式可以適用于各種多核設(shè)備,即使各設(shè)備的CPU核和內(nèi)存資源是千差萬 別的;并且可以根據(jù)實際的資源使用狀況,對各操作系統(tǒng)的硬件資源進行調(diào)整使得設(shè)備的 整體性能達到更優(yōu),相比較固定分配硬件資源的方式大大提高了資源分配的可擴展性和靈 活性。
圖1為MCDS系統(tǒng)模型示意圖;圖2為本發(fā)明提供的設(shè)備啟動過程中實現(xiàn)雙操作系統(tǒng)的資源分配流程圖;圖3為本發(fā)明提供的裝置結(jié)構(gòu)示意圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對 本發(fā)明進行詳細描述。本發(fā)明提供的方法主要包括主控操作系統(tǒng)在啟動過程中,指定分配給主控操作 系統(tǒng)的CPU核CoreO讀取靜態(tài)存儲器中的資源分配表,觸發(fā)資源分配表中分配給該主控操 作系統(tǒng)的硬件資源進行啟動;主控操作系統(tǒng)完成啟動后,所述coreO觸發(fā)資源分配表中分 配給輔助操作系統(tǒng)的其中一個CPU核coreN開始啟動,并將資源分配表信息發(fā)送給所述 coreN;輔助操作系統(tǒng)在啟動過程中,所述CoreN按照所述資源分配表信息讀取資源分配 表,觸發(fā)資源分配表中分配給該輔助操作系統(tǒng)的硬件資源進行啟動。上述方法可以應(yīng)用于雙操作系統(tǒng),也可以應(yīng)用于多操作系統(tǒng)。當應(yīng)用于多操作系 統(tǒng)時,輔助操作系統(tǒng)存在兩個以上。一個輔助操作系統(tǒng)完成啟動后,可以將資源分配表信息 發(fā)送給下一個輔助操作系統(tǒng)觸發(fā)下一個輔助操作系統(tǒng)進行啟動,直至所有輔助操作系統(tǒng)都 完成啟動。本發(fā)明提供的方法中,各操作系統(tǒng)按照資源分配表進行硬件資源的分配。資源分 配表中定義了分配給各操作系統(tǒng)獨享的硬件資源,其中,硬件資源包括內(nèi)存和CPU核。該資源分配表可以以缺省資源分配表的形式在主控操作系統(tǒng)中設(shè)置,主控操作系 統(tǒng)在出廠第一次啟動時,由主控操作系統(tǒng)寫入諸如閃存(Flash)等的靜態(tài)存儲器中。在除 出廠第一次啟動之后的網(wǎng)絡(luò)設(shè)備啟動都從靜態(tài)存儲器中讀取資源分配表,并按照讀取的資 源分配表確定分配給主控操作系統(tǒng)核輔助操作系統(tǒng)的硬件資源。其中,缺省的資源分配表不能夠被修改,可以用于恢復出廠設(shè)置時使用。用戶能 夠?qū)o態(tài)存儲器中的資源分配表進行修改,修改后的資源分配表仍存儲在靜態(tài)存儲器中,例如,用于可以通過命令行修改靜態(tài)存儲器中的資源分配表,調(diào)整資源分配表中分配給各 操作系統(tǒng)的硬件資源。對于修改后的資源分配表只有在設(shè)備重新啟動后才能夠生效,即設(shè) 備重新啟動過程中,各操作系統(tǒng)從靜態(tài)存儲器中讀取到的資源分配表為修改后的資源分配 表,并按照該修改后的資源分配表進行硬件資源的初始化。下面以多核雙操作系統(tǒng)為例,對本發(fā)明提供的方法進行詳細描述。假設(shè)網(wǎng)絡(luò)設(shè)備 的多核CPU上存在兩個操作系統(tǒng)OSl和0S2,其中,OSl為主控操作系統(tǒng),0S2為輔助操作系 統(tǒng)。該網(wǎng)絡(luò)設(shè)備上電后默認從主控操作系統(tǒng)OSl開始啟動。則通過啟動實現(xiàn)雙操作系統(tǒng)的 資源分配過程可以如圖2所示,主要包括以下步驟步驟201 網(wǎng)絡(luò)設(shè)備上電后,OSl從默認的第一 CPU核CoreO開始啟動。步驟202 =CoreO判斷Flash中是否存在有效的資源分配表,如果否,執(zhí)行步驟 203 ;如果是,執(zhí)行步驟204。在網(wǎng)絡(luò)設(shè)備上電后,由主控操作系統(tǒng)開始啟動。在一個網(wǎng)絡(luò)設(shè)備上可以默認設(shè)置 一個CPU核作為第一 CPU核,該第一 CPU核是指定分配給主控操作系統(tǒng)的,主控操作系統(tǒng)從 該第一 CPU核開始啟動,從而完成后續(xù)的操作。為了方便對該實施例的理解,首先對資源分配表進行描述。在該實施例中,資源分 配表中的內(nèi)容為分配給OSl核0S2的資源,其數(shù)據(jù)結(jié)構(gòu)可以如下所示
權(quán)利要求
1.一種多操作系統(tǒng)的資源分配方法,其特征在于,該方法包括主控操作系統(tǒng)在啟動過程中,指定分配給主控操作系統(tǒng)的CPU核CoreO讀取靜態(tài)存儲 器中的資源分配表,觸發(fā)資源分配表中分配給該主控操作系統(tǒng)的其它CPU核進行啟動;主控操作系統(tǒng)完成啟動后,所述coreO觸發(fā)資源分配表中分配給輔助操作系統(tǒng)的其中 一個CPU核coreN開始啟動,并將資源分配表信息發(fā)送給所述coreN ;輔助操作系統(tǒng)在啟動過程中,所述coreN按照所述資源分配表信息讀取資源分配表, 觸發(fā)資源分配表中分配給該輔助操作系統(tǒng)的其它CPU核進行啟動。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述coreO讀取靜態(tài)存儲器中的資源分配 表之前還包括所述coreO判斷靜態(tài)存儲器中是否存在有效的資源分配表,如果是,則繼續(xù) 執(zhí)行所述讀取靜態(tài)存儲器中的資源分配表;否則將主控操作系統(tǒng)中缺省的資源分配表寫入 靜態(tài)存儲器中,繼續(xù)執(zhí)行所述讀取靜態(tài)存儲器中的資源分配表。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述coreO判斷靜態(tài)存儲器是否存在有效 的資源分配表包括所述coreO判斷靜態(tài)存儲器中資源表存在標識是否為預設(shè)的有效值, 如果是,則確定靜態(tài)存儲器存在有效的資源分配表;否則確定靜態(tài)存儲器不存在有效的資 源分配表;在將主控操作系統(tǒng)中缺省的資源分配表寫入靜態(tài)存儲器中時,將所述資源表存在標識 設(shè)置為預設(shè)的有效值。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述coreO讀取靜態(tài)存儲器中的資源分配 表之后,還包括將所述資源分配表中分配給主控操作系統(tǒng)的內(nèi)存信息上報給所述主控操 作系統(tǒng)的內(nèi)存管理模塊;所述coreN讀取資源分配表之后,還包括將所述資源分配表中分配給輔助操作系統(tǒng) 的內(nèi)存信息上報給所述輔助操作系統(tǒng)的內(nèi)存管理模塊。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述觸發(fā)資源分配表中分配給該主控操 作系統(tǒng)的其它CPU核進行啟動為所述CoreO向資源分配表中分配給該主控操作系統(tǒng)的其 它CPU核發(fā)送指示被分配給所述主控操作系統(tǒng)的核間消息;所述觸發(fā)資源分配表中分配給該輔助操作系統(tǒng)的其它CPU核進行啟動為所述coreN 向資源分配表中分配給該輔助操作系統(tǒng)的其它CPU核發(fā)送指示被分配給所述輔助操作系 統(tǒng)的核間消息。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,如果所述coreN確定存在沒有啟動的另一 個輔助操作系統(tǒng),則觸發(fā)資源分配表中分配給所述另一個輔助操作系統(tǒng)的其中一個CPU核 coreM開始啟動,并將資源分配表信息發(fā)送給所述coreM ;所述coreM執(zhí)行與所述coreN相同的操作。
7.根據(jù)權(quán)利要求1至6任一權(quán)項所述的方法,其特征在于,所述coreO對用戶輸入的命 令行進行解析,根據(jù)解析結(jié)果對靜態(tài)存儲器中的資源分配表進行修改;其中,所述命令行用 于修改分配給所述主控操作系統(tǒng)或輔助操作系統(tǒng)的硬件資源;在所述主用控制系統(tǒng)重新啟動過程中,所述coreO讀取的資源分配表為修改后的資源 分配表,發(fā)送的資源分配表信息為修改后的資源分配表信息。
8.一種多操作系統(tǒng)的資源分配裝置,其特征在于,設(shè)置在CPU核中,該裝置包括資源表讀取單元,用于在所述CPU核被分配給的操作系統(tǒng)啟動過程中,讀取靜態(tài)存儲器中的資源分配表,或者按照接收到的資源分配表信息讀取資源分配表;啟動觸發(fā)單元,用于按照所述資源表讀取單元讀取的資源分配表,觸發(fā)資源分配表中 分配給所述操作系統(tǒng)的其它CPU核進行啟動;在所述操作系統(tǒng)完成啟動后,如果存在沒有 啟動的輔助操作系統(tǒng),則觸發(fā)資源分配表中分配給所述輔助操作系統(tǒng)的其中一個CPU核開 始啟動,并將資源分配表信息發(fā)送給所述輔助操作系統(tǒng)的其中一個CPU核。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,如果該裝置所在的CPU核被分配給的操作 系統(tǒng)為主控操作系統(tǒng),則該裝置還包括缺省處理單元,用于在所述資源表讀取單元讀取靜態(tài)存儲器中的資源分配表之前,判 斷所述靜態(tài)存儲器中是否存在有效的資源分配表,如果是,則觸發(fā)所述資源表讀取單元讀 取靜態(tài)存儲器中的資源分配表;否則將所述主控操作系統(tǒng)中缺省的資源分配表寫入靜態(tài)存 儲器中,觸發(fā)所述資源表讀取單元讀取靜態(tài)存儲器中的資源分配表。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,該裝置還包括內(nèi)存信息上報單元,用于根據(jù)所述資源表讀取單元讀取的資源分配表,將所述資源分 配表中分配給所述操作系統(tǒng)的內(nèi)存信息上報給所述操作系統(tǒng)的內(nèi)存管理模塊。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述啟動觸發(fā)單元向所述資源分配表中 分配給所述操作系統(tǒng)的其它CPU核發(fā)送指示被分配給所述操作系統(tǒng)的核間消息,以觸發(fā)所 述其它CPU核進行啟動。
12.根據(jù)權(quán)利要求8至11任一權(quán)項所述的裝置,其特征在于,該裝置還包括命令解析單元,用于對用戶輸入的命令行進行解析,該命令行用于修改分配給所述操 作系統(tǒng)的硬件資源;資源表修改單元,用于按照所述命令解析單元的解析結(jié)果對靜態(tài)存儲器中的資源分配 表進行修改。
全文摘要
本發(fā)明提供了一種多操作系統(tǒng)的資源分配方法和裝置。主控操作系統(tǒng)在啟動過程中,指定分配給主控操作系統(tǒng)的CPU核core0讀取靜態(tài)存儲器中的資源分配表,觸發(fā)資源分配表中分配給該主控操作系統(tǒng)的其它CPU核進行啟動;主控操作系統(tǒng)完成啟動后,core0觸發(fā)資源分配表中分配給輔助操作系統(tǒng)的其中一個CPU核coreN開始啟動,并將資源分配表信息發(fā)送給coreN;輔助操作系統(tǒng)在啟動過程中,coreN按照資源分配表信息讀取資源分配表,觸發(fā)資源分配表中分配給該輔助操作系統(tǒng)的其它CPU核進行啟動。本發(fā)明能夠通過修改靜態(tài)存儲器中的資源分配表調(diào)整分配給各操作系統(tǒng)的硬件資源,提高了資源分配的可擴展性和靈活性。
文檔編號G06F9/50GK102053869SQ20091023591
公開日2011年5月11日 申請日期2009年10月29日 優(yōu)先權(quán)日2009年10月29日
發(fā)明者郭武 申請人:杭州華三通信技術(shù)有限公司