一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法
【專利摘要】本發(fā)明涉及一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法,該方法包括:延遲執(zhí)行調(diào)度部分,為每類命令添加延遲執(zhí)行狀態(tài)標識,并通過延遲恢復檢查器檢測是否需要恢復非延遲狀態(tài);指令命令控制執(zhí)行部分,設定控制周期,對每個控制周期計算指定命令的執(zhí)行閾值,根據(jù)執(zhí)行閾值控制每個控制周期中指令命令的執(zhí)行個數(shù)。與現(xiàn)有技術相比,本發(fā)明提高了命令執(zhí)行效率,解決單線程多優(yōu)先級調(diào)度系統(tǒng)中,由于較占時的低優(yōu)先級任務的插入,導致高優(yōu)先級任務執(zhí)行效率大幅下降的問題。
【專利說明】一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法【技術領域】
[0001]本發(fā)明涉及一種命令調(diào)度方法,尤其是涉及一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法。
【背景技術】
[0002]常見的命令調(diào)度系統(tǒng)按線程數(shù)目分有:
[0003]1.單線程命令調(diào)度系統(tǒng)。單線程命令調(diào)度系統(tǒng)適合訪問資源單一的簡單系統(tǒng),因為單線程命令調(diào)度系統(tǒng)不會有復雜的互斥和同步邏輯,故不會有同步互斥鎖相關的損耗。但是由于處理器親和性一般只允許一個線程在一個處理器上執(zhí)行,所以單線程命令調(diào)度系統(tǒng)在對稱多處理(Symmetric Multiprocessing,縮寫為SMP)硬件架構環(huán)境中無法盡可能多的使用系統(tǒng)資源以發(fā)揮出很好的性能,故其只適合處理器核數(shù)較少的硬件環(huán)境。
[0004]2.多線程命令調(diào)度系統(tǒng)。多線程的命令調(diào)度系統(tǒng)與單線程命令調(diào)度系統(tǒng)剛好相反。多線程的命令調(diào)度系統(tǒng)由于不同的線程可以在不同的處理器上執(zhí)行,所以適合SMP硬件架構。多線程命令調(diào)度系統(tǒng)由于涉及資源的互斥訪問和可能的線程間同步,實現(xiàn)較為復雜的同時,可能在非SMP環(huán)境中,或者核數(shù)較少的情況下,性能不及單線程命令調(diào)度系統(tǒng)。
[0005]單線程命令調(diào)度系統(tǒng)中命令訪問的底層資源單一,且硬件環(huán)境多為單核和雙核處理器。單線程命令調(diào)度系統(tǒng)按調(diào)度方法分:
[0006]1.先來先服務(First In First Out, FIFO)流水線方式。FIFO方式能夠保證任務都按一定順序執(zhí)行,缺點是一些可能需要立即執(zhí)行的任務無法立即響應。如果提交了一個較耗資源的任務,它可能會延后后續(xù)所有任務的執(zhí)行。一般來說,F(xiàn)IFO方式只適用于單線程命令調(diào)度系統(tǒng)和調(diào)度要求按順序、執(zhí)行不作要求的多線程命令調(diào)度系統(tǒng)。
[0007]2.按多優(yōu)先級的優(yōu)先調(diào)度方式。多優(yōu)先級的命令調(diào)度方式是指將不同類型的命令分為不同的優(yōu)先級進行排隊,不同優(yōu)先級的命令優(yōu)先級高的優(yōu)先被調(diào)度,相同優(yōu)先級的命令按FIFO方式調(diào)度。該方式解決了單一的先來先服務方式不能立即響應需要立即執(zhí)行的任務的問題。
[0008]上述四種調(diào)度方式就類似去銀行辦理業(yè)務的流程,先取號,等待已經(jīng)完成服務的窗口按順序叫號。單線程、多線程就 好比開了一個還是多個辦理業(yè)務的窗口。是否按優(yōu)先級就看取的號是否分VIP個人業(yè)務、企業(yè)業(yè)務、外幣業(yè)務、普通個人業(yè)務按不同的隊伍排號。
[0009]多優(yōu)先級命令調(diào)度方式雖然解決了任務不能立即響應的問題,但是由于算法較簡單,對于命令的執(zhí)行缺乏有效的控制,引入了新的問題:如果任務插入速度過快,可能導致低優(yōu)先級任務餓死的問題,就好像有VIP就需要優(yōu)先響應,那么一直來辦理VIP業(yè)務的,就會導致辦理普通業(yè)務的顧客一直得不到服務;如果任務插入速度較慢,且低優(yōu)先級任務耗時較長,可能導致高優(yōu)先級任務執(zhí)行時間延長的問題,比如一個辦理普通業(yè)務的顧客占用了較長時間,會導致不能及時為后續(xù)來的VIP顧客提供服務。
【發(fā)明內(nèi)容】
[0010]本發(fā)明的目的就是為了克服上述現(xiàn)有技術存在的缺陷而提供一種提高命令執(zhí)行效率的單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法,解決了單線程多優(yōu)先級調(diào)度系統(tǒng)中,由于較占時的低優(yōu)先級任務的插入,導致高優(yōu)先級任務執(zhí)行效率大幅下降的問題。
[0011]本發(fā)明的目的可以通過以下技術方案來實現(xiàn):
[0012]一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法,該方法包括:
[0013]延遲執(zhí)行調(diào)度部分,為每類命令添加延遲執(zhí)行狀態(tài)標識,并通過延遲恢復檢查器檢測是否需要恢復非延遲狀態(tài);
[0014]指令命令控制執(zhí)行部分,設定控制周期,對每個控制周期計算指定命令的執(zhí)行閾值,根據(jù)執(zhí)行閾值控制每個控制周期中指令命令的執(zhí)行個數(shù)。
[0015]所述的延遲執(zhí)行調(diào)度部分具體為:
[0016]al)判斷所取的命令是否支持延遲執(zhí)行,若是,則執(zhí)行步驟a2),若否,則取下一個命令,返回步驟al);
[0017]a2)判斷該命令是否處于非延遲狀態(tài)且最近執(zhí)行的命令比當前命令的優(yōu)先級高,若是,則啟動延遲執(zhí)行模式,并啟動延遲恢復檢查器,執(zhí)行步驟a3),若否,則執(zhí)行該命令,取下一個命令,返回步驟al);
[0018]a3)延遲恢復檢查器判斷是否有比當前命令的優(yōu)先級高的命令,若是,則保持延遲執(zhí)行模式,若否,則恢復非延遲執(zhí)行狀態(tài)。
[0019]所述的支持延遲執(zhí)的命令設有擴展狀態(tài),所述的擴展狀態(tài)包括完全不允許指定命令執(zhí)行狀態(tài)、完全允許指令命令執(zhí)行狀態(tài)或正常狀態(tài)。
[0020]所述的指令命令控制執(zhí)行部分具體為:
[0021]bl)將時間按固定周期劃分為多個執(zhí)行周期,取固定數(shù)量的執(zhí)行周期作為一個控制周期;
[0022]b2)在當前控制周期,前兩個執(zhí)行周期內(nèi)進行:完全不允許指定命令執(zhí)行和完全允許指定命令執(zhí)行,分別記錄指定命令和其他命令的執(zhí)行個數(shù),計算出該控制周期內(nèi)指定命令的執(zhí)行閾值;
[0023]b3)在除前兩個執(zhí)行周期外的控制周期內(nèi),若已經(jīng)執(zhí)行的指定命令達到執(zhí)行閾值,則停止該控制周期內(nèi)指令命令的執(zhí)行;
[0024]b4)進入下一個周期,重復執(zhí)行步驟b2) -b3),重置并重新計算執(zhí)行閾值。
[0025]所述的執(zhí)行閾值的計算公式具體為:
【權利要求】
1.一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法,其特征在于,該方法包括: 延遲執(zhí)行調(diào)度部分,為每類命令添加延遲執(zhí)行狀態(tài)標識,并通過延遲恢復檢查器檢測是否需要恢復非延遲狀態(tài); 指令命令控制執(zhí)行部分,設定控制周期,對每個控制周期計算指定命令的執(zhí)行閾值,根據(jù)執(zhí)行閾值控制每個控制周期中指令命令的執(zhí)行個數(shù)。
2.根據(jù)權利要求1所述的一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法,其特征在于,所述的延遲執(zhí)行調(diào)度部分具體為: al)判斷所取的命令是否支持延遲執(zhí)行,若是,則執(zhí)行步驟a2),若否,則取下一個命令,返回步驟al); a2)判斷該命令是否處于非延遲狀態(tài)且最近執(zhí)行的命令比當前命令的優(yōu)先級高,若是,則啟動延遲執(zhí)行模式,并啟動延遲恢復檢查器,執(zhí)行步驟a3),若否,則執(zhí)行該命令,取下一個命令,返回步驟al); a3)延遲恢復檢查器判斷是否有比當前命令的優(yōu)先級高的命令,若是,則保持延遲執(zhí)行模式,若否,則恢復非延遲執(zhí)行狀態(tài)。
3.根據(jù)權利要求2所述的一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法,其特征在于,所述的支持延遲執(zhí)的命令設有擴展狀態(tài),所述的擴展狀態(tài)包括完全不允許指定命令執(zhí)行狀態(tài)、完全允許指令命令執(zhí)行狀態(tài)或正常狀態(tài)。
4.根據(jù)權利要求1所述的一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法,其特征在于,所述的指令命令控制執(zhí)行部分具體為: bl)將時間按固定周期劃分為多個執(zhí)行周期,取固定數(shù)量的執(zhí)行周期作為一個控制周期; b2)在當前控制周期,前兩個執(zhí)行周期內(nèi)進行:完全不允許指定命令執(zhí)行和完全允許指定命令執(zhí)行,分別記錄指定命令和其他命令的執(zhí)行個數(shù),計算出該控制周期內(nèi)指定命令的執(zhí)行閾值; b3)在除前兩個執(zhí)行周期外的控制周期內(nèi),若已經(jīng)執(zhí)行的指定命令達到執(zhí)行閾值,則停止該控制周期內(nèi)指令命令的執(zhí)行; b4)進入下一個周期,重復執(zhí)行步驟b2) -b3),重置并重新計算執(zhí)行閾值。
5.根據(jù)權利要求4所述的一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法,其特征在于,所述的執(zhí)行閾值的計算公式具體為:
6.根據(jù)權利要求5所述的一種單線程多優(yōu)先級系統(tǒng)的智能調(diào)度方法,其特征在于,若當前執(zhí)行周期內(nèi)其他命令的執(zhí)行個數(shù)a'變化超過設定幅度,立即開始重新計算a、a' ¥和bth ;否則對bth進行微調(diào):將公式⑴中的a調(diào)整為
【文檔編號】G06F9/38GK103793207SQ201410027394
【公開日】2014年5月14日 申請日期:2014年1月21日 優(yōu)先權日:2014年1月21日
【發(fā)明者】張瑋 申請人:上海愛數(shù)軟件有限公司