麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種應(yīng)用于多核處理器的內(nèi)存調(diào)度方法及裝置的制作方法

文檔序號(hào):6438745閱讀:167來(lái)源:國(guó)知局
專利名稱:一種應(yīng)用于多核處理器的內(nèi)存調(diào)度方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及多核處理技術(shù),尤其涉及一種應(yīng)用于多核處理器的內(nèi)存調(diào)度方法及裝置。
背景技術(shù)
多核處理器的一種重要模式就是非對(duì)稱異構(gòu)系統(tǒng),每個(gè)處理器核運(yùn)行一套操作系統(tǒng),每個(gè)操作系統(tǒng)管理自身的所有物理資源,內(nèi)存作為最重要的物理資源之一在異構(gòu)系統(tǒng)中的分配非常重要,目前的內(nèi)存分配主要采用靜態(tài)分配方式,如圖1所示,通過將物理內(nèi)存按照處理器核的數(shù)目進(jìn)行劃分,然后分配給不同處理器核上的操作系統(tǒng)進(jìn)行管理,通常劃分得到的內(nèi)存塊的數(shù)目與處理器核的數(shù)目相等,每個(gè)處理器核分配一個(gè)內(nèi)存塊。
由于采用靜態(tài)分配方式分配內(nèi)存,需要規(guī)劃者對(duì)每個(gè)處理器核上所運(yùn)行應(yīng)用程序所需內(nèi)存數(shù)量有比較準(zhǔn)確的預(yù)估,從而避免分配內(nèi)存過多造成的內(nèi)存浪費(fèi),以及分配內(nèi)存過少導(dǎo)致的應(yīng)用功能擴(kuò)展性降低。
但是,采用靜態(tài)分配方式分配內(nèi)存,具有以下缺點(diǎn)
1)不能做到嚴(yán)格的按需分配,更多的是憑借規(guī)劃者的經(jīng)驗(yàn)進(jìn)行,分配的有效性存在不足;
2)靜態(tài)分配方式往往針對(duì)當(dāng)前的需求進(jìn)行規(guī)劃,一旦應(yīng)用和業(yè)務(wù)模型發(fā)生變化后,原有規(guī)劃就不能滿足需求,需要重新規(guī)劃調(diào)整,對(duì)系統(tǒng)穩(wěn)定度影響較大。發(fā)明內(nèi)容
本發(fā)明提供一種應(yīng)用于多核處理器的內(nèi)存調(diào)度方法及裝置,用以有效利用物理內(nèi)存并滿足不同核的處理需求。
本發(fā)明提供一種應(yīng)用于多核處理器的內(nèi)存調(diào)度方法,包括
根據(jù)內(nèi)存配置信息為每個(gè)處理器核分配初始化內(nèi)存塊,所述內(nèi)存配置信息包括將物理內(nèi)存劃分得到的多個(gè)初始化內(nèi)存塊信息和多個(gè)彈性內(nèi)存塊信息;
針對(duì)每個(gè)處理器核,監(jiān)測(cè)所述處理器核的內(nèi)存剩余量,確定所述內(nèi)存剩余量低于第一設(shè)定閾值時(shí),將未分配的彈性內(nèi)存塊分配給所述處理器核;
對(duì)分配的彈性內(nèi)存塊的使用情況進(jìn)行監(jiān)控,在滿足第一設(shè)定條件時(shí),釋放所分配的彈性內(nèi)存塊。
本發(fā)明還提供一種應(yīng)用于多核處理器的內(nèi)存調(diào)度裝置,包括
初始分配單元,用于根據(jù)內(nèi)存配置信息為每個(gè)處理器核分配初始化內(nèi)存塊,所述內(nèi)存配置信息包括將物理內(nèi)存劃分得到的多個(gè)初始化內(nèi)存塊信息和多個(gè)彈性內(nèi)存塊信息;
彈性分配單元,用于針對(duì)每個(gè)處理器核,監(jiān)測(cè)所述處理器核的內(nèi)存剩余量,確定所述內(nèi)存剩余量低于第一設(shè)定閾值時(shí),將未分配的彈性內(nèi)存塊分配給所述處理器核;
第一釋放單元,用于對(duì)分配的彈性內(nèi)存塊的使用情況進(jìn)行監(jiān)控,在滿足第一設(shè)定條件時(shí),釋放所分配的彈性內(nèi)存塊。
利用本發(fā)明提供的應(yīng)用于多核處理器的內(nèi)存調(diào)度方法和裝置,具有以下有益效果內(nèi)存分配的動(dòng)態(tài)性更好,能夠滿足應(yīng)用變化帶來(lái)的新增內(nèi)存需求;有效提高內(nèi)存整體利用率。


