两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

虛擬機實時任務(wù)的調(diào)度方法、裝置和虛擬的制造方法

文檔序號:6523679閱讀:307來源:國知局
虛擬機實時任務(wù)的調(diào)度方法、裝置和虛擬的制造方法
【專利摘要】本發(fā)明提出一種虛擬機實時任務(wù)的調(diào)度方法、裝置和虛擬機。其中,所述方法包括以下步驟:當(dāng)任務(wù)的執(zhí)行周期開始時,分別初始化多個虛擬處理器VCPU,并為每個VCPU分配預(yù)設(shè)大小的信用值,其中,信用值為自然數(shù);分別為每個VCPU分配指定的緊急度Urgency值;以及分別獲取每個VCPU的狀態(tài)信息,并根據(jù)狀態(tài)信息和Urgency值生成優(yōu)先級隊列,以使物理處理器PCPU根據(jù)優(yōu)先級隊列選擇對應(yīng)的VCPU執(zhí)行任務(wù)。本發(fā)明實施例方法,會在每個周期優(yōu)先切換具有urgent狀態(tài)的VCPU,由此,實時任務(wù)可以被及時響應(yīng)。實驗使用ping延遲與web服務(wù)器的吞吐量表明這種調(diào)度方法可以及時處理實時任務(wù),并提高了響應(yīng)時間的穩(wěn)定性。
【專利說明】虛擬機實時任務(wù)的調(diào)度方法、裝置和虛擬機
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬機調(diào)度領(lǐng)域,尤其涉及一種虛擬機實時任務(wù)的調(diào)度方法、裝置和虛擬機。
【背景技術(shù)】
[0002]隨著云計算的快速發(fā)展,業(yè)內(nèi)公司提供了越來越多的基于虛擬化技術(shù)的服務(wù)。它們逐步使用虛擬機代替了傳統(tǒng)的物理機,這種方式能夠充分利用物理資源,并且提供更好的服務(wù),成為了一種主要發(fā)展趨勢。
[0003]目前,最常被使用到的虛擬機是VMware ESX和Xen(VMware ESX是由VMware公司研發(fā)的軟件產(chǎn)品,Xen則是劍橋大學(xué)創(chuàng)建的開放源代碼虛擬機監(jiān)視器)。Xen作為虛擬機監(jiān)控程序,使得多個操作系統(tǒng)可以同時運行在單個計算機上,并且支持半虛擬化和虛擬機的在線遷移。在Xen虛擬機中,管理程序會提供區(qū)域來運行虛擬機。DomO是特殊的驅(qū)動區(qū)域,類似底層物理硬件與其他區(qū)域之間的抽象層。因此,DomO將處理所有I/O (input/output,輸入/輸出端口)請求。當(dāng)某個虛擬機產(chǎn)生I/O請求,就會產(chǎn)生虛擬中斷,然后將該請求提交給DomO。類似于進(jìn)程的上下文切換,在調(diào)度器切換虛擬機時,也需要完成相應(yīng)的上下文切換(例如,運行中虛擬機的狀態(tài)將被保存,而其它虛擬機的狀態(tài)將被恢復(fù))。由于上下文切換會帶來額外的開銷,因此需要根據(jù)不同的應(yīng)用屬性做出良好的決策,避免不合理的切換,從而更好的利用物理機。
[0004]為此,Xen虛擬機監(jiān)控程序提供了三種CPU調(diào)度算法,Borrowed Virtual Time調(diào)度算法、Simple Earliest Deadline First調(diào)度算法以及信用調(diào)度算法。例如,在信用調(diào)度算法中,由于在MapReduce程序中有很多I/O操作,Kang等推遲DomO來聚集更多的I/O事件一并處理,這大大減少了虛擬處理器VCPU上下文切換的頻率。其中還引入了 group_id與group_credit的定義,并提供了一種組調(diào)度策略,使得在虛擬集群中能更好的運行MapReduce (映射規(guī)約編程模型,一種用于大規(guī)模數(shù)據(jù)集的并行運算的編程模型)程序。基于Xen信用調(diào)度器、Hu等針對多核機器將核進(jìn)行分類以處理不同類型的任務(wù)(驅(qū)動,I/O密集型,計算密集型),而減少上下文切換的開銷。
[0005]然而目前存在的問題是,上述的兩種方法均將VCPU上下文切換開銷作為主要考慮因素,從而加速了計算密集型任務(wù)的運行。但是不同于物理處理器PCPU,VCPU并不會一直在線,這將帶來大量的自旋鎖spinlock阻塞。雖然Weng等使用VCRD衡量VCPU之間的關(guān)系,并且使用機器學(xué)習(xí)的方法來預(yù)測未來使用情形,但是對于某些實時任務(wù)來說,由于實時任務(wù)的響應(yīng)時間需要被限制在毫秒甚至微秒級別,VCPU在執(zhí)行實時程序時,需要及時反饋信息。然而,Xen的調(diào)度策略并不單獨標(biāo)識運行實時任務(wù)的VCPU,這不僅導(dǎo)致了切換策略的結(jié)果不準(zhǔn)確性,也推遲了實時計算的運行。

