一種不破壞客戶操作系統(tǒng)自有調(diào)度策略的虛擬化調(diào)度方法
【專利摘要】本發(fā)明涉及一種不破壞客戶操作系統(tǒng)自有調(diào)度策略的虛擬化調(diào)度方法,通過對于具有相同響應(yīng)性能要求的任務(wù),賦予相同的優(yōu)先級,調(diào)用虛擬化管理器的系統(tǒng)服務(wù),在虛擬化管理器中創(chuàng)建包含優(yōu)先級信息的任務(wù)控制塊,將任務(wù)置于未激活狀態(tài)等步驟,在確保實時性能和虛擬化原則的基礎(chǔ)上使虛擬化管理器和客戶操作系統(tǒng)的調(diào)度配合,避免了客戶操作系統(tǒng)自有調(diào)度策略遭到破壞,使混合任務(wù)平臺之上的全局統(tǒng)一調(diào)度成為可能,提高了整個系統(tǒng)的實時響應(yīng)性能和調(diào)度效率。
【專利說明】一種不破壞客戶操作系統(tǒng)自有調(diào)度策略的虛擬化調(diào)度方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于航空電子【技術(shù)領(lǐng)域】,涉及一種不破壞客戶操作系統(tǒng)自有調(diào)度策略的虛擬調(diào)化調(diào)度方法。
【背景技術(shù)】
[0002]隨著航空電子技術(shù)的發(fā)展,機載電子系統(tǒng)綜合化成為必然發(fā)展趨勢,一個物理平臺可能承擔(dān)來自多各系統(tǒng)的不同類型的任務(wù),這些任務(wù)可能是機電、航電或飛控應(yīng)用,具有不同的響應(yīng)性能要求。為了應(yīng)對這種實時任務(wù)和一般任務(wù)共存的場景,合理的調(diào)度策略就是把當(dāng)前調(diào)度集合中的實時任務(wù)和非實時任務(wù)按照優(yōu)先級統(tǒng)一調(diào)度,達到優(yōu)先處理強實時任務(wù)的效果。
[0003]如圖1所示的全局統(tǒng)一調(diào)度方法,給混合任務(wù)平臺上的所有任務(wù)賦予全局統(tǒng)一優(yōu)先級,在虛擬化管理器中維護一個建立在當(dāng)前活動分區(qū)所有任務(wù)集合之上的全局的任務(wù)優(yōu)先級調(diào)度隊列,進行全局統(tǒng)一調(diào)度。具體來說就是將所有任務(wù)的實時優(yōu)先級都映射為全局的統(tǒng)一優(yōu)先級,然后在時間片耗盡和實時事件觸發(fā)時,由虛擬化管理器的調(diào)度器進行統(tǒng)一調(diào)度。
[0004]對于同一實時響應(yīng)要求的任務(wù)全部給定相同的全局優(yōu)先級,相同優(yōu)先級的任務(wù)在全局實時調(diào)度中是以輪轉(zhuǎn)Round-Robin方式進行調(diào)度。這種優(yōu)先級配置策略在系統(tǒng)存在虛擬化分區(qū)的情況下將破壞客戶操作系統(tǒng)原本的調(diào)度策略(比如Linux的CFS調(diào)度策略),違反了虛擬化的原則。因此,虛擬化管理器和客戶操作系統(tǒng)必須采取必要的措施,在無更高優(yōu)先級任務(wù)搶占時采取合理的配合機制,保留客戶操作系統(tǒng)自身的調(diào)度策略。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有的調(diào)度方法無法滿足不同類型任務(wù)的響應(yīng)性能要求及全局實時虛擬化調(diào)度與客戶操作系統(tǒng)自身調(diào)度不相協(xié)調(diào)的技術(shù)問題,本發(fā)明提供一種不破壞客戶操作系統(tǒng)自有調(diào)度的虛擬化調(diào)度方法。
[0006]本發(fā)明的技術(shù)解決方案如下:
[0007]—種不破壞客戶操作系統(tǒng)自有調(diào)度策略的虛擬化調(diào)度方法,其特殊之處在于:包括以下步驟:
[0008]1】在系統(tǒng)啟動后,虛擬化管理器在初始化階段創(chuàng)建多個分區(qū),建立一個的全局的任務(wù)優(yōu)先級調(diào)度隊列,所述分區(qū)包括含有客戶操作系統(tǒng)的操作系統(tǒng)分區(qū)和不含客戶操作系統(tǒng)的裸應(yīng)用分區(qū);
[0009]所述裸應(yīng)用分區(qū)內(nèi)的所有任務(wù)按照各自的優(yōu)先級直接加入任務(wù)優(yōu)先級調(diào)度隊列;
[0010]所述操作系統(tǒng)分區(qū)在初始化階段創(chuàng)建一個優(yōu)先級高于所處客戶操作系統(tǒng)中其他任務(wù)的客戶級定時器處理線程,客戶級定時器處理線程的初始狀態(tài)為等待接收調(diào)度權(quán)利轉(zhuǎn)移消息的狀態(tài);[0011]2】在系統(tǒng)運行階段,客戶操作系統(tǒng)創(chuàng)建任務(wù),并將其置于未激活狀態(tài),具體步驟如下:
[0012]2.1】在創(chuàng)建任務(wù)時按照任務(wù)響應(yīng)性能的要求賦予優(yōu)先級信息,對于具有相同響應(yīng)性能要求的任務(wù),賦予相同的優(yōu)先級;
[0013]2.2】通過調(diào)用虛擬化管理器的系統(tǒng)服務(wù),在虛擬化管理器中創(chuàng)建包含優(yōu)先級信息的任務(wù)控制塊,并將任務(wù)置于未激活狀態(tài);
[0014]3】進入一個時間中斷觸發(fā)的調(diào)度時機,虛擬化管理器接管時間中斷,在時間中斷預(yù)處理過程中開始執(zhí)行任務(wù)調(diào)度的處理流程,具體步驟如下:
[0015]3.1】時間中斷預(yù)處理程序在任務(wù)優(yōu)先級調(diào)度隊列中進行判斷:
[0016]如果當(dāng)前存在更高優(yōu)先級的任務(wù),則按照全局調(diào)度策略執(zhí)行實時搶占,更高優(yōu)先級的任務(wù)將獲取處理器,調(diào)度結(jié)束;
[0017]如果不存在更高全局優(yōu)先級的任務(wù),則給當(dāng)前客戶操作系統(tǒng)的客戶級定時器處理線程發(fā)送調(diào)度權(quán)利轉(zhuǎn)移的消息,執(zhí)行步驟3.2】
[0018]3.2】客戶級定時器處理線程判斷當(dāng)前任務(wù)是否耗盡了時間片:
[0019]如果已經(jīng)耗盡,則激活客戶操作系統(tǒng)的調(diào)度器,依據(jù)客戶操作系統(tǒng)的調(diào)度策略進行調(diào)度,將選取的新任務(wù)加入任務(wù)優(yōu)先級調(diào)度隊列、停掉被剝奪CPU的上一個任務(wù);
[0020]如果未耗盡,將不作處理,當(dāng)前任務(wù)繼續(xù)執(zhí)行;
[0021]3.3】等到下一個調(diào)度時機,回到步驟3.1】。
[0022]本發(fā)明的有益效果:
[0023]本發(fā)明涉及一種不破壞客戶操作系統(tǒng)自有調(diào)度策略的虛擬化調(diào)度方法,通過對于具有相同響應(yīng)性能要求的任務(wù),賦予相同的優(yōu)先級,調(diào)用虛擬化管理器的系統(tǒng)服務(wù),在虛擬化管理器中創(chuàng)建包含優(yōu)先級信息的任務(wù)控制塊,將任務(wù)置于未激活狀態(tài)等步驟,在確保實時性能和虛擬化原則的基礎(chǔ)上使虛擬化管理器和客戶操作系統(tǒng)的調(diào)度配合,避免了客戶操作系統(tǒng)自有調(diào)度策略遭到破壞,使混合任務(wù)平臺之上的全局統(tǒng)一調(diào)度成為可能,提高了整個系統(tǒng)的實時響應(yīng)性能和調(diào)度效率。
【專利附圖】
【附圖說明】
[0024]圖1為全局調(diào)度方法示意圖;
[0025]圖2為本發(fā)明不破壞客戶操作系統(tǒng)自有調(diào)度的虛擬調(diào)度方法示意圖。
【具體實施方式】
[0026]本發(fā)明針對航空電子系統(tǒng)綜合化和遺產(chǎn)代碼繼承需求所產(chǎn)生的虛擬化多任務(wù)混合調(diào)度場景,能夠在保證實時任務(wù)響應(yīng)性能的同時,解決全局調(diào)度策略破壞客戶操作系統(tǒng)自有調(diào)度策略的問題。
[0027]本發(fā)明應(yīng)用的系統(tǒng)包括硬件、運行在硬件上的虛擬化管理器、及運行在虛擬化管理器提供的虛擬化硬件 執(zhí)行環(huán)境中的多個客戶操作系統(tǒng),虛擬化管理器讀取硬件設(shè)備的注冊信息獲取對所有硬件設(shè)備的控制;客戶操作系統(tǒng)通過虛擬化管理器的虛擬化服務(wù)接口與虛擬化管理器連接。
[0028]本發(fā)明的基本原理是:首先,限制單個客戶操作系統(tǒng)上應(yīng)用級任務(wù)在任務(wù)優(yōu)先級調(diào)度隊列中同時出現(xiàn),從而使全局調(diào)度策略無法影響到客戶操作系統(tǒng)內(nèi)部的任務(wù)調(diào)度;其次,在觸發(fā)調(diào)度的時機,全局調(diào)度器優(yōu)先調(diào)度,如果沒有當(dāng)前運行客戶操作系統(tǒng)之外的更高優(yōu)先級的任務(wù)就緒,則將調(diào)度控制權(quán)交給當(dāng)前客戶操作系統(tǒng)的客戶級調(diào)度器,此時激活客戶級調(diào)度策略。
[0029]如圖2所示,解決這一問題的虛擬化調(diào)度方法是:
[0030]在系統(tǒng)啟動后,虛擬化管理器在初始化階段創(chuàng)建多個分區(qū),建立并維護一個全局的任務(wù)優(yōu)先級調(diào)度隊列,分區(qū)的類型包括含有操作系統(tǒng)的客戶操作系統(tǒng)分區(qū)和不含操作系統(tǒng)的裸應(yīng)用分區(qū);裸應(yīng)用分區(qū)內(nèi)的所有任務(wù)按照各自的優(yōu)先級順序直接加入任務(wù)優(yōu)先級調(diào)度隊列。
[0031]客戶操作系統(tǒng)可以按照實時性要求分為實時操作系統(tǒng)和非實時操作系統(tǒng),在任務(wù)優(yōu)先級調(diào)度隊列中,實時操作系統(tǒng)中任務(wù)的優(yōu)先級一般高于非實時操作系統(tǒng)任務(wù)。
[0032]客戶操作系統(tǒng)分區(qū)在初始化階段創(chuàng)建一個優(yōu)先級高于所處客戶操作系統(tǒng)中其他任務(wù)的客戶級定時器處理線程,客戶級定時器處理線程,等待接收虛擬化管理器發(fā)送的調(diào)度權(quán)利轉(zhuǎn)移的消息,一旦接收此消息將進行客戶級調(diào)度處理。
[0033]在系統(tǒng)運行階段,客戶操作系統(tǒng)創(chuàng)建任務(wù),并將其置于未激活狀態(tài),具體步驟如下:
[0034]在創(chuàng)建任務(wù)時按照任務(wù)響應(yīng)性能的要求賦予優(yōu)先級,對于具有相同響應(yīng)性能要求的任務(wù),賦予相同的優(yōu)先級;通過調(diào)用虛擬化管理器的系統(tǒng)服務(wù),在虛擬化管理器中創(chuàng)建包含優(yōu)先級信息的任務(wù)控制塊,并將任務(wù)置于未激活狀態(tài),使其不會馬上加入任務(wù)優(yōu)先級調(diào)度隊列。
[0035]在時間觸發(fā)的調(diào)度時機,虛擬化管理器接管時間中斷,在時間中斷預(yù)處理過程中開始執(zhí)行任務(wù)調(diào)度的處理流程,具體步驟如下:
[0036]時間中斷預(yù)處理程序在任務(wù)優(yōu)先級調(diào)度隊列中進行判斷,如果當(dāng)前存在更高優(yōu)先級的任務(wù),則按照全局調(diào)度策略執(zhí)行實時搶占,更高優(yōu)先級的任務(wù)將獲取處理器。
[0037]如果不存在更高全局優(yōu)先級的任務(wù),則給當(dāng)前客戶操作系統(tǒng)的客戶級定時器處理線程發(fā)送調(diào)度權(quán)利轉(zhuǎn)移的消息,將調(diào)度權(quán)力轉(zhuǎn)交給客戶操作系統(tǒng)。
[0038]客戶級定時器處理線程判斷當(dāng)前任務(wù)是否耗盡了時間片,如果已經(jīng)耗盡,則激活客戶操作系統(tǒng)的調(diào)度器,依據(jù)客戶操作系統(tǒng)的調(diào)度策略進行調(diào)度,將選取的新任務(wù)加入任務(wù)優(yōu)先級調(diào)度隊列、停掉被剝奪CPU的上一個任務(wù);如果未耗盡,將不作處理,當(dāng)前任務(wù)繼續(xù)執(zhí)行。
[0039]等到下一個調(diào)度時機,回到調(diào)度步驟。
[0040]通過上述虛擬化調(diào)度方法,可以在確保實時性能和虛擬化原則的基礎(chǔ)上,完成虛擬化管理器和客戶操作系統(tǒng)的調(diào)度配合,避免客戶操作系統(tǒng)自有調(diào)度策略遭到破壞。
【權(quán)利要求】
1.一種不破壞客戶操作系統(tǒng)自有調(diào)度策略的虛擬化調(diào)度方法,其特征在于:包括以下步驟: .1】在系統(tǒng)啟動后,虛擬化管理器在初始化階段創(chuàng)建多個分區(qū),建立一個的全局的任務(wù)優(yōu)先級調(diào)度隊列,所述分區(qū)包括含有客戶操作系統(tǒng)的操作系統(tǒng)分區(qū)和不含客戶操作系統(tǒng)的裸應(yīng)用分區(qū); 所述裸應(yīng)用分區(qū)內(nèi)的所有任務(wù)按照各自的優(yōu)先級直接加入任務(wù)優(yōu)先級調(diào)度隊列; 所述操作系統(tǒng)分區(qū)在初始化階段創(chuàng)建一個優(yōu)先級高于所處客戶操作系統(tǒng)中其他任務(wù)的客戶級定時器處理線程,客戶級定時器處理線程的初始狀態(tài)為等待接收調(diào)度權(quán)利轉(zhuǎn)移消息的狀態(tài); . 2】在系統(tǒng)運行階段,客戶操作系統(tǒng)創(chuàng)建任務(wù),并將其置于未激活狀態(tài),具體步驟如下: .2.1】在創(chuàng)建任務(wù)時按照任務(wù)響應(yīng)性能的要求賦予優(yōu)先級信息,對于具有相同響應(yīng)性能要求的任務(wù),賦予相同的優(yōu)先級; .2.2】通過調(diào)用虛擬化管理器的系統(tǒng)服務(wù),在虛擬化管理器中創(chuàng)建包含優(yōu)先級信息的任務(wù)控制塊,并將任務(wù)置于未激活狀態(tài); .3】進入一個時間中斷觸發(fā)的調(diào)度時機,虛擬化管理器接管時間中斷,在時間中斷預(yù)處理過程中開始執(zhí)行任務(wù)調(diào)度的處理流程,具體步驟如下: .3.1】時間中斷預(yù)處理程序在任務(wù)優(yōu)先級調(diào)度隊列中進行判斷: 如果當(dāng)前存在更高優(yōu)先級的任務(wù),則按照全局調(diào)度策略執(zhí)行實時搶占,更高優(yōu)先級的任務(wù)將獲取處理器,調(diào)度結(jié)束; 如果不存在更高全局優(yōu)先級的任務(wù),則給當(dāng)前客戶操作系統(tǒng)的客戶級定時器處理線程發(fā)送調(diào)度權(quán)利轉(zhuǎn)移的消息,執(zhí)行步驟3.2】 .3.2】客戶級定時器處理線程判斷當(dāng)前任務(wù)是否耗盡了時間片: 如果已經(jīng)耗盡,則激活客戶操作系統(tǒng)的調(diào)度器,依據(jù)客戶操作系統(tǒng)的調(diào)度策略進行調(diào)度,將選取的新任務(wù)加入任務(wù)優(yōu)先級調(diào)度隊列、停掉被剝奪CPU的上一個任務(wù); 如果未耗盡,將不作處理,當(dāng)前任務(wù)繼續(xù)執(zhí)行; .3.3】等到下一個調(diào)度時機,回到步驟3.1】。
【文檔編號】G06F9/48GK103902366SQ201210578885
【公開日】2014年7月2日 申請日期:2012年12月27日 優(yōu)先權(quán)日:2012年12月27日
【發(fā)明者】周霆, 胡寧, 郝繼鋒, 張燈, 張勇, 楊瓊, 何翔, 虞保忠, 尹超 申請人:中國航空工業(yè)集團公司第六三一研究所