圖1為現(xiàn)有采用靜態(tài)規(guī)劃方式分配內(nèi)存的示意圖2為本發(fā)明實(shí)施例提供的應(yīng)用于多核處理器的內(nèi)存調(diào)度方法流程圖3為本發(fā)明實(shí)施例提供的應(yīng)用于多核處理器的內(nèi)存調(diào)度方法劃分內(nèi)存示意圖4為本發(fā)明實(shí)施例中初始化內(nèi)存塊分配流程圖5為本發(fā)明實(shí)施例中在處理器核運(yùn)行過程內(nèi)存調(diào)度流程圖6為本發(fā)明實(shí)施例中從其他處理器核調(diào)配內(nèi)存流程圖7為本發(fā)明實(shí)施例中將調(diào)配內(nèi)存歸還給處理器核流程圖8為本發(fā)明實(shí)施例提供的應(yīng)用于多核處理器的內(nèi)存調(diào)度裝置結(jié)構(gòu)圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明提供的應(yīng)用于多核處理器的內(nèi)存調(diào)度方法和裝置進(jìn)行更詳細(xì)地說明。
多核處理器在通信、網(wǎng)絡(luò)、計(jì)算機(jī)等眾多領(lǐng)域的應(yīng)用逐漸普及,多核系統(tǒng)的內(nèi)存資源規(guī)劃和分配工作日益重要,如何使各處理器核獲得滿足應(yīng)用需求的內(nèi)存資源并提高物理內(nèi)存的整理利用率是個(gè)比較重要的問題,本發(fā)明采用一種智能監(jiān)測(cè)、彈性調(diào)配的機(jī)制來(lái)有效利用物理內(nèi)存并滿足不同核的處理需求。
本發(fā)明實(shí)施例提供的應(yīng)用于多核處理器的內(nèi)存調(diào)度方法,如圖2所示,包括以下步驟
步驟201,根據(jù)內(nèi)存配置信息為每個(gè)處理器核分配初始化內(nèi)存塊,所述內(nèi)存配置信息包括將物理內(nèi)存劃分得到的多個(gè)初始化內(nèi)存塊信息和多個(gè)彈性內(nèi)存塊信息;
步驟202,針對(duì)每個(gè)處理器核,監(jiān)測(cè)所述處理器核的內(nèi)存剩余量,確定所述內(nèi)存剩余量低于第一設(shè)定閾值時(shí),將未分配的彈性內(nèi)存塊分配給所述處理器核,具體地,該第一設(shè)定閾值可以根據(jù)需要設(shè)定;
步驟203,對(duì)分配的彈性內(nèi)存塊的使用情況進(jìn)行監(jiān)控,在滿足第一設(shè)定條件時(shí),釋放所分配的彈性內(nèi)存塊,具體地,第一設(shè)定條件可以根據(jù)需要設(shè)定,如彈性內(nèi)存塊超過一段時(shí)間未被使用等條件。
采用本發(fā)明實(shí)施例的應(yīng)用于多核處理器的內(nèi)存調(diào)度方法,通過規(guī)劃彈性內(nèi)存塊, 在為每個(gè)處理器核分配初始內(nèi)存塊后,保證處理器核執(zhí)行基本的運(yùn)行,在處理器核的運(yùn)行過程中,可以根據(jù)實(shí)際業(yè)務(wù)模式對(duì)內(nèi)存的需要,動(dòng)態(tài)進(jìn)行內(nèi)存調(diào)度,因此內(nèi)存分配的動(dòng)態(tài)性更好,能夠滿足應(yīng)用變化帶來(lái)的新增內(nèi)存需求,有效提高內(nèi)存整體利用率。
如圖3所示,本實(shí)施例將整個(gè)物理內(nèi)存分塊后得到的內(nèi)存塊分為兩類
1)初始化內(nèi)存塊,這部分內(nèi)存塊類似于靜態(tài)內(nèi)存分配方式中的內(nèi)存塊,可以通過粗略估計(jì)進(jìn)行設(shè)置,也可以每個(gè)處理器核分配相同的內(nèi)存尺寸;
2)彈性內(nèi)存塊,在調(diào)度精度要求不高的情況下可以采用同等大尺寸內(nèi)存塊來(lái)作為彈性內(nèi)存塊,在高調(diào)度精度要求下,彈性內(nèi)存塊由不同尺寸的內(nèi)存塊組成,可以滿足不同的調(diào)度需求。
優(yōu)選地,進(jìn)行內(nèi)存劃分時(shí),初始化內(nèi)存塊的數(shù)目不低于處理器核的數(shù)目,彈性內(nèi)存塊的數(shù)目不低于處理器核的數(shù)目,如圖3所示,初始化內(nèi)存塊的數(shù)目、彈性內(nèi)存塊的數(shù)目均與處理器核的數(shù)目相等。
優(yōu)選地,針對(duì)每個(gè)處理器核,確定其內(nèi)存剩余量低于第一設(shè)定閾值,且彈性內(nèi)存塊均已被分配時(shí),進(jìn)一步包括
從為內(nèi)存剩余量不低于第一設(shè)定閾值的處理器核所分配的初始化內(nèi)存塊中,釋放部分初始化內(nèi)存塊分配給所述內(nèi)存剩余量低于第一設(shè)定閾值的處理器核;
對(duì)分配的部分初始化內(nèi)存塊的使用情況進(jìn)行監(jiān)控,在滿足第二設(shè)定條件時(shí),將所述部分初始化內(nèi)存塊歸還給釋放所述部分初始化內(nèi)存塊的處理器核。
本發(fā)明實(shí)施例在彈性內(nèi)存塊都分配以后如果某些處理器核仍然需要添加內(nèi)存,則可以根據(jù)監(jiān)控結(jié)果從其它處理器核的富余初始化內(nèi)存塊中進(jìn)行分割調(diào)配,除了監(jiān)控分配的彈性內(nèi)存塊,還需要監(jiān)控分配的部分初始內(nèi)存塊的使用情況,以及時(shí)釋放不需要的部分初始化內(nèi)存塊,以免影響處理器核的運(yùn)行。
本發(fā)明實(shí)施例對(duì)處理器核上內(nèi)存分配進(jìn)行監(jiān)管,在多核處理器啟動(dòng)時(shí),優(yōu)先從初始化內(nèi)存塊開始分配,保證各個(gè)處理器核的基本運(yùn)行,為了滿足實(shí)際的需要,可以根據(jù)實(shí)際需求從彈性內(nèi)存塊中分配。優(yōu)選地,本發(fā)明實(shí)施例預(yù)先通過配置文件記錄為每個(gè)處理器核分配的初始化內(nèi)存分配。
本發(fā)明實(shí)施例可以定時(shí)監(jiān)測(cè)處理器核的內(nèi)存剩余量,以及時(shí)滿足內(nèi)存需求量高的處理器核;本發(fā)明實(shí)施例可以定時(shí)確定是否需要釋放已被分配的彈性內(nèi)存塊,以在彈性內(nèi)存塊不需要時(shí)及時(shí)進(jìn)行釋放,以給其他更需要內(nèi)存的處理器核使用;本發(fā)明實(shí)施例可以定定時(shí)確定是否需要?dú)w還所分割的部分初始化內(nèi)存塊,以在分割的部分初始化內(nèi)存塊不需要時(shí)歸還給原來(lái)的處理器核,從而實(shí)現(xiàn)內(nèi)存的動(dòng)態(tài)更新,上述各個(gè)定時(shí)可以是同時(shí)進(jìn)行定時(shí), 也可以是分別定時(shí)。
下面給出本發(fā)明提供的應(yīng)用于多核處理器的內(nèi)存調(diào)度方法的優(yōu)選實(shí)施例,主要包括如下流程
1)分配初始化內(nèi)存塊
如圖4所示,包括
步驟401,處理器核啟動(dòng);
步驟402,處理器啟動(dòng)后,讀取內(nèi)存配置信息,為處理器核分配初始化內(nèi)存塊,所述內(nèi)存配置信息包括將物理內(nèi)存劃分得到的多個(gè)初始化內(nèi)存塊信息和多個(gè)彈性內(nèi)存塊信息, 具體地,是將初始?jí)K化內(nèi)存塊0 N分配給處理器核0 N,具體如何分配,可以在各初始化內(nèi)存塊是根據(jù)各處理器核的業(yè)務(wù)模式劃分的情況下,根據(jù)各個(gè)處理器的業(yè)務(wù)模式,分配與業(yè)務(wù)模式匹配的初始化內(nèi)存塊給相應(yīng)的處理器核。當(dāng)然,也可以在各初始化內(nèi)存塊相等的情況,按每個(gè)處理器核分配一個(gè)初始化內(nèi)存塊的原則任意分配。
步驟403,處理器核的操作系統(tǒng)根據(jù)分配的初始化內(nèi)存塊開始內(nèi)存管理,每個(gè)處理器核運(yùn)行一套操作系統(tǒng),每個(gè)操作系統(tǒng)管理自身的所有物理資源,包括分配的初始化內(nèi)存塊。
2)在處理器核運(yùn)行過程中監(jiān)測(cè)各處理器核的使用情況,根據(jù)監(jiān)測(cè)結(jié)果進(jìn)行內(nèi)存動(dòng)態(tài)調(diào)度,針對(duì)每個(gè)處理器核,定時(shí)執(zhí)行監(jiān)測(cè)任務(wù),如圖5所示,執(zhí)行如下步驟
步驟500,到達(dá)一定時(shí)間時(shí),啟動(dòng)監(jiān)測(cè)任務(wù);
步驟501,讀取當(dāng)前處理器核的內(nèi)存剩余量;
步驟502,判斷內(nèi)存剩余量是否低于門限1 ;若內(nèi)存剩余量低于門限1,執(zhí)行步驟 503,否則執(zhí)行步驟503,;
步驟503,查詢未分配彈性內(nèi)存塊信息;
步驟504,確定是否有未分配的彈性內(nèi)存塊,若有未分配的彈性內(nèi)存塊,執(zhí)行步驟 505,若沒有未分配的彈性內(nèi)存塊,則執(zhí)行步驟505’ ;
步驟505’,執(zhí)行初始化內(nèi)存塊調(diào)配;
執(zhí)行初始化內(nèi)存塊調(diào)配時(shí),首先確定有哪些處理器核的內(nèi)存剩余量不低于門限1, 將這些處理器核作為目標(biāo)核,本處理器核作為申請(qǐng)核,如圖6所示,執(zhí)行如下處理流程步驟601,向目標(biāo)核發(fā)送調(diào)配內(nèi)存請(qǐng)求,以指示目標(biāo)核釋放當(dāng)前未使用且占用率低于門限3的部分初始化內(nèi)存塊;步驟602,目標(biāo)核接收到調(diào)配內(nèi)存請(qǐng)求后,計(jì)算自身初始化內(nèi)存塊的占用情況;步驟603,判斷占用率是否低于一定門限,若是,執(zhí)行執(zhí)行步驟604,否則確定分配失敗,執(zhí)行步驟605 ;步驟604,將占用率低于門限3的部分初始化內(nèi)存塊釋放掉;步驟605, 發(fā)送分配結(jié)果;步驟606,接收目標(biāo)核發(fā)送的分配結(jié)果,將釋放的部分初始化內(nèi)存塊分配給本處理器核。
可見,本發(fā)明實(shí)施例在彈性內(nèi)存塊不足的情況下,如果某些處理核仍然有緊迫的內(nèi)存需求,可以從初始內(nèi)存塊剩余內(nèi)存較多的核上進(jìn)行調(diào)配。申請(qǐng)核在選擇目標(biāo)核的時(shí)候需要按照上述流程遍歷系統(tǒng)中的其它處理核,直到找到能滿足調(diào)配條件的目標(biāo)核。
發(fā)生初始化內(nèi)存塊調(diào)配后,接受調(diào)配的部分初始化內(nèi)存塊的處理器核需要跟蹤該內(nèi)存的使用情況,如果內(nèi)存使用出現(xiàn)回落,需要?dú)w還該部分初始化內(nèi)存塊,如圖7所示,包括
步驟700,確定調(diào)配過來(lái)的部分初始化內(nèi)存塊當(dāng)前未使用且占用率低于第一門限時(shí),執(zhí)行步驟701 ;步驟701,釋放該部分初始化內(nèi)存塊,并向原來(lái)的目標(biāo)核發(fā)送釋放內(nèi)存請(qǐng)求;步驟702,目標(biāo)核接收到釋放內(nèi)存請(qǐng)求后,將釋放的該部分初始化內(nèi)存塊添加到本地處理器核;步驟703,發(fā)送操作結(jié)果給原來(lái)的申請(qǐng)核;步驟704,申請(qǐng)核確定釋放成功。
步驟505,申請(qǐng)彈性內(nèi)存塊;
步驟506,將未分配的彈性內(nèi)存塊添加到該處理器核中,本次監(jiān)測(cè)任務(wù)結(jié)束,并返回執(zhí)行步驟500 ;
步驟503’,若內(nèi)存剩余量不低于門限1,則判斷本處理器核是否存在分配的不再使用的彈性內(nèi)存塊,且將該彈性內(nèi)存塊釋放后內(nèi)存剩余量高于門限2,若存在,執(zhí)行步驟 504,;
步驟504’,釋放此類彈性內(nèi)存塊,當(dāng)然,也可以依據(jù)內(nèi)存塊是否超過一定時(shí)間沒有被使用的因素確定是否彈性內(nèi)存塊。
本發(fā)明實(shí)施例在監(jiān)測(cè)流程中設(shè)置兩個(gè)門限,門限1表示啟動(dòng)分配彈性內(nèi)存塊的當(dāng)前內(nèi)存剩余量,門限2表示可以釋放彈性內(nèi)存塊的當(dāng)前內(nèi)存剩余量,門限2要高于門限1。通常情況下門限值的設(shè)定需要參考該處理器核的應(yīng)用需求、歷史高低值以及系統(tǒng)整體內(nèi)存情況,通過仿真計(jì)算出一個(gè)合理的門限,以避免頻繁的申請(qǐng)釋放或者長(zhǎng)時(shí)間占用不需要使用的內(nèi)存。
本發(fā)明實(shí)施例的上述流程可以采用獨(dú)立于處理器核之外的裝置實(shí)現(xiàn),即由該裝置實(shí)現(xiàn)對(duì)處理核初始化內(nèi)存塊的分配,并對(duì)彈性內(nèi)存塊在各處理器核之間進(jìn)行調(diào)度,該裝置在多核之間進(jìn)行內(nèi)存調(diào)度時(shí)實(shí)現(xiàn)調(diào)度信息互斥訪問,即該裝置對(duì)所有處理器核的內(nèi)存分配情況進(jìn)行集中管理,在同一時(shí)刻,僅對(duì)一個(gè)處理器的內(nèi)存使用進(jìn)行修改,不會(huì)同時(shí)修改多個(gè)處理器核的內(nèi)存使用情況。
本發(fā)明實(shí)施例中對(duì)每個(gè)處理器核上已經(jīng)分配的彈性內(nèi)存塊的管理分配,也可以是將彈性內(nèi)存塊的申請(qǐng)、釋放接口注冊(cè)給處理器核的操作系統(tǒng),由操作系統(tǒng)接口統(tǒng)一調(diào)用。
基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種應(yīng)用于多核處理器的內(nèi)存調(diào)度裝置,由于該裝置解決問題的原理與一種應(yīng)用于多核處理器的內(nèi)存調(diào)度方法,因此這些設(shè)備的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。
一種應(yīng)用于多核處理器的內(nèi)存調(diào)度裝置,如圖8所示,包括
初始分配單元800,用于根據(jù)內(nèi)存配置信息為每個(gè)處理器核分配初始化內(nèi)存塊,所述內(nèi)存配置信息包括將物理內(nèi)存劃分得到的多個(gè)初始化內(nèi)存塊和多個(gè)彈性內(nèi)存塊;
彈性分配單元801,用于針對(duì)每個(gè)處理器核,監(jiān)測(cè)所述處理器核的內(nèi)存剩余量,確定所述內(nèi)存剩余量低于第一設(shè)定閾值時(shí),將未分配的彈性內(nèi)存塊分配給所述處理器核;
第一釋放單元802,用于對(duì)分配的彈性內(nèi)存塊的使用情況進(jìn)行監(jiān)控,在滿足第一設(shè)定條件時(shí),釋放所分配的彈性內(nèi)存塊。
本發(fā)明實(shí)施例提供的應(yīng)用于多核處理器的內(nèi)存調(diào)度裝置,采用預(yù)留彈性內(nèi)存塊的方式滿足多核處理器彈性內(nèi)存調(diào)配的監(jiān)測(cè)、分配、釋放機(jī)制;內(nèi)存初始分配更加簡(jiǎn)單有效, 降低初始評(píng)估難度;內(nèi)存分配的動(dòng)態(tài)性更好,能夠滿足應(yīng)用變化帶來(lái)的新增內(nèi)存需求;有效提高內(nèi)存整體利用率。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種應(yīng)用于多核處理器的內(nèi)存調(diào)度方法,其特征在于,包括根據(jù)內(nèi)存配置信息為每個(gè)處理器核分配初始化內(nèi)存塊,所述內(nèi)存配置信息包括將物理內(nèi)存劃分得到的多個(gè)初始化內(nèi)存塊信息和多個(gè)彈性內(nèi)存塊信息;針對(duì)每個(gè)處理器核,監(jiān)測(cè)所述處理器核的內(nèi)存剩余量,確定所述內(nèi)存剩余量低于第一設(shè)定閾值時(shí),將未分配的彈性內(nèi)存塊分配給所述處理器核;對(duì)分配的彈性內(nèi)存塊的使用情況進(jìn)行監(jiān)控,在滿足第一設(shè)定條件時(shí),釋放所分配的彈性內(nèi)存塊。
2.如權(quán)利要求1所述的方法,其特征在于,確定所述內(nèi)存剩余量低于第一設(shè)定閾值,且彈性內(nèi)存塊均已被分配時(shí),進(jìn)一步包括從為內(nèi)存剩余量不低于第一設(shè)定閾值的處理器核所分配的初始化內(nèi)存塊中,釋放部分初始化內(nèi)存塊分配給所述內(nèi)存剩余量低于第一設(shè)定閾值的處理器核;對(duì)分配的部分初始化內(nèi)存塊的使用情況進(jìn)行監(jiān)控,在滿足第二設(shè)定條件時(shí),將所述部分初始化內(nèi)存塊歸還給釋放所述部分初始化內(nèi)存塊的處理器核。
3.如權(quán)利要求2所述的方法,其特征在于,從為內(nèi)存剩余量不低于第一設(shè)定閾值的處理器核所分配的初始化內(nèi)存塊中,釋放部分初始化內(nèi)存塊分配給所述內(nèi)存剩余量低于第一設(shè)定閾值的處理器核,具體包括向內(nèi)存剩余量不低于第一設(shè)定閾值的處理器核發(fā)送調(diào)配內(nèi)存請(qǐng)求,以指示處理器核釋放當(dāng)前未使用且占用率低于第三設(shè)定閾值的部分初始化內(nèi)存塊;接收釋放部分初始化內(nèi)存塊的處理器核發(fā)送的分配結(jié)果,將釋放的部分初始化內(nèi)存塊分配給所述內(nèi)存剩余量低于第一設(shè)定閾值的處理器核。
4.如權(quán)利要求2所述的方法,其特征在于,在滿足第二設(shè)定條件時(shí),將所述部分初始化內(nèi)存塊歸還給釋放所述部分初始化內(nèi)存塊的處理器核,包括確定所述部分初始化內(nèi)存塊當(dāng)前未使用且占用率低于第三設(shè)定閾值,將所述部分初始化內(nèi)存塊歸還給釋放所述部分初始化內(nèi)存塊的處理器核。
5.如權(quán)利要求2所述的方法,其特征在于,定時(shí)確定分配的部分初始化內(nèi)存塊的使用情況是否滿足第二設(shè)定條件。
6.如權(quán)利要求1所述的方法,其特征在于,定時(shí)監(jiān)測(cè)處理器核的內(nèi)存剩余量,定時(shí)確定分配的彈性內(nèi)存塊的使用情況是否滿足設(shè)定第一條件。
7.如權(quán)利要求1 6任一所述的方法,其特征在于,在滿足設(shè)定第一條件時(shí),釋放所分配的彈性內(nèi)存塊,具體包括所分配的彈性內(nèi)存塊超過設(shè)定時(shí)長(zhǎng)未被使用,釋放所分配的彈性內(nèi)存塊;或分配給釋放處理器核的彈性內(nèi)存塊未被使用,且釋放未被使用的彈性內(nèi)存塊后,所述處理器核的剩余內(nèi)存量高于設(shè)定第二閾值時(shí),釋放所分配的彈性內(nèi)存塊。
8.如權(quán)利要求7所述的方法,其特征在于,所述設(shè)定第一閾值小于設(shè)定第二閾值。
9.一種應(yīng)用于多核處理器的內(nèi)存調(diào)度裝置,其特征在于,包括初始分配單元,用于根據(jù)內(nèi)存配置信息為每個(gè)處理器核分配初始化內(nèi)存塊,所述內(nèi)存配置信息包括將物理內(nèi)存劃分得到的多個(gè)初始化內(nèi)存塊信息和多個(gè)彈性內(nèi)存塊信息;彈性分配單元,用于針對(duì)每個(gè)處理器核,監(jiān)測(cè)所述處理器核的內(nèi)存剩余量,確定所述內(nèi)存剩余量低于第一設(shè)定閾值時(shí),將未分配的彈性內(nèi)存塊分配給所述處理器核;第一釋放單元,用于對(duì)分配的彈性內(nèi)存塊的使用情況進(jìn)行監(jiān)控,在滿足第一設(shè)定條件時(shí),釋放所分配的彈性內(nèi)存塊。
10.如權(quán)利要求9所述的裝置,其特征在于,還包括分割單元,用于確定所述內(nèi)存剩余量低于第一設(shè)定閾值,且彈性內(nèi)存塊均已被分配時(shí), 從為內(nèi)存剩余量不低于第一設(shè)定閾值的處理器核所分配的初始化內(nèi)存塊中,釋放部分初始化內(nèi)存塊分配給所述內(nèi)存剩余量低于第一設(shè)定閾值的處理器核;第二釋放單元,用于對(duì)分配的部分初始化內(nèi)存塊的使用情況進(jìn)行監(jiān)控,在滿足第二設(shè)定條件時(shí),將所述部分初始化內(nèi)存塊歸還給釋放所述部分初始化內(nèi)存塊的處理器核。
11.如權(quán)利要求10所述的裝置,其特征在于,所述分割單元,從為內(nèi)存剩余量不低于第一設(shè)定閾值的處理器核所分配的初始化內(nèi)存塊中,釋放部分初始化內(nèi)存塊分配給所述內(nèi)存剩余量低于第一設(shè)定閾值的處理器核,具體包括向內(nèi)存剩余量不低于第一設(shè)定閾值的處理器核發(fā)送調(diào)配內(nèi)存請(qǐng)求,以指示處理器核釋放當(dāng)前未使用且占用率低于第三設(shè)定閾值的部分初始化內(nèi)存塊;接收釋放部分初始化內(nèi)存塊的處理器核發(fā)送的分配結(jié)果,將釋放的部分初始化內(nèi)存塊分配給所述內(nèi)存剩余量低于第一設(shè)定閾值的處理器核。
12.如權(quán)利要求10所述的裝置,其特征在于,第二釋放單元,具體用于確定所述部分初始化內(nèi)存塊當(dāng)前未使用且占用率低于第三設(shè)定閾值,將所述部分初始化內(nèi)存塊歸還給釋放所述部分初始化內(nèi)存塊的處理器核。
13.如權(quán)利要求9 12任一所述的裝置,其特征在于,第一釋放單元,具體用于在所分配的彈性內(nèi)存塊超過設(shè)定時(shí)長(zhǎng)未被使用,釋放所分配的彈性內(nèi)存塊;或分配給釋放處理器核的彈性內(nèi)存塊未被使用,且釋放未被使用的彈性內(nèi)存塊后,所述處理器核的剩余內(nèi)存量高于設(shè)定第二閾值時(shí),釋放所分配的彈性內(nèi)存塊。
全文摘要
本發(fā)明公開了一種應(yīng)用于多核處理器的內(nèi)存調(diào)度方法及裝置,該方法包括根據(jù)內(nèi)存配置信息為每個(gè)處理器核分配初始化內(nèi)存塊,所述內(nèi)存配置信息包括將物理內(nèi)存劃分得到的多個(gè)初始化內(nèi)存塊和多個(gè)彈性內(nèi)存塊信息;針對(duì)每個(gè)處理器核,監(jiān)測(cè)所述處理器核的內(nèi)存剩余量,確定所述內(nèi)存剩余量低于第一設(shè)定閾值時(shí),將未分配的彈性內(nèi)存塊分配給所述處理器核;對(duì)分配的彈性內(nèi)存塊的使用情況進(jìn)行監(jiān)控,在滿足第一設(shè)定條件時(shí),釋放所分配的彈性內(nèi)存塊。本發(fā)明內(nèi)存分配的動(dòng)態(tài)性更好,能夠滿足應(yīng)用變化帶來(lái)的新增內(nèi)存需求;有效提高內(nèi)存整體利用率。
文檔編號(hào)G06F9/50GK102508717SQ20111036685
公開日2012年6月20日 申請(qǐng)日期2011年11月17日 優(yōu)先權(quán)日2011年11月17日
發(fā)明者劉博強(qiáng), 笪禹, 董繼炳, 陳劍 申請(qǐng)人:大唐移動(dòng)通信設(shè)備有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
主站蜘蛛池模板: 西乡县| 平塘县| 长海县| 前郭尔| 靖边县| 海林市| 阿克苏市| 济南市| 榆林市| 时尚| 浦东新区| 丰顺县| 宜兰县| 普陀区| 石门县| 碌曲县| 宝山区| 福海县| 藁城市| 农安县| 虞城县| 太白县| 清涧县| 松潘县| 苏尼特右旗| 司法| 阿勒泰市| 乐东| 和政县| 台东县| 温泉县| 梁河县| 江口县| 邵阳县| 大冶市| 绩溪县| 晋江市| 永和县| 时尚| 新营市| 溆浦县|