專利名稱:一種嵌入式虛擬機的實時調度系統(tǒng)的制作方法
技術領域:
本發(fā)明屬于嵌入式虛擬化系統(tǒng)結構領域,具體涉及一種基于Xen ARM(Xen是劍橋大學的一個開源虛擬機項目,XenARM是其移植到ARM架構上的開源版本)的嵌入式虛擬機的實時調度系統(tǒng),該系統(tǒng)不僅能夠滿足嵌入式虛擬化系統(tǒng)的豐富應用需求,而且還具有實時性特征。
背景技術:
當前嵌入式應用面臨著新的需求,它在之前嵌入式系統(tǒng)滿足基本實時性的基礎上,還必須滿足具有豐富的人機交互應用。傳統(tǒng)的RTOS(實時操作系統(tǒng))具有高實時、低延遲中斷、高效進程通信的實時性特征,但是它缺少豐富的應用。而傳統(tǒng)的GPOS(傳統(tǒng)意義的通用操作系統(tǒng)、如Windows,Mac OS等)擁有豐富的UI、完整協(xié)議棧等應用接口,但是它缺少實時的調度。因此無論是傳統(tǒng)的RTOS(實時操作系統(tǒng),如RTLinux,Vxfforks等)還是傳統(tǒng)的GPOS都無法獨立滿足最新的需求。當前嵌入式虛擬化技術中Xen ARM半虛擬化技術通過實現(xiàn)在一臺嵌入式物理機器上同時運行多個虛擬機,分別運行不同類別的操作系統(tǒng), 從而滿足GPOS和RTOS整合的聯(lián)合需求,部分解決了上述問題,并且一定程度上減少了嵌入式成本,提高資源利用率,簡化嵌入式系統(tǒng)開發(fā)難度,讓更加復雜的系統(tǒng)依賴于更少的硬件,但是其實時調度系統(tǒng)并不能滿足實時系統(tǒng)的需求,經過實踐調研發(fā)現(xiàn),當前主要還存在以下幾個問題1.VM計時器不同步由于Xen ARM定時器機制與調度系統(tǒng)未能很好的關聯(lián),導致原定時器機制無法保證當前未運行的VM(虛擬機)定時器立即激活并同步,因此在調度運行中可能會錯過一些時間驅動的實時性任務。2.最壞執(zhí)行時間需要在虛擬化的條件下修正調整。最壞執(zhí)行時間分析與可調度性分析構成了實時系統(tǒng)調度可信的基礎。最壞執(zhí)行時間分析計算任務執(zhí)行時間的上界,這些任務的上界用來分配正確的CPU時間給實時任務。 最壞執(zhí)行時間是可調度分析工具的輸入,可調度分析決定了一組任務在一個給定的目標系統(tǒng)下是否可調度。在非虛擬化情況下,原本采用對源程序、中間碼的路徑分析,對機器碼的時間分析方法,但是,由于虛擬化情況下,其他VM調度的干擾以及虛擬資源的性能的影響 (如IO等),最壞執(zhí)行時間必須進行修正才能做正確的可調度性分析。3. VMM無法感知VM中的任務信息在沒有VMM(虛擬機管理器)的實時操作系統(tǒng)中,操作系統(tǒng)內部調度能夠很清楚的知道系統(tǒng)中的任務情況,并根據(jù)這些實時任務的信息作出實時調度;但是嵌入式虛擬化情況下,VMM的出現(xiàn),在利用硬件抽象性能隔離提高資源利用率的同時,也產生了新的問題, VMM無法感知到各VM中的任務的相關信息,由于信息的缺失VMM調度模塊無法根據(jù)VM中的任務信息做出全局的正確調度。而此問題上原有的task-aware (任務感知)技術,由于嵌入式系統(tǒng)中MMU(內存管理單元)的是否使用無法確定,不具有普遍適用性,并且在實時系統(tǒng)中task-aware的準確度并不能滿足精度要求,因此如何有效解決此問題是解決嵌入式虛擬化實時調度的基礎。4.如何及時回收預估過剩的資源在實時操作系統(tǒng)中,由于時間分配通常是按照問題3中預估的最壞執(zhí)行時間進行的,所以當一個任務提前完成時,我們必須及時回收多余的時間片,供其他任務使用,在虛擬化環(huán)境下這種需求顯得特別的重要,因為在其他的虛擬域中可能有同樣優(yōu)先級的任務正在等待中,盡早的釋放CPU時間,將會為系統(tǒng)帶來更好的實時性。因此如何在虛擬化環(huán)境下,及時回收過剩的資源,并且及時的分配給急需的其他VM任務使用。5.如何協(xié)調VMM和VM內部的層級調度,使實時性能最優(yōu).在虛擬化環(huán)境下,任務需要經過兩層調度,才能獲得CPU時間運行,首先任務所在的VM必須首先獲得CPU時間,這里通常為VM分配了 N個VCPU (虛擬CPU),通過對VCPU的調度,到達調度VM的效果,在VM獲得時間片運行后,VM系統(tǒng)內部的進程調度則會成為第二層調度負責對VM內部的任務進行調度。因此在解決上面4個問題之后,我們需要利用這些信息,構建一個層級調度的模型,充分利用VMM對全局信息的掌握以及VM對內部資源的調控,實現(xiàn)對整個虛擬機系統(tǒng)的高實時性。
發(fā)明內容
本發(fā)明針對嵌入式互聯(lián)網(wǎng)對于實時性和應用豐富的新需求,結合服務器虛擬化技術,針對當前實時性能不能滿足需要的缺陷,提出一種嵌入式虛擬機的實時調度系統(tǒng),該系統(tǒng)使上層VMM中的虛擬機調度器能夠感知各VM中的實時任務,通過響應比優(yōu)先與EDF算法的結合實現(xiàn)全局任務調度,一定程度上滿足時間驅動任務和事件驅動任務的實時性要求。本發(fā)明提供的一種嵌入式虛擬機的實時調度系統(tǒng),其特征在于,該系統(tǒng)包括位于各VM內的時間同步和預約模塊、任務信息更新調度觸發(fā)模塊、任務資源監(jiān)控調度觸發(fā)模塊、操作系統(tǒng)內部調度模塊,它們負責在各個VM中收集信息并且實時觸發(fā)VMM進行信息更新和調度;此外還包括位于VMM內的計時器模塊、任務信息收集模塊、資源回收模塊和任務調度模塊,它們分別對于各個VM中的4個客戶端模塊,對各個VM的任務信息進行統(tǒng)計管理,并最終通過任務調度模塊做出VMM調度最終決策,并且監(jiān)督各個VM操作系統(tǒng)內部的實時調度過程。本發(fā)明采用計時器同步與預約模塊對處理實時系統(tǒng)中時間驅動任務,利用任務信息收集模塊對實時收集VM中的任務信息,利用資源回收模塊對來回收估計過剩的WCET時間提高CPU時間利用率,最后結合操作系統(tǒng)內部調度以及基于全局任務信息實現(xiàn)的響應比優(yōu)先與EDF算法結合的VMM層調度建立一種滿足實時性要求的嵌入式虛擬機實時調度系統(tǒng),它解決了背景技術中提到的5個關鍵問題。上述基于Xen-ARM的嵌入式虛擬化實時調度系統(tǒng)具有以下效果及優(yōu)點(1)低成本,高利用率由于嵌入式虛擬化實時調度系統(tǒng)的實時性保障,原來需要多個獨立設備才能運行的嵌入式系統(tǒng),但是每一個設備的計算能力并沒有充分的利用完,存在極大的資源浪費?,F(xiàn)在可以通過虛擬化技術移植到同一臺嵌入式設備上,在保證實時性能的同時,降低了設備上的開銷,節(jié)約了成本,同時也達到了較高的資源利用率。
(2)實時性高本發(fā)明一定程度上解決了上述嵌入式系統(tǒng)虛擬化中5個關鍵問題,其中對于計時器模塊,任務信息收集模塊的實現(xiàn),解決了任務信息的正確性和實時性。此外資源回收模塊在保證高實時性的同時,利用資源回收技術,充分縮短各個實時任務的等待時間,從而提高其實時響應速度,最后任務調度模塊在全局任務信息的基礎上保證了整個嵌入式虛擬化系統(tǒng)的實時性。(3)高安全,高隔離相比開放式實時系統(tǒng)環(huán)境下提出的雙層調度模型,本調度系統(tǒng)借用虛擬化隔離性的優(yōu)勢,解決了之前在開放式實時環(huán)境下各種類應用處于同一執(zhí)行環(huán)境相互影響的問題。 虛擬化技術的使用提供了高安全和高隔離的特點,使得開放式實時系統(tǒng)有了新的技術實現(xiàn)方式。(4)高吞吐率最早截止時間優(yōu)先算法(EDF)已被證明是時間驅動情況下動態(tài)最優(yōu)調度,處理機利用率最大可達100%。但是在VMM的全局任務信息中,除了時間驅動的情況,還存在普通的無確定DeadLine限制的任務,在EDF情況下,這些任務會由于沒有明確截止時間而遲遲得不到響應。因此本系統(tǒng)基于全局任務信息的響應比優(yōu)先和EDF算法結合實現(xiàn),使得VMM 層能充分考慮各VM中任務優(yōu)先級,進一步提高整個虛擬機系統(tǒng)的吞吐率。
圖1為基于XenARM的實時調度系統(tǒng)的結構示意圖;圖2為計時器模塊示意圖;圖3為任務信息搜集模塊示意圖;圖4為資源回收模塊示意圖;圖5為任務調度模塊示意圖。
具體實施例方式下面結合附圖和描述對本發(fā)明作進一步詳細的說明。如圖1所示,本發(fā)明在半虛擬化系統(tǒng)架構下實現(xiàn),系統(tǒng)包括位于各VM內的時間同步和預約模塊1C、任務信息更新調度觸發(fā)模塊2C、任務資源監(jiān)控調度觸發(fā)模塊3C、操作系統(tǒng)內部調度模塊4C,它們負責在各個VM中收集信息并且實時觸發(fā)VMM進行信息更新和調度 (將其表述為客戶端模塊,用后綴C表示);此外還包括位于VMM內的計時器模塊1S、任務信息收集模塊2S、資源回收模塊3S和任務調度模塊4S,它們分別對于各個VM中的4個客戶端模塊,對各個VM的任務信息進行統(tǒng)計管理,并最終通過任務調度模塊4S做出VMM層調度最終決策,并且監(jiān)督各個VM操作系統(tǒng)內部的實時調度過程(將其表述為服務器端模塊, 用后綴S表示)。在VM運行過程中,時間同步和預約模塊IC與VMM中的計時器模塊IS通過XenARM 原有的SiarecHnfo結構實現(xiàn)各VM和VMM的時鐘同步,以便進行全局時鐘的時間驅動任務調度。同時當有時間驅動任務輸入時,本模塊將根據(jù)該時間驅動任務的時間要求,并且發(fā)出時間預約請求給計時器模塊1S,發(fā)出任務更新請求到任務信息更新調度觸發(fā)模塊2C。
任務信息更新調度觸發(fā)模塊2C在接收到時間同步與預約模塊IC的任務信息更新請求和外部事件驅動任務請求作為輸入時,計算VM中位于a^recHnfo結構中的任務信息塊內容(包括WCET等),并輸出Hypercall (虛擬機超級調用)觸發(fā)任務信息收集模塊2S 從SiarecHnfo結構中收集該VM中的任務信息,從而實現(xiàn)VMM對VM中的事件驅動和時間驅動的任務感知。任務資源監(jiān)控調度觸發(fā)模塊3C,以系統(tǒng)中任務銷毀事件作為輸入,通過對該事件及時響應,更新位于SiarecHnfo結構中的任務信息,并輸出Hypercall通知任務信息收集模塊2S進行任務信息收集分析,進而引發(fā)重新調度,從而解決任務信息更新調度觸發(fā)模塊 2C中WCET估算不精確導致的時間片浪費問題。操作系統(tǒng)內部調度模塊4C,主要承擔操作系統(tǒng)內部的任務調度的任務,該模塊由任務調度模塊4S的VCPU調度觸發(fā),當4C所在虛擬機進入運行狀態(tài)時,該模塊將能按照全局優(yōu)先級,以及內部系統(tǒng)調用的搶占實現(xiàn)對VM操作系統(tǒng)的任務進行優(yōu)先級搶占調度。位于VMM中的計時器模塊1S,將會通過SiarecHnfo信息塊與運行中的VM同步時間,同時以時間同步和預約模塊IC的時間驅動預約請求作為輸入,在接受預約請求后,計時器模塊將預約請求加入到預約隊列中,待指定時刻到達之前將會輸出請求,讓任務調度模塊4S進行提前調度,以便解決由于VM未被調度而錯過時間驅動任務的問題,4S模塊處理該請求,決定是否對該請求對應的時間驅動任務所在虛擬機進行調度,并返回給IS模塊結果,若返回調度成功,則該時間驅動任務從IS內部預約隊列中出隊,否則說明系統(tǒng)中當前有更高優(yōu)先級別任務運行,則依據(jù)其是否已經錯過其起始時間決定是否繼續(xù)保留該任務。當有時間或者事件驅動任務,或者有任務銷毀時,均會間接由任務信息更新調度觸發(fā)模塊2C通過Hypercall觸發(fā)任務信息收集模塊2S對任務信息進行收集,其中對于事件驅動任務發(fā)生和任務銷毀的情況,都將會引發(fā)任務調度模塊4S進行重新調度,而對于時間驅動任務的通知,將會由計時器模塊IS在時間到達前直接通知任務調度模塊4S進行重新調度。此外,當資源回收模塊3S計算得到最新資源回收閾值時,將會要求任務信息收集模塊2S對部分任務信息塊中下次調度時間和閾值進行更新。當在VM內部判斷時間浪費未超過閾值時,則會在VM內部進行資源回收,而超過閾值時,任務資源監(jiān)控調度觸發(fā)模塊3C會引發(fā)任務信息收集模塊2S重新收集任務信息,并且引發(fā)任務調度模塊4S檢測是否需要重新調度,以將多余的時間片分給其他優(yōu)先級更高或者即將有時間驅動任務的VM運行。若需要重新調度,則任務調度模塊4S將會觸發(fā)資源回收模塊3S結合全局任務信息對資源回收閾值進行重新計算和更新。任務調度模塊4S,當計時器模塊IS處理預約請求隊列要求提前調度時,以及由于事件驅動任務、資源回收等要求時,任務調度模塊4S將會接到重新調度請求作為輸入,該模塊針對全局任務信息利用響應比優(yōu)先和EDF算法結合的方式進行第一層VM調度后,使得各VM開始調度運行,進而使得VM內部的操作系統(tǒng)內部調度模塊4C開始第二層調度。如圖2所示,時間同步和預約模塊IC和計時器模塊IS主要解決在技術背景中提到的虛擬化情況下時間驅動任務的調度問題。圖中從to時刻獲得時間片的VM1,在t4時刻有預先知道的時間驅動任務必須投入運行。圖中第一條時間軸表示的是在Xen ARM最初版本中,VMl的系統(tǒng)時間不做更新時的任務調度情況。在該情況下,tl時刻VMl由于調度不再獲取CPU時間運行,這時VMl的始終處于停滯狀態(tài),當t2時刻恢復運行重新被調度到時,由于沒有進行時間更新,VMl通過自己的計時器認為系統(tǒng)時間仍然是在t2,然后本應該在t4時刻發(fā)生的時間驅動任務因此被錯過了。圖中第二條時間軸表示的是在當前Xen ARM版本中,已經實現(xiàn)的運行時通過 SharedInfo結構更新時間的機制,在該機制下雖然進行了時間更新,若是t4 > t3時,可以滿足時間驅動的任務,因為這時它在運行,然而對于在t4 < t3的情況,由于在當時VMl并沒有被調度運行,因此VMl將會失去在t4時刻運行的機會。圖中第三條時間軸表示的是在本發(fā)明中的處理辦法,由時間同步和預約模塊IC 在時間片結束前預先分析本系統(tǒng)的時間驅動任務,并生成請求進入計時器模塊中排隊。在計時器模塊is的處理后,和任務調度模塊4S進行交互,交互的邏輯分為圖中的4步步驟1.計時器模塊先將請求記錄到IS模塊中的預約請求隊列中。步驟2.于t4時刻的2*dt、l*dt時間段長度之前發(fā)出對應任務優(yōu)先級中斷通知, 并根據(jù)當時的中斷屏蔽情況來確定是否重新調度(dt為預測試出的XenARM的一次調度和中斷處理延遲最長時間和,參考值為10ms,具體值需按照特點)。步驟3.若接收到4S中分配時間片成功調度則刪除請求步驟4.若接收到4S中有更重要VM運行導致調度失敗時,若任務未過期則保留請求,等待下一次事件觸發(fā)時重新調度,轉步驟1 ;否則由于已經不滿足其時間驅動起始時間要求(當前時間大于起始時間),刪除該請求。但是其任務并沒有刪除,在2S的任務信息收集模塊中依然會有該任務的信息,任務調度模塊4S也會做出全局調度,而該任務錯過起始時間的處理將由任務所在應用邏輯處理。如此,當在t4_dt時亥lj,計時器的預約請求出隊列,并引起中斷,將CPU時間還給調度模塊重新調度,這時調度模塊考慮即將到來的新任務進行全局重新調度,不會盲目的認為有新任務則直接給予時間片,具體的算法會在4S中任務調度算法詳細描述。這時如果中斷處于關閉或者優(yōu)先級屏蔽狀態(tài)則不會引起新的任務調度。因此t4時刻的任務可能會因為滿足更高優(yōu)先級的任務而產生不可避免的延時。而隊列中任務請求,會因此保存直到下一次調度。如圖3所示,任務信息更新觸發(fā)調度模塊2C和任務信息收集模塊2S主要配合解決技術背景中提到的VMM無法感知到VM的任務信息的問題,由于信息的缺失VMM調度模塊無法根據(jù)VM中的任務信息做出全局的正確調度。而此前的task-aware精度不夠并不能較好的滿足嵌入式虛擬化的實時性要求,并且針對MMU內存管理的適用性不高,導致可擴展性差。本模塊中采用一種新的適用于調度算法并包含足夠信息的通用任務信息塊,該信息塊除了會由于時間驅動任務而新建外,會隨著原系統(tǒng)的任務創(chuàng)建而創(chuàng)建、銷毀而銷毀,并且對于高優(yōu)先級任務的創(chuàng)建和滿足資源回收模塊3S要求的任務銷毀,會產生Hypercall引發(fā)重新調度,是否引發(fā)重新調度會根據(jù)Hypercall的優(yōu)先級別和所屏蔽的優(yōu)先級來決定。并且會同時分別計算出適用調度算法的任務信息(全局優(yōu)先級gp,開始運行時刻st,約定開始時刻pst,最壞情況執(zhí)行時間WCET,已執(zhí)行時間et,約定結束時刻ptt,估計結束時刻ett, 下次調度時刻nt,當前狀態(tài)cs)。其中全局優(yōu)先級gp只需要在系統(tǒng)中實現(xiàn)一個全局任務優(yōu)先級映射表,將本系統(tǒng)的任務優(yōu)先級與全局任務做一個映射計算得出,本系統(tǒng)中gp由任務調度模塊4S中采用的響應比優(yōu)先與EDF算法結合的響應比rr表示。實際開始時刻st是創(chuàng)建任務時一同設置, 而約定開始時刻pst則為時間驅動任務所特有的,記錄此值在于為后面的調度算法分析指定任務是否能按期開始做出可調度判斷。WCET則是利用外部WCET分析工具在編譯時已經決定了,這里不做研究實現(xiàn)。約定結束時刻ptt為硬實時任務應該完成的結束時刻,估計結束時刻ett則是根據(jù)運行情況動態(tài)計算的任務估計結束時刻,使得任務調度模塊4S能盡快做出調度,此參數(shù)與EDF算法結合保證在DeadLine前順利完成。下次調度時間nt和閾值χ分別為任務調度模塊決定調度結果后分配額定時間片的下次正常調度時間和必須滿足的資源回收閾值。當前狀態(tài)cs,則記錄任務的三種基本狀態(tài),就緒、運行和等待,使得系統(tǒng)具有較大的可擴展性,該字段將為后面任務調度算法提供優(yōu)先級和調度選擇分析。任務信息收集模塊2S是本發(fā)明的基礎,該模塊為后文任務調度模塊的實現(xiàn)提供全局的任務信息,并且同時由于其信息更新的實時性,它還擔負了觸發(fā)任務調度模塊4S進行重新調度的作用。如圖4所示,本發(fā)明中任務資源監(jiān)控觸發(fā)調度模塊3C和資源回收模塊3S主要用于解決前文技術背景中指出的如何及時回收由于WCET過大估計導致時間片浪費帶來的實時性能影響。該模塊與圖中任務調度模塊4S以及任務信息收集模塊2S直接相關聯(lián),首先, 任務調度模塊做出調度決策,該決策過程中主要進行如下三個步驟步驟1.根據(jù)調度結果更新通用任務信息塊中的下一次調度nt字段步驟2.根據(jù)任務調度模塊4S中的任務排隊,決定資源回收的閾值X步驟3.更新資源回收閾值,結束VMM層調度決策。其中步驟2中資源回收的閾值X的計算過程詳見任務調度模塊4S的具體實現(xiàn)。VM被調度運行的過程中,流程圖如圖4中任務資源監(jiān)控調度觸發(fā)模塊3C,該模塊執(zhí)行步驟如下步驟1.在任務完成時,設置任務信息塊結束時刻信息;步驟2.計算結束時刻和下一次調度之間nt的差值步驟3.比較該值與閾值之間的大小,若大則用hHypercall激活任務信息收集模塊2S,轉步驟4 ;否則繼續(xù)進行操作系統(tǒng)內部調度4C。步驟4.調用任務信息收集模塊2S,進行任務信息更新,并觸發(fā)任務調度模塊4S進行新一輪的任務調度決策。由此過程,可充分利用由于WCET造成的時間浪費,并及時將其分配給其他急需運行時間的任務,從而提高了系統(tǒng)的整體實時性能。如圖5所示,本發(fā)明中任務調度模塊4S是最為核心的模塊,它結合之前3個模塊中收集的實時任務信息、計時器模塊對對時間驅動任務的輔助、資源監(jiān)控和回收模塊對對實時系統(tǒng)中時間過剩問題的解決,最終做出全局實時任務的調度決策,調用資源回收模塊 3S計算并更新通用任務信息塊中下次更新時間nt和閾值X。對于僅有時間驅動任務的情況,EDF算法已經可以被證明是最優(yōu)的調度算法,由于在多個VM各類任務共存的情況下,僅僅依靠EDF算法,可能會導致部分沒有截止時間限制的低優(yōu)先級任務饑餓,本發(fā)明的任務調度模塊采用改進的響應比優(yōu)先和EDF算法結合的方式,借鑒EDF的算法作為響應比優(yōu)先算法的分母,來實現(xiàn)距離DeadLine越小的越優(yōu)先調度,此外利用任務從開始到調度時刻的總響應時間作為分子,實現(xiàn)總響應時間較長者優(yōu)先的效果,使得較低優(yōu)先級的任務不會因為一直等待而發(fā)生饑餓的情況。
假設計算當時的時刻為ct,全局優(yōu)先級gp利用響應比優(yōu)先的如下公式計算gp = (Ct-St)/I(WCET-et)
其中響應時間(ct-st)為當前時間減去任務開始時刻,而待執(zhí)行時間計算 (WCET-et)為最壞執(zhí)行時間減去當前已經執(zhí)行過的時間的絕對值。對于非實時任務,由于 WCET并不存在,我們讓其保持為初值0,因此算得的待執(zhí)行時間實際為已經執(zhí)行的時間同樣可以起到響應比優(yōu)先的效果,同時對于WCET估計較小的情況,取絕對值使得待執(zhí)行的時間值為已經超過的時間。本系統(tǒng)中響應比將作為全局任務優(yōu)先級的具體實現(xiàn),響應比能夠起到照顧長時間得不到響應的任務,并且其短任務優(yōu)先的做法一定程度上提高了系統(tǒng)吞吐率。
當實時任務調度運行時,通過實現(xiàn)優(yōu)先級中斷請求技術,實現(xiàn)對時間和事件驅動實時任務的支持。該過程分為如圖5中的8個步驟
步驟1.對于時間驅動任務,通過對計時器實現(xiàn)和時間驅動預約隊列的實現(xiàn),生成Hypercall請求中斷;對于事件驅動任務,則由任務信息更新調度觸發(fā)模塊直接發(fā)出 Hypercall請求中斷。這些任務將優(yōu)先被各自專門的CPU負責處理,而盡量不會占用其他低實時要求任務的CPU處理時間,轉步驟2判斷是否能夠處理;
步驟2.在兩個獨立監(jiān)督式CPU中比較自身任務優(yōu)先級和當前中斷屏蔽優(yōu)先級,若表示中斷屏蔽則不進入中斷,即獨立監(jiān)督式CPU無法處理,則打斷非獨立監(jiān)督式CPU的運行。轉入步驟3。若中斷未能屏蔽,則進入中斷處理程序,保存原程序信息,處理中斷和時間驅動任務或事件驅動任務,則不經過非獨立監(jiān)督式CPU的調度直接分配時間片給該任務, 轉步驟4 ;
步驟3.調用任務信息收集模塊,進行通用任務信息塊的信息構造處理。
步驟4.對各VM進行調度,對于單處理機的情況,直接按照最高優(yōu)先級就緒態(tài)任務的最壞執(zhí)行時間給予保證其運行結束的最長時間片ti。而對于多處理機而非獨立監(jiān)控CPU 的情況,它們需要公用相同的時間片Pt統(tǒng)一調度.Pt取所有接受調度VM的ti的最大值。
Pt = Max (ti)
步驟5.利用調度結果,設置調用資源回收模塊進行任務信息塊的下一次調度時間和閾值X的更新。其中閾值X的計算減輕了由于頻繁調度的開銷。
由于取得最長時間片和最壞情況執(zhí)行時間的緣故,當在被調度VM之外若存在等待調度的其他實時任務時,則必須要及時回收過剩的時間片,進行重新調度。因此需要計算資源回收的閾值X,根據(jù)如下等式求得
權利要求
1.一種嵌入式虛擬機的實時調度系統(tǒng),其特征在于,該系統(tǒng)包括位于各VM內的時間同步和預約模塊(IC)、任務信息更新調度觸發(fā)模塊(2C)、任務資源監(jiān)控調度觸發(fā)模塊(3C)、 操作系統(tǒng)內部調度模塊(4C),它們負責在各個VM中收集信息并且實時觸發(fā)VMM進行信息更新和調度;此外還包括位于VMM內的計時器模塊(1 、任務信息收集模塊0 、資源回收模塊(3 和任務調度模塊0 ,它們分別對于各個VM中的4個客戶端模塊,對各個VM的任務信息進行統(tǒng)計管理,并最終通過任務調度模塊GS)做出VMM層調度最終決策,并且監(jiān)督各個VM操作系統(tǒng)內部的實時調度過程。
2.根據(jù)權利要求1所述的實時調度系統(tǒng),其特征在于,時間同步和預約模塊(IC)用于實現(xiàn)各VM和VMM的時鐘同步,以便進行全局時鐘的時間驅動任務調度;同時當有時間驅動任務輸入時,時間同步和預約模塊(IC)還根據(jù)該時間驅動任務的時間要求,并且發(fā)出時間預約請求給計時器模塊(IS),發(fā)出任務更新請求到任務信息更新調度觸發(fā)模塊QC)。
3.根據(jù)權利要求1或2所述的實時調度系統(tǒng),其特征在于,任務信息更新調度觸發(fā)模塊0C)用于接收時間同步與預約模塊(IC)的任務信息更新請求和外部事件驅動任務請求,并計算VM中位于amrecHnfo結構中的任務信息塊內容,輸出Hypercall觸發(fā)任務信息收集模塊QS)從SiarecHnfo結構中收集該VM中的任務信息, 從而實現(xiàn)VMM對VM中的事件驅動和時間驅動的任務感知。
4.根據(jù)權利要求1或2所述的實時調度系統(tǒng),其特征在于,任務資源監(jiān)控調度觸發(fā)模塊(3C),以系統(tǒng)中任務銷毀事件作為輸入,通過對該事件及時響應,更新位于SiarecHnfo結構中的任務信息,并輸出Hypercall通知任務信息收集模塊0 進行任務信息收集分析,進而引發(fā)重新調度,從而解決任務信息更新調度觸發(fā)模塊 (2C)中WCET估算不精確導致的時間片浪費問題。
5.根據(jù)權利要求1或2所述的實時調度系統(tǒng),其特征在于,操作系統(tǒng)內部調度模塊 (4C)主要承擔操作系統(tǒng)內部的任務調度的任務,該模塊由任務調度模塊GS)的VCPU調度觸發(fā),當操作系統(tǒng)內部調度模塊GC)所在虛擬機進入運行狀態(tài)時,該模塊將能按照全局優(yōu)先級,以及內部系統(tǒng)調用的搶占實現(xiàn)對VM操作系統(tǒng)的任務進行優(yōu)先級搶占調度。
6.根據(jù)權利要求1或2所述的實時調度系統(tǒng),其特征在于,計時器模塊(IS)通過 amrecHnfo信息塊與運行中的VM時間同步,并用于向任務調度模塊0S)輸出重新調度請求。
7.根據(jù)權利要求3或4所述的實時調度系統(tǒng),其特征在于,任務信息收集模塊OS)用于收集任務信息,任務信息收集模塊OS)在任務信息更新調度觸發(fā)模塊0C)和任務資源監(jiān)控調度觸發(fā)模塊(3C)向其發(fā)送任務信息收集Hypercall 時,用于對各VM中的任務進行收集;此外,任務信息收集模塊0 在接收到資源回收模塊 (3S)的更新請求時,對任務信息塊中下次調度時間和閾值的最新計算值進行更新。
8.根據(jù)權利要求1或2所述的實時調度系統(tǒng),其特征在于,資源回收模塊(3S)利用任務信息收集模塊0 更新得到的下次調度時間和閾值,計算不重新調度情況下所取得的平均收益與花費dt時間進行重新調度情況下所獲得的收益進行比較,重新計算最新資源回收閾值,以便資源回收時避免沒有任何增益的重新調度,dt為預測試出的XenARM的一次調度和中斷處理延遲最長時間和。
9.根據(jù)權利要求1或2所述的實時調度系統(tǒng),其特征在于,任務調度模塊GS)用于接收重新調度請求,檢測是否需要重新調度,以將多余的時間片分給其他優(yōu)先級更高或者即將有時間驅動任務的VM運行;若需要重新調度,針對全局任務信息結合響應比優(yōu)先和EDF 算法進行第一層VM調度后,使得各VM開始調度運行,進而使得VM內部的操作系統(tǒng)內部調度模塊GC)開始第二層調度,并觸發(fā)資源回收模塊(3S)結合全局任務信息對資源回收閾值進行重新計算和更新。
全文摘要
本發(fā)明公開了嵌入式虛擬機的實時調度系統(tǒng),包括位于各VM內的時間同步和預約模塊、任務信息更新調度觸發(fā)模塊、任務資源監(jiān)控調度觸發(fā)模塊、操作系統(tǒng)內部調度模塊,負責在各個VM中收集信息并且實時觸發(fā)VMM信息更新和調度進行;以及位于VMM內的計時器模塊1S、任務信息收集模塊、資源回收模塊和任務調度模塊,負責對各個VM的任務信息進行統(tǒng)計管理,并最終通過任務調度模塊做出VMM層調度最終決策,并且監(jiān)督各個VM操作系統(tǒng)內部的實時調度過程。該發(fā)明為開放實時系統(tǒng)提供低成本,高利用率的同時,保證了系統(tǒng)高實時性,并且利用可拆卸的服務器模塊實現(xiàn)了可擴展性優(yōu)化,充分利用虛擬化的安全和隔離特性,為整個實時系統(tǒng)帶來了高可靠性,高吞吐率。
文檔編號G06F9/48GK102541651SQ201110410689
公開日2012年7月4日 申請日期2011年12月12日 優(yōu)先權日2011年12月12日
發(fā)明者岑文峰, 曹文治, 曹杰, 柯西江, 王希斌, 謝夏, 趙璐, 金海 申請人:華中科技大學