專利名稱:一種基于可配置策略的進(jìn)程調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)科學(xué)與技術(shù)領(lǐng)域,特別涉及一種基于可配置策略的進(jìn)程調(diào)度方法。
背景技術(shù):
處理器時(shí)間資源是計(jì)算機(jī)系統(tǒng)中重要的資源,進(jìn)程調(diào)度即是對(duì)處理器時(shí)間資源的分配過(guò)程。進(jìn)程調(diào)度的相關(guān)方法和研究已有多年的歷史,其中,目前普遍使用的分時(shí)調(diào)度方式已經(jīng)使用并不斷改進(jìn)了三十年以上。近年來(lái)出現(xiàn)的多核處理器技術(shù)給進(jìn)程調(diào)度提出了新的問(wèn)題,也出現(xiàn)了各種改進(jìn)算法,但它們的基本原則并沒有變化。傳統(tǒng)的進(jìn)程調(diào)度方式以公平性為出發(fā)點(diǎn),通過(guò)調(diào)整進(jìn)程的優(yōu)先級(jí)調(diào)節(jié)進(jìn)程間占用處理器時(shí)間的比例關(guān)系。各個(gè)進(jìn)程之間的數(shù)據(jù)傳遞關(guān)系被忽略,僅根據(jù)優(yōu)先級(jí)進(jìn)行處理器時(shí)間的分配。這種方式盡管能夠適應(yīng)不同環(huán)境下的大部分情況,但通常會(huì)存在極端情況。例 如,Windows操作系統(tǒng)使用帶有優(yōu)先級(jí)的輪詢調(diào)度方式,任務(wù)管理器為用戶提供異常情況下結(jié)束無(wú)響應(yīng)進(jìn)程的功能,這種異常情況通常是無(wú)響應(yīng)進(jìn)程陷入死循環(huán)不再響應(yīng)用戶輸入,這時(shí)無(wú)響應(yīng)進(jìn)程會(huì)占用大量處理器資源,為使任務(wù)管理器仍能較快的響應(yīng)用戶的結(jié)束進(jìn)程請(qǐng)求,Windows操作系統(tǒng)會(huì)將任務(wù)管理器進(jìn)程的優(yōu)先級(jí)設(shè)置為“高”,但即使這樣,當(dāng)無(wú)響應(yīng)進(jìn)程占用了大量?jī)?nèi)存等其他資源時(shí),仍會(huì)造成任務(wù)管理器響應(yīng)緩慢,甚至很難通過(guò)快捷鍵Ctrl+Alt+Del 激活。在計(jì)算機(jī)系統(tǒng)中,使高優(yōu)先級(jí)進(jìn)程絕對(duì)地優(yōu)先執(zhí)行可能造成饑餓等不公平現(xiàn)象,但對(duì)于服務(wù)進(jìn)程,則需要設(shè)置絕對(duì)的優(yōu)先執(zhí)行機(jī)制,以提高用戶響應(yīng)時(shí)間等指標(biāo)。因此,如何更靈活的進(jìn)行進(jìn)程調(diào)度配置,提高用戶響應(yīng)時(shí)間、提高網(wǎng)絡(luò)吞吐率是ー個(gè)重要課題。
發(fā)明內(nèi)容
本發(fā)明g在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問(wèn)題,特別創(chuàng)新地提出了一種基于可配置策略的進(jìn)程調(diào)度方法。為了實(shí)現(xiàn)本發(fā)明的上述目的,本發(fā)明提供了一種基于可配置策略的進(jìn)程調(diào)度方法,其包括如下步驟SI :在系統(tǒng)初始化時(shí)讀取策略文件,所述策略文件中記錄有高占用級(jí)進(jìn)程和低占用級(jí)進(jìn)程;S2 :按照所述策略文件中記錄的順序調(diào)度高占用級(jí)進(jìn)程;S3 :調(diào)度普通進(jìn)程;S4 :按照所述策略文件中記錄的順序調(diào)度低占用級(jí)進(jìn)程;S5:調(diào)度閑置進(jìn)程;S6 :當(dāng)前進(jìn)程時(shí)間片用盡或主動(dòng)掛起后,返回步驟S2。本發(fā)明的基于可配置策略的進(jìn)程調(diào)度方法通過(guò)策略文件將進(jìn)程設(shè)置為不同的占用級(jí)別,為不同硬件環(huán)境及目標(biāo)的計(jì)算機(jī)系統(tǒng)提供更靈活的進(jìn)程調(diào)度配置,能夠提高用戶響應(yīng)時(shí)間和網(wǎng)絡(luò)吞吐率等指標(biāo)。本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中圖I本發(fā)明基于可配置策略的進(jìn)程調(diào)度方法的流程圖;圖2是本發(fā)明基于可配置策略的進(jìn)程調(diào)度方法的第一優(yōu)選實(shí)施方式的策略文件內(nèi)容;圖3是本發(fā)明基于可配置策略的進(jìn)程調(diào)度方法的第二優(yōu)選實(shí)施方式的策略文件 內(nèi)容;圖4是本發(fā)明基于可配置策略的進(jìn)程調(diào)度方法的第三優(yōu)選實(shí)施方式的策略文件內(nèi)容。
具體實(shí)施例方式下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。在本發(fā)明的描述中,需要理解的是,術(shù)語(yǔ)“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底” “內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡(jiǎn)化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對(duì)本發(fā)明的限制。本發(fā)明提供了一種基于可配置策略的進(jìn)程調(diào)度方法,如圖I所示,該進(jìn)程調(diào)度方法包括如下步驟SI :在系統(tǒng)初始化時(shí)讀取策略文件,所述策略文件中記錄有高占用級(jí)進(jìn)程和低占用級(jí)進(jìn)程;S2 :按照所述策略文件中記錄的順序調(diào)度高占用級(jí)進(jìn)程;S3 :調(diào)度普通進(jìn)程;S4 :按照所述策略文件中記錄的順序調(diào)度低占用級(jí)進(jìn)程;S5 :調(diào)度閑置進(jìn)程;S6 :當(dāng)前進(jìn)程時(shí)間片用盡或主動(dòng)掛起后,返回步驟S2。在本發(fā)明中,策略文件的內(nèi)容根據(jù)不同的目標(biāo)環(huán)境定制的,在本實(shí)施方式中,可以通過(guò)改變策略文件內(nèi)容,省略步驟S2或步驟S4。在本發(fā)明的另外的實(shí)施方式中,策略文件為空,則該進(jìn)程調(diào)度方法退化為傳統(tǒng)的進(jìn)程調(diào)度方式。在本實(shí)施方式中,步驟S2至步驟S5中采用輪詢算法對(duì)進(jìn)程進(jìn)行調(diào)度。在對(duì)高占用級(jí)進(jìn)程和低占用級(jí)進(jìn)程進(jìn)行調(diào)度的過(guò)程中,相同占用級(jí)的進(jìn)程通過(guò)策略文件進(jìn)行排序。在本發(fā)明的ー種優(yōu)選實(shí)施方式中,相同占用級(jí)的進(jìn)程通過(guò)策略文件中指定的參數(shù)進(jìn)行排序,該參數(shù)可以是時(shí)間參數(shù),在本發(fā)明的另外ー種優(yōu)選實(shí)施方式中,相同占用級(jí)的進(jìn)程通過(guò)最早結(jié)束時(shí)間優(yōu)先算法進(jìn)行排序。圖2是本發(fā)明基于可配置策略的進(jìn)程調(diào)度方法的第一優(yōu)選實(shí)施方式的策略文件內(nèi)容,該實(shí)施方式是桌面系統(tǒng)環(huán)境下的進(jìn)程調(diào)度方法,對(duì)于桌面系統(tǒng)環(huán)境,用戶響應(yīng)時(shí)間指標(biāo)更受到重視,即用戶操作應(yīng)盡快得到響應(yīng)。在該桌面系統(tǒng)中,存在一個(gè)窗ロ管理進(jìn)程gui.exe,用戶操作首先通過(guò)該進(jìn)程進(jìn)行判斷,轉(zhuǎn)發(fā)給不同的窗ロ所屬的進(jìn)程進(jìn)行處理。為縮短用戶響應(yīng)時(shí)間,應(yīng)使窗ロ管理進(jìn)程盡快得到調(diào)度。另外,該桌面系統(tǒng)用戶需求認(rèn)為頻繁的網(wǎng)絡(luò)操作將延長(zhǎng)用戶響應(yīng)時(shí)間,并為此設(shè)計(jì)網(wǎng)絡(luò)數(shù)據(jù)包管理進(jìn)程net_admin. exe,希望該進(jìn)程僅在空閑時(shí)對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行處理。為達(dá)到這個(gè)目標(biāo),可將策略文件配置為圖2所示。其中,符號(hào)“#”后的內(nèi)容僅為注釋,不會(huì)對(duì)進(jìn)程調(diào)度產(chǎn)生任何影響。在策略文件中,每行代表ー個(gè)占用級(jí),分為聞?wù)加眉?jí)和低占用級(jí)兩種,分別由〈high〉和〈low〉區(qū)別。尖括號(hào)中第_■部分為本級(jí)別的調(diào)度算法,在本實(shí)施方式中,采用輪詢算法,用RR表示,即第一次調(diào)度到該級(jí)別時(shí)調(diào)度第一個(gè)該級(jí)別的進(jìn)程,第二次調(diào)度第二個(gè),超出該級(jí)別進(jìn)程個(gè)數(shù)時(shí)循環(huán)到調(diào)度第一個(gè),以此類推。根據(jù)圖2配置的策略,將進(jìn)程gui. exe設(shè)置為高占用級(jí)進(jìn)程,將進(jìn)程net_admin. exe設(shè)置為低占用級(jí)進(jìn)程,調(diào)度算法將先查看進(jìn)程gui. exe是否可調(diào)度,如可調(diào)度則調(diào)度進(jìn)程gui. exe ;否則按照正常算法進(jìn)行調(diào)度其他普通進(jìn)程;如沒有其他普通進(jìn)程需要調(diào)度,則查看進(jìn)程net_admin. exe是否可調(diào)度,如可調(diào)度則調(diào)度進(jìn)程net_admin. exe ;否則調(diào)度閑置進(jìn)程占用處理器時(shí)間片。圖3是本發(fā)明基于可配置策略的進(jìn)程調(diào)度方法的第二優(yōu)選實(shí)施方式的策略文件內(nèi)容,該實(shí)施方式是網(wǎng)絡(luò)服務(wù)器環(huán)境下的進(jìn)程調(diào)度方法,對(duì)于網(wǎng)絡(luò)服務(wù)器環(huán)境,網(wǎng)絡(luò)吞吐率指標(biāo)更受重視。在網(wǎng)絡(luò)服務(wù)器系統(tǒng)中,為一定程度上避免網(wǎng)絡(luò)攻擊,希望盡快通過(guò)進(jìn)程firewall, exe對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行判別攔截。同吋,管理員希望通過(guò)遠(yuǎn)程訪問(wèn)進(jìn)程telnet,exe方式對(duì)服務(wù)器進(jìn)行配置管理,這種管理的結(jié)果可能對(duì)客戶網(wǎng)絡(luò)請(qǐng)求的長(zhǎng)遠(yuǎn)效率造成重大影響,因此希望遠(yuǎn)程訪問(wèn)盡快執(zhí)行。為達(dá)到這個(gè)目標(biāo),可將策略文件配置為圖3所示。根據(jù)圖3配置的策略,將進(jìn)程firewall, exe和進(jìn)程telnet, exe同時(shí)設(shè)置為高占用級(jí)進(jìn)程,但進(jìn)程telnet, exe的級(jí)別低于進(jìn)程firewall, exe的級(jí)別,調(diào)度算法將先查看firewall, exe是否可調(diào)度,如可調(diào)度則調(diào)度f(wàn)irewall, exe ;否則查看telnet, exe是否可調(diào)度,如可調(diào)度則調(diào)度telnet, exe ;否則按照正常算法進(jìn)行調(diào)度其他普通進(jìn)程;如沒有其他普通進(jìn)程需要調(diào)度,則調(diào)度閑置進(jìn)程占用處理器時(shí)間片。圖4是本發(fā)明基于可配置策略的進(jìn)程調(diào)度方法的第三優(yōu)選實(shí)施方式的策略文件內(nèi)容,該實(shí)施方式是汽車控制系統(tǒng)環(huán)境下的進(jìn)程調(diào)度方法,汽車控制系統(tǒng)是ー種實(shí)時(shí)嵌入式系統(tǒng),要求對(duì)用戶輸入的控制操作在給定時(shí)間內(nèi)完成相應(yīng)動(dòng)作。在該控制系統(tǒng)中,希望使控制安全氣囊的進(jìn)程bumper, exe最優(yōu)先執(zhí)行,控制剎車的進(jìn)程brake, exe和控制轉(zhuǎn)向的進(jìn)程turning, exe次之,控制油門的進(jìn)程accelerator, exe再次,其他進(jìn)程正常執(zhí)行,其中剎車和轉(zhuǎn)向具有同等級(jí)別,在本實(shí)施方式中,使用實(shí)時(shí)操作系統(tǒng)中常用的最早結(jié)束時(shí)間優(yōu)先算法進(jìn)行調(diào)度。在本實(shí)施方式中,可將策略文件配置為圖4所示。根據(jù)圖4配置的策略,調(diào)度算法將先查看進(jìn)程bumper, exe是否可調(diào)度,如果可調(diào)度則調(diào)度進(jìn)程bumper, exe ;否則按照最早結(jié)束時(shí)間調(diào)度策略,查看brake, exe和turning, exe兩個(gè)進(jìn)程的結(jié)束時(shí)間,調(diào)度結(jié)束時(shí)間較早的進(jìn)程;如果兩個(gè)進(jìn)程都不可調(diào)度,則查看進(jìn)程accelerator, exe是否可調(diào)度,如過(guò)可調(diào)度,則調(diào)度進(jìn)程accelerator, exe ;否則按照正常算法進(jìn)行調(diào)度其他普通進(jìn)程;如沒有其他普通進(jìn)程需要調(diào)度,則調(diào)度閑置進(jìn)程占用處理器時(shí)間片。本發(fā)明的基于可配置策略的進(jìn)程調(diào)度方法,通過(guò)策略文件將進(jìn)程設(shè)置為不同的占用級(jí)別,為不同硬件環(huán)境及目標(biāo)的計(jì)算機(jī)系統(tǒng)提供更靈活的進(jìn)程調(diào)度配置,能夠提高用戶響應(yīng)時(shí)間和網(wǎng)絡(luò)吞吐率等指標(biāo)。在本說(shuō)明書的描述中,參考術(shù)語(yǔ)“ー個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“ー些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少ー個(gè)實(shí)施例或示例中。在本說(shuō)明書中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,本領(lǐng)域的普通技術(shù)人員可以理解在不 脫離本發(fā)明的原理和宗g的情況下可以對(duì)這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。
權(quán)利要求
1.一種基于可配置策略的進(jìn)程調(diào)度方法,其特征在于,包括如下步驟 S1:在系統(tǒng)初始化時(shí)讀取策略文件,所述策略文件中記錄有高占用級(jí)進(jìn)程和低占用級(jí)進(jìn)程; S2:按照所述策略文件中記錄的順序調(diào)度高占用級(jí)進(jìn)程; S3:調(diào)度普通進(jìn)程; S4:按照所述策略文件中記錄的順序調(diào)度低占用級(jí)進(jìn)程; S5:調(diào)度閑置進(jìn)程; S6:當(dāng)前進(jìn)程時(shí)間片用盡或主動(dòng)掛起后,返回步驟S2。
2.如權(quán)利要求I所述的基于可配置策略的進(jìn)程調(diào)度方法,其特征在于,在所述步驟S2和步驟S4中,相同占用級(jí)的進(jìn)程通過(guò)策略文件進(jìn)行排序。
3.如權(quán)利要求2所述的基于可配置策略的進(jìn)程調(diào)度方法,其特征在于,在策略文件中,相同占用級(jí)的進(jìn)程通過(guò)最早結(jié)束時(shí)間優(yōu)先算法進(jìn)行排序。
4.如權(quán)利要求I所述的基于可配置策略的進(jìn)程調(diào)度方法,其特征在于,在所述步驟S2至步驟S5中,采用輪詢算法對(duì)進(jìn)程進(jìn)行調(diào)度。
5.如權(quán)利要求I所述的基于可配置策略的進(jìn)程調(diào)度方法,其特征在于,在進(jìn)程調(diào)度過(guò)程中,通過(guò)改變策略文件的內(nèi)容,省略步驟S2或步驟S4。
全文摘要
本發(fā)明提出了一種基于可配置策略的進(jìn)程調(diào)度方法,其包括如下步驟第一步,在系統(tǒng)初始化時(shí)讀取策略文件,該策略文件中記錄有高占用級(jí)進(jìn)程和低占用級(jí)進(jìn)程;第二步,按照策略文件中記錄的順序調(diào)度高占用級(jí)進(jìn)程;第三步,調(diào)度普通進(jìn)程;第四步,按照策略文件中記錄的順序調(diào)度低占用級(jí)進(jìn)程;第五步,調(diào)度閑置進(jìn)程;第六步,當(dāng)前進(jìn)程時(shí)間片用盡或主動(dòng)掛起后,返回第二步。本發(fā)明的基于可配置策略的進(jìn)程調(diào)度方法通過(guò)策略文件將進(jìn)程設(shè)置為不同的占用級(jí)別,為不同硬件環(huán)境及目標(biāo)的計(jì)算機(jī)系統(tǒng)提供更靈活的進(jìn)程調(diào)度配置,能夠提高用戶響應(yīng)時(shí)間和網(wǎng)絡(luò)吞吐率等指標(biāo)。
文檔編號(hào)G06F9/50GK102693156SQ201210150119
公開日2012年9月26日 申請(qǐng)日期2012年5月7日 優(yōu)先權(quán)日2012年5月7日
發(fā)明者王瑀屏 申請(qǐng)人:清華大學(xué)