專利名稱:向任務(wù)分配預(yù)算盈余的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種調(diào)度(scheduling)一個(gè)第一任務(wù)和一個(gè)第二任務(wù)的方法,該方法包含以下步驟第一步,分配一個(gè)第一預(yù)算給第一任務(wù);第二步,分配一個(gè)第二預(yù)算給第二任務(wù);第三步,確定第一任務(wù)只用掉第一預(yù)算的一部分,因此第一預(yù)算的剩余部分引起一個(gè)預(yù)算盈余;第四步,在第二預(yù)算外,還將預(yù)算盈余再分配給第二任務(wù)。
本發(fā)明也涉及一種調(diào)度一個(gè)第一任務(wù)和一個(gè)第二任務(wù)的系統(tǒng),該系統(tǒng)包含第一分配裝置,用于分配一個(gè)第一預(yù)算給第一任務(wù);第二分配裝置,用于分配一個(gè)第二預(yù)算給第二任務(wù);確定裝置,用于確定第一任務(wù)只用掉第一預(yù)算的一部分,因此第一預(yù)算的剩余部分引起一個(gè)預(yù)算盈余;再分配裝置,用于在第二預(yù)算外,還將預(yù)算盈余再分配給第二任務(wù)。
背景技術(shù):
用軟件進(jìn)行媒體處理使消費(fèi)終端(consumer terminal)能變得開放和靈活。同時(shí),消費(fèi)終端由于成本價(jià)的高度壓力是嚴(yán)重地受到資源約束的。為了能與專用硬件解決方案競爭,軟件媒體處理必須以高的平均資源利用率,非常劃算地使用可用的資源,與此同時(shí)保持消費(fèi)終端的典型質(zhì)量一例如堅(jiān)固性(robustness),并滿足由高質(zhì)量數(shù)字聲頻和視頻處理所強(qiáng)加的嚴(yán)格的時(shí)限要求。這方面的一個(gè)重要資源是用于執(zhí)行媒體處理操作的媒體處理器。
軟件媒體處理使得有可能使用可動(dòng)態(tài)地升級的(scalable)應(yīng)用程序,用資源換取質(zhì)量。在運(yùn)行時(shí),服務(wù)質(zhì)量(QoS)資源管理器能改變應(yīng)用程序執(zhí)行的質(zhì)量水平,以便以給定的可用資源,使感受到的組合的應(yīng)用程序輸出質(zhì)量為最優(yōu)。QoS資源管理的中心概念,是向應(yīng)用程序分配的資源預(yù)算的概念。要應(yīng)對不同時(shí)刻的動(dòng)態(tài)行為,QoS資源管理器被設(shè)計(jì)為多層次結(jié)構(gòu)。較高的層次決定和調(diào)整質(zhì)量水平和資源預(yù)算,以最大化感受到的輸出質(zhì)量。預(yù)算調(diào)度器(budget scheduler)在最低的層次提供、保障和執(zhí)行所分配的資源預(yù)算。就一個(gè)處理器而言,這通常將要求向應(yīng)用任務(wù)分配處理器能力。因此,QoS資源管理器較高層次在由較低層次所提供的機(jī)制的基礎(chǔ)上建立它們的策略。質(zhì)量水平和資源預(yù)算的調(diào)整,根據(jù)的是測量以及QoS資源管理器與所有有關(guān)應(yīng)用之間的反饋控制。但是,由于這些交互作用,這樣的調(diào)整不可能在沒有延遲的情況下完成。
在穩(wěn)定的質(zhì)量水平是一個(gè)應(yīng)用對QoS的主要要求的情況中,分配給它的資源預(yù)算必須大得足以適應(yīng)可以預(yù)料的載荷增加。這樣,每當(dāng)發(fā)生這種載荷增加時(shí),載荷增加能夠適應(yīng)而無需延遲。然而,在滿載的終端中,只能通過向其它應(yīng)用分配較小的預(yù)算來獲得較高的資源預(yù)算。此外,只要不發(fā)生載荷增強(qiáng),較高的資源預(yù)算導(dǎo)致預(yù)算盈余,降低成本效益性。要挽回成本效益性,就需要一種有條件地向其它應(yīng)用再分配預(yù)算盈余的機(jī)制。這牽涉到在預(yù)算調(diào)度器層次的變更。
為了給任務(wù)分配處理器能力,預(yù)算調(diào)度器使用一種調(diào)度算法。這是一個(gè)確定要在特定時(shí)刻由處理器執(zhí)行的任務(wù)的規(guī)則的集合。預(yù)算調(diào)度器使用一種提供向任務(wù)分配處理器能力預(yù)算的概念的調(diào)度算法。預(yù)算是周期性的,每個(gè)任務(wù)的預(yù)算周期可以不同。預(yù)算調(diào)度器是以提供周期預(yù)算的更基本的調(diào)度算法為根據(jù)的。例如在Liu和Layland的“Scheduling Algorithms for Multiprogramming in a HardReal-Time Environment”(在硬實(shí)時(shí)環(huán)境中多道程序的調(diào)度算法)(Journal of the Association for Computing Machinery,卷20,64-61頁)中描述了用于諸如這里所考慮的環(huán)境的基本調(diào)度算法。這些調(diào)度算法是占先的和優(yōu)先級驅(qū)動(dòng)的。這意味著,每當(dāng)有執(zhí)行一個(gè)比當(dāng)前正在被執(zhí)行的任務(wù)的優(yōu)先級更高的任務(wù)的請求時(shí),正在運(yùn)行的任務(wù)被立即中斷,并開始執(zhí)行新請求的任務(wù)。因此,對這種算法的規(guī)定相當(dāng)于對向任務(wù)分配優(yōu)先級的方法的規(guī)定。如果優(yōu)先級被一勞永逸地分配給任務(wù),則調(diào)度算法被稱作是靜態(tài)的。靜態(tài)調(diào)度算法也被稱作固定優(yōu)先級調(diào)度算法。關(guān)于可實(shí)現(xiàn)的處理器利用率,可以證明對于固定優(yōu)先級分配規(guī)則來說,速率單調(diào)的(rate-monotonic)優(yōu)先級分配是最優(yōu)的。如果任務(wù)的優(yōu)先級可以是從請求到請求變化的,則調(diào)度算法被稱作是動(dòng)態(tài)的。一個(gè)著名的動(dòng)態(tài)調(diào)度算法是最后期限驅(qū)動(dòng)的(deadlinedriven)調(diào)度算法。根據(jù)這個(gè)算法,優(yōu)先級是按照任務(wù)的當(dāng)前請求的最后期限向任務(wù)分配的。如果有些任務(wù)的優(yōu)先級是固定的,其余任務(wù)的優(yōu)先級是從請求到請求變化的,則調(diào)度算法被稱作是混合調(diào)度算法。未被使用的處理器能力被稱作寬松時(shí)間(slack time)。寬松時(shí)間是由沒有完全消耗掉它們的預(yù)算的任務(wù)產(chǎn)生的、由所使用的調(diào)度方法的不完善產(chǎn)生的,或者有未被使用的處理器能力產(chǎn)生的。改善成本效益性意味著必須將寬松時(shí)間最小化。在實(shí)踐中,一些寬松時(shí)間的存在是不可避免的。在低優(yōu)先級,一個(gè)任務(wù)可潛在地接收一些寬松時(shí)間。這被稱作后臺(tái)執(zhí)行。假設(shè)向任務(wù)分配的優(yōu)先級總體上低于要取得成本效益性的最壞情形,任務(wù)在有短暫的預(yù)算過載的情況下可能會(huì)有問題。這時(shí)一個(gè)有限數(shù)量的寬松時(shí)間甚至可能用于解決這些過載情況的多數(shù)的問題。
上文所述的以及如權(quán)利要求1的前序部分所定義的那種方法和系統(tǒng)的一個(gè)實(shí)施例,可見于Bril和Steffens的”User Focus inConsumer Terminals and Conditionally Guaranteed Budgets”(消費(fèi)終端和有條件保證的預(yù)算中用戶聚焦)(Proceedings 9thInternational Workshop on Quality of Services,Lecture Notesin Computer Science 2092,pages 107 to 120)。這里是一個(gè)在提供基于占先優(yōu)先級的調(diào)度的實(shí)時(shí)操作系統(tǒng)頂部的預(yù)算調(diào)度器。該預(yù)算調(diào)度器調(diào)度處理器能力,向任務(wù)提供有保證的周期性預(yù)算。這種保證是以檢查調(diào)度一組預(yù)算的可行性的容許檢測(admission test)和防止任務(wù)干擾其他任務(wù)的預(yù)算的執(zhí)行機(jī)制為基礎(chǔ)的。預(yù)算是通過優(yōu)先級調(diào)控(manipulations)而實(shí)現(xiàn)的。預(yù)算內(nèi)的執(zhí)行以高優(yōu)先級進(jìn)行,預(yù)算外的執(zhí)行則以低優(yōu)先級進(jìn)行。預(yù)算是周期性的,預(yù)算周期可因每個(gè)任務(wù)而異。對于預(yù)算內(nèi)的執(zhí)行,任務(wù)是按速率單調(diào)的優(yōu)先級順序調(diào)度的,使得一個(gè)具有較小預(yù)算周期的任務(wù)獲得較高的優(yōu)先級。這就引起了預(yù)算內(nèi)的執(zhí)行的高優(yōu)先級段(band)。任務(wù)的優(yōu)先級在高優(yōu)先級段不相交。在每個(gè)新周期的開始,一個(gè)任務(wù)的優(yōu)先級被提高到其在高優(yōu)先級段內(nèi)的速率單調(diào)的優(yōu)先級。當(dāng)一個(gè)任務(wù)的預(yù)算被用盡時(shí),或者當(dāng)任務(wù)釋放處理器時(shí),任務(wù)的優(yōu)先級被降到低優(yōu)先級。在低優(yōu)先級,一個(gè)任務(wù)潛在地能接收一些寬松時(shí)間以便用于后臺(tái)執(zhí)行。預(yù)算調(diào)度器的容許檢測是以速率單調(diào)分析為基礎(chǔ)的。
對于已知的方法和系統(tǒng)來說,從一個(gè)任務(wù)向另一個(gè)任務(wù)的預(yù)算盈余再分配是通過位于高優(yōu)先級段之下、低優(yōu)先級之上的一個(gè)額外中間優(yōu)先級段進(jìn)行的。從另一個(gè)任務(wù)接收預(yù)算盈余的任務(wù)在已經(jīng)用盡其自己的預(yù)算之后接收該預(yù)算盈余。在此時(shí)刻,不是立即將接收任務(wù)的優(yōu)先級降低到低優(yōu)先級,而是將其降低到中間優(yōu)先級段中的一個(gè)優(yōu)先級。這時(shí)在這個(gè)中間優(yōu)先級提供預(yù)算盈余。當(dāng)該預(yù)算盈余被用盡時(shí),或者當(dāng)該任務(wù)釋放處理器時(shí),該任務(wù)的優(yōu)先級被降到低優(yōu)先級。這種使用一個(gè)中間優(yōu)先級段的一個(gè)缺點(diǎn)是,它會(huì)容易地導(dǎo)致一個(gè)非速率單調(diào)的優(yōu)先級分配??傮w來說,這種優(yōu)先級分配產(chǎn)生一個(gè)與追求高平均資源利用率相沖突的非最佳的解決方案。它甚至?xí)耆璧K預(yù)算盈余的有效再分配。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是提供一種如上所述的以改進(jìn)的方式再分配預(yù)算盈余的方法。為了實(shí)現(xiàn)這個(gè)目的,按照本發(fā)明的方法的特征在于在第四步中包含一個(gè)子步驟將預(yù)算盈余連同第一任務(wù)的調(diào)度特征一起分配給第二任務(wù)。
由于這個(gè)子步驟,實(shí)際所發(fā)生的是,第二任務(wù)就像第一任務(wù)似地在第一任務(wù)的位置上執(zhí)行,并具有例如第一任務(wù)的周期和優(yōu)先級的調(diào)度特征。預(yù)算盈余表示第一任務(wù)所不需要的、并且這時(shí)應(yīng)當(dāng)變得可供第二任務(wù)使用的處理器能力。一個(gè)任務(wù)的調(diào)度特征表達(dá)該任務(wù)就所使用的調(diào)度算法而言的特征。
對于已知的方法和系統(tǒng)來說,預(yù)算調(diào)度器用固定優(yōu)先級調(diào)度作為基本調(diào)度算法,且任務(wù)是按速率單調(diào)的優(yōu)先級順序調(diào)度的。在這種情況下,一個(gè)任務(wù)的調(diào)度特征相當(dāng)于一個(gè)預(yù)算周期和高優(yōu)先級段中的一個(gè)固定優(yōu)先級。這時(shí)連同調(diào)度特征的預(yù)算盈余再分配意味著一個(gè)符合接受預(yù)算盈余的條件的任務(wù),連同產(chǎn)生該盈余的任務(wù)的周期和優(yōu)先級一起接收預(yù)算盈余。與已知的再分配方法不同的是,新的再分配方法將不影響所使用的速率單調(diào)的優(yōu)先級分配,使符合所追求的高平均資源利用率的更優(yōu)解決方案變得可能。新的再分配方法的另一個(gè)優(yōu)點(diǎn)是,它不影響寬松時(shí)間的可用性。已知的再分配方法潛在地能消耗所有可用的寬松時(shí)間,不為在后臺(tái)執(zhí)行的任務(wù)留下任何寬松時(shí)間。這可能影響這種任務(wù)的行為,以至于在使用已知的再分配方法時(shí),過去工作得很好的任務(wù)會(huì)出現(xiàn)問題。而用新的再分配方法則不會(huì)發(fā)生這個(gè)問題。用新的再分配方法另一個(gè)優(yōu)點(diǎn)是,不需要因需要中間優(yōu)先級段而帶來的額外的優(yōu)先級。一般來說,操作系統(tǒng)只提供相對有限數(shù)量的優(yōu)先級層次,因此應(yīng)當(dāng)節(jié)省使用優(yōu)先級層次。
對于使用以最早的限期為最先的動(dòng)態(tài)優(yōu)先級調(diào)度作為基本調(diào)度算法的預(yù)算調(diào)度器來說,一個(gè)任務(wù)的調(diào)度特征相當(dāng)于一個(gè)預(yù)算周期和一個(gè)最后期限。這時(shí)預(yù)算盈余連同調(diào)度特征的再分配意味著一個(gè)符合接受預(yù)算盈余條件的任務(wù),連同產(chǎn)生該盈余的任務(wù)的周期和最后期限一起接收預(yù)算盈余。
按照本發(fā)明的系統(tǒng)的特征在于再分配裝置包含第三分配裝置,用于將預(yù)算盈余連同第一任務(wù)的調(diào)度特征一起分配給第二任務(wù)。
將通過以下附圖中所示的實(shí)施例更詳細(xì)地說明本發(fā)明圖1表示按照本發(fā)明的將第一任務(wù)的預(yù)算盈余向第二任務(wù)再分配的方法的主要步驟的實(shí)施例;圖2用任務(wù)交互作用圖表示預(yù)算盈余的分配;圖3用優(yōu)先級層次圖表示預(yù)算盈余的分配;圖4示意性地表示按照本發(fā)明的系統(tǒng)的實(shí)施例的最重要部分;圖5示意性地表示包含按照本發(fā)明的系統(tǒng)的實(shí)施例的電視機(jī)的最重要部分;圖6示意性地表示包含按照本發(fā)明的系統(tǒng)的實(shí)施例的機(jī)頂盒的最重要部分。
具體實(shí)施例方式
圖1表示按照本發(fā)明的將第一任務(wù)的預(yù)算盈余向第二任務(wù)再分配的方法的主要步驟的實(shí)施例。對于高質(zhì)量視頻系統(tǒng),一個(gè)QoS資源管理器向執(zhí)行聲頻和視頻處理的任務(wù)分配處理器能力預(yù)算。預(yù)算是周期性的,每個(gè)任務(wù)的預(yù)算周期可以不同。QoS資源管理器分配包含許多周期的較長的時(shí)間間隔的預(yù)算。為了成本效益性的原因,預(yù)算必須產(chǎn)生高的平均處理器使用率,與此同時(shí)使感受到的組合應(yīng)用程序輸出的質(zhì)量最優(yōu)化。在要求穩(wěn)定的輸出質(zhì)量水平的情況中,將一個(gè)允許預(yù)期會(huì)出現(xiàn)載荷增加的預(yù)算分配給任務(wù)。這樣,每當(dāng)發(fā)生這種載荷增加時(shí),載荷增加能得到處理而無需延遲。這樣一個(gè)任務(wù)—假設(shè)為τm-例如是為電視機(jī)的一個(gè)主畫面圖像執(zhí)行視頻處理操作。在這個(gè)情況下,穩(wěn)定的輸出質(zhì)量水平意味著穩(wěn)定的圖像質(zhì)量。第二個(gè)任務(wù)—假設(shè)為τp-例如是為這個(gè)電視機(jī)的一個(gè)畫中畫圖像執(zhí)行視頻處理操作。與任務(wù)τm不同的是,這個(gè)任務(wù)對穩(wěn)定的圖像質(zhì)量的要求不那么嚴(yán)格。為了使感受到的質(zhì)量最優(yōu),每當(dāng)任務(wù)τm有任何可用的預(yù)算盈余,這個(gè)任務(wù)仍然會(huì)從任務(wù)τm接收預(yù)算盈余。這樣,每當(dāng)任務(wù)τm不需要其全部的預(yù)算,任務(wù)τp就可以改善畫中畫圖像的質(zhì)量。可以有更多地執(zhí)行其它處理操作的任務(wù)。這些任務(wù)可能不需要一個(gè)允許預(yù)期會(huì)出現(xiàn)載荷增加的預(yù)算,它們可能也不從某個(gè)其它任務(wù)的預(yù)算盈余中得到好處。
任務(wù)的調(diào)度可以按以下所述的主要步驟進(jìn)行。步驟102是初始化步驟,在此期間,要被調(diào)度的任務(wù)被給予它們的周期預(yù)算并讓預(yù)算調(diào)度器知道。預(yù)算調(diào)度器是QoS資源管理器的一部分,它根據(jù)周期預(yù)算控制實(shí)際的調(diào)度操作。預(yù)算調(diào)度器在市場上可獲得的提供基于占先固定優(yōu)先級(pre-emptive fixed priority)調(diào)度的操作系統(tǒng)的頂部執(zhí)行。預(yù)算調(diào)度器利用優(yōu)先級調(diào)控來實(shí)現(xiàn)預(yù)算。預(yù)算內(nèi)的執(zhí)行以高優(yōu)先級進(jìn)行,預(yù)算外的執(zhí)行以低的后臺(tái)優(yōu)先級Pb進(jìn)行。對于預(yù)算內(nèi)執(zhí)行,任務(wù)按速率單調(diào)的優(yōu)先級順序調(diào)度,使得一個(gè)具有較小預(yù)算周期的任務(wù)獲得較高的優(yōu)先級。對于預(yù)算內(nèi)執(zhí)行,任務(wù)的優(yōu)先級不相交。在后臺(tái)優(yōu)先級Pb,一個(gè)任務(wù)有可能能接收一些用于后臺(tái)執(zhí)行的寬松時(shí)間,與任何其它以這個(gè)優(yōu)先級執(zhí)行的任務(wù)競爭這一時(shí)間。作為過程步驟102的一部分,預(yù)算調(diào)度器根據(jù)任務(wù)的預(yù)算周期,將一個(gè)預(yù)算內(nèi)優(yōu)先級與要被調(diào)度的各任務(wù)中的每一個(gè)相關(guān)聯(lián)。例如,就上面所介紹的任務(wù)τm、τa和τp來說,這可以分別是優(yōu)先級p1、p2和p3,其中p1>p2>p3。這樣,執(zhí)行主圖像處理操作的任務(wù)τm具有最高優(yōu)先級p1,執(zhí)行畫中畫處理操作的任務(wù)τp具有最低優(yōu)先級p3,執(zhí)行聲頻處理操作的任務(wù)τa具有中間優(yōu)先級p2。
在過程步驟104中,預(yù)算調(diào)度器執(zhí)行所有任務(wù)的預(yù)算。每當(dāng)需要進(jìn)行重新調(diào)度操作時(shí),就重復(fù)地進(jìn)入這個(gè)步驟。進(jìn)行的重新調(diào)度操作的一個(gè)原因可能是,一個(gè)任務(wù)進(jìn)入了一個(gè)新的、下一個(gè)預(yù)算周期。這個(gè)任務(wù)得到其用于該周期的預(yù)算的補(bǔ)充,并且其優(yōu)先級被提高到其速率單調(diào)的優(yōu)先級。進(jìn)行的重新調(diào)度操作的另一個(gè)原因可能是,一個(gè)任務(wù)在執(zhí)行時(shí)耗盡了其預(yù)算。對于這樣一個(gè)任務(wù),預(yù)算調(diào)度器把優(yōu)先級降低到后臺(tái)優(yōu)先級。進(jìn)行的重新調(diào)度操作的另一個(gè)原因可能是,一個(gè)任務(wù)在其預(yù)算內(nèi)結(jié)束了其處理,這時(shí)要釋放處理器。預(yù)算調(diào)度器現(xiàn)在也把這個(gè)任務(wù)的優(yōu)先級降低到后臺(tái)優(yōu)先級。一旦進(jìn)入,過程步驟104可能需要為多個(gè)任務(wù)執(zhí)行多個(gè)重新調(diào)度處理。然后,在所有必需的重新調(diào)度操作已經(jīng)被執(zhí)行之后,具有最高優(yōu)先級的任務(wù)在步驟106中被選擇,并被調(diào)度在處理器上處理。
在決定步驟108,預(yù)算調(diào)度器通過重新調(diào)度事件檢測對重新調(diào)度操作的需要。重新調(diào)度事件通知可能需要進(jìn)行重新調(diào)度操作。一種重新調(diào)度事件涉及一個(gè)結(jié)束其處理并釋放處理器的任務(wù)。其它種類的重新調(diào)度事件與預(yù)算補(bǔ)充和預(yù)算耗盡有關(guān)。這些預(yù)算相關(guān)的事件發(fā)生在作為過程步驟104的一部分所執(zhí)行的更早的重新調(diào)度操作之后。在本實(shí)施例中,這些預(yù)算相關(guān)的重新調(diào)度事件是利用可從所使用的實(shí)時(shí)內(nèi)核獲得的低級定時(shí)器服務(wù)實(shí)現(xiàn)的。這在這里不作進(jìn)一步說明。
在決定步驟110,預(yù)算調(diào)度器確定預(yù)算盈余是否能被再分配。在這個(gè)步驟中,它查看最后運(yùn)行的任務(wù)是否已經(jīng)在預(yù)算內(nèi)結(jié)束其處理,產(chǎn)生預(yù)算盈余,這樣的預(yù)算然后是否需要被再分配給另一個(gè)任務(wù)。例如,就上面介紹的任務(wù)τm和τp而言,如果任務(wù)τm在其預(yù)算內(nèi)完成處理,決定步驟108可以決定把任務(wù)τm的剩余預(yù)算再分配給任務(wù)τp。如果一個(gè)預(yù)算盈余能被再分配,這個(gè)再分配在過程步驟112開始,其中預(yù)算調(diào)度器為要接收該預(yù)算盈余的任務(wù)保存當(dāng)前剩余的預(yù)算的值。預(yù)算調(diào)度器也保存接收任務(wù)的優(yōu)先級。就任務(wù)τp來說,這就是優(yōu)先級p3。然后,在過程步驟114中進(jìn)行實(shí)際的再分配。在這里,要接收該預(yù)算盈余的任務(wù)實(shí)際得到被分配的這個(gè)預(yù)算和提供預(yù)算盈余的任務(wù)的優(yōu)先級。就任務(wù)τm和τp而言,任務(wù)τp的優(yōu)先級被設(shè)定為p1,這是任務(wù)τm的優(yōu)先級。處理在過程步驟104繼續(xù)。
如果沒有可用的預(yù)算盈余,或者不需要再分配預(yù)算盈余,則決定步驟116檢查最后運(yùn)行的任務(wù)在使用其再分配應(yīng)當(dāng)結(jié)束的預(yù)算盈余時(shí)是否這樣做了。預(yù)算盈余向最后運(yùn)行的任務(wù)的再分配在該預(yù)算盈余耗盡或者該任務(wù)完成其處理時(shí)結(jié)束。如果再分配確實(shí)應(yīng)當(dāng)結(jié)束,則在過程步驟118中,較早時(shí)在過程步驟112中被保存的這個(gè)任務(wù)的預(yù)算和優(yōu)先級現(xiàn)在被恢復(fù)。這樣,就任務(wù)τp來說,優(yōu)先級在這里被恢復(fù)為優(yōu)先級p3。處理以過程步驟104繼續(xù)。如果在決定步驟116中最后運(yùn)行的任務(wù)沒有在使用其再分配應(yīng)當(dāng)結(jié)束的預(yù)算盈余時(shí)這樣做了,則情況也是這樣。
本實(shí)施例中各步驟的順序不是強(qiáng)制性的。所屬領(lǐng)域的熟練人員在不偏離本發(fā)明的構(gòu)思的情況下,可以改變各步驟的順序,或者同時(shí)執(zhí)行各步驟—例如通過利用線程模型、多處理器系統(tǒng)或多進(jìn)程。
在本實(shí)施例中,再分配是從一個(gè)任務(wù)到另一個(gè)任務(wù)對單一的預(yù)算盈余進(jìn)行的。在其它實(shí)施例中,可以對源于多個(gè)任務(wù)、向多個(gè)任務(wù)再分配的多個(gè)預(yù)算盈余進(jìn)行再分配。例如,可以將來自一個(gè)任務(wù)的預(yù)算盈余再分配給多個(gè)其它任務(wù),或者,一個(gè)任務(wù)可以接收來自多個(gè)其它任務(wù)的預(yù)算盈余。也可以想得出再一次對預(yù)算盈余的任何未用的部分再分配的實(shí)施例。所屬領(lǐng)域的熟練人員將認(rèn)識(shí)到這種可能。
在本實(shí)施例中,任務(wù)是作為單一實(shí)體被描述的,具有一個(gè)預(yù)算、一個(gè)預(yù)算周期和一個(gè)優(yōu)先級。在其它實(shí)施例中,這樣一個(gè)任務(wù)實(shí)際可代表一個(gè)任務(wù)群,任務(wù)群共享單一的預(yù)算和單一的預(yù)算周期,但是占據(jù)一個(gè)優(yōu)先級段,使得該群內(nèi)的各個(gè)任務(wù)能被優(yōu)先化。所屬領(lǐng)域的熟練人員將認(rèn)識(shí)到這種可能。
在本實(shí)施例中,預(yù)算調(diào)度器用固定優(yōu)先級作為基本調(diào)度算法。在其它實(shí)施例中,也可以使用動(dòng)態(tài)優(yōu)先級調(diào)度或混合優(yōu)先級調(diào)度。所屬領(lǐng)域的熟練人員將認(rèn)識(shí)到這種可能。
圖2和圖3共同表示預(yù)算盈余的再分配。圖2表示一個(gè)任務(wù)交互作用圖表,圖3表示一個(gè)有關(guān)的優(yōu)先級層次圖表。從根本上說,任務(wù)交互作用圖表表示各任務(wù)隨時(shí)間推移的執(zhí)行。有關(guān)的任務(wù)在縱軸上表示,時(shí)間在橫軸上表示。對于每個(gè)任務(wù),圖表中含有一個(gè)時(shí)間線(timeline),它表示該任務(wù)的狀態(tài)或狀態(tài)的變化。任務(wù)之間的交互作用也可以被表示。對于正常情況來說,沒有預(yù)算盈余再分配,指示符包括預(yù)算允許(budget enabling)(也叫補(bǔ)充),由實(shí)心上箭頭指示;預(yù)算禁止(budget disabling),由實(shí)心下箭頭指示;執(zhí)行,即消耗預(yù)算,由實(shí)心或帶陰影的矩形指示。為了特別指示預(yù)算盈余再分配,也使用以下指示符盈余允許(surplus enabling),由空心上箭頭指示;盈余禁止(surplus disabling),由空心下箭頭指示;被再分配的預(yù)算剩余,由虛線矩形指示。圖2的圖表表示三個(gè)任務(wù)τm、τa和τp的執(zhí)行。這些任務(wù)分別有5、3、和1個(gè)時(shí)間單位的預(yù)算和10、11和12個(gè)時(shí)間單位的預(yù)算周期。此外,任務(wù)τp要接收來自任務(wù)τm的任何預(yù)算盈余。
調(diào)度是用基于占先固定優(yōu)先級的調(diào)度算法和根據(jù)預(yù)算周期的速率單調(diào)的分配進(jìn)行的。對于任務(wù)τm、τa和τp來說,這產(chǎn)生預(yù)算內(nèi)執(zhí)行的優(yōu)先級p1、p2和p3,其中p1>p2>p3。這些優(yōu)先級在圖3的優(yōu)先級層次圖表的縱軸上表示。通過對應(yīng)每個(gè)任務(wù)的不同的線,這個(gè)圖表表示了每個(gè)任務(wù)的優(yōu)先級是如何隨時(shí)間推移而變化的。線302、304和306分別代表任務(wù)τm、τa和τp的優(yōu)先級。圖3的頂部顯示任何時(shí)間任務(wù)τm、τa和τp中的哪一個(gè)具有最高優(yōu)先級,因此應(yīng)在該時(shí)間執(zhí)行。對于所有這三個(gè)任務(wù)來說,在低的后臺(tái)優(yōu)先級pb的預(yù)算外執(zhí)行是可能的,這也在圖3中顯示。
在時(shí)間t=0,這三個(gè)任務(wù)都進(jìn)入一個(gè)新的預(yù)算周期,接收對它們的預(yù)算的補(bǔ)充,如實(shí)心上箭頭202、204和206所指示的那樣。其結(jié)果是,任務(wù)τm、τa和τp分別被指定了它們的預(yù)算內(nèi)優(yōu)先級p1、p2和p3。因?yàn)棣觤具有最高優(yōu)先級p1,它被調(diào)度在處理器上執(zhí)行。
在時(shí)間t=3,任務(wù)τm在只消耗了5個(gè)可用的預(yù)算單位內(nèi)的3個(gè)(如矩形208所示)后完成了這個(gè)預(yù)算周期的處理。結(jié)果,其預(yù)算被禁止,如實(shí)心下箭頭210所示,并且其優(yōu)先級被從優(yōu)先級p1降低到后臺(tái)優(yōu)先級pb。這就留下2個(gè)預(yù)算單位,如矩形212所示。由于任務(wù)τm的預(yù)算剩余要被再分配給任務(wù)τp,在時(shí)間t=3,為任務(wù)τp啟動(dòng)再分配,如空心上箭頭214所示。于是,任務(wù)τp接收一個(gè)2個(gè)單位的預(yù)算盈余。連同這個(gè)預(yù)算盈余一起,任務(wù)τp還接收任務(wù)τm的預(yù)算內(nèi)的優(yōu)先級p1。仍然在時(shí)間t=3,這導(dǎo)致任務(wù)τp優(yōu)先級的提升,即從優(yōu)先級p3到優(yōu)先級p1,如圖3中所示。這時(shí)任務(wù)τp具有最高優(yōu)先級p1,并開始執(zhí)行,消耗(如矩形216所示的)該預(yù)算盈余。
在時(shí)間t=5,任務(wù)τp在消耗(如矩形216所示的)2個(gè)預(yù)算單位后用盡該預(yù)算盈余。結(jié)果,再分配被禁止,如空心下箭頭218所示。由于這個(gè)禁止,任務(wù)τp回復(fù)到它在再分配發(fā)生之前所具有預(yù)算和優(yōu)先級。于是在時(shí)間t=5,任務(wù)τp的優(yōu)先級被從優(yōu)先級p1降回到優(yōu)先級p3,如圖3中所示?,F(xiàn)在,任務(wù)τp也不再是具有最高優(yōu)先級的任務(wù),因?yàn)楝F(xiàn)在是具有優(yōu)先級p2的任務(wù)τa具有最高優(yōu)先級。因此,任務(wù)τa得到調(diào)度,開始消耗其預(yù)算(如矩形220所示)。
在時(shí)間t=8,當(dāng)任務(wù)τa用盡其3個(gè)單位的預(yù)算(如矩形220所示)時(shí),其預(yù)算被禁止,如實(shí)心下箭頭222所示,并且其優(yōu)先級被從優(yōu)先級p2降低到后臺(tái)優(yōu)先級pb。任務(wù)τp現(xiàn)在再次是具有最高優(yōu)先級的任務(wù)。于是,在時(shí)間t=8,任務(wù)τp再次被調(diào)度,首次開始消耗其自己的預(yù)算(如矩形224所示)。
在時(shí)間t=9,當(dāng)任務(wù)τp用盡其1個(gè)單位的預(yù)算(如矩形220所示)時(shí),其預(yù)算被禁止,如實(shí)心下箭頭226所示,并且其優(yōu)先級從優(yōu)先級p1降低到后臺(tái)優(yōu)先級pb。現(xiàn)在,這三個(gè)任務(wù)都按后臺(tái)優(yōu)先級pb調(diào)度,可能消耗一些寬松時(shí)間(如矩形228所示)。
在時(shí)間t=10,任務(wù)τm進(jìn)入一個(gè)新的預(yù)算周期,接收對其預(yù)算的補(bǔ)充,如實(shí)心上箭頭230所示。結(jié)果,任務(wù)τm再次被分配其預(yù)算內(nèi)優(yōu)先級p1,并以新的預(yù)算開始執(zhí)行。以后,在時(shí)間t=11和時(shí)間t=12,任務(wù)τa和τp的新的預(yù)算周期以實(shí)心上箭頭232和234所示的對應(yīng)的補(bǔ)充而開始。
圖4示意性地表示按照本發(fā)明的系統(tǒng)的實(shí)施例的最重要部分。系統(tǒng)400包含第一分配單元402,該單元被程序設(shè)置得向一個(gè)第一任務(wù)分配一個(gè)第一預(yù)算。第二分配單元404被程序設(shè)置得向一個(gè)第二任務(wù)分配一個(gè)第二預(yù)算??梢杂卸鄠€(gè)被程序設(shè)置得向其它任務(wù)分配預(yù)算的分配單元。調(diào)度單元406執(zhí)行所有任務(wù)的預(yù)算。調(diào)度單元406的一部分是檢測單元408,檢測單元被程序設(shè)置得能檢測到第一任務(wù)只用掉第一預(yù)算的一部分。如果是這樣,則預(yù)算盈余存儲(chǔ)器410含有第一預(yù)算的剩余部分。分配單元412被用來將預(yù)算盈余再分配給第二任務(wù)。分配單元412的一部分是第三分配單元414,它被程序設(shè)置得向第二任務(wù)分配在預(yù)算盈余存儲(chǔ)器410中保持的預(yù)算盈余和第一任務(wù)的調(diào)度特征。這個(gè)系統(tǒng)能以打算由計(jì)算機(jī)或任何其它能夠運(yùn)行軟件的標(biāo)準(zhǔn)體系結(jié)構(gòu)上運(yùn)行的應(yīng)用程序的軟件來實(shí)現(xiàn)。該系統(tǒng)能被用來操作數(shù)字電視機(jī)416。
圖5示意性地表示包含按照本發(fā)明的系統(tǒng)的一個(gè)實(shí)施例的電視機(jī)500的最重要部分。這里,天線502接收電視信號(hào)。天線例如也可以是碟形衛(wèi)星天線、電纜或任何能接收電視信號(hào)的設(shè)備。接收機(jī)504接收信號(hào)。除了接收機(jī)504,電視機(jī)500還包含一個(gè)可編程部件506,例如可編程集成電路。這個(gè)可編程部件506包含一個(gè)按照本發(fā)明的系統(tǒng)508,例如參照圖4所述的系統(tǒng)。電視屏510顯示由接收機(jī)504接收并由可編程部件506、按照本發(fā)明的部件508以及電視機(jī)中包含的但未在此表示的其它部件處理的圖像。
圖6示意性地表示包含按照本發(fā)明的系統(tǒng)的一個(gè)實(shí)施例的機(jī)頂盒600的最重要部分。這里,天線602接收電視信號(hào)。天線例如也可以是碟形衛(wèi)星天線、電纜或任何能接收電視信號(hào)的設(shè)備。機(jī)頂盒600接收信號(hào)。除了機(jī)頂盒中包含、但沒有在這里示出的常規(guī)部件外,機(jī)頂盒600還包含一個(gè)按照本發(fā)明的系統(tǒng)604,例如參照圖4所述的系統(tǒng)。電視機(jī)606能顯示由機(jī)頂盒600和按照本發(fā)明的系統(tǒng)604一起根據(jù)所接收的信號(hào)生成的輸出信號(hào)。
本發(fā)明可以總結(jié)如下。
軟件媒體處理能用于數(shù)字電視機(jī)或機(jī)頂盒之類的消費(fèi)終端。為了成本效益性的理由,平均的處理器利用率必須高。這主要是通過分配比最壞情形更低的處理器預(yù)算給執(zhí)行媒體處理操作的任務(wù)而實(shí)現(xiàn)的。僅當(dāng)穩(wěn)定的輸出質(zhì)量是主要的要求時(shí),任務(wù)才按最壞情形的處理器預(yù)算得到分配。在這種情況中,為了得到成本效益的回報(bào),提供一種方法和系統(tǒng),用于把來自具有最壞情形的預(yù)算的第一任務(wù)(τm)的預(yù)算(212)的未使用部分再分配給具有比最壞情形更低的預(yù)算的第二任務(wù)(τp)。第二任務(wù)(τp)然后可以用該所得的預(yù)算盈余(216)來改善其輸出的質(zhì)量。該方法和系統(tǒng)在執(zhí)行媒體處理的任務(wù)的調(diào)度中很低的級別上運(yùn)行。實(shí)際所發(fā)生的是,第二任務(wù)(τp)在第一任務(wù)(τm)的位置上運(yùn)行,好像它就是第一任務(wù)(τm),并具有第一任務(wù)的例如周期和優(yōu)先級等的調(diào)度特征。
權(quán)利要求
1.一種調(diào)度一個(gè)第一任務(wù)和一個(gè)第二任務(wù)的方法,該方法包含以下步驟第一步,分配一個(gè)第一預(yù)算給第一任務(wù);第二步,分配一個(gè)第二預(yù)算給第二任務(wù);第三步,確定第一任務(wù)只用掉第一預(yù)算的一部分,因此第一預(yù)算的剩余部分引起一個(gè)預(yù)算盈余;第四步,在第二預(yù)算之外,還將預(yù)算盈余再分配給第二任務(wù);特征在于,第四步包含以下子步驟將預(yù)算盈余和第一任務(wù)的調(diào)度特征一起分配給第二任務(wù)。
2.按照權(quán)利要求1的方法,其中,應(yīng)用了一種基于固定優(yōu)先級的調(diào)度算法,所述調(diào)度特征對應(yīng)于第一任務(wù)的一個(gè)周期和一個(gè)優(yōu)先級。
3.按照權(quán)利要求1的方法,其中,應(yīng)用了一種基于最后期限驅(qū)動(dòng)的調(diào)度算法,所述調(diào)度特征對應(yīng)于第一任務(wù)的一個(gè)周期和一個(gè)最后期限。
4.一種用于調(diào)度一個(gè)第一任務(wù)和一個(gè)第二任務(wù)的系統(tǒng),該系統(tǒng)包含第一分配裝置(402),用于分配一個(gè)第一預(yù)算給第一任務(wù);第二分配裝置(404),用于分配一個(gè)第二預(yù)算給第二任務(wù);確定裝置(408),用于確定第一任務(wù)只用掉第一預(yù)算的一部分,因此第一預(yù)算的剩余部分引起一個(gè)預(yù)算盈余;再分配裝置(412),用于在第二預(yù)算之外,還考慮將預(yù)算盈余再分配給第二任務(wù)。特征在于,再分配裝置包含第三分配裝置(414),用于考慮將預(yù)算盈余和第一任務(wù)的調(diào)度特征一起分配給第二任務(wù)。
5.包含按照權(quán)利要求4的系統(tǒng)的電視機(jī)(500)。
6.包含按照權(quán)利要求4的系統(tǒng)的機(jī)頂盒(600)。
全文摘要
軟件媒體處理能被用于數(shù)字電視機(jī)或機(jī)頂盒之類的消費(fèi)終端。為了成本效益性的理由,平均的處理器利用率必須高。這主要是通過分配比最壞情形更低的處理器預(yù)算給執(zhí)行媒體處理操作的任務(wù)而實(shí)現(xiàn)的。僅當(dāng)穩(wěn)定的輸出質(zhì)量是主要的要求時(shí),任務(wù)才以最壞情形的處理器預(yù)算來分配。在這種情況中,為了得到成本效益的回報(bào),提供了一種方法和系統(tǒng),用于把來自具有最壞情形的預(yù)算的第一任務(wù)(τ
文檔編號(hào)G06F9/46GK1589433SQ02822877
公開日2005年3月2日 申請日期2002年9月25日 優(yōu)先權(quán)日2001年11月19日
發(fā)明者C·M·奧特羅佩雷茲 申請人:皇家飛利浦電子股份有限公司