本發(fā)明涉及虛擬化,特別是涉及一種虛擬處理器的調(diào)度方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、在由通用操作系統(tǒng)(general?purpose?operating?system,gpos)和實(shí)時操作系統(tǒng)(real?time?operating?system,rtos)組成的雙系統(tǒng)架構(gòu)中應(yīng)用虛擬化技術(shù)時,通常利用通用管理程序來進(jìn)行虛擬機(jī)管理,如rt-xen(一種開源虛擬機(jī)管理程序),其實(shí)現(xiàn)流程從初始化開始,采用固定優(yōu)先級調(diào)度策略,加載和配置四種服務(wù)器調(diào)度策略,如可延遲服務(wù)器、周期性服務(wù)器、輪詢服務(wù)器和零星服務(wù)器,隨后為每個虛擬機(jī)分配虛擬處理器(virtualcentral?processing?unit,vcpu),設(shè)置其預(yù)算、周期和優(yōu)先級等參數(shù),然后根據(jù)選擇的調(diào)度策略,具體實(shí)施不同的調(diào)度邏輯,進(jìn)而可以保證其實(shí)時性能。
2、盡管上述方式在實(shí)時性能方面具有優(yōu)勢,但其涉及四種服務(wù)器調(diào)度算法,每種算法都有其復(fù)雜的補(bǔ)充和調(diào)度規(guī)則,增加了系統(tǒng)的復(fù)雜性,開發(fā)和維護(hù)成本較高,且復(fù)雜性過高的特點(diǎn)可能限制其在某些應(yīng)用場景中的使用。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述問題,提出了以便提供克服上述問題或者至少部分地解決上述問題的一種虛擬處理器的調(diào)度方法、裝置、設(shè)備及介質(zhì),包括:
2、一種虛擬處理器的調(diào)度方法,所述方法包括:
3、創(chuàng)建包含多個虛擬處理器的運(yùn)行隊列,并確定每個虛擬處理器的權(quán)重參數(shù);
4、在每個調(diào)度周期開始時,為每個虛擬處理器分配初始信用值;
5、根據(jù)所述權(quán)重參數(shù),從所述運(yùn)行隊列中確定第一目標(biāo)虛擬處理器,并基于預(yù)置的共享信用池,對所述第一目標(biāo)虛擬處理器進(jìn)行信用值補(bǔ)充;
6、確定在信用值補(bǔ)充后所述多個虛擬處理器的當(dāng)前狀態(tài);
7、根據(jù)所述當(dāng)前狀態(tài)和所述權(quán)重參數(shù),從所述運(yùn)行隊列中確定第二目標(biāo)虛擬處理器,并調(diào)用所述第二目標(biāo)虛擬處理器執(zhí)行任務(wù)。
8、可選地,所述根據(jù)所述當(dāng)前狀態(tài)和所述權(quán)重參數(shù),從所述運(yùn)行隊列中確定第二目標(biāo)虛擬處理器,包括:
9、根據(jù)所述當(dāng)前狀態(tài),從所述運(yùn)行隊列中確定候選虛擬處理器;
10、根據(jù)所述權(quán)重參數(shù),從所述候選虛擬處理器中確定第二目標(biāo)虛擬處理器。
11、可選地,所述根據(jù)所述當(dāng)前狀態(tài),從所述運(yùn)行隊列中確定候選虛擬處理器,包括:
12、在所述運(yùn)行隊列中存在所述當(dāng)前狀態(tài)為第一狀態(tài)的虛擬處理器的情況下,從所述運(yùn)行隊列中,確定所述當(dāng)前狀態(tài)為第一狀態(tài)的虛擬處理器為候選虛擬處理器;所述第一狀態(tài)為虛擬處理器正在執(zhí)行輸入操作或輸出操作時的狀態(tài)。
13、可選地,還包括:
14、在所述運(yùn)行隊列中不存在所述當(dāng)前狀態(tài)為第一狀態(tài)的虛擬處理器但存在所述當(dāng)前狀態(tài)為第二狀態(tài)的虛擬處理器的情況下,從所述運(yùn)行隊列中,確定所述當(dāng)前狀態(tài)為第二狀態(tài)的虛擬處理器為候選虛擬處理器;所述第二狀態(tài)為虛擬處理器存在剩余可用的信用值時的狀態(tài)。
15、可選地,還包括:
16、在所述運(yùn)行隊列中不存在所述當(dāng)前狀態(tài)為第一狀態(tài)、第二狀態(tài)的虛擬處理器但存在所述當(dāng)前狀態(tài)為第三狀態(tài)的虛擬處理器的情況下,從所述運(yùn)行隊列中,確定所述當(dāng)前狀態(tài)為第三狀態(tài)的虛擬處理器為候選虛擬處理器;所述第三狀態(tài)為虛擬處理器不存在剩余可用的信用值時的狀態(tài)。
17、可選地,所述多個虛擬處理器包含有空閑虛擬處理器,所述空閑虛擬處理器排列在所述運(yùn)行隊列的隊尾,還包括:
18、在所述運(yùn)行隊列中不存在所述當(dāng)前狀態(tài)為第一狀態(tài)、第二狀態(tài)、第三狀態(tài)的虛擬處理器的情況下,確定所述空閑虛擬處理器為候選虛擬處理器。
19、可選地,所述根據(jù)所述權(quán)重參數(shù),從所述候選虛擬處理器中確定第二目標(biāo)虛擬處理器,包括:
20、確定所述權(quán)重參數(shù)最高的候選虛擬處理器為第二目標(biāo)虛擬處理器。
21、可選地,在所述調(diào)用所述第二目標(biāo)虛擬處理器執(zhí)行任務(wù)之前,還包括:
22、將所述第二目標(biāo)虛擬器從所述運(yùn)行隊列中移除;
23、在所述調(diào)用所述第二目標(biāo)虛擬處理器執(zhí)行任務(wù)之后,還包括:
24、在執(zhí)行任務(wù)完成后,將所述第二目標(biāo)虛擬器插入所述運(yùn)行隊列中。
25、可選地,在所述調(diào)用所述第二目標(biāo)虛擬處理器執(zhí)行任務(wù)之后,還包括:
26、在調(diào)用所述第二目標(biāo)虛擬處理器執(zhí)行任務(wù)的過程中將所述第二目標(biāo)虛擬處理器的信用值耗盡時,將所述第二目標(biāo)虛擬處理器的當(dāng)前狀態(tài)更新為第三狀態(tài);所述第三狀態(tài)為虛擬處理器不存在剩余可用的信用值時的狀態(tài)。
27、可選地,在所述調(diào)用所述第二目標(biāo)虛擬處理器執(zhí)行任務(wù)之后,還包括:
28、將所述運(yùn)行隊列中沒有任務(wù)要執(zhí)行的虛擬處理器遷移至預(yù)置的等待隊列。
29、可選地,還包括:
30、將所述等待隊列中的虛擬處理器的信用值歸還至所述共享信用池。
31、可選地,所述根據(jù)所述權(quán)重參數(shù),從所述運(yùn)行隊列中確定第一目標(biāo)虛擬處理器,包括:從所述運(yùn)行隊列中確定所述權(quán)重參數(shù)最高的虛擬處理器為第一目標(biāo)虛擬處理器。
32、可選地,所述基于預(yù)置的共享信用池,對所述第一目標(biāo)虛擬處理器進(jìn)行信用值補(bǔ)充,包括:
33、在所述第一目標(biāo)虛擬處理器的信用值未達(dá)到上限的情況下,基于預(yù)置的共享信用池,對所述第一目標(biāo)虛擬處理器進(jìn)行信用值補(bǔ)充,直至所述第一目標(biāo)虛擬處理器的信用值達(dá)到上限或所述共享信用池中信用不足。
34、可選地,所述當(dāng)前狀態(tài)包括第一狀態(tài)、第二狀態(tài)、第三狀態(tài)中任一狀態(tài);其中,所述第一狀態(tài)為虛擬處理器正在執(zhí)行輸入操作或輸出操作時的狀態(tài),所述第二狀態(tài)為虛擬處理器存在剩余可用的信用值時的狀態(tài),所述第三狀態(tài)為虛擬處理器不存在剩余可用的信用值時的狀態(tài)。
35、可選地,在所述在每個調(diào)度周期開始時,為每個虛擬處理器分配初始信用值之前,還包括:
36、確定每個虛擬處理器在一個調(diào)度周期內(nèi)的最大運(yùn)行時長,以在所述虛擬處理器被調(diào)度時,限制所述虛擬處理器的運(yùn)行時長。
37、可選地,所述虛擬處理器運(yùn)行于雙系統(tǒng)架構(gòu)的設(shè)備中,在所述雙系統(tǒng)架構(gòu)下部署有通用操作系統(tǒng)和實(shí)時操作系統(tǒng)。
38、一種虛擬處理器的調(diào)度裝置,所述裝置包括:
39、初始化模塊,用于創(chuàng)建包含多個虛擬處理器的運(yùn)行隊列,并確定每個虛擬處理器的權(quán)重參數(shù);
40、信用分配模塊,用于在每個調(diào)度周期開始時,為每個虛擬處理器分配初始信用值;
41、信用補(bǔ)充模塊,用于根據(jù)所述權(quán)重參數(shù),從所述運(yùn)行隊列中確定第一目標(biāo)虛擬處理器,并基于預(yù)置的共享信用池,對所述第一目標(biāo)虛擬處理器進(jìn)行信用值補(bǔ)充;
42、當(dāng)前狀態(tài)確定模塊,用于確定在信用值補(bǔ)充后所述多個虛擬處理器的當(dāng)前狀態(tài);
43、虛擬處理器調(diào)用模塊,用于根據(jù)所述當(dāng)前狀態(tài)和所述權(quán)重參數(shù),從所述運(yùn)行隊列中確定第二目標(biāo)虛擬處理器,并調(diào)用所述第二目標(biāo)虛擬處理器執(zhí)行任務(wù)。
44、一種電子設(shè)備,包括處理器、存儲器及存儲在所述存儲器上并能夠在所述處理器上運(yùn)行的計算機(jī)程序,所述計算機(jī)程序被所述處理器執(zhí)行時實(shí)現(xiàn)如上所述的方法。
45、一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)上存儲計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)如上所述的方法。
46、一種計算機(jī)程序產(chǎn)品,包括計算機(jī)程序,所述計算機(jī)程序在被處理器執(zhí)行時實(shí)現(xiàn)如上所述的方法。
47、本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
48、在本發(fā)明實(shí)施例中,通過創(chuàng)建包含多個虛擬處理器的運(yùn)行隊列,并確定每個虛擬處理器的權(quán)重參數(shù),在每個調(diào)度周期開始時,為每個虛擬處理器分配初始信用值,根據(jù)權(quán)重參數(shù),從運(yùn)行隊列中確定第一目標(biāo)虛擬處理器,并基于預(yù)置的共享信用池,對第一目標(biāo)虛擬處理器進(jìn)行信用值補(bǔ)充,確定在信用值補(bǔ)充后多個虛擬處理器的當(dāng)前狀態(tài),根據(jù)當(dāng)前狀態(tài)和權(quán)重參數(shù),從運(yùn)行隊列中確定第二目標(biāo)虛擬處理器,并調(diào)用第二目標(biāo)虛擬處理器執(zhí)行任務(wù),實(shí)現(xiàn)了對虛擬機(jī)調(diào)度的優(yōu)化,降低了虛擬機(jī)調(diào)度的復(fù)雜性,提升了實(shí)時性能。