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

延遲的優(yōu)先級(jí)增強(qiáng)的系統(tǒng)和方法

文檔序號(hào):6424952閱讀:119來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):延遲的優(yōu)先級(jí)增強(qiáng)的系統(tǒng)和方法
技術(shù)領(lǐng)域
一般而言本發(fā)明涉及一種用于延遲處理線(xiàn)程的優(yōu)先級(jí)增強(qiáng)的系統(tǒng)和方法。具體來(lái)說(shuō),本發(fā)明涉及一種只有在線(xiàn)程即將被預(yù)占的情況下才增強(qiáng)某些線(xiàn)程的系統(tǒng)和方法。
背景技術(shù)
現(xiàn)代計(jì)算機(jī)系統(tǒng)能夠同時(shí)無(wú)縫地執(zhí)行多個(gè)任務(wù)。使用多任務(wù)處理,通過(guò)以循環(huán)的方式服務(wù)于進(jìn)程,處理器可以處理來(lái)自多個(gè)進(jìn)程的指令。如此,在時(shí)間切斷之前很短的時(shí)間由處理器執(zhí)行一個(gè)進(jìn)程,保存其設(shè)置和寄存器值,由處理器執(zhí)行不同的進(jìn)程。這些進(jìn)程或“線(xiàn)程”是對(duì)應(yīng)于要求處理器進(jìn)行處理的一個(gè)或多個(gè)軟件應(yīng)用程序的指令流。這里術(shù)語(yǔ)“進(jìn)程”和“線(xiàn)程”可互換地使用,以表示由處理器執(zhí)行的可執(zhí)行的指令流。通過(guò)快速?gòu)囊粋€(gè)進(jìn)程移到下一個(gè)進(jìn)程,看來(lái)好像每一個(gè)進(jìn)程都同時(shí)執(zhí)行。
由操作系統(tǒng)來(lái)變換對(duì)處理器的訪(fǎng)問(wèn)。大多數(shù)操作系統(tǒng)為此使用基于優(yōu)先級(jí)的調(diào)度算法。根據(jù)代表計(jì)算機(jī)系統(tǒng)執(zhí)行的功能的重要性和/或重要性向程序指派優(yōu)先級(jí)。操作系統(tǒng)使用這些優(yōu)先級(jí)來(lái)判斷何時(shí)以及多長(zhǎng)時(shí)間給程序內(nèi)的可執(zhí)行代碼的進(jìn)程或單元授予對(duì)處理器的訪(fǎng)問(wèn)。一般來(lái)說(shuō),基于優(yōu)先級(jí)的調(diào)度分配處理器時(shí)間以?xún)?yōu)化計(jì)算機(jī)系統(tǒng)的性能。例如,可以?xún)?yōu)化計(jì)算機(jī)系統(tǒng),以便最小化用戶(hù)輸入響應(yīng)時(shí)間,最大化吞吐量,和/或保證應(yīng)用程序的可預(yù)言的或確定性的執(zhí)行時(shí)間。
計(jì)算機(jī)系統(tǒng)內(nèi)的許多資源可以由處理器執(zhí)行的各種程序來(lái)進(jìn)行共享。在很多情況下,這些資源需要序列化,以便在任何給定時(shí)間都只有一個(gè)進(jìn)程使用資源。為了序列化對(duì)資源的訪(fǎng)問(wèn),常常使用軟件鎖定。當(dāng)資源正在被別的進(jìn)程使用時(shí),進(jìn)程將等待鎖定。當(dāng)鎖定被其他進(jìn)程釋放時(shí),進(jìn)程將嘗試獲取鎖定。在進(jìn)程釋放鎖定之前,其他進(jìn)程將無(wú)法無(wú)法使用資源。由于這一序列化,共享資源的有效使用將幫助提高整個(gè)系統(tǒng)的吞吐量。這對(duì)于由許多進(jìn)程使用的資源和對(duì)應(yīng)的鎖定尤其如此。
在使用基于優(yōu)先級(jí)的調(diào)度算法的操作系統(tǒng)中,具有較高的優(yōu)先級(jí)的進(jìn)程比具有較低的優(yōu)先級(jí)的進(jìn)程優(yōu)先使用。這甚至在優(yōu)先級(jí)較低的進(jìn)程當(dāng)前擁有關(guān)鍵資源的情況下也是如此。為解決此問(wèn)題,在進(jìn)入代碼的關(guān)鍵部分之前(在此期間,線(xiàn)程常常使用由鎖定控制的共享資源),線(xiàn)程常常請(qǐng)求提高優(yōu)先級(jí)。當(dāng)線(xiàn)程完成代碼的關(guān)鍵部分之后,鎖定被釋放,線(xiàn)程的優(yōu)先級(jí)被操作系統(tǒng)重置(取消增強(qiáng))。然而,這種方法所面臨的挑戰(zhàn),是線(xiàn)程所花費(fèi)時(shí)間來(lái)請(qǐng)求優(yōu)先級(jí)更改(增強(qiáng)和取消增強(qiáng)),還要求操作系統(tǒng)的服務(wù),這就進(jìn)一步增大了操作系統(tǒng)的負(fù)擔(dān)。在許多情況下,即使其優(yōu)先級(jí)沒(méi)有改變,即使線(xiàn)程不會(huì)被搶先,這一時(shí)間也是要花的。然而,許多進(jìn)程不能冒險(xiǎn)它們的線(xiàn)程在執(zhí)行關(guān)鍵部分時(shí)被搶先,因此進(jìn)程總是增強(qiáng)和取消增強(qiáng)線(xiàn)程的優(yōu)先級(jí)。
圖1是顯示在采用現(xiàn)有技術(shù)的系統(tǒng)中當(dāng)線(xiàn)程進(jìn)入關(guān)鍵部分時(shí)如何處理優(yōu)先級(jí)增強(qiáng)的高級(jí)別的流程圖。用戶(hù)線(xiàn)程處理在100開(kāi)始,在某些點(diǎn),用戶(hù)線(xiàn)程準(zhǔn)備進(jìn)入代碼的關(guān)鍵部分,并請(qǐng)求優(yōu)先級(jí)增強(qiáng)(步驟110),以降低在執(zhí)行關(guān)鍵部分時(shí)線(xiàn)程被搶先的可能性。內(nèi)核進(jìn)程(任務(wù)計(jì)劃程序)在120開(kāi)始,在步驟130,內(nèi)核進(jìn)程接收來(lái)自用戶(hù)線(xiàn)程的優(yōu)先級(jí)增強(qiáng)請(qǐng)求,并相應(yīng)地更新優(yōu)先級(jí)的數(shù)據(jù)結(jié)構(gòu)140。
在接收優(yōu)先級(jí)增強(qiáng)時(shí),用戶(hù)線(xiàn)程在步驟150執(zhí)行關(guān)鍵部分。在關(guān)鍵部分完成之后,用戶(hù)線(xiàn)程準(zhǔn)備退出關(guān)鍵部分,并在步驟160,請(qǐng)求將其優(yōu)先級(jí)重置為其正常級(jí)別。此后,用戶(hù)處理在180結(jié)束。
內(nèi)核進(jìn)程120在步驟170從用戶(hù)線(xiàn)程接收第二優(yōu)先級(jí)更改請(qǐng)求,并相應(yīng)地更新優(yōu)先級(jí)數(shù)據(jù)140中包括的線(xiàn)程數(shù)據(jù)結(jié)構(gòu)。此后,內(nèi)核進(jìn)程在190結(jié)束。
從圖1所示的處理可以看出,用戶(hù)線(xiàn)程向內(nèi)核進(jìn)程發(fā)出兩個(gè)請(qǐng)求,以增強(qiáng)優(yōu)先級(jí),隨后,重置其優(yōu)先級(jí)。如果在執(zhí)行關(guān)鍵部分期間沒(méi)有其他線(xiàn)程搶先于用戶(hù)線(xiàn)程,則不需要向內(nèi)核進(jìn)程發(fā)出請(qǐng)求。然而,不是無(wú)關(guān)緊要的次數(shù),用戶(hù)線(xiàn)程可能被搶先,因此,在現(xiàn)有技術(shù)中,用戶(hù)線(xiàn)程不得不向內(nèi)核進(jìn)程發(fā)出這樣的請(qǐng)求,以防止被搶先。此外,由于時(shí)間切斷(此時(shí)等待線(xiàn)程(即,別的用戶(hù)線(xiàn)程)與當(dāng)前在CPU上運(yùn)行的線(xiàn)程具有相同的優(yōu)先級(jí)),常常會(huì)發(fā)生搶先的現(xiàn)象。被具有相同的優(yōu)先級(jí)的別的線(xiàn)程搶先的現(xiàn)象表明,甚至小的優(yōu)先級(jí)增強(qiáng)對(duì)于當(dāng)前運(yùn)行的線(xiàn)程完成關(guān)鍵部分的處理過(guò)程也是有幫助的。然而,由于用戶(hù)級(jí)別的線(xiàn)程需要發(fā)出兩個(gè)內(nèi)核進(jìn)程請(qǐng)求,而內(nèi)核進(jìn)程需要處理兩個(gè)請(qǐng)求,即使比較小的優(yōu)先級(jí)增強(qiáng),開(kāi)銷(xiāo)也是比較大的。
因此,需要一種用于在線(xiàn)程即將被搶先之前延遲線(xiàn)程的優(yōu)先級(jí)增強(qiáng)的系統(tǒng)和方法。還需要一種系統(tǒng)和方法,用于限制線(xiàn)程向內(nèi)核進(jìn)程發(fā)出增強(qiáng)并重置其優(yōu)先級(jí)的請(qǐng)求。

