)模塊組成的Light OS啟動(dòng)部件。OS Loader功能模塊響應(yīng)用戶Light OS創(chuàng)建請(qǐng)求,經(jīng)由CPU Controller內(nèi)核驅(qū)動(dòng)創(chuàng)建Light OS,具體包括如下:
[0108]Heavy OS響應(yīng)創(chuàng)建Light OS請(qǐng)求模塊71,用于響應(yīng)Heavy OS創(chuàng)建Light OS請(qǐng)求,具體可包括:
[0109]根據(jù)應(yīng)用對(duì)運(yùn)算能力及并行性的需求,用戶提供Light OS所需的CPU/Core數(shù)量η 給 Heavy OS ;
[0110]Heavy OS中從未分配的CPU/Core中分配或通過CPU熱插拔(hotplug)的方式釋放指定數(shù)量的CPU/Core ;
[0111]Heavy OS在為Light OS分配的物理內(nèi)存指定的低端空間部分構(gòu)建CPU/Core的描述信息MP Table。
[0112]OS Loader功能模塊72,用于為Light OS準(zhǔn)備好前N_1 (N>1)個(gè)CPU/Core,讓其執(zhí)行HLT指令等待IPI指令,Light OS接收到IPI后跳轉(zhuǎn)到Light OS指定的地址繼續(xù)執(zhí)行;
[0113]CPU Controller模塊73,用于準(zhǔn)備好第N個(gè)CPU/Core后,讓其執(zhí)行Light OS的內(nèi)核代碼,執(zhí)行到多處理器初始化階段時(shí),設(shè)置其它N-1個(gè)CPU/Core收到IPI后跳轉(zhuǎn)的地址為Light OS內(nèi)核中CPU/Core正常初始化代碼的入口地址,之后分別向前(N-1)個(gè)處理器發(fā)送IPI ;
[0114]Light OS啟動(dòng)模塊74,用于在所有CPU/Core初始化完成后,Light OS的啟動(dòng)。
[0115]本實(shí)施例的裝置,用于執(zhí)行圖3所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0116]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【主權(quán)項(xiàng)】
1.一種多內(nèi)核操作系統(tǒng)實(shí)例支持多處理器的方法,其特征在于,包括: 主操作系統(tǒng)實(shí)例根據(jù)獲取到的硬件資源需求描述信息,分配至少兩個(gè)處理器資源給從操作系統(tǒng)實(shí)例; 所述主操作系統(tǒng)實(shí)例從各所述處理器資源上選擇一個(gè)處理器以執(zhí)行從操作系統(tǒng)實(shí)例的內(nèi)核啟動(dòng)代碼; 選擇的所述處理器在執(zhí)行所述從操作系統(tǒng)實(shí)例的內(nèi)核代碼到設(shè)定的多處理器初始化階段時(shí),向分配給從操作系統(tǒng)實(shí)例的其他處理器發(fā)送處理器中斷IPI指令; 分配的其他處理器接收到所述IPI指令后跳轉(zhuǎn)到從操作系統(tǒng)實(shí)例設(shè)定的入口代碼地址繼續(xù)執(zhí)行,直到完成全部分配給從操作系統(tǒng)實(shí)例的多處理器初始化。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主操作系統(tǒng)實(shí)例根據(jù)獲取到的硬件資源需求描述信息,分配至少兩個(gè)處理器資源給從操作系統(tǒng)實(shí)例之前,還包括: 主操作系統(tǒng)實(shí)例在運(yùn)行當(dāng)前應(yīng)用程序時(shí),接收所述當(dāng)前應(yīng)用程序發(fā)送的硬件資源需求描述信息; 或者, 主操作系統(tǒng)實(shí)例根據(jù)運(yùn)行的當(dāng)前應(yīng)用程序所需的硬件資源,為所述當(dāng)前應(yīng)用程序生成所述硬件資源需求描述信息。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,選擇的所述處理器在向分配給從操作系統(tǒng)實(shí)例的其他處理器發(fā)送IPI指令之前,還包括: 所述主操作系統(tǒng)實(shí)例向分配給從操作系統(tǒng)實(shí)例的其他處理器配置處理器暫停指令HLT代碼,并使所述其他處理器執(zhí)行所述HLT指令代碼后處于等待接收IPI指令的暫停狀態(tài)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主操作系統(tǒng)實(shí)例根據(jù)獲取到的硬件資源需求描述信息,分配至少兩個(gè)處理器資源給從操作系統(tǒng)實(shí)例,包括: 所述主操作系統(tǒng)實(shí)例根據(jù)所述硬件資源需求描述信息,從可用的處理器資源中選擇至少兩個(gè)處理器資源以分配給從操作系統(tǒng)實(shí)例;或者, 所述主操作系統(tǒng)實(shí)例根據(jù)所述硬件資源需求描述信息,釋放當(dāng)前使用的處理器資源,并從釋放的處理器資源中選擇至少兩個(gè)處理器資源以分配給從操作系統(tǒng)實(shí)例。
5.根據(jù)權(quán)利要求1-4任一項(xiàng)所述的方法,其特征在于,所述主操作系統(tǒng)實(shí)例根據(jù)獲取到的硬件資源需求描述信息,分配至少兩個(gè)處理器資源給從操作系統(tǒng)實(shí)例之后,還包括: 所述主操作系統(tǒng)實(shí)例在為從操作系統(tǒng)實(shí)例分配的物理地址空間里構(gòu)建多處理器表項(xiàng)MP Table,所述MP Table用于描述為所述從操作系統(tǒng)實(shí)例分配的處理器資源信息。
6.一種多內(nèi)核操作系統(tǒng)實(shí)例支持多處理器裝置,其特征在于,包括: 分配模塊,用于主操作系統(tǒng)實(shí)例根據(jù)獲取到的硬件資源需求描述信息,分配至少兩個(gè)處理器資源給從操作系統(tǒng)實(shí)例; 選擇模塊,配置于所述主操作系統(tǒng)實(shí)例中,用于從各所述處理器資源上選擇一個(gè)處理器以執(zhí)行從操作系統(tǒng)實(shí)例的內(nèi)核啟動(dòng)代碼; 發(fā)送中斷模塊,用于在執(zhí)行所述從操作系統(tǒng)實(shí)例的內(nèi)核代碼到設(shè)定的多處理器初始化階段時(shí),向分配給從操作系統(tǒng)實(shí)例的其他處理器發(fā)送處理器中斷IPI指令; 執(zhí)行模塊,用于接收到所述IPI指令后跳轉(zhuǎn)到從操作系統(tǒng)實(shí)例設(shè)定的入口代碼地址繼續(xù)執(zhí)行,直到完成全部分配給從操作系統(tǒng)實(shí)例的多處理器初始化。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 接收模塊,用于所述分配模塊根據(jù)獲取到的硬件資源需求描述信息,分配至少兩個(gè)處理器資源給從操作系統(tǒng)實(shí)例之前,在運(yùn)行當(dāng)前應(yīng)用程序時(shí),接收所述當(dāng)前應(yīng)用程序發(fā)送的硬件資源需求描述信息; 或者, 生成模塊,用于所述分配模塊根據(jù)獲取到的硬件資源需求描述信息,分配至少兩個(gè)處理器資源給從操作系統(tǒng)實(shí)例之前,根據(jù)運(yùn)行的當(dāng)前應(yīng)用程序所需的硬件資源,為所述當(dāng)前應(yīng)用程序生成所述硬件資源需求描述信息。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 配置模塊,用于選擇的所述處理器在向分配給從操作系統(tǒng)實(shí)例的其他處理器發(fā)送IPI指令之前,向分配給從操作系統(tǒng)實(shí)例的其他處理器配置處理器暫停指令HLT代碼,并使所述其他處理器執(zhí)行所述HLT指令代碼后處于等待接收IPI指令的暫停狀態(tài)。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述分配模塊,具體用于: 根據(jù)所述硬件資源需求描述信息,從可用的處理器資源中選擇至少兩個(gè)處理器資源以分配給從操作系統(tǒng)實(shí)例;或者, 根據(jù)所述硬件資源需求描述信息,釋放當(dāng)前使用的處理器資源,并從釋放的處理器資源中選擇至少兩個(gè)處理器資源以分配給從操作系統(tǒng)實(shí)例。
10.根據(jù)權(quán)利要求6-9任一項(xiàng)所述的裝置,其特征在于,還包括: 構(gòu)建模塊,用于所述主操作系統(tǒng)實(shí)例根據(jù)獲取到的硬件資源需求描述信息,分配至少兩個(gè)處理器資源給從操作系統(tǒng)實(shí)例之后,在為從操作系統(tǒng)實(shí)例分配的物理地址空間里構(gòu)建多處理器表項(xiàng)MP Table,所述MP Table用于描述為所述從操作系統(tǒng)實(shí)例分配的處理器資源信息。
【專利摘要】本發(fā)明實(shí)施例提供一種多內(nèi)核操作系統(tǒng)實(shí)例支持多處理器的方法及裝置,本發(fā)明方法,包括:主操作系統(tǒng)實(shí)例分配至少兩個(gè)處理器資源給從操作系統(tǒng)實(shí)例;所述主操作系統(tǒng)實(shí)例從各所述處理器資源上選擇一個(gè)處理器以執(zhí)行從操作系統(tǒng)實(shí)例的內(nèi)核啟動(dòng)代碼;選擇的所述處理器在執(zhí)行所述從操作系統(tǒng)實(shí)例的內(nèi)核代碼到設(shè)定的多處理器初始化階段時(shí),向分配給從操作系統(tǒng)實(shí)例的其他處理器發(fā)送IPI指令;分配的其他處理器接收到所述IPI指令后跳轉(zhuǎn)到從操作系統(tǒng)實(shí)例設(shè)定的入口代碼地址繼續(xù)執(zhí)行。本發(fā)明實(shí)施例,通過主操作系統(tǒng)實(shí)例為從操作系統(tǒng)分配并初始化處理器資源,以解決現(xiàn)有技術(shù)中多內(nèi)核操作系統(tǒng)實(shí)例無法支持多處理器的問題。
【IPC分類】G06F9-48
【公開號(hào)】CN104714843
【申請(qǐng)?zhí)枴緾N201310694856
【發(fā)明人】高云偉, 薛棟梁, 詹劍鋒
【申請(qǐng)人】華為技術(shù)有限公司, 中國科學(xué)院計(jì)算技術(shù)研究所
【公開日】2015年6月17日
【申請(qǐng)日】2013年12月17日