專利名稱:處理?yè)屨键c(diǎn)的改進(jìn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及特別適合(但并不專用于)實(shí)時(shí)-系統(tǒng)資源管理的資源管理方法和設(shè)備。
對(duì)存儲(chǔ)器的管理是資源管理至關(guān)重要的一個(gè)方面,已經(jīng)開發(fā)出了各種方法來優(yōu)化對(duì)存儲(chǔ)器的使用。已經(jīng)提出文獻(xiàn)[1][2][3]中所論述的處理優(yōu)選搶占點(diǎn)的方法作為通過將對(duì)搶占點(diǎn)的使用歸納為對(duì)主存儲(chǔ)器的管理而提高數(shù)據(jù)處理系統(tǒng)的效率的手段,尤其是在實(shí)時(shí)系統(tǒng)中。在這種存儲(chǔ)器管理策略中,不是在任務(wù)執(zhí)行中的任意時(shí)間點(diǎn)上搶占任務(wù),優(yōu)選地只根據(jù)任務(wù)的存儲(chǔ)器使用情況在專門的搶占點(diǎn)上搶占任務(wù)。
在下面的說明中,任務(wù)的中止被稱作任務(wù)搶占,或任務(wù)的搶先,而術(shù)語(yǔ)“任務(wù)”用來表示能夠?yàn)樽约焊?jìng)爭(zhēng)系統(tǒng)資源(如存儲(chǔ)器、CPU、I/O設(shè)備等)的執(zhí)行單元。任務(wù)可以看作是連續(xù)執(zhí)行的作業(yè)系列,每個(gè)作業(yè)包括一個(gè)或多個(gè)子-作業(yè)。例如,任務(wù)可以包括“多路分解視頻流”,并涉及讀取輸入的流、處理流并輸出相應(yīng)的數(shù)據(jù)。對(duì)每個(gè)輸入的數(shù)據(jù)流完成這些步驟,所以對(duì)單個(gè)流的讀、處理和輸出對(duì)應(yīng)于完成一個(gè)作業(yè)。因而,當(dāng)有多個(gè)數(shù)據(jù)分組要讀取和處理時(shí),該作業(yè)會(huì)相應(yīng)地被執(zhí)行多次。子-作業(yè)可以看作是涉及作業(yè)的功能成分。
在數(shù)據(jù)處理系統(tǒng)中調(diào)度多個(gè)任務(wù)的一種已知的方法需要任務(wù)的每個(gè)子-作業(yè)有一組暫停標(biāo)準(zhǔn),稱作掛起數(shù)據(jù),掛起數(shù)據(jù)規(guī)定了處理?yè)屨键c(diǎn)以及根據(jù)子作業(yè)的存儲(chǔ)器使用情況[4][5]掛起子作業(yè)的相應(yīng)條件。因而數(shù)據(jù)處理系統(tǒng)所用的存儲(chǔ)器量由這個(gè)掛起數(shù)據(jù)通過這些搶占點(diǎn)間接控制,掛起數(shù)據(jù)規(guī)定了在作業(yè)執(zhí)行中這些搶占點(diǎn)上需要的存儲(chǔ)器量。
因而,可以利用這些搶占點(diǎn)避免數(shù)據(jù)處理系統(tǒng)由于缺少存儲(chǔ)器而崩潰。當(dāng)實(shí)時(shí)任務(wù)的特征是包括多個(gè)子-作業(yè)時(shí),它的搶占點(diǎn)優(yōu)選地或通常都與任務(wù)的子-作業(yè)邊界重合。但是,必須注意到任務(wù)自身不會(huì)在子作業(yè)期間暫停它們自己。根據(jù)執(zhí)行情況,這種不可搶占的子-作業(yè)的暫停方式會(huì)導(dǎo)致死鎖或占用過多存儲(chǔ)器。
可以通過一行代碼在任務(wù)中嵌入表示符合與任務(wù)的每個(gè)子作業(yè)相關(guān)的掛起數(shù)據(jù)的存儲(chǔ)器使用情況的數(shù)據(jù),所述代碼行請(qǐng)求調(diào)度事件,其表明已經(jīng)到達(dá)任務(wù)處理中的搶占點(diǎn),即已經(jīng)到達(dá)子作業(yè)邊界。也就是說,任務(wù)子作業(yè)的起始點(diǎn)集合構(gòu)成了任務(wù)的一組搶占點(diǎn)。任務(wù)τi的第j個(gè)搶占點(diǎn)Pij由涉及搶占點(diǎn)自身的信息以及涉及第j個(gè)搶占點(diǎn)和下一個(gè)搶占點(diǎn)(即第j+1個(gè)搶占點(diǎn))之間的后續(xù)不可搶占的子作業(yè)時(shí)間片Iij的信息表征。
在運(yùn)行時(shí)期,任務(wù)在它到達(dá)搶占點(diǎn)時(shí)通知控制操作系統(tǒng),例如,當(dāng)它啟動(dòng)子-作業(yè)時(shí),在子-作業(yè)之間切換和完成子-作業(yè)時(shí),操作系統(tǒng)決定何時(shí)何處搶占該任務(wù)的執(zhí)行。理論上,搶占可以發(fā)生在搶占點(diǎn)或任務(wù)執(zhí)行中的任何其它點(diǎn)上。
但是,除了上述死鎖問題之外,選擇搶占點(diǎn)的這種靈活性在下列情況下是以一致性為代價(jià)的(1)對(duì)一個(gè)任務(wù)子集的搶占僅限于這個(gè)子集的搶占點(diǎn),同時(shí)允許對(duì)所有其它任務(wù)的任意搶占;(2)對(duì)任務(wù)子集的搶占限于它們的搶占點(diǎn),對(duì)其它任務(wù)的搶占限于它們的搶占點(diǎn)的子集,同時(shí)允許對(duì)任務(wù)子集的剩余時(shí)間片的任意搶占。
當(dāng)帶有搶占點(diǎn)的任務(wù)時(shí)間片被任意搶占時(shí),由于部件的設(shè)計(jì)、分析和測(cè)試基于任務(wù)時(shí)間片只在搶占點(diǎn)被搶占的假設(shè),可能會(huì)降低那些子系統(tǒng)的可預(yù)測(cè)性。當(dāng)發(fā)生對(duì)任務(wù)時(shí)間片的任意搶占時(shí),由于不能確保對(duì)資源的互斥訪問,產(chǎn)生的系統(tǒng)可能變得不一致。
基于不損害系統(tǒng)一致性的主存儲(chǔ)器需求的現(xiàn)有技術(shù)的搶占點(diǎn)策略必須將所有任務(wù)的搶占限制到它們的搶占點(diǎn)。如同本領(lǐng)域中已知的那樣,一個(gè)組件(例如軟件組件,可以包括一個(gè)或多個(gè)任務(wù))可以有包括該組件定義的屬性、函數(shù)或方法和事件的可編程接口[6]。出于說明目的,假定任務(wù)τi由接口100完成,它至少包括任務(wù)所需的主存儲(chǔ)器數(shù)據(jù),MPij101b,如
圖1所示。此外,假定定義搶占點(diǎn)使得相匹配的同步原語(yǔ)不超出子作業(yè)邊界(或搶占點(diǎn))。
出于說明目的,假定任務(wù)是周期性和實(shí)時(shí)的,由周期T和相位F表征,0<=F<T,這意味著任務(wù)包括一系列子-作業(yè),相同的序列被周期性地重復(fù),每個(gè)子作業(yè)在時(shí)間點(diǎn)F+nT被釋放,其中n=0,...,N。僅僅作為例子,如圖2中所示,假定置頂盒200要執(zhí)行三個(gè)任務(wù)-(1)在用戶界面205上顯示菜單,(2)從內(nèi)容提供商203取回文本信息,(3)處理一些視頻信號(hào)-并且假定這3個(gè)任務(wù)中的每個(gè)任務(wù)都包括多個(gè)子-作業(yè)。為了陳述簡(jiǎn)單起見,假定子-作業(yè)被順序執(zhí)行。
至少這些子-作業(yè)中的一些可以被搶占,并且這些可以被搶占的子作業(yè)間的邊界提供了搶占點(diǎn),表1中對(duì)此做了總結(jié)
表1也參考圖3,對(duì)每個(gè)任務(wù),掛起數(shù)據(jù)101包括涉及搶占點(diǎn)Pij301的信息,例如在搶占點(diǎn)上所需的最大存儲(chǔ)器量MPij302,以及涉及連續(xù)搶占點(diǎn)之間時(shí)間片Iij303的信息,例如搶占點(diǎn)間時(shí)間片所需的最壞情況下的存儲(chǔ)器量MIi,j304(I表示任務(wù)τi,j表示搶占點(diǎn))。
更具體地說,掛起數(shù)據(jù)101包括了指定下列信息的數(shù)據(jù)1.任務(wù)τi的搶占點(diǎn)j(Pi,j)101a;2任務(wù)τi在該任務(wù)的搶占點(diǎn)j上的最大存儲(chǔ)器需求,MPi,j,其中1<=j(luò)<=m(i),101b;3.與任務(wù)τi的子作業(yè)j對(duì)應(yīng)的連續(xù)搶占點(diǎn)j和(j+1)之間的時(shí)間片Ii,j,其中1<=j(luò)<=m(i),101c;4.任務(wù)的時(shí)間片j中任務(wù)τi的最大(即最壞情況)存儲(chǔ)器需求MIi,j,1<=j(luò)<=m(i),101d。
表2示出了當(dāng)前例子的掛起數(shù)據(jù)101(每個(gè)任務(wù)有它自己的接口,所以在當(dāng)前例子中,與第一個(gè)任務(wù)τ1對(duì)應(yīng)的掛起數(shù)據(jù)101包括表2的第一行中的數(shù)據(jù),與第二個(gè)任務(wù)τ2對(duì)應(yīng)的掛起數(shù)據(jù)101包括表2的第二行,等等)
表2
假定置頂盒200配備了1.5MB的存儲(chǔ)器。在正常情況下或基于非存儲(chǔ)器的搶占條件下,這個(gè)置頂盒如下運(yùn)行。
現(xiàn)在參考圖4,可以期望處理器401根據(jù)基于某種時(shí)間片或優(yōu)先級(jí)的搶占而調(diào)度任務(wù),意味著所有3個(gè)任務(wù)并發(fā)運(yùn)行,即,同時(shí)有效。因此可以調(diào)度各個(gè)任務(wù)以便同時(shí)運(yùn)行它的存儲(chǔ)器需求最強(qiáng)烈的子作業(yè)。下式給出了這三個(gè)任務(wù)在最壞情況下的存儲(chǔ)器需求MPMP=Σi=13maxj=1m(i)MIi,j]]>(等式1)對(duì)任務(wù)τ1,τ2和τ3,MP因此是τ1的最大存儲(chǔ)器需求(MI1,1)加上任務(wù)τ2的最大存儲(chǔ)器需求(MI2,2)再加上任務(wù)τ3的最大存儲(chǔ)器需求(MI3,3)。這些最大需求由表2中的黑體記錄表示MP=0.7+0.8+0.3=1.8MB.
這超出了置頂盒200可用的存儲(chǔ)器0.3MB,因此,在沒有任何預(yù)防措施的情況下,如果要同時(shí)處理這些子-作業(yè),置頂盒200會(huì)崩潰。
現(xiàn)在參考圖5,假定依照一種調(diào)度算法調(diào)度任務(wù)并且在每個(gè)任務(wù)τi被創(chuàng)建之后都為它維護(hù)一個(gè)數(shù)據(jù)結(jié)構(gòu)。進(jìn)一步假定調(diào)度器501采用傳統(tǒng)的基于優(yōu)先級(jí)的搶占調(diào)度算法,這種調(diào)度算法基本保證在任何時(shí)間點(diǎn)當(dāng)前運(yùn)行的任務(wù)是系統(tǒng)中所有就緒的任務(wù)中優(yōu)先級(jí)最高的任務(wù)。本領(lǐng)域中已經(jīng)知道可以通過為正在運(yùn)行的或就緒的任務(wù)啟動(dòng)或禁止搶占而修改這種調(diào)度行為。
任務(wù)管理器503接收到與新接收到的任務(wù)相對(duì)應(yīng)的掛起數(shù)據(jù)并評(píng)估是否需要搶占,如果需要,就將這個(gè)新接收到的信息傳輸?shù)秸{(diào)度器501,請(qǐng)求搶占。假定任務(wù)的細(xì)節(jié)如表2中定義,并假定任務(wù)τ1(并且只有τ1)當(dāng)前正在被處理并且調(diào)度器最初以沒有基于存儲(chǔ)器的限制的模式運(yùn)行。
現(xiàn)在假定任務(wù)管理器503接收到了任務(wù)τ2,任務(wù)管理器503從它的接口Int2 100讀取掛起數(shù)據(jù)101,并判別調(diào)度器501是否正在按照基于存儲(chǔ)器的搶占而工作。因?yàn)椋谶@個(gè)例子中,不是任務(wù)管理器503評(píng)估調(diào)度器501是否需要改變成基于存儲(chǔ)器的搶占。因此這涉及到任務(wù)管理器503從掛起數(shù)據(jù)存儲(chǔ)裝置505獲取與所有當(dāng)前正在執(zhí)行的任務(wù)(在這個(gè)例子中是τ1)對(duì)應(yīng)的最壞情況下的掛起數(shù)據(jù),對(duì)等式1求值并將求出的最壞情況下的存儲(chǔ)器需求與可用的存儲(chǔ)器資源作比較。繼續(xù)表2中引入的例子,對(duì)τ1和τ2來說,等式1是MP=Σi=12maxj=1m(i)MIi,j=0.7+0.8=1.5Mbytes]]>這與可用存儲(chǔ)器正好相等,因此不需要改變調(diào)度器501的運(yùn)行模式為基于存儲(chǔ)器的搶占(即,不需要根據(jù)存儲(chǔ)器使用情況限制調(diào)度器)。因而,如果調(diào)度器501要在任務(wù)τ1和τ2之間切換—例如,為了滿足任務(wù)τ2的執(zhí)行時(shí)間限制,意味著兩個(gè)任務(wù)都同時(shí)有效地駐留在存儲(chǔ)器中—處理器從未訪問比可用存儲(chǔ)器更多的存儲(chǔ)器。
然后,在任務(wù)τ1和τ2完成之前,接收到了另一個(gè)任務(wù)τ3。任務(wù)管理器503從與任務(wù)τ3相關(guān)的接口Int3讀取掛起數(shù)據(jù)101,評(píng)估調(diào)度器501是否需要改變?yōu)榛诖鎯?chǔ)器的搶占。假定調(diào)度器501正在多任務(wù)化任務(wù)τ1和τ2,對(duì)所有三個(gè)任務(wù)最壞情況下的存儲(chǔ)器需求現(xiàn)在是MP=Σi=13maxj=1m(i)MIi,j=0.7+0.8+0.3=1.8Mbytes]]>這超過了可用的存儲(chǔ)器,因此管理器503從掛起數(shù)據(jù)存儲(chǔ)裝置505請(qǐng)求和獲取所有三個(gè)任務(wù)的存儲(chǔ)器使用數(shù)據(jù)MPij,MIij101b,101d,根據(jù)這個(gè)取出的存儲(chǔ)器使用情況數(shù)據(jù),估計(jì)是否有足夠的存儲(chǔ)器資源執(zhí)行所有三個(gè)任務(wù)。通過對(duì)下面等式的求值可以確定這一點(diǎn)MD=Σi=13maxj=1m(i)MPi,j+maxi=13(maxj=1m(i)MIi,j-maxj=1m(i)MPi,j)]]>=0.2+0.2+0.1+max(0.7-0.2,0.8-0.2,0.3-0.1)]]>=0.5+0.6=1.1Mbytes.]]>(等式2)這個(gè)存儲(chǔ)器需求低于可用存儲(chǔ)器,意味著假定只在任務(wù)的搶占點(diǎn)搶占任務(wù),所有三個(gè)任務(wù)可以被并行地執(zhí)行。
因此,任務(wù)管理器503通過指示任務(wù)在它們指定的搶占點(diǎn)MPi,j將調(diào)出指令發(fā)送到調(diào)度器501來激活“基于存儲(chǔ)器的搶占模式”。在這種模式下,調(diào)度器501允許每個(gè)任務(wù)非搶占式地從一個(gè)搶占點(diǎn)運(yùn)行到下一個(gè)搶占點(diǎn),受限于在任何時(shí)間點(diǎn)一次最多只有一個(gè)任務(wù)能夠位于在它的搶占點(diǎn)之外的一個(gè)點(diǎn)上。假定新到達(dá)的任務(wù)從搶占點(diǎn)開始,調(diào)度器501確保這個(gè)條件適用于當(dāng)前運(yùn)行的任務(wù),由此限制只有一個(gè)任務(wù)能夠處于搶占點(diǎn)。
因而,在已知的基于存儲(chǔ)器的搶占模式中,只允許調(diào)度器501在任務(wù)的存儲(chǔ)器搶占點(diǎn)搶占任務(wù),即在任務(wù)的基于存儲(chǔ)器的搶占點(diǎn)上響應(yīng)來自任務(wù)的調(diào)出請(qǐng)求。如果任務(wù)因?yàn)橄氲却闪硪蝗蝿?wù)占據(jù)的資源的互斥使用而掛起它自己,則存在死鎖的可能。當(dāng)其它任務(wù)被搶占,而同時(shí)保留該資源的鎖時(shí),這可能發(fā)生。通過確保任務(wù)在搶占點(diǎn)上不擁有資源上的鎖可以避免這一點(diǎn),換句話說,保護(hù)資源的同步原語(yǔ)不會(huì)跨越搶占點(diǎn),即子作業(yè)邊界。
當(dāng)已經(jīng)終止了其中一個(gè)任務(wù)時(shí),正在終止的任務(wù)通知任務(wù)管理器503它正在終止,導(dǎo)致任務(wù)管理器503對(duì)等式1求值并且如果最壞情況下的存儲(chǔ)器使用情況(考慮了這個(gè)任務(wù)的去除)低于調(diào)度器501的可用存儲(chǔ)器,任務(wù)管理器503可以取消基于存儲(chǔ)器的搶占,這樣做的好處是使得系統(tǒng)能夠?qū)ν獠渴录龀龈斓姆磻?yīng)(因?yàn)樘幚砥鲗?duì)于子作業(yè)的持續(xù)期間不再是“阻塞”狀態(tài))。通常,任務(wù)的終止由它的環(huán)境導(dǎo)致,例如,用戶切換頻道或者所用編碼的數(shù)據(jù)流有變化(需要另一類的解碼),意味著任務(wù)管理器503和/或調(diào)度器501應(yīng)該知道任務(wù)的終止甚至可能指令任務(wù)終止。
應(yīng)該注意,當(dāng)被調(diào)用時(shí),基于存儲(chǔ)器的搶占限制是必須的。
任務(wù)已被說明為軟件任務(wù),但任務(wù)還可以用硬件來實(shí)現(xiàn)。通常,硬件設(shè)備(表現(xiàn)為硬件任務(wù))由軟件任務(wù)控制,軟件任務(wù)分配硬件設(shè)備所需(最壞情況下的)存儲(chǔ)器,并隨即指令硬件任務(wù)運(yùn)行。當(dāng)硬件任務(wù)完成時(shí),它通知軟件任務(wù),軟件任務(wù)隨即釋放存儲(chǔ)器。因此,通過擁有控制軟件任務(wù),可以如上所述簡(jiǎn)單地處理硬件任務(wù)。
這個(gè)限制為只能在搶占點(diǎn)搶占任務(wù)的方法,無法總是考慮到子作業(yè)搶占的最好時(shí)機(jī),因而不能總獲得最高的系統(tǒng)速度,并且如果沒有正確處理同步原語(yǔ),會(huì)導(dǎo)致死鎖。
本發(fā)明提供了根據(jù)主存需求選擇搶占點(diǎn)的方法和設(shè)備,這種方法和設(shè)備更有效并且維護(hù)了系統(tǒng)一致性,尤其是實(shí)現(xiàn)了額外的搶占策略,其中1.匹配的同步原語(yǔ)不會(huì)跨越子作業(yè)邊界;2.對(duì)于特定的資源Rk,使用這個(gè)資源(并通過同步原語(yǔ)保護(hù)它)的所有任務(wù)的所有時(shí)間片/子作業(yè)全部是可搶占的或全部是不可搶占的1)如果它們?nèi)渴强蓳屨嫉?,必須?zhí)行同步原語(yǔ),2)如果它們?nèi)渴遣豢蓳屨嫉模槐貓?zhí)行同步原語(yǔ);3.對(duì)任務(wù)的一個(gè)子集的搶占被限制在這個(gè)子集的搶占點(diǎn)同時(shí)允許對(duì)所有其它任務(wù)的任意搶占;4.對(duì)任務(wù)的一個(gè)子集的搶占被限制在它們的搶占點(diǎn),對(duì)其它任務(wù)的搶占被限制在它們的搶占點(diǎn)的一個(gè)子集,同時(shí)允許對(duì)它們剩余的時(shí)間片的任意搶占。
也就是說,本發(fā)明是基于主存的搶占技術(shù),它并不限于只在預(yù)定的搶占點(diǎn)上的搶占,并且它避免了現(xiàn)有技術(shù)的搶占點(diǎn)方法的死鎖問題。
如上所述,本發(fā)明不僅解決了當(dāng)前技術(shù)的基于存儲(chǔ)器的搶占點(diǎn)技術(shù)的問題,而且還有下列優(yōu)勢(shì)。它能夠在仍然確保系統(tǒng)一致性的同時(shí)任意搶占時(shí)間片從而用存儲(chǔ)器補(bǔ)償CPU周期,即1)它在系統(tǒng)不搶占時(shí)間片時(shí)排除了對(duì)并發(fā)控制的系統(tǒng)調(diào)用的需要;2)它能夠在沒有搶占就無法調(diào)度任務(wù)時(shí)允許搶占時(shí)間片。
通過考慮阻塞的兩個(gè)推斷能夠進(jìn)一步詳述本發(fā)明相對(duì)于現(xiàn)有技術(shù)中基于存儲(chǔ)器的調(diào)度點(diǎn)技術(shù)的優(yōu)勢(shì)。首先,阻塞能夠減少阻塞任務(wù)(當(dāng)它涉及那個(gè)任務(wù)的最后一個(gè)子作業(yè)時(shí))在最壞情況下的響應(yīng)時(shí)間。其次,它能夠延長(zhǎng)較高優(yōu)先級(jí)的任務(wù)(當(dāng)那個(gè)阻塞時(shí)間是比被阻塞的任務(wù)的優(yōu)先級(jí)更低的所有任務(wù)中最大的阻塞時(shí)間時(shí))在最壞情況下的響應(yīng)時(shí)間。因此搶占時(shí)間片增加了被搶占任務(wù)在最壞情況下的響應(yīng)時(shí)間并且降低了比阻塞任務(wù)優(yōu)先級(jí)高的任務(wù)在最壞情況下的響應(yīng)時(shí)間。在特殊情況下,搶占時(shí)間片因此會(huì)使得任務(wù)組可調(diào)度。
從下面對(duì)附圖中所示優(yōu)選實(shí)施方案的更詳細(xì)的說明可以明了本發(fā)明前面所述以及其它的特性和優(yōu)勢(shì),在附圖中相同的符號(hào)在不同視圖中均表示相同的部分。
圖1示出了根據(jù)本發(fā)明的實(shí)施方案的任務(wù)接口部件的示意圖。
圖2示出了數(shù)字電視系統(tǒng)示例的示意圖,本發(fā)明的實(shí)施方案在其中運(yùn)行。
圖3示出了圖1中所示任務(wù)接口的部件之間的關(guān)系的示意圖。
圖4示出了構(gòu)成圖2的置頂盒的部件。
圖5示出了圖2和圖4中所示置頂盒的處理器的部件。
本領(lǐng)域中的普通技術(shù)人員應(yīng)該理解下面的說明僅是出于說明目的而非限制。技術(shù)人員理解在位于本發(fā)明的精神和所附權(quán)利要求范圍內(nèi)有許多變化??梢詮谋菊f明中去除已知功能和操作的不必要的細(xì)節(jié)以免模糊本發(fā)明。
高容量電子(HVE)消費(fèi)者系統(tǒng)(例如數(shù)字電視)數(shù)字地改善模擬電視,并且置頂盒(STB)必須在保持成本效益和健壯性的同時(shí)提供實(shí)時(shí)服務(wù)。消費(fèi)品產(chǎn)品天生就是嚴(yán)重受限的資源。因此,在保持HVE消費(fèi)者系統(tǒng)的典型質(zhì)量(例如健壯性)并滿足嚴(yán)格時(shí)限要求的同時(shí),必須非常有效地利用可用資源。涉及健壯性,沒有人希望電視機(jī)出現(xiàn)帶有“請(qǐng)重啟系統(tǒng)”消息的故障。
HVE消費(fèi)系統(tǒng)中媒體處理的主要部分是以處理多個(gè)并發(fā)數(shù)據(jù)流的片上軟件實(shí)現(xiàn)的,尤其必須在多任務(wù)環(huán)境中非常有效地管理系統(tǒng)資源,例如存儲(chǔ)器??紤]置頂盒作為需要實(shí)時(shí)資源管理的HVE消費(fèi)系統(tǒng)的一個(gè)例子。通常,如圖2中所示,置頂盒200從內(nèi)容提供商203(服務(wù)器或電纜)以及用戶接口205接收電視201的輸入。用戶接口205包括用于從用戶控制的遠(yuǎn)程設(shè)備202接收信號(hào)的遠(yuǎn)程控制接口,例如手持紅外遠(yuǎn)距離發(fā)射器。置頂盒200從天線和有線電視出口中的至少一個(gè)接收至少一個(gè)數(shù)據(jù)流,并至少完成對(duì)該數(shù)據(jù)流的處理或轉(zhuǎn)發(fā)數(shù)據(jù)流到電視201。用戶看到顯示在電視201上的至少一個(gè)數(shù)據(jù)流,并通過用戶接口205根據(jù)正在被顯示的內(nèi)容做出選擇。置頂盒200處理用戶選擇輸入并根據(jù)這個(gè)輸入能夠?qū)⒂脩糨斎胍约皹?biāo)識(shí)置頂盒200和它的功能的其它信息一起發(fā)送到內(nèi)容提供高203。
圖4示出了典型的置頂盒200的示范系統(tǒng)400的簡(jiǎn)化框圖,該置頂盒200包括控制置頂盒200的整個(gè)操作的控制處理器401??刂铺幚砥?01與電視調(diào)頻器403、存儲(chǔ)器405、長(zhǎng)期存儲(chǔ)設(shè)備406、通信接口407和遠(yuǎn)程接口409相耦合。電視調(diào)頻器403在傳輸線路411上接收電視信號(hào)并且這些信號(hào)可能來自天線(未示出)和有線電視出口(未示出)的至少一個(gè)??刂铺幚砥?01管理用戶接口205,通過線路413提供數(shù)據(jù)、音頻和視頻輸出到電視201。遠(yuǎn)程接口409通過無線連接415從遠(yuǎn)程控制接收信號(hào)。通信接口407通過數(shù)據(jù)通路417對(duì)接在置頂盒200和至少一個(gè)遠(yuǎn)程處理系統(tǒng)(例如web服務(wù)器)之間。通信接口407是電視調(diào)制解調(diào)器、集成服務(wù)數(shù)據(jù)網(wǎng)絡(luò)(ISDN)適配器、數(shù)字用戶線路(xDSL)、有線電視調(diào)制解調(diào)器和任意其它合適的數(shù)據(jù)通信設(shè)備中的至少一種。圖4的示例系統(tǒng)僅是出于說明目的。盡管本說明可能涉及在說明特殊置頂盒200中廣泛使用的術(shù)語(yǔ),但該說明和概念同樣適用于其它控制處理器,包括具有不同于圖4中所示體系結(jié)構(gòu)的系統(tǒng)。
優(yōu)選實(shí)施方案中的控制處理器401被配置用來處理涉及置頂盒200的控制的多個(gè)實(shí)時(shí)任務(wù),包括改變頻道、選擇顯示在用戶界面205上的菜單選項(xiàng)、對(duì)輸入的數(shù)據(jù)流解碼、用長(zhǎng)期存儲(chǔ)設(shè)備406記錄輸入的數(shù)據(jù)流并重放它們,等等。置頂盒的操作由這些實(shí)時(shí)控制任務(wù)根據(jù)置頂盒100的特征、通過線路411輸入的視頻信號(hào)、通過用戶界面205進(jìn)入的用戶輸入以及任何其它附屬輸入來確定。
如圖1所示,由控制處理器401控制的每個(gè)實(shí)時(shí)任務(wù)τi包括至少一個(gè)子-作業(yè)或具有相應(yīng)的掛起數(shù)據(jù)集合的搶占點(diǎn)Pi,j,掛起數(shù)據(jù)包括所需的最大存儲(chǔ)器量Mi,jk101。也就是說,至少一個(gè)任務(wù)τi的子作業(yè)的起點(diǎn)Pij的集合構(gòu)成了那個(gè)任務(wù)的一組搶占點(diǎn)Pi,j。任務(wù)τi的第j個(gè)搶占點(diǎn)Pi,j由涉及搶占點(diǎn)自身的信息和涉及第j個(gè)搶占點(diǎn)和下一搶占點(diǎn)(即,第j+1個(gè)搶占點(diǎn))之間隨后的程序時(shí)間片Ii,j的信息表征。在優(yōu)選實(shí)施方案中,下面的方法允許控制處理器決定是否能夠在隨后的程序時(shí)間片Ii,j期間隨意搶占該時(shí)間片1.匹配同步原語(yǔ)不跨越子作業(yè)邊界2.對(duì)特殊資源Rk,使用這個(gè)資源(通過使用同步原語(yǔ)保護(hù)它)的所有任務(wù)的所有時(shí)間片/子作業(yè)全部是可搶占的或全部是不可搶占的。
1.)如果它們都是可搶占的,必須執(zhí)行同步原語(yǔ),2)如果它們都不可搶占,就不必執(zhí)行同步原語(yǔ);3.對(duì)任務(wù)的一個(gè)子集的搶占僅限于這個(gè)子集的搶占點(diǎn),同時(shí)允許對(duì)所有其它任務(wù)的任意搶占;以及4.對(duì)任務(wù)的一個(gè)子集的搶占僅限于這個(gè)子集的搶占點(diǎn),對(duì)其它任務(wù)的搶占僅限于它們的搶占點(diǎn)的一個(gè)子集,同時(shí)允許對(duì)它們的剩余時(shí)間片的任意搶占。
更具體地說,在處理?yè)屨键c(diǎn)時(shí),必須執(zhí)行下列步驟-確保特定資源的所有保護(hù)原語(yǔ)落在相同子作業(yè)內(nèi)(即,包括一對(duì)原語(yǔ)的臨界區(qū)不跨越子作業(yè)邊界)。
-在啟動(dòng)新任務(wù)時(shí),任務(wù)管理器/調(diào)度器在決定設(shè)置哪些時(shí)間片為可搶占或不可搶占時(shí)必須考慮受保護(hù)的資源上述原則的一個(gè)簡(jiǎn)單實(shí)現(xiàn)是讓同步原語(yǔ)與搶占點(diǎn)一致。缺點(diǎn)是當(dāng)代碼中頻繁調(diào)用同步原語(yǔ)時(shí),引入了很多小的時(shí)間片。
更通用的實(shí)現(xiàn)如下。時(shí)間片的掛起數(shù)據(jù)被加入在該時(shí)間片中受保護(hù)的資源k的標(biāo)識(shí)符Rk。調(diào)度器/任務(wù)管理器能夠用這個(gè)信息確保使用資源Rk的所有時(shí)間片都是可搶占的或都是不可搶占的。
1.在優(yōu)選實(shí)施方案中,商用現(xiàn)貨(COTS)實(shí)時(shí)操作系統(tǒng)(RTOS)上的中間件層實(shí)現(xiàn)了測(cè)試關(guān)于存儲(chǔ)器使用和任務(wù)可調(diào)度性的功能。這一層還決定選擇哪些時(shí)間片進(jìn)行搶占。只要選擇了以Rk標(biāo)記的時(shí)間片進(jìn)行搶占,以Rk作為參數(shù)的所有系統(tǒng)調(diào)用都由該中間件層傳遞到RTOS。只要沒有選擇標(biāo)記為Rk的時(shí)間片進(jìn)行搶占,該中間件層可以忽略(即,立即返回)系統(tǒng)調(diào)用。
在優(yōu)選實(shí)施方案中,該方法包括定義各個(gè)任務(wù)以使一對(duì)原語(yǔ)不跨越任務(wù)(或任務(wù)的子作業(yè))邊界,根據(jù)任務(wù)是否保護(hù)至少一個(gè)公共資源的使用指定一組任務(wù)為可搶占的或不可搶占的,接收標(biāo)識(shí)與多個(gè)任務(wù)中的每個(gè)任務(wù)相關(guān)的最大的存儲(chǔ)器和獨(dú)占資源Rk的使用情況的第一數(shù)據(jù);接收標(biāo)識(shí)可用于處理多個(gè)任務(wù)的存儲(chǔ)器的第二數(shù)據(jù);并根據(jù)第一和第二數(shù)據(jù)判斷是否有足夠的存儲(chǔ)器可用于處理任務(wù)。隨后只響應(yīng)于識(shí)別出存儲(chǔ)器不足,對(duì)在下一時(shí)間片中可以被搶占存儲(chǔ)器的任務(wù)施加監(jiān)控和掛起步驟。
現(xiàn)在參考圖5,假定根據(jù)調(diào)度算法調(diào)度任務(wù)并且在每個(gè)任務(wù)τi被創(chuàng)建之后都為它維護(hù)一個(gè)數(shù)據(jù)結(jié)構(gòu)。進(jìn)一步假定調(diào)度器501采用了傳統(tǒng)的基于優(yōu)先級(jí)的搶占調(diào)度算法,該算法實(shí)際上確保了在任何時(shí)間點(diǎn)當(dāng)前運(yùn)行的任務(wù)是系統(tǒng)中所有就緒任務(wù)中具有最高優(yōu)先級(jí)的任務(wù)。本領(lǐng)域中已知通過根據(jù)任務(wù)的存儲(chǔ)器需要為正在運(yùn)行的或就緒任務(wù)激活或禁止搶占可以修改其調(diào)度行為。
任務(wù)管理器503接收與新接收到的任務(wù)對(duì)應(yīng)的掛起數(shù)據(jù)101并評(píng)估是否需要搶占、是否能夠搶占,如果需要搶占并且能夠搶占,就將這個(gè)新接收到的信息傳遞到調(diào)度器501,請(qǐng)求搶占。掛起數(shù)據(jù)不僅包括存儲(chǔ)器使用信息還有該任務(wù)獨(dú)占使用的資源Rk。假定任務(wù)的細(xì)節(jié)如表2中所定義,并假定任務(wù)τ1(也只有τ1)正在被處理并且調(diào)度器最初以沒有基于存儲(chǔ)器限制的模式運(yùn)行。
現(xiàn)在假定任務(wù)管理器503接收到了任務(wù)τ2,任務(wù)管理器503從它的接口Int2 100讀取掛起數(shù)據(jù)101,并判斷調(diào)度器501是否正在按照基于存儲(chǔ)器和資源的搶占工作。因?yàn)?,在這個(gè)例子中,不是任務(wù)管理器503評(píng)估調(diào)度器501是否需要改變?yōu)榛诖鎯?chǔ)器和資源的搶占。因此,這涉及到任務(wù)管理器503從掛起數(shù)據(jù)存儲(chǔ)裝置505提取出與所有當(dāng)前正在執(zhí)行的任務(wù)(在這個(gè)例子中是任務(wù)τ1)對(duì)應(yīng)的最壞情況下的存儲(chǔ)器使用掛起數(shù)據(jù),對(duì)等式1求值并將求出的最壞情況下的存儲(chǔ)器需求與可用存儲(chǔ)器資源做比較。繼續(xù)表2中引入的例子,對(duì)τ1和τ2來說,等式1是MP=Σi=12maxj=1m(i)MIi,j=0.7+0.8=1.5Mbytes]]>這正好等于可用存儲(chǔ)器,因此不需要改變調(diào)度器501的操作模式為基于存儲(chǔ)器和資源的搶占(即,不需要根據(jù)存儲(chǔ)器和獨(dú)占資源使用情況限制調(diào)度器)。因而,如果調(diào)度器501要在任務(wù)τ1和τ2之間切換,例如為滿足任務(wù)τ2的執(zhí)行時(shí)間限制,意味著兩個(gè)任務(wù)同時(shí)有效駐留在存儲(chǔ)器中并且可能同時(shí)使用它們的最大存儲(chǔ)器量-處理器絕不會(huì)訪問比可用存儲(chǔ)器更多的存儲(chǔ)器。
接下來,在任務(wù)τ1和τ2完成之前,接收到了另一個(gè)任務(wù)τ3。任務(wù)管理器503從與任務(wù)τ3相關(guān)的接口Int3讀取掛起數(shù)據(jù)101,評(píng)估調(diào)度器501是否需要改變?yōu)榛诖鎯?chǔ)器和資源的搶占。假定所有三個(gè)任務(wù)都是可搶占的,并且調(diào)度器501正在對(duì)任務(wù)τ1和τ2進(jìn)行多重處理,所有三個(gè)任務(wù)在最壞情況下的存儲(chǔ)器需求現(xiàn)在是MP=Σi=13maxj=1m(i)MIi,j=0.7+0.8+0.3=1.8Mbytes]]>
這超出了可用存儲(chǔ)器,所以任務(wù)管理器503請(qǐng)求并從掛起數(shù)據(jù)存儲(chǔ)裝置505提取所有三個(gè)任務(wù)的存儲(chǔ)器使用情況數(shù)據(jù)MPij,MIi,j101b,101d以及可搶占性數(shù)據(jù),并根據(jù)這個(gè)獲取的存儲(chǔ)器使用情況和可搶占性數(shù)據(jù)評(píng)估是否有足夠的存儲(chǔ)器資源執(zhí)行所有三個(gè)任務(wù)。這可以通過對(duì)下列等式的求值來確定。
MD=Σi=13maxj=1m(i)MPi,j+maxi=13(maxj=1m(i)MIi,j-maxj=1m(i)MPi,j)]]>=0.2+0.2+0.1+max(0.7-0.2,0.8-0.2,0.3-0.1)]]>=0.5+0.6=1.1Mbytes.]]>(等式2)這個(gè)存儲(chǔ)器需求低于可用存儲(chǔ)器,意味著假定根據(jù)任務(wù)的存儲(chǔ)器使用情況搶占任務(wù),所有三個(gè)任務(wù)都能夠被并行執(zhí)行。
因此,任務(wù)管理器503通過指令任務(wù)在它們指定的搶占點(diǎn)MPi,j上發(fā)送調(diào)出指令給調(diào)度器501而調(diào)用“基于存儲(chǔ)器和資源的搶占模式”。在這種模式下,調(diào)度器501允許。如果任務(wù)的搶占數(shù)據(jù)指定了對(duì)任務(wù)資源集Rk的獨(dú)占使用,調(diào)度器就指令操作系統(tǒng)對(duì)所有三個(gè)任務(wù)執(zhí)行關(guān)于資源Rk的所有系統(tǒng)調(diào)用,資源Rk被加入該任務(wù)開始執(zhí)行時(shí)要執(zhí)行的系統(tǒng)調(diào)用的系統(tǒng)資源集合。
在表3中,RIi,j是受任務(wù)I的時(shí)間片j中的同步原語(yǔ)保護(hù)的資源集合。
表3當(dāng)所有時(shí)間片都不可搶占時(shí),系統(tǒng)是可調(diào)度的。另外,在這種情況下,不存在資源同步的問題,并且不需要執(zhí)行同步原語(yǔ)。
但是,為了減少系統(tǒng)延遲,可以在不超過可用存儲(chǔ)器限制的前提下使一些時(shí)間片成為可搶占的時(shí)間片。例如,在下列情況下系統(tǒng)仍然是可調(diào)度的-只能在搶占點(diǎn)P1,1和P1,3以及在時(shí)間片I1,2內(nèi)搶占τ1
-只能在τ2的搶占點(diǎn)搶占τ2-任意搶占τ3在表3中,以斜體標(biāo)識(shí)了可搶占的時(shí)間片。
假定τ1的優(yōu)先級(jí)高于τ2的優(yōu)先級(jí),τ2的優(yōu)先級(jí)又高于τ3的優(yōu)先級(jí),由于τ3的時(shí)間片是可搶占的,所以τ2的延遲將會(huì)有所減少。任務(wù)管理器/調(diào)度器必須進(jìn)一步確保保護(hù)特定資源的所有時(shí)間片都是可搶占的或者都是不可搶占的。對(duì)于Rb有一個(gè)問題因?yàn)镮2,1是不可搶占的,而I3,2是可搶占的。解決方法是使時(shí)間片I2,1也成為可搶占的或使I3,2也成為不可搶占的。使I2,1可搶占不會(huì)增加系統(tǒng)的存儲(chǔ)器需求,因而是我們的首選(它降低了延遲)。
當(dāng)任務(wù)之一已經(jīng)結(jié)束時(shí),正在結(jié)束的任務(wù)通知任務(wù)管理器503它正在結(jié)束,導(dǎo)致任務(wù)管理器503從系統(tǒng)資源集合去除該任務(wù)的資源集合Rk并對(duì)等式1求值。如果最壞情況下的存儲(chǔ)器使用(考慮這個(gè)任務(wù)的去除)低于調(diào)度器501的可用存儲(chǔ)器,任務(wù)管理器503就能夠取消基于存儲(chǔ)器和資源的搶占并清除系統(tǒng)資源集,這樣做的好處是使得系統(tǒng)能夠?qū)ν獠渴录龀龈斓姆磻?yīng)(因?yàn)樘幚砥鞑辉贋樽幼鳂I(yè)的持續(xù)時(shí)間而被“阻塞”)。通常,任務(wù)的結(jié)束是由它的環(huán)境導(dǎo)致的,例如用戶轉(zhuǎn)換頻道或所應(yīng)用的數(shù)據(jù)流編碼的變化(需要另一種解碼),意味著任務(wù)管理器503和/或調(diào)度器501應(yīng)該知道任務(wù)的結(jié)束甚至可能指令任務(wù)結(jié)束。
因此,該方法包括監(jiān)控任務(wù)的結(jié)束并響應(yīng)于任務(wù)結(jié)束重復(fù)識(shí)別存儲(chǔ)器可用性及可搶占性的所述步驟。在一種實(shí)施方案中,在一個(gè)任務(wù)已經(jīng)結(jié)束后,如果有足夠的存儲(chǔ)器同時(shí)執(zhí)行其余的任務(wù),監(jiān)控步驟就被認(rèn)為是不必要的,并且在對(duì)與存儲(chǔ)器使用情況有關(guān)的輸入沒有任何監(jiān)控的情況下允許任務(wù)進(jìn)行。
在另一優(yōu)選實(shí)施方案中,提供了一種調(diào)度器用在數(shù)據(jù)處理系統(tǒng)中,該數(shù)據(jù)處理系統(tǒng)被安排用來執(zhí)行定義的多個(gè)任務(wù),以使與保護(hù)其中所包含資源的另一同步原語(yǔ)匹配的釋放資源的同步原語(yǔ)不跨越任務(wù)邊界并在執(zhí)行任務(wù)中能夠訪問所用的指定的存儲(chǔ)器量,調(diào)度器包括數(shù)據(jù)接收器,用來接收標(biāo)識(shí)與任務(wù)相關(guān)的最大存儲(chǔ)器使用量、任務(wù)的獨(dú)占性資源使用、以及任務(wù)的可搶占性的數(shù)據(jù),其中保護(hù)相同資源使用的所述多個(gè)任務(wù)的一個(gè)子集都被標(biāo)識(shí)為可搶占或不可搶占;
用來根據(jù)接收到的數(shù)據(jù)判斷是否有足夠的存儲(chǔ)器執(zhí)行任務(wù)的評(píng)估器;用來選擇至少一個(gè)任務(wù)在該任務(wù)的執(zhí)行期間掛起的選擇器,所述掛起符合任務(wù)的指定存儲(chǔ)器使用情況并且該任務(wù)是可搶占的;其中,響應(yīng)于評(píng)估器判斷出沒有足夠的存儲(chǔ)器執(zhí)行多個(gè)任務(wù),-選擇器根據(jù)任務(wù)指定的存儲(chǔ)器使用情況和它的可搶占性以及數(shù)據(jù)處理系統(tǒng)可用的指定存儲(chǔ)器量選擇至少一個(gè)任務(wù)掛起,-調(diào)度器響應(yīng)于所述任務(wù)使用指定存儲(chǔ)器并且可搶占暫停至少一個(gè)所選擇的任務(wù)的執(zhí)行,并-評(píng)估器隨后指導(dǎo)執(zhí)行關(guān)于被掛起的至少一個(gè)任務(wù)的受保護(hù)資源的同步原語(yǔ)。
在這個(gè)實(shí)施方案中,調(diào)度器是以硬件或軟件之一實(shí)現(xiàn)的,并且該數(shù)據(jù)處理系統(tǒng)是高容量消費(fèi)電子設(shè)備,例如數(shù)字電視系統(tǒng)。
在另一實(shí)施方案中,提供了發(fā)送數(shù)據(jù)到數(shù)據(jù)處理系統(tǒng)的一種方法,該方法包括定義任務(wù)使保護(hù)資源使用并與其中包含的別的同步原語(yǔ)相匹配的同步原語(yǔ)不跨越任務(wù)邊界;根據(jù)任務(wù)是否保護(hù)至少一個(gè)相同資源的使用定義所有任務(wù)為可搶占或不可搶占;發(fā)送數(shù)據(jù)處理系統(tǒng)在處理任務(wù)中所用的數(shù)據(jù);并在任務(wù)的處理期間根據(jù)存儲(chǔ)器使用情況和可搶占性發(fā)送指定任務(wù)掛起的掛起數(shù)據(jù),其中該數(shù)據(jù)處理系統(tǒng)被配置為執(zhí)行包括如下步驟的過程監(jiān)控表示與其相關(guān)的掛起數(shù)據(jù)相匹配的任務(wù)的存儲(chǔ)器使用情況的輸入;并如果所述掛起數(shù)據(jù)指定該任務(wù)是可搶占的,根據(jù)所述監(jiān)控到的輸入掛起所述任務(wù)的處理。
因此這個(gè)實(shí)施方案涉及數(shù)據(jù)處理系統(tǒng)要處理的任務(wù)所對(duì)應(yīng)的掛起數(shù)據(jù)的分發(fā)。掛起數(shù)據(jù)是作為定時(shí)廣播的信號(hào)(例如,伴隨其它資源的具有掛起數(shù)據(jù)的附加任務(wù))的一部分而被分發(fā)的,或者由服務(wù)提供商作為數(shù)據(jù)處理系統(tǒng)的常規(guī)升級(jí)的一部分而分發(fā)。此外,可以通過單獨(dú)的鏈路或設(shè)備(例如軟盤或CD-ROM)更新該數(shù)據(jù)處理系統(tǒng)。
盡管已經(jīng)示出并說明了本發(fā)明的優(yōu)選實(shí)施方案,但本領(lǐng)域的技術(shù)人員將會(huì)理解在不偏離本發(fā)明的真實(shí)范圍的前提下可以對(duì)其進(jìn)行各種不同的變化或修改,可以用等效物代替其中的元件。另外,可以進(jìn)行很多種修改以在不偏離本發(fā)明的中心范圍的前提下使本發(fā)明適應(yīng)特殊情況。因此,本發(fā)明并不限于所公開的特殊實(shí)施方案作為完成本發(fā)明的最佳模式,本發(fā)明包括在所附權(quán)利要求范圍內(nèi)的所有實(shí)施方案。
參考文獻(xiàn)以下參考文獻(xiàn)支持文中相應(yīng)的參考標(biāo)號(hào),在這里包括進(jìn)來作為參考如同完全引入[1]R.Gopalakrishnan and G.M.Parulkar,“Bringing Real-Time Scheduling Theory AndPractice Closer For Multimedia Computing,”InProc.ACM Sigmetrics Conf.onMeasurement & modeling of computer systems,pp.1-12,May 1996.S.Lee,C.-G.Lee,M.Lee,S.L.Min,and C.-S.Kim,“Limited Preemptible Schedulingto Embrace Cache Memory In Real-Time Systems,”InProc.ACM Sigplan Workshop onLanguages,Compilers and Tools for Embedded Systems(LCTES),LNCS-1474,pp.51-64,June 1998.J.Simonson and J.H.Patel,“Use Of Preferred Preemption Points In Cache-BasedReal-Time Systems”,InProc IEEE International Computer Performance and DependabilitySymposium(IPDS’95),pp.316-325,April 1995.R.J.Bril and D.J.C.Lowet,“A Method For Handling Preemption Points,”PhilipsResearch Laboratories,Eindhoven,The Netherlands,Internal IST/IPA document,30September 2002.R.J.Bril and D.J.C.Lowet,“A Method For Handling Preemption Points-Remarks--,”Philips Research Laboratories,Eindhoven,The Netherlands,Internal IST/IPA document,31 October 2002.Clemens Szyperski,Component Software-Beyond Object-oriented Programming,Addison-Wesley,ISBN 0-201-17888-5,1997.
權(quán)利要求
1.在數(shù)據(jù)處理系統(tǒng)中調(diào)度多個(gè)任務(wù)的一種方法,包括下列步驟定義所述多個(gè)任務(wù)的每個(gè)任務(wù),以使與其中包含的保護(hù)資源的另一同步原語(yǔ)相匹配的釋放資源的同步原語(yǔ)不會(huì)跨越任務(wù)邊界;根據(jù)任務(wù)是否保護(hù)至少一個(gè)相同資源的使用,指定任務(wù)的一個(gè)子集為可搶占或不可搶占的;對(duì)多個(gè)任務(wù)中的每個(gè)任務(wù),根據(jù)其存儲(chǔ)器使用情況以及指定的任務(wù)可搶占性,提供指定該任務(wù)掛起的掛起數(shù)據(jù);處理多個(gè)任務(wù)中的一個(gè);監(jiān)控表示由與任務(wù)相關(guān)的掛起數(shù)據(jù)相匹配的任務(wù)所用存儲(chǔ)器的輸入;并如果所述掛起數(shù)據(jù)指定所述任務(wù)是可搶占的,執(zhí)行下列步驟(1)根據(jù)所述監(jiān)控到的輸入掛起所述任務(wù),(2)執(zhí)行與被掛起的任務(wù)的受保護(hù)資源有關(guān)的同步原語(yǔ),直到所述被掛起的任務(wù)結(jié)束,并(3)處理該多個(gè)任務(wù)中的另一個(gè)。
2.權(quán)利要求1的方法,其中所述輸入包括指示掛起請(qǐng)求的數(shù)據(jù)。
3.權(quán)利要求2的方法,還包括下列步驟接收標(biāo)識(shí)與多個(gè)任務(wù)相關(guān)的最大存儲(chǔ)器使用的第一數(shù)據(jù);接收標(biāo)識(shí)可用于處理多個(gè)任務(wù)的存儲(chǔ)器的第二數(shù)據(jù);根據(jù)第一和第二數(shù)據(jù)判斷是否有足夠的存儲(chǔ)器可用來處理任務(wù)。其中,所述監(jiān)控、掛起步驟和執(zhí)行步驟只在判斷出存儲(chǔ)器不足時(shí)才被執(zhí)行。
4.權(quán)利要求3的方法,還包括下列步驟監(jiān)控任務(wù)的結(jié)束;并在任務(wù)結(jié)束時(shí),重復(fù)判斷存儲(chǔ)器的可用性的所述步驟。
5.權(quán)利要求4的方法,其中在判斷出存儲(chǔ)器足以執(zhí)行余下的任務(wù)時(shí),監(jiān)控步驟就是不必要的。
6.權(quán)利要求1的方法,還包括下列步驟接收標(biāo)識(shí)與多個(gè)任務(wù)相關(guān)的最大存儲(chǔ)器使用的第一數(shù)據(jù);接收標(biāo)識(shí)可用于處理多個(gè)任務(wù)的存儲(chǔ)器的第二數(shù)據(jù);根據(jù)第一和第二數(shù)據(jù)判斷是否有足夠的存儲(chǔ)器可用于處理任務(wù);其中,所述監(jiān)控、掛起和執(zhí)行步驟僅在判斷出存儲(chǔ)器不足時(shí)才會(huì)被執(zhí)行。
7.權(quán)利要求6的方法,還包括下列步驟監(jiān)控任務(wù)的結(jié)束;在任務(wù)結(jié)束時(shí),重復(fù)判斷存儲(chǔ)器可用性的步驟。
8.權(quán)利要求7的方法,其中如果判斷出存儲(chǔ)器足以執(zhí)行余下的任務(wù),監(jiān)控步驟就是多余的。
9.權(quán)利要求1的方法,還包括下列步驟接收標(biāo)識(shí)與該多個(gè)任務(wù)相關(guān)的最大存儲(chǔ)器使用的第一數(shù)據(jù);接收標(biāo)識(shí)可用于處理該多個(gè)任務(wù)的存儲(chǔ)器的第二數(shù)據(jù);根據(jù)第一和第二數(shù)據(jù)判斷是否有足夠的存儲(chǔ)器可用于處理任務(wù);其中,所述監(jiān)控、掛起和執(zhí)行步驟僅在判斷出存儲(chǔ)器不足時(shí)才會(huì)被執(zhí)行
10.權(quán)利要求9的方法,還包括下列步驟監(jiān)控任務(wù)的結(jié)束;在任務(wù)結(jié)束時(shí),重復(fù)判斷存儲(chǔ)器可用性的步驟。
11.權(quán)利要求10的方法,其中如果判斷出存儲(chǔ)器足以執(zhí)行余下的任務(wù),監(jiān)控步驟就是多余的。
12.用在數(shù)據(jù)處理系統(tǒng)中的一種調(diào)度器,該數(shù)據(jù)處理系統(tǒng)用來執(zhí)行多個(gè)任務(wù),定義該多個(gè)任務(wù)以使與其中包含的保護(hù)資源的另一同步原語(yǔ)相匹配的釋放資源( )的同步原語(yǔ)不會(huì)跨越任務(wù)邊界,并能夠訪問指定量的存儲(chǔ)器用在執(zhí)行該任務(wù)中,該調(diào)度器包括數(shù)據(jù)接收器,用來接收標(biāo)識(shí)與任務(wù)相關(guān)的最大存儲(chǔ)器使用、任務(wù)的獨(dú)占性資源使用、以及任務(wù)的可搶占性的數(shù)據(jù),其中所述保護(hù)相同資源使用的多個(gè)任務(wù)的一個(gè)子集被全部定義為可搶占或不可搶占的;評(píng)估器,用來根據(jù)接收到的數(shù)據(jù)判斷是否有足夠的存儲(chǔ)器執(zhí)行任務(wù);和選擇器,用來在任務(wù)執(zhí)行期間選擇至少一個(gè)任務(wù)進(jìn)行掛起,所述掛起與該任務(wù)的指定存儲(chǔ)器使用相符并且任務(wù)是可搶占的;其中,在評(píng)估器判斷出沒有足夠的存儲(chǔ)器執(zhí)行該多個(gè)任務(wù)時(shí),-選擇器根據(jù)任務(wù)的指定存儲(chǔ)器存儲(chǔ)器使用和它的可搶占性,以及該數(shù)據(jù)處理系統(tǒng)可用的指定存儲(chǔ)器量選擇至少一個(gè)任務(wù)進(jìn)行掛起;-該調(diào)度器在任務(wù)使用了指定的存儲(chǔ)器并且可搶占時(shí)掛起至少一個(gè)所選擇的任務(wù);-評(píng)估器隨后指令執(zhí)行與所掛起的至少一個(gè)任務(wù)的受保護(hù)資源有關(guān)的同步原語(yǔ),直到所述被掛起的至少一個(gè)任務(wù)結(jié)束。
13.根據(jù)權(quán)利要求12的調(diào)度器,其中評(píng)估器還用來監(jiān)控任務(wù)的執(zhí)行,并在任務(wù)結(jié)束時(shí),判斷是否有足夠的存儲(chǔ)器存儲(chǔ)器執(zhí)行余下的任務(wù)。
14.根據(jù)權(quán)利要求13的調(diào)度器,其中在評(píng)估器判斷出有足夠的存儲(chǔ)器執(zhí)行余下的任務(wù)時(shí),選擇器用來撤銷對(duì)所述選出的至少一個(gè)任務(wù)的選定。
15.一種用來執(zhí)行多個(gè)任務(wù)的數(shù)據(jù)處理系統(tǒng),定義所述多個(gè)任務(wù)中的每個(gè)任務(wù),以使與其中包含的另一同步原語(yǔ)相匹配的同步原語(yǔ)不會(huì)跨越任務(wù)邊界,該數(shù)據(jù)處理系統(tǒng)包括存儲(chǔ)器,用來在任務(wù)執(zhí)行期間保存指令和數(shù)據(jù)存儲(chǔ)器;接收裝置,用來接收標(biāo)識(shí)與任務(wù)相關(guān)的最大存儲(chǔ)器使用的數(shù)據(jù)以及標(biāo)識(shí)任務(wù)的可搶占性的數(shù)據(jù);評(píng)估裝置,用來根據(jù)接收到的數(shù)據(jù)判斷是否有足夠的存儲(chǔ)器執(zhí)行任務(wù)以及所述任務(wù)是否是可搶占的;調(diào)度器,用來根據(jù)從評(píng)估裝置接收到的輸入調(diào)度任務(wù)的執(zhí)行,其中,在判斷出存儲(chǔ)器不足以執(zhí)行該多個(gè)任務(wù)時(shí),調(diào)度器用來根據(jù)任務(wù)的存儲(chǔ)器使用情況、任務(wù)的獨(dú)占資源使用和任務(wù)的可搶占性掛起至少一個(gè)任務(wù),并隨后指令執(zhí)行與所掛起的至少一個(gè)任務(wù)的受保護(hù)資源有關(guān)的同步原語(yǔ),直到所述被掛起的任務(wù)結(jié)束。
16.權(quán)利要求15的數(shù)據(jù)處理系統(tǒng),其中所述多個(gè)任務(wù)的一個(gè)子集被根據(jù)該任務(wù)子集是否保護(hù)相同資源的使用而全都被定義為可搶占或不可搶占。
17.發(fā)送數(shù)據(jù)到數(shù)據(jù)處理系統(tǒng)的方法,該方法包括定義任務(wù),以使與其中包含的另一同步原語(yǔ)相匹配的保護(hù)資源使用的同步原語(yǔ)不會(huì)跨越任務(wù)邊界;根據(jù)任務(wù)是否保護(hù)至少一個(gè)相同資源的使用,定義所有任務(wù)為可搶占或不可搶占的;發(fā)送該數(shù)據(jù)處理系統(tǒng)在處理任務(wù)中要用的數(shù)據(jù);并在任務(wù)處理中,根據(jù)存儲(chǔ)器使用情況和可搶占性發(fā)送指定該任務(wù)掛起的掛起數(shù)據(jù),其中該數(shù)據(jù)處理系統(tǒng)被配置用來完成包括下列步驟的過程監(jiān)控表示與任務(wù)所關(guān)聯(lián)的掛起數(shù)據(jù)相匹配的任務(wù)的存儲(chǔ)器使用情況的輸入;如果所述掛起數(shù)據(jù)指定任務(wù)是可搶占的,就根據(jù)所述監(jiān)控到的輸入掛起所述任務(wù)的處理,并隨后執(zhí)行與被掛起的任務(wù)所保護(hù)的資源相關(guān)的同步原語(yǔ),直到被掛起的任務(wù)結(jié)束。
18.根據(jù)權(quán)利要求17的方法,其中掛起數(shù)據(jù)包括標(biāo)識(shí)與任務(wù)相關(guān)的最大存儲(chǔ)器使用、與任務(wù)相關(guān)的獨(dú)占性資源使用以及任務(wù)的可搶占性的數(shù)據(jù)。
19.根據(jù)權(quán)利要求17的方法,其中掛起數(shù)據(jù)標(biāo)識(shí)至少一個(gè)能夠根據(jù)任務(wù)的存儲(chǔ)器使用、任務(wù)的獨(dú)占性資源使用以及任務(wù)的可搶占性掛起任務(wù)處理的時(shí)間點(diǎn)。
20.權(quán)利要求19的方法,其中任務(wù)包括多個(gè)子作業(yè)并且所述標(biāo)識(shí)至少一個(gè)能夠掛起任務(wù)處理的時(shí)間點(diǎn)的數(shù)據(jù)對(duì)應(yīng)于每個(gè)可搶占的子作業(yè)。
21.根據(jù)權(quán)利要求19的方法,其中掛起數(shù)據(jù)包括標(biāo)識(shí)與任務(wù)相關(guān)的最大存儲(chǔ)器使用,以及與任務(wù)相關(guān)的獨(dú)占性資源使用的數(shù)據(jù)。
22.權(quán)利要求21的方法,其中任務(wù)包括多個(gè)子作業(yè),并且所述標(biāo)識(shí)至少一個(gè)能夠掛起任務(wù)處理的時(shí)間點(diǎn)對(duì)應(yīng)于每個(gè)可搶占的子作業(yè)。
23.配置任務(wù)以用在數(shù)據(jù)處理系統(tǒng)中的一種方法,該方法包括將掛起數(shù)據(jù)與任務(wù)相關(guān)聯(lián),該掛起數(shù)據(jù)指定根據(jù)與任務(wù)相關(guān)的存儲(chǔ)器使用情況、任務(wù)的獨(dú)占性資源使用以及任務(wù)的可搶占性掛起任務(wù),其中數(shù)據(jù)處理系統(tǒng)用來執(zhí)行關(guān)于多個(gè)任務(wù)的過程,該過程包括定義任務(wù),以使其中包含的與另一同步原語(yǔ)相匹配的同步原語(yǔ)不跨越任務(wù)邊界;監(jiān)控表示與任務(wù)所關(guān)聯(lián)的掛起數(shù)據(jù)相匹配的任務(wù)的存儲(chǔ)器使用的輸入;并如果掛起數(shù)據(jù)指示所述任務(wù)是可搶占的-根據(jù)所述監(jiān)控到的輸入掛起所述任務(wù)的處理,并-隨后執(zhí)行與被掛起的至少一個(gè)任務(wù)獨(dú)占性使用的資源相關(guān)的同步原語(yǔ),直到所述任務(wù)結(jié)束。
24.存儲(chǔ)在存儲(chǔ)器中的計(jì)算機(jī)程序,包括用來使處理系統(tǒng)執(zhí)行根據(jù)權(quán)利要求1的方法的指令集。
全文摘要
提供了一種方法和設(shè)備,由多處理數(shù)據(jù)處理系統(tǒng)的調(diào)度器用來根據(jù)主存需求和獨(dú)占性資源使用情況選擇任務(wù)搶占點(diǎn),所提供的方法和設(shè)備是成本有效的并且維護(hù)系統(tǒng)穩(wěn)定性,尤其是允許附加的搶占策略,在附加搶占策略中相匹配的同步原語(yǔ)不跨越搶占點(diǎn),即子作業(yè)邊界;對(duì)特定資源Rk,使用這個(gè)資源(并用同步原語(yǔ)保護(hù)它)的所有任務(wù)的所有時(shí)間片/子作業(yè)都是可搶占或不可搶占的,-1,如果它們都是可搶占的,則必須執(zhí)行同步原語(yǔ),2-如果它們都是不可搶占的,則不必執(zhí)行同步原語(yǔ);對(duì)任務(wù)的一個(gè)子集的搶占被限制在這個(gè)子集的搶占點(diǎn)同時(shí)允許對(duì)所有其它任務(wù)的任意搶占;對(duì)任務(wù)的一個(gè)子集的搶占限于它們的搶占點(diǎn),而對(duì)其它任務(wù)的搶占則限于它們的搶占點(diǎn)的一個(gè)子集,同時(shí)允許對(duì)它們余下的時(shí)間片的任意搶占。也就是說,本發(fā)明是基于主存的搶占技術(shù),它不限于只在預(yù)定搶占點(diǎn)的搶占,而且避免了由于資源的獨(dú)占性使用而導(dǎo)致的死鎖。
文檔編號(hào)G06F9/48GK1879085SQ200480032744
公開日2006年12月13日 申請(qǐng)日期2004年11月4日 優(yōu)先權(quán)日2003年11月6日
發(fā)明者R·J·布里爾, D·J·C·羅韋特 申請(qǐng)人:皇家飛利浦電子股份有限公司