一種基于移動(dòng)虛擬化系統(tǒng)的非易失性存儲(chǔ)器調(diào)度優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種虛擬機(jī)和存儲(chǔ)器的調(diào)度分配方法,具體涉及一種虛擬化系統(tǒng)中非 易失存儲(chǔ)器的調(diào)度優(yōu)化方法。
【背景技術(shù)】
[0002] 近年來,嵌入式移動(dòng)設(shè)備在計(jì)算能力、存儲(chǔ)能力等方面都有著明顯提升。像大型 服務(wù)器一樣,虛擬化技術(shù)也可以應(yīng)用于智能手機(jī)、平板電腦等移動(dòng)設(shè)備。隨著多個(gè)操作系 統(tǒng)運(yùn)行在各自隔離的虛擬機(jī)里面,移動(dòng)虛擬化為移動(dòng)操作系統(tǒng)提供了更好的安全性、隔 離性和低成本等優(yōu)勢。一個(gè)移動(dòng)設(shè)備上,可在不同虛擬機(jī)上運(yùn)行不同或者相同的操作系 統(tǒng)。移動(dòng)虛擬化平臺(tái)需要在同一時(shí)間運(yùn)行兩個(gè)或者更多的虛擬機(jī),這樣就要求較大內(nèi)存 資源。相比服務(wù)器等傳統(tǒng)計(jì)算設(shè)備,移動(dòng)設(shè)備在的內(nèi)存資源、電池壽命等方面仍然非常有 限。以智能手機(jī)為例,眾所周知智能手機(jī)由于大小和溫度的限制,只能攜帶非常有限的電池 (1000-2000滅11)。然而,內(nèi)存單獨(dú)就能消耗大于30%的所有能耗。通用的0狀1存儲(chǔ)器受限 于能耗大、容量難擴(kuò)展等問題,加速了有限能量的耗盡。新型能耗低、容量大的非易失性隨 機(jī)訪問存儲(chǔ)器(Non-volatile Random Access Memory,簡稱NVRAM存儲(chǔ)器),如:記憶組存 儲(chǔ)器、相變存儲(chǔ)器(PCM),有望替代傳統(tǒng)的DRAM存儲(chǔ)器,并克服DRAM存儲(chǔ)器的問題。
[0003] 但是,NVRAM存儲(chǔ)器存在寫延遲長的問題,會(huì)降低寫密集型任務(wù)的性能,時(shí)間要求 嚴(yán)格的任務(wù)可能無法接受性能的降低。為此,結(jié)合NVRAM存儲(chǔ)器和DRAM存儲(chǔ)器的優(yōu)勢,提 出了基于NVRAM存儲(chǔ)器和DRAM存儲(chǔ)器的混合內(nèi)存系統(tǒng),以替代傳統(tǒng)的基于DRAM的內(nèi)存系 統(tǒng)。另一方面,目前基于KVM虛擬平臺(tái)的虛擬機(jī)調(diào)度都是基于公平調(diào)度原則,將每個(gè)虛擬機(jī) 作為一個(gè)普通的Linux進(jìn)程,采用Linux默認(rèn)的CFS調(diào)度算法,并將每個(gè)虛擬機(jī)都賦予相同 優(yōu)先級,,以保證每個(gè)虛擬機(jī)得到同等的資源。而移動(dòng)設(shè)備用戶更關(guān)注前臺(tái)虛擬機(jī)性能,例 如軟件響應(yīng)速度等。因此,在移動(dòng)虛擬化系統(tǒng)上的基于NVRAM/DRAM混合內(nèi)存的調(diào)度算法需 要重新設(shè)計(jì),以保證前臺(tái)虛擬機(jī)獲得更多硬件資源,增加前臺(tái)虛擬機(jī)的流暢度。
【發(fā)明內(nèi)容】
[0004] 針對現(xiàn)有技術(shù)存在的不足,本發(fā)明所要解決的技術(shù)問題是從虛擬化資源管理的層 面,提供一種基于移動(dòng)虛擬化系統(tǒng)的非易失性存儲(chǔ)器調(diào)度優(yōu)化方法,它能減少存儲(chǔ)器的能 耗,還能提高前臺(tái)虛擬機(jī)任務(wù)的響應(yīng)速度,并滿足前臺(tái)任務(wù)的實(shí)時(shí)性。
[0005] 本發(fā)明所要解決的技術(shù)問題是通過這樣的技術(shù)方案實(shí)現(xiàn)的,它包括有以下步驟:
[0006] 步驟1、在移動(dòng)虛擬化系統(tǒng)上,DRAM存儲(chǔ)器與NVRAM存儲(chǔ)器結(jié)合;
[0007] 步驟2、針對單個(gè)虛擬機(jī),將任務(wù)劃分為寫密集型任務(wù)和讀密集型任務(wù);
[0008] 步驟3、根據(jù)任務(wù)的密集性和CPU的利用率,動(dòng)態(tài)地將寫密集型任務(wù)分配到DRAM存 儲(chǔ)器上,讀密集型任務(wù)分配到NVRAM存儲(chǔ)器上;
[0009] 步驟4、在KVM虛擬平臺(tái)上,提升前臺(tái)虛擬機(jī)優(yōu)先級,多個(gè)虛擬機(jī)之間采用不公平 的調(diào)度算法。
[0010] 本發(fā)明由于在步驟3,根據(jù)任務(wù)的密集性和CPU的利用率,動(dòng)態(tài)地將寫密集型任務(wù) 分配到高性能的DRAM存儲(chǔ)器上,讀密集型任務(wù)分配到高密度、低功耗的NVRAM存儲(chǔ)器上,在 擴(kuò)大內(nèi)存的基礎(chǔ)上盡量減少系統(tǒng)能耗;由于在步驟4,在多個(gè)虛擬機(jī)之間采用不公平的調(diào) 度算法,增加前臺(tái)虛擬機(jī)任務(wù)的優(yōu)先級,使前臺(tái)虛擬機(jī)獲得更多的執(zhí)行時(shí)間,從而減少任務(wù) 截止時(shí)間的缺失率,并提高任務(wù)的響應(yīng)速度。
[0011] 本發(fā)明具有以下優(yōu)點(diǎn):增大了內(nèi)存容量且減少了存儲(chǔ)器的能耗,同時(shí)提高了任務(wù) 的響應(yīng)速度
【附圖說明】
[0012] 本發(fā)明的【附圖說明】如下:
[0013] 圖1為本發(fā)明虛擬機(jī)的任務(wù)分配流程圖;
[0014] 圖2為本發(fā)明的虛擬機(jī)調(diào)度流程圖。
【具體實(shí)施方式】
[0015] 下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步說明:
[0016] 本發(fā)明包括有以下步驟:
[0017] 步驟1、在移動(dòng)虛擬化系統(tǒng)上,DRAM存儲(chǔ)器與NVRAM存儲(chǔ)器結(jié)合;
[0018] 步驟2、針對單個(gè)虛擬機(jī),將任務(wù)劃分為寫密集型任務(wù)和讀密集型任務(wù);
[0019] 步驟3、根據(jù)任務(wù)的密集性和CPU的利用率,動(dòng)態(tài)地將寫密集型任務(wù)分配到DRAM存 儲(chǔ)器上,讀密集型任務(wù)分配到NVRAM存儲(chǔ)器上;
[0020] 步驟4、在KVM虛擬平臺(tái)上,提升前臺(tái)虛擬機(jī)優(yōu)先級,多個(gè)虛擬機(jī)之間采用不公平 的調(diào)度算法。
[0021] 如圖1所示,上述步驟2中任務(wù)劃分過程和上述步驟3中任務(wù)分配過程如下:該流 程開始于步驟101,
[0022] 在步驟102,輸入要執(zhí)行的任務(wù)集T = {1\,T2, ... Tn},并給出每個(gè)任務(wù)的相關(guān)信息 1\< W D R1, S1, ED1, EN1, P1 >,其中,T 任務(wù)集T的任一元素 ;W i代表任務(wù)的寫次數(shù),R i代表 任務(wù)的讀次數(shù),S1代表任務(wù)需內(nèi)存的大小,ED 表基于DRAM存儲(chǔ)器的任務(wù)執(zhí)行時(shí)間,EN i 代表基于NVRAM存儲(chǔ)器的任務(wù)執(zhí)行時(shí)間,P1R表任務(wù)的執(zhí)行周期;還輸入NVRAM存儲(chǔ)器的 大小S和NVRAM存儲(chǔ)器被占用大小Sn;
[0023] 在步驟103,初始化每個(gè)任務(wù)T1的執(zhí)行時(shí)間為DRAM存儲(chǔ)器上的執(zhí)行時(shí)間C i = ED i;
[0024] 在步驟104,初始化每個(gè)任務(wù)T1的標(biāo)志位X i = 1,代表任務(wù)在DRAM存儲(chǔ)器上執(zhí)行;
[0025] 在步驟105,設(shè)置i = 1,從任務(wù)1開始判定;
[0026] 在步驟106,判定i是否小于執(zhí)行任務(wù)的總數(shù)η ;若是,則執(zhí)行步驟107 ;否則,執(zhí)行 步驟112 ;
[0027] 在步驟107,計(jì)算任務(wù)T1寫操作次數(shù)W i與讀操作次數(shù)R i的比率:RAi=I1 ; ? 'vI-
[0028] 在步驟108,判定任務(wù)T1的寫密集性:為此設(shè)定一個(gè)閾值α,如果任務(wù)T ^勺寫操作 W. 次數(shù)W1除以讀操作次數(shù)R1的值= f小于該閾值α,T1歸類為讀密集型任務(wù),接下來執(zhí) 行步驟109 ;相反,如果大于閾值α,T1歸類為寫密集型任務(wù),接下來執(zhí)行步驟110 ;
[0029] 在步驟109,將任務(wù)T1分配到NVRAM存儲(chǔ)器,重新設(shè)定任務(wù)T i的執(zhí)行時(shí)間為C 1 =ENi,標(biāo)志位Xi = 0,代表任務(wù)在NVRAM存儲(chǔ)器上執(zhí)行,接下來執(zhí)行步驟111 ;
[0030] 在步驟110,將任務(wù)T1分配到DRAM存儲(chǔ)器,接下來執(zhí)行步驟111 ;
[0031 ] 在步驟111,執(zhí)行i加1,接下來執(zhí)行步驟106 ;
[0032] 在步驟112,首先判斷任務(wù)的CPU利用率是否小于1 : Yj(I-Xi)XEN^XiXEDi
[0033] M)->XJ f j y Pi
[0034]