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