發(fā)明內(nèi)容
已經(jīng)發(fā)現(xiàn),使用一種能夠在線(xiàn)程即將被搶先時(shí)增強(qiáng)線(xiàn)程的優(yōu)先級(jí)的系統(tǒng)和方法可以解決如前所述的挑戰(zhàn)。如此,如果線(xiàn)程不會(huì)被搶先,則不執(zhí)行優(yōu)先級(jí)增強(qiáng),從而節(jié)省了增強(qiáng)線(xiàn)程的優(yōu)先級(jí)以及隨后將線(xiàn)程的優(yōu)先級(jí)重置為其以前的級(jí)別所需的內(nèi)核級(jí)別進(jìn)程。
當(dāng)用戶(hù)(即,非內(nèi)核)線(xiàn)程準(zhǔn)備進(jìn)入代碼的關(guān)鍵部分時(shí),在用戶(hù)可訪(fǎng)問(wèn)的數(shù)據(jù)結(jié)構(gòu)中設(shè)置了標(biāo)志,指出線(xiàn)程當(dāng)前在代碼的關(guān)鍵部分。代碼的關(guān)鍵部分是搶先當(dāng)前正在運(yùn)行的線(xiàn)程將會(huì)產(chǎn)生不利的部分,如當(dāng)當(dāng)前正在運(yùn)行的線(xiàn)程已經(jīng)獲取關(guān)鍵的閂鎖時(shí)。例如,當(dāng)前正在更新緩沖池(該緩沖池要求線(xiàn)程保留關(guān)鍵閂鎖)中的數(shù)據(jù)的頁(yè)面的數(shù)據(jù)庫(kù)線(xiàn)程。由于線(xiàn)程是用戶(hù)級(jí)別的線(xiàn)程,因此,通常將啟用中斷,以允許線(xiàn)程被搶先。然而,如果在保留關(guān)鍵閂鎖時(shí)線(xiàn)程被搶先,在保留閂鎖的線(xiàn)程最終被操作系統(tǒng)切換,完成其代碼的關(guān)鍵部分,并釋放閂鎖之前,也需要由閂鎖控制的資源的其他線(xiàn)程將被阻止。
內(nèi)核進(jìn)程,如任務(wù)計(jì)劃程序,連續(xù)地運(yùn)行,并監(jiān)視正在運(yùn)行的線(xiàn)程。內(nèi)核進(jìn)程基于各種因素(如當(dāng)前正在運(yùn)行的線(xiàn)程在CPU上運(yùn)行的CPU時(shí)間量,以及是否有具有相同或更高優(yōu)先級(jí)的別的線(xiàn)程正在等待CPU)判斷是否搶先當(dāng)前正在運(yùn)行的線(xiàn)程(即,中止)。
內(nèi)核進(jìn)程判斷應(yīng)該搶先當(dāng)前正在運(yùn)行的線(xiàn)程。然而,在搶先該線(xiàn)程之前,內(nèi)核進(jìn)程讀取用戶(hù)可訪(fǎng)問(wèn)的數(shù)據(jù)結(jié)構(gòu),以判斷當(dāng)前正在運(yùn)行的線(xiàn)程是否已經(jīng)請(qǐng)求了延遲的優(yōu)先級(jí)增強(qiáng)(即,通過(guò)指出當(dāng)前正在運(yùn)行的線(xiàn)程已經(jīng)進(jìn)入代碼的關(guān)鍵部分)。用戶(hù)級(jí)別數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)指出線(xiàn)程要求的優(yōu)先級(jí)增強(qiáng)的量。在判斷當(dāng)前正在運(yùn)行的線(xiàn)程正在位于關(guān)鍵部分,并已經(jīng)請(qǐng)求優(yōu)先級(jí)增強(qiáng)時(shí),內(nèi)核進(jìn)程代表當(dāng)前正在運(yùn)行的線(xiàn)程執(zhí)行優(yōu)先級(jí)增強(qiáng)?,F(xiàn)在使用線(xiàn)程的新優(yōu)先級(jí)來(lái)判斷是否應(yīng)該搶先線(xiàn)程。如果正在等待執(zhí)行的線(xiàn)程具有降低的優(yōu)先級(jí),那么,不搶先當(dāng)前正在運(yùn)行的線(xiàn)程。
當(dāng)當(dāng)前正在運(yùn)行的線(xiàn)程完成關(guān)鍵部分時(shí),更新用戶(hù)級(jí)別數(shù)據(jù),指出線(xiàn)程已經(jīng)完成關(guān)鍵部分。下一次內(nèi)核進(jìn)程檢查當(dāng)前正在運(yùn)行的線(xiàn)程時(shí),它判斷線(xiàn)程不再位于所述關(guān)鍵部分。內(nèi)核進(jìn)程代表線(xiàn)程判斷是否執(zhí)行了優(yōu)先級(jí)增強(qiáng),如果已經(jīng)執(zhí)行,則相應(yīng)地重置線(xiàn)程的優(yōu)先級(jí)。當(dāng)前正在運(yùn)行的線(xiàn)程常常指出它位于關(guān)鍵部分,在搶先事件發(fā)生之前,線(xiàn)程將完成關(guān)鍵部分。在這些情況下,線(xiàn)程將能夠執(zhí)行關(guān)鍵部分,而不必接收優(yōu)先級(jí)增強(qiáng),從而會(huì)節(jié)省用于增強(qiáng)線(xiàn)程的優(yōu)先級(jí)隨后再重置線(xiàn)程的優(yōu)先級(jí)所花的處理時(shí)間。
前述的內(nèi)容是一個(gè)概述,因此,只是詳細(xì)內(nèi)容的簡(jiǎn)化形式;因此,那些精通本技術(shù)的人將理解,概述只是說(shuō)明性的,而不以任何方式作出限制。如權(quán)利要求所定義的本發(fā)明的其他方面,本發(fā)明的功能,將在非限制性的詳細(xì)描述中,變得顯而易見(jiàn)。