【發(fā)明內(nèi)容】

[0006]本發(fā)明旨在至少解決上述技術(shù)問題之一。[0007]為此,本發(fā)明的第一個目的在于提出一種虛擬機實時任務(wù)的調(diào)度方法。該方法會在每個周期優(yōu)先切換具有urgent狀態(tài)的VCPU,由此,實時任務(wù)可以被及時響應(yīng)。實驗使用Ping延遲與web服務(wù)器的吞吐量表明這種調(diào)度方法可以及時處理實時任務(wù),并提高了響應(yīng)時間的穩(wěn)定性。
[0008]本發(fā)明的第二個目的在于提出一種虛擬機實時任務(wù)的調(diào)度裝置。
[0009]本發(fā)明的第三個目的在于提出一種虛擬機。
[0010]為了實現(xiàn)上述目的,本發(fā)明第一方面實施例的虛擬機實時任務(wù)的調(diào)度方法,包括以下步驟:當(dāng)任務(wù)的執(zhí)行周期開始時,分別初始化多個虛擬處理器VCPU,并為每個VCPU分配預(yù)設(shè)大小的信用值,其中,所述信用值為自然數(shù);分別為每個所述VCPU分配指定的緊急度Urgency值;以及分別獲取每個所述VCPU的狀態(tài)信息,并根據(jù)所述狀態(tài)信息和所述Urgency值生成優(yōu)先級隊列,以使物理處理器PCPU根據(jù)所述優(yōu)先級隊列選擇對應(yīng)的所述VCPU執(zhí)行任務(wù)。
[0011]本發(fā)明實施例的虛擬機實時任務(wù)的調(diào)度方法,添加了新的VCPU的狀態(tài)信息urgent狀態(tài)用以標(biāo)識實時任務(wù),使其在單一的PCPU的運行隊列中優(yōu)先級高于under狀態(tài)。因此,調(diào)度方法會在每個周期優(yōu)先切換具有urgent狀態(tài)的VCPU,由此,實時任務(wù)可以被及時響應(yīng)。實驗使用Ping延遲與web服務(wù)器的吞吐量表明這種調(diào)度方法可以及時處理實時任務(wù),并提聞了響應(yīng)時間的穩(wěn)定性。
[0012]為了實現(xiàn)上述目的,本發(fā)明第二方面實施例的虛擬機實時任務(wù)的調(diào)度裝置,包括:第一分配模塊,用于當(dāng)任務(wù)的執(zhí)行周期開始時,分別初始化多個虛擬處理器VCPU,并為每個VCPU分配預(yù)設(shè)大小的信用值,其中,所述信用值為自然數(shù);獲取與分配模塊,用于分別獲取每個所述VCPU的狀態(tài)信息,并為每個所述VCPU分配指定的緊急度Urgency值;以及生成模塊,用于根據(jù)所述狀態(tài)信息和所述Urgency值生成優(yōu)先級隊列,以使物理處理器PCPU根據(jù)所述優(yōu)先級隊列選擇對應(yīng)的所述VCPU執(zhí)行任務(wù)。
[0013]本發(fā)明實施例的虛擬機實時任務(wù)的調(diào)度裝置,添加了新的VCPU的狀態(tài)信息urgent狀態(tài)用以標(biāo)識實時任務(wù),使其在單一的PCPU的運行隊列中優(yōu)先級高于under狀態(tài)。因此,調(diào)度方法會在每個周期優(yōu)先切換具有urgent狀態(tài)的VCPU,由此,實時任務(wù)可以被及時響應(yīng)。實驗使用Ping延遲與web服務(wù)器的吞吐量表明這種調(diào)度方法可以及時處理實時任務(wù),并提聞了響應(yīng)時間的穩(wěn)定性。
[0014]為了實現(xiàn)上述目的,本發(fā)明第三方面實施例的虛擬機,包括本發(fā)明第二方面實施例的虛擬機實時任務(wù)的調(diào)度裝置。
[0015]本發(fā)明實施例的虛擬機,添加了新的VCPU的狀態(tài)信息urgent狀態(tài)用以標(biāo)識實時任務(wù),使其在單一的PCPU的運行隊列中優(yōu)先級高于under狀態(tài)。因此,調(diào)度方法會在每個周期優(yōu)先切換具有urgent狀態(tài)的VCPU,由此,實時任務(wù)可以被及時響應(yīng)。實驗使用ping延遲與web服務(wù)器的吞吐量表明這種調(diào)度方法可以及時處理實時任務(wù),并提高了響應(yīng)時間的穩(wěn)定性。
[0016]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【專利附圖】

【附圖說明】[0017]本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中,
[0018]圖1是根據(jù)本發(fā)明一個實施例的虛擬機實時任務(wù)的調(diào)度方法的流程圖;
[0019]圖2是根據(jù)本發(fā)明一個具體實施例的虛擬機實時任務(wù)的調(diào)度方法的流程圖;
[0020]圖3是根據(jù)本發(fā)明一個具體實施例的VCPU的狀態(tài)信息轉(zhuǎn)換的示意圖;
[0021]圖4是根據(jù)本發(fā)明一個具體實施例的ping延遲測試結(jié)果的示意圖;
[0022]圖5是根據(jù)本發(fā)明一個具體實施例的web服務(wù)器的吞吐量的示意圖;
[0023]圖6是根據(jù)本發(fā)明一個實施例的虛擬機實時任務(wù)的調(diào)度裝置的結(jié)構(gòu)示意圖;
[0024]圖7是根據(jù)本發(fā)明一個具體實施例的虛擬機實時任務(wù)的調(diào)度裝置的結(jié)構(gòu)示意圖;
[0025]圖8是根據(jù)本發(fā)明另一個具體實施例的虛擬機實時任務(wù)的調(diào)度裝置的結(jié)構(gòu)示意圖;
[0026]圖9是根據(jù)本發(fā)明又一個具體實施例的虛擬機實時任務(wù)的調(diào)度裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0027]下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。相反,本發(fā)明的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
[0028]在本發(fā)明的描述中,需要理解的是,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連。對于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。此外,在本發(fā)明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
[0029]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實施例所屬【技術(shù)領(lǐng)域】的技術(shù)人員所理解。
[0030]下面參考附圖描述根據(jù)本發(fā)明實施例的虛擬機實時任務(wù)的調(diào)度方法、裝置和虛擬機。
[0031]實時任務(wù)是一類需要在嚴(yán)格時間內(nèi)得到反饋的任務(wù),然而目前的虛擬機調(diào)度方法中并沒有提供對實時任務(wù)的充分支持,所以實時任務(wù)的運行總是被低效率的虛擬I/o以及調(diào)度延遲所限制。如果虛擬機調(diào)度器能夠通過合理的切換與遷移虛擬機,從而實現(xiàn)整體系統(tǒng)的高性能。為此,本發(fā)明提出了一種虛擬機實時任務(wù)的調(diào)度方法,包括以下步驟:當(dāng)任務(wù)的執(zhí)行周期開始時,分別初始化多個虛擬處理器VCPU,并為每個VCPU分配預(yù)設(shè)大小的信用值,其中,信用值為自然數(shù);分別為每個VCPU分配指定的緊急度Urgency值;以及分別獲取每個VCPU的狀態(tài)信息,并根據(jù)狀態(tài)信息和Urgency值生成優(yōu)先級隊列,以使物理處理器PCPU根據(jù)優(yōu)先級隊列選擇對應(yīng)的VCPU執(zhí)行任務(wù)。
[0032]圖1是根據(jù)本發(fā)明一個實施例的虛擬機實時任務(wù)的調(diào)度方法的流程圖。如圖1所示,該虛擬機實時任務(wù)的調(diào)度方法包括以下步驟。
[0033]S101,當(dāng)任務(wù)的執(zhí)行周期開始時,分別初始化多個虛擬處理器VCPU,并為每個VCPU分配預(yù)設(shè)大小的信用值,其中,信用值為自然數(shù)。
[0034]S102,分別獲取每個VCPU的狀態(tài)信息,并為每個VCPU分配指定的緊急度Urgency值。
[0035]在本發(fā)明的實施例中,VCPU的狀態(tài)信息包括boost狀態(tài)、urgent狀態(tài)、under狀態(tài)、over狀態(tài)和idle狀態(tài)。具體地,基于信用調(diào)度算法,本發(fā)明中引入了一種新的VCPU的狀態(tài)信息,即urgent狀態(tài)。當(dāng)某個VCPU仍然具有剩余的信用值,且該VCPU運行了實時任務(wù)時,則該VCPU的狀態(tài)會被指派為urgent狀態(tài)。此外,對于VCPU的其它狀態(tài)信息而言,當(dāng)某個VCPU仍然具有剩余的信用值時,則該VCPU的狀態(tài)會被指派為under狀態(tài);當(dāng)某個VCPU的信用值已用完時,則該VCPU的狀態(tài)會被指派為over狀態(tài);當(dāng)某個VCPU此時不需要PCPU時,則該VCPU的狀態(tài)會被指派為idle狀態(tài);當(dāng)某個VCPU處于idle狀態(tài),且該VCPU接收到了 I/O事件時,則該VCPU的狀態(tài)會被指派為boost狀態(tài);當(dāng)某個VCPU處于idle狀態(tài),且該VCPU接收到了 1/0事件時,則該VCPU的狀態(tài)會被指派為boost狀態(tài)。
[0036]進(jìn)一步而言,為了保證PCPU及時響應(yīng)實時任務(wù),為每個VCPU分配指定的緊急度Urgency值。其中,Urgency值為小于等于10的自然數(shù)。本發(fā)明的方法和現(xiàn)有的信用調(diào)度算法不同的是,處于urgent狀態(tài)的VCPU在PCPU的運行隊列中不是以先進(jìn)先出的方式排列的。在本發(fā)明中是通過Urgency值來衡量這些VCPU的實時任務(wù)的緊急度,Urgency值越大,VCPU實時任務(wù)的緊急度越高。應(yīng)當(dāng)理解的是,Urgency值的默認(rèn)值是0,也就是說,如果某個VCPU處于boost狀態(tài),或者under狀態(tài),或者over狀態(tài),或者idle狀態(tài)時,為該VCPU分配指定的Urgency值為O,這意味著該VCPU上的任務(wù)并不是實時的,可以推遲處理。其中,VCPU的Urgency值可以是用戶設(shè)定的,或者是任務(wù)中被指定的。
[0037]S103,根據(jù)狀態(tài)信息和Urgency值生成優(yōu)先級隊列,以使物理處理器PCPU根據(jù)優(yōu)先級隊列選擇對應(yīng)的VCPU執(zhí)行任務(wù)。
[0038]具體而言,可以根據(jù)每個VCPU狀態(tài)信息的優(yōu)先級對VCPU進(jìn)行排序,并根據(jù)排序結(jié)果按照VCPU狀態(tài)信息的優(yōu)先級從高至低的順序生成優(yōu)先級隊列。其中,VCPU的狀態(tài)信息的優(yōu)先級為boost狀態(tài)的優(yōu)先級>urgent狀態(tài)的優(yōu)先級>under狀態(tài)的優(yōu)先級>over狀態(tài)的優(yōu)先級〉idle狀態(tài)的優(yōu)先級。然后,PCPU可根據(jù)優(yōu)先級隊列,選擇排在優(yōu)先級隊列中隊首的VCPU執(zhí)行任務(wù)。此外,如果其中某些VCPU的具有相同的狀態(tài)信息,則根據(jù)VCPU被分配指定的Urgency值對這些VCPU進(jìn)行排序,并根據(jù)排序結(jié)果按照VCPU的Urgency值從高至低的順序生成優(yōu)先級隊列。換言之,本發(fā)明實施例中的方法是通過參考VCPU狀態(tài)信息和VCPU的Urgency值相結(jié)合的方式,對VCPU的任務(wù)的執(zhí)行順序進(jìn)行排序。應(yīng)當(dāng)理解的是,當(dāng)多個VCPU的狀態(tài)信息以及狀態(tài)信息對應(yīng)的Urgency相同時,根據(jù)先進(jìn)先出的規(guī)則對多個VCPU進(jìn)行排序,并根據(jù)排序結(jié)果生成優(yōu)先級隊列。也就是說,只有具有相同Urgency值,即具有相同緊急度的處于urgent狀態(tài)的VCPU,PCPU才使用先進(jìn)先出的方式選擇VCPU執(zhí)行任務(wù),由此,可以保證緊急度高的實時任務(wù)先被執(zhí)行。[0039]本發(fā)明實施例的虛擬機實時任務(wù)的調(diào)度方法,添加了新的VCPU的狀態(tài)信息urgent狀態(tài)用以標(biāo)識實時任務(wù),使其在單一的PCPU的運行隊列中優(yōu)先級高于under狀態(tài)。因此,調(diào)度方法會在每個周期優(yōu)先切換具有urgent狀態(tài)的VCPU,由此,實時任務(wù)可以被及時響應(yīng)。實驗使用Ping延遲與web服務(wù)器的吞吐量表明這種調(diào)度方法可以及時處理實時任務(wù),并提聞了響應(yīng)時間的穩(wěn)定性。
[0040]圖2是根據(jù)本發(fā)明一個具體實施例的虛擬機實時任務(wù)的調(diào)度方法的流程圖。如圖2所示,該虛擬機實時任務(wù)的調(diào)度方法包括以下步驟。
[0041]S201,當(dāng)任務(wù)的執(zhí)行周期開始時,分別初始化多個虛擬處理器VCPU,并為每個VCPU分配預(yù)設(shè)大小的信用值,其中,信用值為自然數(shù)。
[0042]S202,分別獲取每個VCPU的狀態(tài)信息,并為每個VCPU分配指定的緊急度Urgency值。
[0043]S203,根據(jù)狀態(tài)信息和Urgency值生成優(yōu)先級隊列,以使物理處理器PCPU根據(jù)優(yōu)先級隊列選擇對應(yīng)的VCPU執(zhí)行任務(wù)。
[0044]S204,當(dāng)VCPU執(zhí)行任務(wù)完成后,從VCPU分配的預(yù)設(shè)大小的信用值中減去對應(yīng)的信用值,并根據(jù)剩余信用值和VCPU的狀態(tài)信息獲取VCPU更新后的狀態(tài)信息。
[0045]如圖3所示,優(yōu)選地可以根據(jù)以下方法定義VCPU的狀態(tài)信息的轉(zhuǎn)換過程以及相應(yīng)的轉(zhuǎn)換條:
[0046]1、如果VCPU處于boost狀態(tài),且VCPU的剩余信用值大于0,且VCPU的Urgency值等于0,則將VCPU的狀態(tài)信息更新為under狀態(tài);
[0047]2、如果VCPU處于boost狀態(tài),且VCPU的剩余信用值大于0,且VCPU的Urgency值大于0,則將VCPU的狀態(tài)信息更新為urgent狀態(tài);
[0048]3、如果VCPU處于boost狀態(tài),且VCPU的剩余信用值等于0,則將VCPU的狀態(tài)信息更新為over狀態(tài);
[0049]4、如果VCPU處于urgent狀態(tài),且VCPU接收到1/0事件,則將VCPU的狀態(tài)信息更新為boost狀態(tài);
[0050]5、如果VCPU處于urgent狀態(tài),且VCPU的剩余信用值等于0,則將VCPU的狀態(tài)信息更新為over狀態(tài);
[0051]6、如果VCPU處于urgent狀態(tài),且VCPU的1/0阻塞,則將VCPU的狀態(tài)信息更新為idle狀態(tài);
[0052]7、如果VCPU處于under狀態(tài),且VCPU的剩余信用值等于0,則將VCPU的狀態(tài)信息更新為over狀態(tài);
[0053]8、如果VCPU處于under狀態(tài),且VCPU的1/0阻塞,則將VCPU的狀態(tài)信息更新為idle狀態(tài);
[0054]9、如果VCPU處于over狀態(tài),且VCPU重新分配信用值,且VCPU的Urgency值等于O,則將VCPU的狀態(tài)信息更新為under狀態(tài);
[0055]10、如果VCPU處于over狀態(tài),且VCPU重新分配信用值,且VCPU的Urgency值大于O,則將VCPU的狀態(tài)信息更新為urgent狀態(tài);
[0056]11、如果VCPU處于idle狀態(tài),且VCPU接收到1/0事件,則將VCPU的狀態(tài)信息更新為boost狀態(tài)。[0057]S205,計算所有的VCPU的剩余信用值的總和。
[0058]S206,當(dāng)VCPU的剩余信用值的總和等于O時,重新為每個VCPU分配預(yù)設(shè)大小的信用值。
[0059]本發(fā)明實施例的虛擬機實時任務(wù)的調(diào)度方法,添加了新的VCPU的狀態(tài)信息urgent狀態(tài)用以標(biāo)識實時任務(wù),使其在單一的PCPU的運行隊列中優(yōu)先級高于under狀態(tài)。因此,調(diào)度方法會在每個周期優(yōu)先切換具有urgent狀態(tài)的VCPU,由此,實時任務(wù)可以被及時響應(yīng)。實驗使用Ping延遲與web服務(wù)器的吞吐量表明這種調(diào)度方法可以及時處理實時任務(wù),并提聞了響應(yīng)時間的穩(wěn)定性。
[0060]下面結(jié)合圖4和圖5詳細(xì)說明一下本發(fā)明實施例中的虛擬機實時任務(wù)的調(diào)度方
法。
[0061]類似于Linux和Xen中的調(diào)度模型,我們的模型在每個時鐘周期均被調(diào)用。在每個時鐘周期中,運行于每個PCPU的調(diào)度模型將決定下一個執(zhí)行的VCPU。調(diào)度模型同時也決定時間片的長度,其中,時間片即CPU分配給各個任務(wù)程序的時間。根據(jù)任務(wù)的不同種類,設(shè)計者和程序員可以設(shè)計不同的調(diào)度方法,以執(zhí)行不同的調(diào)度策略。
[0062]Xen虛擬機使用結(jié)構(gòu)體來表示不同的調(diào)度方法。針對于每個調(diào)度方法,我們需要定義該結(jié)構(gòu)體中的參數(shù)與函數(shù)。類似于Xen信用調(diào)度算法的結(jié)構(gòu)體,sched_urgent_def調(diào)度
方法的具體定義如下:
[0063]
【權(quán)利要求】
1.一種虛擬機實時任務(wù)的調(diào)度方法,其特征在于,包括以下步驟: 當(dāng)任務(wù)的執(zhí)行周期開始時,分別初始化多個虛擬處理器VCPU,并為每個VCPU分配預(yù)設(shè)大小的信用值,其中,所述信用值為自然數(shù); 分別獲取每個所述VCPU的狀態(tài)信息,并為每個所述VCPU分配指定的緊急度Urgency值;以及 根據(jù)所述狀態(tài)信息和所述Urgency值生成優(yōu)先級隊列,以使物理處理器PCPU根據(jù)所述優(yōu)先級隊列選擇對應(yīng)的所述VCPU執(zhí)行任務(wù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)狀態(tài)信息和所述Urgency值生成優(yōu)先級隊列具體包括: 根據(jù)所述每個VCPU狀態(tài)信息的優(yōu)先級對所述VCPU進(jìn)行排序;以及 根據(jù)排序結(jié)果生成優(yōu)先級隊列。
3.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)狀態(tài)信息和所述Urgency值生成優(yōu)先級隊列具體包括: 當(dāng)多個所述VCPU的狀態(tài)信息相同時,根據(jù)所述多個VCPU的所述Urgency值對所述多個VCPU進(jìn)行排序;以及 根據(jù)排序結(jié)果生成優(yōu)先級隊列。
4.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)狀態(tài)信息和所述Urgency值生成優(yōu)先級隊列具體包括: 當(dāng)多個所述VCPU的狀態(tài)信息以及所述狀態(tài)信息對應(yīng)的Urgency值相同時,根據(jù)先進(jìn)先出的規(guī)則對所述多個VCPU進(jìn)行排序;以及 根據(jù)排序結(jié)果生成優(yōu)先級隊列。
5.如權(quán)利要求1-4任意一項所述的方法,其特征在于,所述VCPU的狀態(tài)信息包括:boost狀態(tài)、urgent狀態(tài)、under狀態(tài)、over狀態(tài)和idle狀態(tài),優(yōu)先級為boost狀態(tài)的優(yōu)先級>urgent狀態(tài)的優(yōu)先級>under狀態(tài)的優(yōu)先級>over狀態(tài)的優(yōu)先級>idle狀態(tài)的優(yōu)先級。
6.如權(quán)利要求5所述的方法,其特征在于,所述Urgency值為小于等于10的自然數(shù)。
7.如權(quán)利要求1所述的方法,其特征在于,還包括: 當(dāng)所述VCPU執(zhí)行任務(wù)完成后,從所述VCPU分配的所述預(yù)設(shè)大小的信用值中減去對應(yīng)的信用值,并根據(jù)剩余信用值和所述VCPU的狀態(tài)信息獲取所述VCPU更新后的狀態(tài)信息。
8.如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)剩余信用值和所述VCPU的狀態(tài)信息獲取所述VCPU更新后的狀態(tài)信息具體包括: 如果所述VCPU處于boost狀態(tài),且所述VCPU的剩余信用值大于0,且所述VCPU的所述Urgency值等于O,則將所述VCPU的狀態(tài)信息更新為under狀態(tài); 如果所述VCPU處于boost狀態(tài),且所述VCPU的剩余信用值大于0,且所述VCPU的所述Urgency值大于O ,則將所述VCPU的狀態(tài)信息更新為urgent狀態(tài);以及 如果所述VCPU處于boost狀態(tài),且所述VCPU的剩余信用值等于0,則將所述VCPU的狀態(tài)信息更新為over狀態(tài)。
9.如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)剩余信用值和所述VCPU的狀態(tài)信息獲取所述VCPU更新后的狀態(tài)信息具體包括: 如果所述VCPU處于urgent狀態(tài),且所述VCPU接收到I/O事件,則將所述VCPU的狀態(tài)信息更新為boost狀態(tài); 如果所述VCPU處于urgent狀態(tài),且所述VCPU的剩余信用值等于0,則將所述VCPU的狀態(tài)信息更新為over狀態(tài);以及 如果所述VCPU處于urgent狀態(tài),且所述VCPU的I/O阻塞,則將所述VCPU的狀態(tài)信息更新為idle狀態(tài)。
10.如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)剩余信用值和所述VCPU的狀態(tài)信息獲取所述VCPU更新后的狀態(tài)信息具體包括: 如果所述VCPU處于under狀態(tài),且所述VCPU的剩余信用值等于0,則將所述VCPU的狀態(tài)信息更新為over狀態(tài);以及 如果所述VCPU處于under狀態(tài),且所述VCPU的I/O阻塞,則將所述VCPU的狀態(tài)信息更新為idle狀態(tài)。
11.如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)剩余信用值和所述VCPU的狀態(tài)信息獲取所述VCPU更新后的狀態(tài)信息具體包括: 如果所述VCPU處于over狀態(tài),且所述VCPU重新分配信用值,且所述VCPU的所述Urgency值等于O,則將所述VCPU的狀態(tài)信息更新為under狀態(tài);以及 如果所述VCPU處于over狀態(tài),且所述VCPU重新分配信用值,且所述VCPU的所述Urgency值大于O,則將所述VCPU的狀態(tài)信息更新為urgent狀態(tài)。
12.如權(quán)利要求7所述的方法,其特征在于,所述根據(jù)剩余信用值和所述VCPU的狀態(tài)信息獲取所述VCPU更新后的狀態(tài)信息具體包括: 如果所述VCPU處于idle狀態(tài),且所述VCPU接收到I/O事件,則將所述VCPU的狀態(tài)信息更新為boost狀態(tài)。
13.如權(quán)利要求7所述的方法,其特征在于,還包括: 計算所有的所述VCPU的剩余信用值的總和;以及 當(dāng)所述VCPU的剩余信用值的總和等于O時,重新為每個VCPU分配預(yù)設(shè)大小的信用值。
14.一種虛擬機實時任務(wù)的調(diào)度裝置,其特征在于,包括: 第一分配模塊,用于當(dāng)任務(wù)的執(zhí)行周期開始時,分別初始化多個虛擬處理器VCPU,并為每個VCPU分配預(yù)設(shè)大小的信用值,其中,所述信用值為自然數(shù); 獲取與分配模塊,用于分別獲取每個所述VCPU的狀態(tài)信息,并為每個所述VCPU分配指定的緊急度Urgency值;以及 生成模塊,用于根據(jù)所述狀態(tài)信息和所述Urgency值生成優(yōu)先級隊列,以使物理處理器PCPU根據(jù)所述優(yōu)先級隊列選擇對應(yīng)的所述VCPU執(zhí)行任務(wù)。
15.如權(quán)利要求14所述的裝置,其特征在于,所述生成模塊具體包括: 第一排序單元,用于根據(jù)所述每個VCPU狀態(tài)信息的優(yōu)先級對所述VCPU進(jìn)行排序;以及 生成單元,用于根據(jù)排序結(jié)果生成優(yōu)先級隊列。
16.如權(quán)利要求14所述的裝置,其特征在于,所述生成模塊具體包括: 第二排序單元,用于當(dāng)多個所述VCPU的狀態(tài)信息相同時,根據(jù)所述多個VCPU的所述Urgency值對所述多個VCPU進(jìn)行排序, 所述生成單元還用于根據(jù)排序結(jié)果生成優(yōu)先級隊列。
17.如權(quán)利要求14所述的裝置,其特征在于,所述生成模塊具體包括:第三排序單元,用于當(dāng)多個所述VCPU的狀態(tài)信息以及所述狀態(tài)信息對應(yīng)的Urgency相同時,根據(jù)先進(jìn)先出的規(guī)則對所述多個VCPU進(jìn)行排序, 所述生成單元還用于根據(jù)排序結(jié)果生成優(yōu)先級隊列。
18.如權(quán)利要求14-17任意一項所述的裝置,其特征在于,所述VCPU的狀態(tài)信息包括:boost狀態(tài)、urgent狀態(tài)、under狀態(tài)、over狀態(tài)和idle狀態(tài),優(yōu)先級為boost狀態(tài)的優(yōu)先級>urgent狀態(tài)的優(yōu)先級>under狀態(tài)的優(yōu)先級>over狀態(tài)的優(yōu)先級>idle狀態(tài)的優(yōu)先級。
19.如權(quán)利要求18所述的裝置,其特征在于,所述Urgency值為小于等于10的自然數(shù)。
20.如權(quán)利要求14所述的裝置,其特征在于,還包括: 更新模塊,用于當(dāng)所述VCPU執(zhí)行任務(wù)完成后,從所述VCPU分配的所述預(yù)設(shè)大小的信用值中減去對應(yīng)的信用值,并根據(jù)剩余信用值和所述VCPU的狀態(tài)信息獲取所述VCPU更新后的狀態(tài)信息。
21.如權(quán)利要求20所述的裝置,其特征在于,所述更新模塊具體包括: 第一更新單元,用于在所述VCPU處于boost狀態(tài),且所述VCPU的剩余信用值大于0,且所述VCPU的所述Urgency值等于O時,將所述VCPU的狀態(tài)信息更新為under狀態(tài); 第二更新單元,用于在所述VCPU處于boost狀態(tài),且所述VCPU的剩余信用值大于0,且所述VCPU的所述Urgency值大于O時,將所述VCPU的狀態(tài)信息更新為urgent狀態(tài);以及第三更新單元,用于在所述VCPU處于boost狀態(tài),且所述VCPU的剩余信用值等于O時,將所述VCPU的狀態(tài)信息更新為over狀態(tài)。
22.如權(quán)利要求20所述 的裝置,其特征在于,所述更新模塊具體包括: 第四更新單元,用于在所述VCPU處于urgent狀態(tài),且所述VCPU接收到I/O事件時,將所述VCPU的狀態(tài)信息更新為boost狀態(tài); 第五更新單元,用于在所述VCPU處于urgent狀態(tài),且所述VCPU的剩余信用值等于O時,將所述VCPU的狀態(tài)信息更新為over狀態(tài);以及 第六更新單元,用于在所述VCPU處于urgent狀態(tài),且所述VCPU的I/O阻塞時,將所述VCPU的狀態(tài)信息更新為idle狀態(tài)。
23.如權(quán)利要求20所述的裝置,其特征在于,所述更新模塊具體包括: 第七更新單元,用于在所述VCPU處于under狀態(tài),且所述VCPU的剩余信用值等于O時,將所述VCPU的狀態(tài)信息更新為over狀態(tài);以及 第八更新單元,用于在所述VCPU處于under狀態(tài),且所述VCPU的I/O阻塞時,將所述VCPU的狀態(tài)信息更新為idle狀態(tài)。
24.如權(quán)利要求20所述的裝置,其特征在于,所述更新模塊具體包括: 第九更新單元,用于在所述VCPU處于over狀態(tài),且所述VCPU重新分配信用值,且所述VCPU的所述Urgency值等于O時,將所述VCPU的狀態(tài)信息更新為under狀態(tài);以及 第十更新單元,用于在所述VCPU處于over狀態(tài),且所述VCPU重新分配信用值,且所述VCPU的所述Urgency值大于O時,將所述VCPU的狀態(tài)信息更新為urgent狀態(tài)。
25.如權(quán)利要求20所述的裝置,其特征在于,所述更新模塊具體包括: 第十一更新單元,用于在所述VCPU處于idle狀態(tài),且所述VCPU接收到I/O事件時,將所述VCPU的狀態(tài)信息更新為boost狀態(tài)。
26.如權(quán)利要求20所述的裝置,其特征在于,還包括:計算模塊,用于計算所有的所述VCPU的剩余信用值的總和;以及第二分配模塊,用于當(dāng)所述VCPU的剩余信用值的總和等于O時,重新為每個VCPU分配預(yù)設(shè)大小的信用值。
27.一種虛擬機,其特征在于,包括權(quán)利要求14-26任一項所述的虛擬機實時任務(wù)的調(diào)度裝置。
【文檔編號】G06F9/48GK103677990SQ201310684535
【公開日】2014年3月26日 申請日期:2013年12月13日 優(yōu)先權(quán)日:2013年12月13日
【發(fā)明者】鄭緯民, 武永衛(wèi), 姜進(jìn)磊, 趙勛 申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
开平市| 军事| 博白县| 绿春县| 长葛市| 宣威市| 蕉岭县| 西盟| 卢氏县| 依安县| 郸城县| 江津市| 泸定县| 晴隆县| 临颍县| 乌恰县| 罗平县| 肃南| 通渭县| 咸宁市| 吉安县| 九台市| 章丘市| 察隅县| 龙门县| 昌黎县| 安乡县| 新丰县| 资阳市| 木兰县| 芦溪县| 江都市| 大埔县| 武定县| 英吉沙县| 个旧市| 石门县| 灵寿县| 资中县| 凉山| 怀来县|