通過(guò)參考附圖,那些精通本技術(shù)的人將會(huì)更好地理解本發(fā)明,本發(fā)明的目標(biāo)、特點(diǎn)和優(yōu)點(diǎn)將變得顯而易見(jiàn)。
圖1是顯示在采用現(xiàn)有技術(shù)的系統(tǒng)中當(dāng)線(xiàn)程進(jìn)入關(guān)鍵部分時(shí)如何處理優(yōu)先級(jí)增強(qiáng)的高級(jí)別的流程圖;
圖2是顯示在執(zhí)行延遲的優(yōu)先級(jí)增強(qiáng)時(shí)所采取的步驟的高級(jí)別流程圖;圖3是顯示用戶(hù)線(xiàn)程設(shè)置用戶(hù)級(jí)別數(shù)據(jù)指示器以表明它位于關(guān)鍵部分以及內(nèi)核進(jìn)程如何使用這樣的數(shù)據(jù)所采取的步驟的流程圖;圖4是內(nèi)核進(jìn)程在讀取用戶(hù)線(xiàn)程所設(shè)置的用戶(hù)級(jí)別數(shù)據(jù),在必要時(shí)調(diào)整線(xiàn)程的優(yōu)先級(jí),以及判斷是否要搶先線(xiàn)程所采取的步驟的詳細(xì)流程圖;以及圖5是能夠?qū)崿F(xiàn)本發(fā)明的計(jì)算設(shè)備的方框圖。
具體實(shí)施例方式
下面提供了本發(fā)明的示例的詳細(xì)描述,而不對(duì)本發(fā)明本身作出任何限制。相反,各種變化都在本發(fā)明的范圍內(nèi),本發(fā)明的范圍由說(shuō)明書(shū)后面的權(quán)利要求書(shū)進(jìn)行了定義。
圖1是顯示在采用現(xiàn)有技術(shù)的系統(tǒng)中當(dāng)線(xiàn)程進(jìn)入關(guān)鍵部分時(shí)如何處理優(yōu)先級(jí)增強(qiáng)的高級(jí)別的流程圖。有關(guān)圖1的詳細(xì)信息,請(qǐng)參閱上文“背景”部分。
圖2是顯示在執(zhí)行延遲的優(yōu)先級(jí)增強(qiáng)時(shí)所采取的步驟的高級(jí)別流程圖。用戶(hù)線(xiàn)程處理在100開(kāi)始,在某些點(diǎn),用戶(hù)線(xiàn)程準(zhǔn)備進(jìn)入代碼的關(guān)鍵部分。在步驟210,用戶(hù)線(xiàn)程通過(guò)更新用戶(hù)級(jí)別數(shù)據(jù)結(jié)構(gòu)220(如包括有關(guān)系統(tǒng)鎖的信息的用戶(hù)級(jí)別結(jié)構(gòu))準(zhǔn)備進(jìn)入代碼的關(guān)鍵部分。在將數(shù)據(jù)寫(xiě)入到用戶(hù)級(jí)別數(shù)據(jù)結(jié)構(gòu)以表明用戶(hù)線(xiàn)程即將執(zhí)行代碼的關(guān)鍵部分之后,用戶(hù)線(xiàn)程在步驟225執(zhí)行關(guān)鍵部分。在步驟230,用戶(hù)線(xiàn)程通過(guò)用指出用戶(hù)線(xiàn)程不再執(zhí)行關(guān)鍵部分的數(shù)據(jù)更新用戶(hù)級(jí)別數(shù)據(jù)結(jié)構(gòu)220中的數(shù)據(jù)來(lái)準(zhǔn)備退出關(guān)鍵部分。此后,用戶(hù)處理在240結(jié)束。
內(nèi)核進(jìn)程(即,任務(wù)計(jì)劃程序),連續(xù)地監(jiān)視正在計(jì)算機(jī)系統(tǒng)上運(yùn)行的線(xiàn)程。各種搶先事件(包括時(shí)間切斷事件)可以包括在系統(tǒng)中,在一定量的時(shí)間之后,別的線(xiàn)程(即,與當(dāng)前正在運(yùn)行的線(xiàn)程具有相同優(yōu)先級(jí)的線(xiàn)程),或者當(dāng)具有較大優(yōu)先級(jí)的線(xiàn)程準(zhǔn)備執(zhí)行時(shí),將搶先當(dāng)前正在運(yùn)行的線(xiàn)程。在圖2中,內(nèi)核進(jìn)程在步驟250開(kāi)始,因此,在步驟260,對(duì)于用戶(hù)線(xiàn)程200將發(fā)生搶先事件。內(nèi)核進(jìn)程在步驟270中讀取用戶(hù)級(jí)別數(shù)據(jù)結(jié)構(gòu)220,其中包括當(dāng)前正在運(yùn)行的線(xiàn)程是否正在關(guān)鍵部分。在步驟280中,內(nèi)核進(jìn)程可以用當(dāng)前正在運(yùn)行的線(xiàn)程的更新的優(yōu)先級(jí)數(shù)據(jù)更新內(nèi)核維護(hù)的優(yōu)先級(jí)表格290。如果用戶(hù)級(jí)別數(shù)據(jù)結(jié)構(gòu)220中的數(shù)據(jù)表明當(dāng)前正在運(yùn)行的線(xiàn)程正在位于關(guān)鍵部分,并請(qǐng)求了優(yōu)先級(jí)增強(qiáng)“10”,那么(如果內(nèi)核進(jìn)程以前沒(méi)有增強(qiáng)線(xiàn)程的優(yōu)先級(jí)),內(nèi)核進(jìn)程增強(qiáng)優(yōu)先級(jí)數(shù)據(jù)結(jié)構(gòu)290中的線(xiàn)程的優(yōu)先級(jí)。相反,如果用戶(hù)級(jí)別數(shù)據(jù)結(jié)構(gòu)220中的數(shù)據(jù)表明線(xiàn)程不再執(zhí)行關(guān)鍵部分,并且內(nèi)核進(jìn)程判斷用戶(hù)線(xiàn)程的優(yōu)先級(jí)在某種程度上被增強(qiáng),那么,內(nèi)核進(jìn)程用以前增強(qiáng)的量(例如,“10”)重置(“取消增強(qiáng)”)線(xiàn)程的優(yōu)先級(jí)。此后,搶先事件的內(nèi)核處理將在295結(jié)束。
圖3是顯示用戶(hù)線(xiàn)程設(shè)置用戶(hù)級(jí)別數(shù)據(jù)指示器以表明它位于關(guān)鍵部分以及內(nèi)核進(jìn)程如何使用這樣的數(shù)據(jù)所采取的步驟的流程圖。用戶(hù)線(xiàn)程處理在100開(kāi)始,在于步驟310處進(jìn)入代碼的關(guān)鍵部分之前,線(xiàn)程執(zhí)行非關(guān)鍵任務(wù)305。在進(jìn)入代碼的關(guān)鍵部分之前(或在進(jìn)入關(guān)鍵部分時(shí)),用戶(hù)級(jí)別數(shù)據(jù)區(qū)312內(nèi)的數(shù)據(jù)被更新。用戶(hù)級(jí)別數(shù)據(jù)區(qū)包括優(yōu)先級(jí)應(yīng)用的標(biāo)志318(該標(biāo)志標(biāo)識(shí)線(xiàn)程的優(yōu)先級(jí)是否實(shí)際被內(nèi)核進(jìn)程(即,任務(wù)計(jì)劃程序)更新),關(guān)鍵部分標(biāo)志316(該標(biāo)志標(biāo)識(shí)線(xiàn)程當(dāng)前是否處于關(guān)鍵部分,在此期間,應(yīng)該應(yīng)用優(yōu)先級(jí)增強(qiáng)),優(yōu)先級(jí)偏移量314,它存儲(chǔ)了對(duì)應(yīng)于線(xiàn)程處于關(guān)鍵部分過(guò)程中應(yīng)該接收的優(yōu)先級(jí)增強(qiáng)量的值。用戶(hù)線(xiàn)程在步驟320中將優(yōu)先級(jí)更改標(biāo)志設(shè)置為“假”,表明任務(wù)計(jì)劃程序還沒(méi)有將優(yōu)先級(jí)增強(qiáng)應(yīng)用到線(xiàn)程。在步驟325中,線(xiàn)程將關(guān)鍵部分標(biāo)志設(shè)置為“真”,表明線(xiàn)程已經(jīng)進(jìn)入關(guān)鍵部分,此時(shí),將應(yīng)用優(yōu)先級(jí)增強(qiáng)。在步驟330中,設(shè)置優(yōu)先級(jí)增強(qiáng)的量。
在用戶(hù)級(jí)別數(shù)據(jù)區(qū)312中設(shè)置了優(yōu)先級(jí)增強(qiáng)量和標(biāo)志之后,在步驟335中線(xiàn)程執(zhí)行代碼的關(guān)鍵部分,例如,線(xiàn)程可以是一個(gè)數(shù)據(jù)庫(kù)線(xiàn)程,該線(xiàn)程當(dāng)前正在更新緩沖池中的數(shù)據(jù)的頁(yè)面,該緩沖池要求線(xiàn)程保留關(guān)鍵閂鎖。在某些點(diǎn)(步驟340),線(xiàn)程退出代碼的關(guān)鍵部分,在步驟345,將關(guān)鍵部分標(biāo)志設(shè)置為“假”,表明線(xiàn)程不再位于代碼的關(guān)鍵部分。此后線(xiàn)程處理在345結(jié)束。
內(nèi)核進(jìn)程(即,任務(wù)計(jì)劃程序)在360開(kāi)始,并不斷地執(zhí)行以預(yù)定、調(diào)度和搶先正在處理器上運(yùn)行的線(xiàn)程。在步驟370中,發(fā)生搶先事件,如發(fā)生時(shí)間切斷事件,表明應(yīng)該切換用戶(hù)線(xiàn)程300,以便讓位于具有相同或較大優(yōu)先級(jí)的線(xiàn)程,或準(zhǔn)備執(zhí)行的較高優(yōu)先級(jí)的線(xiàn)程。在執(zhí)行搶先事件之前,內(nèi)核進(jìn)程從用戶(hù)級(jí)別數(shù)據(jù)區(qū)312讀取數(shù)據(jù)。然后,內(nèi)核進(jìn)程判斷是否搶先線(xiàn)程300,還應(yīng)用用戶(hù)級(jí)別數(shù)據(jù)區(qū)312中設(shè)置的數(shù)據(jù)所指出的任何所需要的優(yōu)先級(jí)偏移(預(yù)先定義的進(jìn)程380,有關(guān)處理詳細(xì)信息,請(qǐng)參見(jiàn)圖4)。在預(yù)先定義的進(jìn)程380中,內(nèi)核進(jìn)程更新線(xiàn)程表格385中的數(shù)據(jù),該表格包括線(xiàn)程標(biāo)識(shí)符386和對(duì)應(yīng)于當(dāng)前正在計(jì)算機(jī)系統(tǒng)中運(yùn)行的每一個(gè)線(xiàn)程的優(yōu)先級(jí)388。
圖4是內(nèi)核進(jìn)程在讀取用戶(hù)線(xiàn)程所設(shè)置的用戶(hù)級(jí)別數(shù)據(jù),在必要時(shí)調(diào)整線(xiàn)程的優(yōu)先級(jí),以及判斷是否要搶先線(xiàn)程所采取的步驟的詳細(xì)流程圖。圖4顯示了圖3所示的預(yù)先定義的進(jìn)程塊380的詳細(xì)信息。在圖4中,用于判斷是否搶先線(xiàn)程的內(nèi)核進(jìn)程在步驟400開(kāi)始,在此,在步驟405中,檢測(cè)搶先事件。在步驟410中,檢索對(duì)應(yīng)于當(dāng)前正在運(yùn)行的線(xiàn)程的用戶(hù)級(jí)別數(shù)據(jù)。
基于關(guān)鍵部分標(biāo)志416的值,就當(dāng)前正在運(yùn)行的線(xiàn)程是否位于關(guān)鍵部分作出判斷(判斷420)。如果當(dāng)前正在運(yùn)行的線(xiàn)程位于關(guān)鍵部分,則判斷420分叉到“是”分支422,在此,就用戶(hù)級(jí)別數(shù)據(jù)區(qū)中指出的優(yōu)先級(jí)增強(qiáng)是否已經(jīng)應(yīng)用于當(dāng)前正在運(yùn)行的線(xiàn)程作出另一個(gè)判斷(判斷425)。此判斷基于優(yōu)先級(jí)應(yīng)用標(biāo)志418。如果還沒(méi)有應(yīng)用優(yōu)先級(jí),則判斷425分叉到“否”分支428,在步驟430中,用戶(hù)級(jí)別數(shù)據(jù)區(qū)412中的優(yōu)先級(jí)應(yīng)用標(biāo)志418被設(shè)置為“真”,在步驟435中,在線(xiàn)程表格450(內(nèi)核級(jí)別的數(shù)據(jù)結(jié)構(gòu))中將當(dāng)前正在運(yùn)行的線(xiàn)程的優(yōu)先級(jí)增強(qiáng)優(yōu)先級(jí)偏移量414。從用戶(hù)級(jí)別數(shù)據(jù)區(qū)412中檢索優(yōu)先級(jí)偏移量414。線(xiàn)程表格450被內(nèi)核進(jìn)程更新,其方法是,通過(guò)定位表格中的匹配當(dāng)前正在運(yùn)行的線(xiàn)程的標(biāo)識(shí)符的線(xiàn)程標(biāo)識(shí)符455,并將線(xiàn)程的優(yōu)先級(jí)460修改優(yōu)先級(jí)偏移量來(lái)進(jìn)行。
返回到判斷425,如果已經(jīng)應(yīng)用優(yōu)先級(jí),則判斷425分叉到“是”分支438,而繞過(guò)步驟430和435。
返回到判斷420,如果當(dāng)前正在運(yùn)行的線(xiàn)程不在關(guān)鍵部分,那么判斷420分叉到“否”分支462,在此,就以前是否將優(yōu)先級(jí)增強(qiáng)應(yīng)用于線(xiàn)程作出判斷(判斷465,即,優(yōu)先級(jí)應(yīng)用標(biāo)志當(dāng)前是“真”)。如果優(yōu)先級(jí)增強(qiáng)已經(jīng)應(yīng)用于線(xiàn)程,則判斷465分叉到“是”分支468,在此,優(yōu)先級(jí)應(yīng)用標(biāo)志在步驟470被重置為“假”,在步驟475中,內(nèi)核級(jí)別線(xiàn)程表格中的線(xiàn)程的優(yōu)先級(jí)被重置,重置量為偏移量。例如,如果線(xiàn)程的優(yōu)先級(jí)以前被增強(qiáng)“10”,那么步驟475也將線(xiàn)程的優(yōu)先級(jí)降低(取消增強(qiáng))10。如此,當(dāng)線(xiàn)程處于關(guān)鍵部分時(shí),應(yīng)用于線(xiàn)程的優(yōu)先級(jí)的任何處罰都將得到維護(hù)。如果相同線(xiàn)程以?xún)?yōu)先級(jí)“10”開(kāi)始并通過(guò)圖3和4所示的處理被增強(qiáng)到“20”(由于優(yōu)先級(jí)偏移量為“10”),但在執(zhí)行關(guān)鍵部分的過(guò)程中,任務(wù)計(jì)劃程序?qū)⒕€(xiàn)程的優(yōu)先級(jí)降低“2”(以便線(xiàn)程的優(yōu)先級(jí)變?yōu)?8),當(dāng)發(fā)生取消增強(qiáng)過(guò)程時(shí),線(xiàn)程將具有優(yōu)先級(jí)“8”,說(shuō)明已經(jīng)將優(yōu)先級(jí)降低。
返回到判斷465,如果沒(méi)有對(duì)線(xiàn)程應(yīng)用優(yōu)先級(jí)增強(qiáng)(優(yōu)先級(jí)應(yīng)用標(biāo)志是“假”),那么判斷465分叉到“否”分叉478,繞過(guò)用于重置優(yōu)先級(jí)應(yīng)用標(biāo)志和重置(取消增強(qiáng))線(xiàn)程的優(yōu)先級(jí)的步驟470和475。
不管當(dāng)前執(zhí)行的線(xiàn)程是否位于關(guān)鍵部分,都就是否應(yīng)該搶先線(xiàn)程作出判斷(判斷480)。盡管發(fā)生搶先事件,也要作出此判斷。例如,當(dāng)前執(zhí)行的線(xiàn)程的優(yōu)先級(jí)可能已經(jīng)增強(qiáng),因此,不應(yīng)該被搶先。判斷480是基于當(dāng)前正在運(yùn)行的線(xiàn)程的優(yōu)先級(jí)(該優(yōu)先級(jí)可能已經(jīng)被增強(qiáng))和當(dāng)前正在等待執(zhí)行的任何線(xiàn)程的優(yōu)先級(jí)來(lái)作出的。如果不應(yīng)該搶先當(dāng)前線(xiàn)程,則判斷480將分叉到“否”分支488,其中內(nèi)核進(jìn)程等待下一個(gè)搶先事件(步驟490),不搶先當(dāng)前正在執(zhí)行的線(xiàn)程。當(dāng)下一個(gè)搶先事件發(fā)生時(shí),處理循環(huán)返回到步驟405以判斷是否已經(jīng)修改當(dāng)前正在運(yùn)行的線(xiàn)程的優(yōu)先級(jí),并判斷是否要實(shí)際搶先該線(xiàn)程。另一方面,如果應(yīng)該搶先當(dāng)前線(xiàn)程,則判斷480分叉到“是”分叉482,其中在步驟485等待線(xiàn)程搶先當(dāng)前線(xiàn)程。此后,用戶(hù)處理在495結(jié)束。最后,有關(guān)已經(jīng)在等待的新執(zhí)行的線(xiàn)程可能會(huì)發(fā)生搶先事件,此時(shí),將重復(fù)處理,以判斷新執(zhí)行的線(xiàn)程是否變換其優(yōu)先級(jí),并判斷是否要搶先線(xiàn)程。
圖5說(shuō)明了信息處理系統(tǒng)501,這是一個(gè)能夠執(zhí)行這里所描述的計(jì)算操作的計(jì)算機(jī)系統(tǒng)的簡(jiǎn)化示例。計(jì)算機(jī)系統(tǒng)501包括耦合到主機(jī)總線(xiàn)502的處理器500。級(jí)別2(L2)高速緩沖存儲(chǔ)器504也耦合到主機(jī)總線(xiàn)502。主機(jī)到PCI橋506耦合到主存儲(chǔ)器508,包括高速緩沖存儲(chǔ)器和主存儲(chǔ)器控制功能,并提供總線(xiàn)控制以處理PCI總線(xiàn)510、處理器500、L2緩存504、主存儲(chǔ)器508,以及主機(jī)總線(xiàn)502之間的傳輸。主存儲(chǔ)器508耦合到主機(jī)到PCI橋506以及主機(jī)總線(xiàn)502。只由主處理器500使用的設(shè)備(如LAN卡530)耦合到PCI總線(xiàn)510。服務(wù)處理器接口和ISA訪(fǎng)問(wèn)通路在PCI總線(xiàn)510和PCI總線(xiàn)514之間提供了一個(gè)接口。如此,PCI總線(xiàn)514與PCI總線(xiàn)510絕緣。諸如快閃存儲(chǔ)器518之類(lèi)的設(shè)備耦合到PCI總線(xiàn)514。在一個(gè)實(shí)施例中,快閃存儲(chǔ)器518包括BIOS代碼,該代碼包括用于執(zhí)行各種低級(jí)別的系統(tǒng)功能和系統(tǒng)引導(dǎo)功能的所需要的處理器可執(zhí)行代碼。
PCI總線(xiàn)514為由主處理器500和服務(wù)處理器516共享的各種設(shè)備(例如,快閃存儲(chǔ)器518)提供了一個(gè)接口。PCI到ISA橋535提供了總線(xiàn)控制,以處理PCI總線(xiàn)514和ISA總線(xiàn)540、通用串行總線(xiàn)(USB)功能545、電源管理功能555之間的傳輸,并可以包括其他功能元件(未顯示),如實(shí)時(shí)時(shí)鐘(RTC)、DMA控制、中斷支持,以及系統(tǒng)管理總線(xiàn)支持。非易失性的RAJ4 520連接到ISA總線(xiàn)540。服務(wù)處理器516包括JTAG和12C總線(xiàn)522用于在初始化步驟過(guò)程中與處理器500進(jìn)行通信。JTAG/I2C總線(xiàn)522也耦合到L2緩存504,主機(jī)到PCI橋506,以及在處理器、服務(wù)處理器、L2緩存、主機(jī)-到PCI橋,以及主存儲(chǔ)器之間提供通信路徑的主存儲(chǔ)器508。服務(wù)處理器516也能訪(fǎng)問(wèn)系統(tǒng)電源資源,以便切斷信息處理設(shè)備501。
外圍設(shè)備和輸入/輸出(I/O)設(shè)備可以連接到各種接口(例如,并行接口562、串行接口564、鍵盤(pán)接口568,以及耦合到ISA總線(xiàn)540的鼠標(biāo)接口570)?;蛘撸S多I/O設(shè)備可以由附加到ISA總線(xiàn)540的超級(jí)I/O控制器(未顯示)進(jìn)行變換。
為了將計(jì)算機(jī)系統(tǒng)501連接到另一個(gè)計(jì)算機(jī)系統(tǒng)以通過(guò)網(wǎng)絡(luò)復(fù)制文件,局域網(wǎng)網(wǎng)卡530耦合到PCI總線(xiàn)510。同樣,為了將計(jì)算機(jī)系統(tǒng)501連接到ISP以使用電話(huà)線(xiàn)路連接到因特網(wǎng),調(diào)制解調(diào)器575連接到串行端口564和PCI到ISA橋535。
盡管圖5中所描述的計(jì)算機(jī)系統(tǒng)能夠執(zhí)行這里所描述的進(jìn)程,但是,此計(jì)算機(jī)系統(tǒng)只不過(guò)是計(jì)算機(jī)系統(tǒng)的一個(gè)示例。那些精通本技術(shù)的人將理解,許多其他計(jì)算機(jī)系統(tǒng)設(shè)計(jì)也能夠執(zhí)行這里所描述的進(jìn)程。
本發(fā)明的其中一個(gè)優(yōu)選實(shí)施例是客戶(hù)端應(yīng)用程序,即,代碼模塊中的一組指令(程序代碼),例如,可以是駐留在計(jì)算機(jī)的隨機(jī)存取存儲(chǔ)器中的一組指令。直到計(jì)算機(jī)需要,指令集可以存儲(chǔ)在另一臺(tái)計(jì)算機(jī)的存儲(chǔ)器中,例如,存儲(chǔ)在硬盤(pán)驅(qū)動(dòng)器中,或在諸如光盤(pán)之類(lèi)的可移動(dòng)存儲(chǔ)器中(用于CD ROM中)或軟盤(pán)(用于軟盤(pán)驅(qū)動(dòng)器中),或通過(guò)因特網(wǎng)或其他計(jì)算機(jī)網(wǎng)絡(luò)下載。如此,本發(fā)明可以作為在計(jì)算機(jī)中使用的計(jì)算機(jī)程序產(chǎn)品來(lái)實(shí)現(xiàn)。此外,雖然這里所描述的各種方法可以方便地以通用計(jì)算機(jī)(有選擇地由軟件激活或重新配置)來(lái)實(shí)現(xiàn),但是,那些精通本技術(shù)的普通人員也將認(rèn)識(shí)到,這樣的方法可以以硬件、固件或?yàn)閳?zhí)行所要求的方法步驟所制造的比較專(zhuān)門(mén)的設(shè)備。
盡管這里顯示和描述了本發(fā)明的特定實(shí)施例,但是,對(duì)那些精通本技術(shù)的人很明顯,基于這里所提供的原理,在不偏離本發(fā)明的精神和范圍的情況下,可以進(jìn)行各種修改。因此,所附加的權(quán)利要求包含在它們的范圍內(nèi),所有這樣的更改和修改都在本發(fā)明的真正的精神和范圍內(nèi)。此外,應(yīng)該理解,本發(fā)明只由所附加的權(quán)利要求進(jìn)行定義。那些精通本技術(shù)的人應(yīng)該理解,如果給所引入的權(quán)利要求元素使用了特定的編號(hào),其意圖將在權(quán)利要求書(shū)中清楚地闡述,沒(méi)有這些編號(hào)也不會(huì)構(gòu)成限定。為了便于理解,舉一個(gè)非限制性的例子,下面所附的權(quán)利要求書(shū)中包含“至少一個(gè)”和“一個(gè)或多個(gè)”這樣的語(yǔ)句來(lái)引入權(quán)利要求的元素。然而,使用這樣的句子不應(yīng)該被理解為暗指,包含這樣的引入的權(quán)利要求元素的任何特定權(quán)利要求由不定冠詞“a”或“an”引入的權(quán)利要求元素將限制為只包含一個(gè)這樣的元素的發(fā)明,即使在同一權(quán)利要求中包括引入性語(yǔ)句“一個(gè)或多個(gè)”或“至少一個(gè)”以及諸如“a”或“an”的不定冠詞時(shí);上述說(shuō)明同樣適用于在權(quán)利要求中使用定冠詞的情況。
權(quán)利要求
1.一種用于調(diào)整執(zhí)行線(xiàn)程的優(yōu)先級(jí)的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括通過(guò)更新用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)區(qū)來(lái)指出執(zhí)行線(xiàn)程需要較高的優(yōu)先級(jí),執(zhí)行指出操作不提高對(duì)應(yīng)于所述執(zhí)行線(xiàn)程的優(yōu)先級(jí);檢測(cè)搶先事件;響應(yīng)檢測(cè)到的搶先事件讀取用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)區(qū);以及基于用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)變換所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括在執(zhí)行線(xiàn)程進(jìn)入關(guān)鍵部分之前更新優(yōu)先級(jí)偏移量,其中所述優(yōu)先級(jí)偏移量被包括在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)中;以及其中所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)的變換基于所述優(yōu)先級(jí)偏移量。
3.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)內(nèi)設(shè)置一個(gè)關(guān)鍵部分標(biāo)志,指出所述執(zhí)行線(xiàn)程位于關(guān)鍵部分內(nèi);以及在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)內(nèi)設(shè)置一個(gè)優(yōu)先級(jí)應(yīng)用標(biāo)志,指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)沒(méi)有被變換。
4.根據(jù)權(quán)利要求3所述的方法,其中檢測(cè)、讀取和變換進(jìn)一步包括在內(nèi)核進(jìn)程中判斷是否已經(jīng)設(shè)置了所述關(guān)鍵部分標(biāo)志,以及所述優(yōu)先級(jí)應(yīng)用標(biāo)志是否指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)沒(méi)有被變換;響應(yīng)所述判斷執(zhí)行變換;以及設(shè)置所述優(yōu)先級(jí)應(yīng)用標(biāo)志,指出所述線(xiàn)程的優(yōu)先級(jí)已經(jīng)被變換。
5.根據(jù)權(quán)利要求4所述的方法,進(jìn)一步包括在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)內(nèi)設(shè)置所述關(guān)鍵部分標(biāo)志,指出所述執(zhí)行線(xiàn)程不再位于所述關(guān)鍵部分內(nèi);在內(nèi)核進(jìn)程中接收第二搶先事件;在內(nèi)核進(jìn)程中判斷不再設(shè)置所述關(guān)鍵部分標(biāo)志,以及所述優(yōu)先級(jí)應(yīng)用標(biāo)志指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)已經(jīng)被變換;響應(yīng)不再設(shè)置所述關(guān)鍵部分標(biāo)志以及所述優(yōu)先級(jí)標(biāo)志指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)已經(jīng)被變換的判斷,重新變換所述執(zhí)行線(xiàn)程的優(yōu)先級(jí),變換量為所述優(yōu)先級(jí)偏移量;以及重置優(yōu)先級(jí)應(yīng)用標(biāo)志,指出不再變換所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)。
6.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括將執(zhí)行線(xiàn)程的已變換的優(yōu)先級(jí)與對(duì)應(yīng)于等待線(xiàn)程的優(yōu)先級(jí)進(jìn)行比較;如果所述等待線(xiàn)程的優(yōu)先級(jí)優(yōu)于執(zhí)行線(xiàn)程的已變換的優(yōu)先級(jí),則搶先于執(zhí)行線(xiàn)程;以及如果所述執(zhí)行線(xiàn)程的已變換的優(yōu)先級(jí)優(yōu)于等待線(xiàn)程的優(yōu)先級(jí),則繼續(xù)執(zhí)行所述執(zhí)行線(xiàn)程。
7.根據(jù)權(quán)利要求1所述的方法,其中指出操作響應(yīng)利用共享系統(tǒng)資源的進(jìn)入關(guān)鍵代碼部分的執(zhí)行線(xiàn)程而執(zhí)行。
8.一種信息處理系統(tǒng),包括一個(gè)或多個(gè)處理器;可由處理器訪(fǎng)問(wèn)的存儲(chǔ)器;可由處理器訪(fǎng)問(wèn)的非易失存儲(chǔ)設(shè)備;用于控制執(zhí)行線(xiàn)程對(duì)處理器的訪(fǎng)問(wèn)的搶先式多任務(wù)操作系統(tǒng);以及延遲的優(yōu)先級(jí)工具,用于對(duì)執(zhí)行線(xiàn)程進(jìn)行延遲的優(yōu)先級(jí)增強(qiáng)操作,所述延遲的優(yōu)先級(jí)工具包括用于通過(guò)更新用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)區(qū)來(lái)指出執(zhí)行線(xiàn)程需要較高的優(yōu)先級(jí)的裝置,執(zhí)行指出操作不提高對(duì)應(yīng)于所述執(zhí)行線(xiàn)程的優(yōu)先級(jí);用于檢測(cè)搶先事件的裝置;用于響應(yīng)檢測(cè)到的搶先事件讀取用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)區(qū)的裝置;以及基于用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)變換所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)的裝置。
9.根據(jù)權(quán)利要求8所述的信息處理系統(tǒng),進(jìn)一步包括用于在執(zhí)行線(xiàn)程進(jìn)入關(guān)鍵部分之前更新優(yōu)先級(jí)偏移量的裝置,其中所述優(yōu)先級(jí)偏移量包括在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)中;以及其中所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)的變換基于優(yōu)先級(jí)偏移量進(jìn)行。
10.根據(jù)權(quán)利要求9所述的信息處理系統(tǒng),進(jìn)一步包括用于在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)內(nèi)設(shè)置一個(gè)關(guān)鍵部分標(biāo)志,指出所述執(zhí)行線(xiàn)程位于所述關(guān)鍵部分的裝置;以及在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)內(nèi)設(shè)置一個(gè)優(yōu)先級(jí)應(yīng)用標(biāo)志,指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)沒(méi)有被變換的裝置。
11.根據(jù)權(quán)利要求10所述的信息處理系統(tǒng),其中用于檢測(cè)的裝置、用于讀取的裝置和用于變換的裝置進(jìn)一步包括用于在內(nèi)核進(jìn)程中判斷是否已經(jīng)設(shè)置了所述關(guān)鍵部分標(biāo)志,以及所述優(yōu)先級(jí)應(yīng)用標(biāo)志是否指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)沒(méi)有被變換的裝置;用于響應(yīng)所述判斷執(zhí)行變換的裝置;以及用于設(shè)置所述優(yōu)先級(jí)應(yīng)用標(biāo)志,指出所述線(xiàn)程的優(yōu)先級(jí)已經(jīng)被變換的裝置。
12.根據(jù)權(quán)利要求11所述的信息處理系統(tǒng),進(jìn)一步包括用于在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)內(nèi)設(shè)置所述關(guān)鍵部分標(biāo)志,指出所述執(zhí)行線(xiàn)程不再位于所述關(guān)鍵部分的裝置;用于在內(nèi)核進(jìn)程中接收第二搶先事件的裝置;用于在內(nèi)核進(jìn)程中判斷不再設(shè)置所述關(guān)鍵部分標(biāo)志,以及所述優(yōu)先級(jí)應(yīng)用標(biāo)志指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)已經(jīng)被變換的裝置;用于響應(yīng)不再設(shè)置所述關(guān)鍵部分標(biāo)志以及所述優(yōu)先級(jí)標(biāo)志指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)已經(jīng)被變換的判斷,重新變換所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)的裝置,變換量為所述優(yōu)先級(jí)偏移量;以及用于重置優(yōu)先級(jí)應(yīng)用標(biāo)志,指出不再變換所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)的裝置。
13.根據(jù)權(quán)利要求8所述的信息處理系統(tǒng),進(jìn)一步包括用于將執(zhí)行線(xiàn)程的已變換的優(yōu)先級(jí)與對(duì)應(yīng)于等待線(xiàn)程的優(yōu)先級(jí)進(jìn)行比較的裝置;用于如果所述等待線(xiàn)程的優(yōu)先級(jí)優(yōu)于執(zhí)行線(xiàn)程的已變換的優(yōu)先級(jí),則搶先于執(zhí)行線(xiàn)程的裝置;以及用于如果所述執(zhí)行線(xiàn)程的已變換的優(yōu)先級(jí)優(yōu)于等待線(xiàn)程的優(yōu)先級(jí),則繼續(xù)執(zhí)行所述執(zhí)行線(xiàn)程的裝置。
14.一種存儲(chǔ)在計(jì)算機(jī)可操作的介質(zhì)中的用于變換所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括用于通過(guò)更新用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)區(qū)來(lái)指出執(zhí)行線(xiàn)程需要較高的優(yōu)先級(jí)的裝置,執(zhí)行指出操作不提高對(duì)應(yīng)于所述執(zhí)行線(xiàn)程的優(yōu)先級(jí);用于檢測(cè)搶先事件的裝置;用于響應(yīng)檢測(cè)到的搶先事件讀取用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)區(qū)的裝置;以及基于用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)變換所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)的裝置。
15.根據(jù)權(quán)利要求14所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括用于在執(zhí)行線(xiàn)程進(jìn)入關(guān)鍵部分之前更新優(yōu)先級(jí)偏移量的裝置,其中所述優(yōu)先級(jí)偏移量包括在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)中;以及其中所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)的變換基于優(yōu)先級(jí)偏移量進(jìn)行。
16.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括用于在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)內(nèi)設(shè)置一個(gè)關(guān)鍵部分標(biāo)志,指出所述執(zhí)行線(xiàn)程位于關(guān)鍵部分內(nèi)的裝置;以及在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)內(nèi)設(shè)置一個(gè)優(yōu)先級(jí)應(yīng)用標(biāo)志,指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)沒(méi)有被變換的裝置。
17.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其中用于檢測(cè)的裝置、用于讀取的裝置和用于變換的裝置進(jìn)一步包括用于在內(nèi)核進(jìn)程中判斷是否已經(jīng)設(shè)置了所述關(guān)鍵部分標(biāo)志,以及所述優(yōu)先級(jí)應(yīng)用標(biāo)志是否指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)沒(méi)有被變換的裝置;用于響應(yīng)所述判斷執(zhí)行變換的裝置;以及用于設(shè)置所述優(yōu)先級(jí)應(yīng)用標(biāo)志,指出所述線(xiàn)程的優(yōu)先級(jí)已經(jīng)被變換的裝置。
18.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括用于在用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)內(nèi)設(shè)置所述關(guān)鍵部分標(biāo)志,指出所述執(zhí)行線(xiàn)程不再位于所述關(guān)鍵部分的裝置;用于在內(nèi)核進(jìn)程中接收第二搶先事件的裝置;用于在內(nèi)核進(jìn)程中判斷不再設(shè)置所述關(guān)鍵部分標(biāo)志,以及所述優(yōu)先級(jí)應(yīng)用標(biāo)志指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)已經(jīng)被變換的裝置;用于響應(yīng)不再設(shè)置所述關(guān)鍵部分標(biāo)志以及所述優(yōu)先級(jí)標(biāo)志指出所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)已經(jīng)被變換的判斷,重新變換所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)的裝置,變換量為所述優(yōu)先級(jí)偏移量;以及用于重置優(yōu)先級(jí)應(yīng)用標(biāo)志,指出不再變換所述執(zhí)行線(xiàn)程的優(yōu)先級(jí)的裝置。
19.根據(jù)權(quán)利要求14所述的計(jì)算機(jī)程序產(chǎn)品,進(jìn)一步包括用于將執(zhí)行線(xiàn)程的已變換的優(yōu)先級(jí)與對(duì)應(yīng)于等待線(xiàn)程的優(yōu)先級(jí)進(jìn)行比較的裝置;用于如果所述等待線(xiàn)程的優(yōu)先級(jí)優(yōu)于執(zhí)行線(xiàn)程的已變換的優(yōu)先級(jí),則搶先于執(zhí)行線(xiàn)程的裝置;以及用于如果所述執(zhí)行線(xiàn)程的已變換的優(yōu)先級(jí)優(yōu)于等待線(xiàn)程的優(yōu)先級(jí),則繼續(xù)執(zhí)行所述執(zhí)行線(xiàn)程的裝置。
20.根據(jù)權(quán)利要求14所述的計(jì)算機(jī)程序產(chǎn)品,其中指出操作是響應(yīng)利用共享系統(tǒng)資源的進(jìn)入關(guān)鍵代碼部分的執(zhí)行線(xiàn)程而執(zhí)行的。
全文摘要
提供了一種用于延遲執(zhí)行線(xiàn)程的優(yōu)先級(jí)增強(qiáng)的系統(tǒng)和方法。當(dāng)一個(gè)線(xiàn)程準(zhǔn)備進(jìn)入代碼的關(guān)鍵部分時(shí),如當(dāng)線(xiàn)程利用共享系統(tǒng)資源時(shí),用戶(hù)模式可訪(fǎng)問(wèn)的數(shù)據(jù)區(qū)被更新,指出線(xiàn)程位于關(guān)鍵部分,如果內(nèi)核接收到搶先事件,則線(xiàn)程應(yīng)該接收優(yōu)先級(jí)增強(qiáng)。如果在線(xiàn)程完成關(guān)鍵部分之前內(nèi)核接收到一個(gè)搶先事件,則內(nèi)核代表線(xiàn)程應(yīng)用優(yōu)先級(jí)增強(qiáng)。線(xiàn)程常常在不需要實(shí)際增強(qiáng)其優(yōu)先級(jí)的情況下完成關(guān)鍵部分。如果線(xiàn)程實(shí)際接收了優(yōu)先級(jí)增強(qiáng),那么,在關(guān)鍵部分完成之后,內(nèi)核會(huì)將線(xiàn)程的優(yōu)先級(jí)重置到正常級(jí)別。
文檔編號(hào)G06F9/46GK1627264SQ20041007134
公開(kāi)日2005年6月15日 申請(qǐng)日期2004年7月20日 優(yōu)先權(quán)日2003年7月24日
發(fā)明者喬斯·曼紐爾·阿爾帕迪, 安德魯·鄧舍, 德克·米歇爾, 詹姆斯·W·范·弗利特 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
津南区| 乌苏市| 宁南县| 宝鸡市| 楚雄市| 广灵县| 彭山县| 汶川县| 邢台市| 开鲁县| 南城县| 宿迁市| 东兴市| 泸州市| 鄯善县| 锡林郭勒盟| 江安县| 柘城县| 思南县| 文安县| 伊春市| 九江县| 洮南市| 伊春市| 元朗区| 南昌市| 峡江县| 宝坻区| 武陟县| 衢州市| 台江县| 长子县| 克什克腾旗| 德庆县| 乌苏市| 财经| 青龙| 富锦市| 望都县| 上栗县| 石台县|