專利名稱:任務(wù)執(zhí)行裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對(duì)由中央處理器(CPU)執(zhí)行的任務(wù)分配執(zhí)行時(shí)間的任務(wù)執(zhí)行裝置、即操作系統(tǒng)(OS)。
背景技術(shù):
OS的主要功能是“硬件管理”、“任務(wù)管理”、“數(shù)據(jù)管理”及“輸入輸出管理”。其中“任務(wù)管理”管理任務(wù)的執(zhí)行順序,是用于使CPU、存儲(chǔ)器及輸入輸出裝置等高效地工作的重要的功能。這里,所謂的“任務(wù)”,是分批管理程序的啟動(dòng)、執(zhí)行及完成等一系列流程的控制單位。在OS的管理下工作的程序被作為任務(wù)處理。關(guān)于程序的執(zhí)行的OS的操作都以任務(wù)為單位進(jìn)行。
作為決定任務(wù)的執(zhí)行順序的算法的一種,已知有分時(shí)調(diào)度法。分時(shí)調(diào)度法是分配在各任務(wù)中的執(zhí)行時(shí)間、所分配的時(shí)間的期間被賦予了具有CPU的執(zhí)行權(quán)的任務(wù).如果經(jīng)過(guò)了分配給該任務(wù)的時(shí)間,則將執(zhí)行權(quán)轉(zhuǎn)移到其他任務(wù)的任務(wù)的調(diào)度方法。由此,對(duì)所有的任務(wù)以平等且已決定的時(shí)間分配執(zhí)行權(quán)。
分配時(shí)間的決定方法有根據(jù)任務(wù)的特性固定給予的方法、及配合任務(wù)的執(zhí)行狀況動(dòng)態(tài)決定的方法,例如已知有根據(jù)優(yōu)先級(jí)調(diào)整執(zhí)行權(quán)的分配時(shí)間的方法等(例如參照日本特開2005-18560號(hào)公報(bào))。
但是,以往的OS在任務(wù)需要等待事件時(shí)使任務(wù)轉(zhuǎn)移到等待狀態(tài)的情況下,將執(zhí)行權(quán)轉(zhuǎn)移給下一個(gè)任務(wù),或者,在轉(zhuǎn)移到等待狀態(tài)的任務(wù)的分配時(shí)間被消耗為止不執(zhí)行任何處理。此外,在作為任務(wù)需要保證處理性能的任務(wù)、和事件驅(qū)動(dòng)處理等那樣非同步地發(fā)生處理的任務(wù)混雜在一起的執(zhí)行環(huán)境下,必須一邊保持整體處理的周期一邊分配處理性能的同時(shí)執(zhí)行非同步處理。因此,通過(guò)總是調(diào)整分配時(shí)間來(lái)執(zhí)行,有產(chǎn)生開銷、處理性能下降的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明是為了解決上述問(wèn)題而做出的,目的是提供一種能夠在保證一定的處理性能的同時(shí)減輕與任務(wù)的執(zhí)行時(shí)間的分配調(diào)整有關(guān)的負(fù)擔(dān)的任務(wù)執(zhí)行裝置及方法。
為了達(dá)到上述目的,有關(guān)本發(fā)明的任務(wù)執(zhí)行裝置,是一種用于一邊切換一邊分時(shí)執(zhí)行多個(gè)任務(wù)的任務(wù)執(zhí)行裝置,對(duì)上述多個(gè)任務(wù)的每個(gè)分配了分配時(shí)間;上述多個(gè)任務(wù)包括多個(gè)第1類型的任務(wù)、和單個(gè)的第2類型的任務(wù);該任務(wù)執(zhí)行裝置具備周期時(shí)間存儲(chǔ)單元,存儲(chǔ)上述多個(gè)任務(wù)的分配時(shí)間的合計(jì)時(shí)間即周期時(shí)間;任務(wù)選擇單元,在上述多個(gè)任務(wù)中,按照預(yù)先設(shè)定的順序選擇任務(wù);修正單元,在所選擇的任務(wù)是第2類型的任務(wù)的情況下,對(duì)上述第2類型的任務(wù)修正所分配的分配時(shí)間,以便在上述周期時(shí)間內(nèi)完成上述多個(gè)任務(wù)的執(zhí)行;任務(wù)執(zhí)行控制單元,執(zhí)行所選擇的任務(wù),以使該任務(wù)的執(zhí)行在所分配的或所修正的上述分配時(shí)間內(nèi)完成。
根據(jù)該結(jié)構(gòu),將由處理器執(zhí)行的任務(wù)分割為第1類型的任務(wù)和第2類型的任務(wù),僅對(duì)第2類型的任務(wù)進(jìn)行分配時(shí)間的修正,以使在周期時(shí)間內(nèi)執(zhí)行多個(gè)任務(wù)。因此,能夠提供在保證一定的處理性能的同時(shí)能夠減輕與任務(wù)的執(zhí)行時(shí)間的分配調(diào)整有關(guān)的負(fù)擔(dān)的任務(wù)調(diào)度裝置。另外,在第1類型的任務(wù)全部轉(zhuǎn)移到等待狀態(tài)的情況下,可以不進(jìn)行第2類型的任務(wù)的分配時(shí)間的修正。
優(yōu)選地,對(duì)上述第2類型的任務(wù)來(lái)說(shuō),所分配的分配時(shí)間包括在該任務(wù)的執(zhí)行時(shí)必須最低限度地執(zhí)行的時(shí)間即第1分配時(shí)間、和在該第1分配時(shí)間上加上預(yù)先設(shè)定的富余時(shí)間后的第2分配時(shí)間這2種時(shí)間;上述修正單元具有總消耗時(shí)間計(jì)算部,計(jì)算由上述多個(gè)第1類型的任務(wù)的執(zhí)行消耗的總消耗時(shí)間;及分配時(shí)間修正部,從上述富余時(shí)間中減去上述總消耗時(shí)間與上述多個(gè)第1類型的任務(wù)的總分配時(shí)間的差并將相減的結(jié)果加到上述第1分配時(shí)間上,從而對(duì)分配給上述第2類型的分配時(shí)間進(jìn)行修正。更具體地講,上述分配時(shí)間修正部在上述總消耗時(shí)間與上述總分配時(shí)間的差比上述富余時(shí)間大的情況下,在將每執(zhí)行一次上述多個(gè)任務(wù)的區(qū)間作為1周期的情況下,在不超過(guò)上述周期時(shí)間的范圍內(nèi),將從上述總消耗時(shí)間與上述總分配時(shí)間的差中減去了上述富余時(shí)間后的時(shí)間加到下個(gè)周期以后的上述第2類型的任務(wù)的第1分配時(shí)間上,由此修正分配給上述第2類型的分配時(shí)間。
通過(guò)采用這樣的構(gòu)成,對(duì)于第2類型的任務(wù)能夠可靠地確保第1分配時(shí)間來(lái)執(zhí)行任務(wù)。
更優(yōu)選為,上述任務(wù)執(zhí)行裝置還具備供電減少單元,該供電減少單元在上述第2類型的任務(wù)轉(zhuǎn)移到等待狀態(tài)的情況下,在該任務(wù)的分配時(shí)間的期間減少向執(zhí)行該任務(wù)的處理器的供電。此外,上述任務(wù)執(zhí)行裝置還具備供電停止單元,在上述多個(gè)任務(wù)全部轉(zhuǎn)移到等待狀態(tài)的情況下,停止向執(zhí)行該任務(wù)的處理器的供電。
通過(guò)檢測(cè)任務(wù)的執(zhí)行狀況、使對(duì)處理器的電力的供給狀態(tài)變換,能夠降低任務(wù)執(zhí)行所需的耗電量。
另外,本發(fā)明不僅能夠作為具備這樣的特征單元的任務(wù)執(zhí)行裝置實(shí)現(xiàn),也可以作為將包含在任務(wù)執(zhí)行裝置中的特征單元為步驟的任務(wù)執(zhí)行方法來(lái)實(shí)現(xiàn),或者作為使計(jì)算機(jī)具有包含在任務(wù)執(zhí)行裝置中的特征單元的功能的OS來(lái)實(shí)現(xiàn)。并且,這樣的OS當(dāng)然可以通過(guò)CD-ROM(Compact Disc-Read Only Memory)等記錄媒體或因特網(wǎng)等通信網(wǎng)絡(luò)流通。
根據(jù)本發(fā)明,能夠提供能夠在保證一定的處理性能的同時(shí)減輕與任務(wù)的執(zhí)行時(shí)間的分配調(diào)整有關(guān)的負(fù)擔(dān)的任務(wù)執(zhí)行裝置及方法。
2005年8月24日提出的日本發(fā)明申請(qǐng)?zhí)?005-243417號(hào)公開包括說(shuō)明書、附圖、和權(quán)利要求書,通過(guò)引用其全部?jī)?nèi)容與本發(fā)明結(jié)合為一體。
通過(guò)下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式的說(shuō)明,對(duì)于本發(fā)明的以上及其他目的、優(yōu)點(diǎn)、特征就會(huì)更加清楚。
圖1是表示本發(fā)明的實(shí)施方式的進(jìn)行時(shí)隙切換的程序執(zhí)行裝置的主要部分的結(jié)構(gòu)的框圖。
圖2是表示時(shí)隙存儲(chǔ)部?jī)?nèi)的時(shí)隙信息和任務(wù)存儲(chǔ)部?jī)?nèi)的任務(wù)管理模塊的具體例的圖。
圖3是用于說(shuō)明時(shí)隙切換部及任務(wù)選擇部的任務(wù)切換的狀況的圖。
圖4是任務(wù)調(diào)度部的調(diào)度處理的流程圖。
圖5是通過(guò)任務(wù)調(diào)度部對(duì)向事件從動(dòng)(driven)型任務(wù)的時(shí)隙的分配時(shí)間進(jìn)行計(jì)算的處理的流程圖。
圖6是通過(guò)任務(wù)調(diào)度部對(duì)向事件從動(dòng)型任務(wù)的時(shí)隙的分配時(shí)間進(jìn)行計(jì)算的處理的流程圖。
具體實(shí)施例方式
(整體結(jié)構(gòu))圖1是表示本發(fā)明的實(shí)施方式的進(jìn)行時(shí)隙切換的程序執(zhí)行裝置的主要部分的結(jié)構(gòu)的框圖。該圖示意地表示在處理器中運(yùn)行進(jìn)行任務(wù)切換的軟件作為OS的一部分功能來(lái)實(shí)現(xiàn)的功能。處理器的硬件結(jié)構(gòu)是一般的結(jié)構(gòu)即可。
該程序執(zhí)行裝置構(gòu)成為,在1個(gè)處理器內(nèi)處理各自具有分配時(shí)間的指定的多個(gè)任務(wù),在確保各任務(wù)的所需性能的同時(shí)執(zhí)行。
如該圖所示,程序執(zhí)行裝置包括任務(wù)調(diào)度部10、程序存儲(chǔ)部20、定時(shí)控制部30、以及執(zhí)行控制部40。
任務(wù)調(diào)度部10對(duì)各個(gè)具有分配時(shí)間的指定的任務(wù)分配1個(gè)時(shí)隙,在預(yù)先設(shè)定的周期內(nèi)進(jìn)行至少選擇1次各任務(wù)的分時(shí)調(diào)度。這里,所謂的“時(shí)隙”是指將在處理器中的執(zhí)行程序的時(shí)間在預(yù)先設(shè)定的周期T內(nèi)按每個(gè)分配時(shí)間劃分的時(shí)間。
程序存儲(chǔ)部20存儲(chǔ)成為任務(wù)調(diào)度部10的調(diào)度對(duì)象的任務(wù)主體即程序和有關(guān)程序的信息。
定時(shí)控制部30每當(dāng)從任務(wù)調(diào)度部10設(shè)定分配時(shí)間時(shí)開始時(shí)間的計(jì)數(shù),在達(dá)到該分配時(shí)間時(shí)輸出超時(shí)信號(hào)。該超時(shí)信號(hào)為了通知時(shí)隙的切換定時(shí)而通知給任務(wù)調(diào)度部10。
執(zhí)行控制部40執(zhí)行由任務(wù)調(diào)度部10選擇的任務(wù)。執(zhí)行控制部40相當(dāng)于執(zhí)行任務(wù)的CPU等硬件。
(任務(wù)調(diào)度部10的結(jié)構(gòu))任務(wù)調(diào)度部10包括任務(wù)受理部11、時(shí)隙存儲(chǔ)部12、任務(wù)存儲(chǔ)部13、時(shí)隙切換部14及任務(wù)選擇部15。
<1.任務(wù)受理部11>
任務(wù)受理部11按照用戶操作或來(lái)自用戶程序等的指示受理任務(wù)的追加請(qǐng)求,從程序存儲(chǔ)部20讀出“任務(wù)信息”及“分配時(shí)間”作為有關(guān)該任務(wù)的信息。此外,任務(wù)受理部11根據(jù)任務(wù)信息及分配時(shí)間生成時(shí)隙信息100(110)及任務(wù)管理模塊200(210),對(duì)時(shí)隙存儲(chǔ)部12及任務(wù)存儲(chǔ)部13分別進(jìn)行設(shè)定,以便該任務(wù)成為調(diào)度的對(duì)象。
這里,“任務(wù)信息”包括“程序開始地址”和“堆棧指針”。所謂的“程序開始地址”是寫入了任務(wù)的起始的地址。所謂的“堆棧指針”是表示在發(fā)生了任務(wù)的切換時(shí)暫時(shí)保存任務(wù)的狀態(tài)的存儲(chǔ)部位的位置信息。
任務(wù)在任務(wù)調(diào)度部10中與時(shí)隙一對(duì)一對(duì)應(yīng)地被分配給時(shí)隙,在該時(shí)隙的分配時(shí)間的期間被可靠地執(zhí)行。
任務(wù)按照?qǐng)?zhí)行特性而分類為2個(gè)類別(類別A及類別B)。
將需要固定的處理性能的任務(wù)作為“類別A”。應(yīng)該將稱作所謂的時(shí)間從動(dòng)型的任務(wù)作為類別A。例如,優(yōu)選為將動(dòng)畫數(shù)據(jù)的解碼/編碼處理、聲音數(shù)據(jù)的解碼/編碼處理等持續(xù)需要一定的處理性能的任務(wù)作為類別A。
另一方面,將不需要固定的處理性能的任務(wù)作為“類別B”。應(yīng)該將稱作所謂的事件從動(dòng)型的任務(wù)作為類別B。例如,優(yōu)選為將以用戶操作為事件進(jìn)行由文字及靜止圖像構(gòu)成的菜單顯示的處理等、不需要持續(xù)一定的處理性能的不定期地隨時(shí)發(fā)生的任務(wù)作為類別B。
“分配時(shí)間”是指定與任務(wù)對(duì)應(yīng)的時(shí)隙的分配時(shí)間的值。該分配時(shí)間假設(shè)是由程序指定的。
另外,在一周期內(nèi)執(zhí)行的任務(wù)的分配時(shí)間的合計(jì)作為周期T保存在周期寄存器16中。
<2.時(shí)隙存儲(chǔ)部12>
時(shí)隙存儲(chǔ)部12存儲(chǔ)用于生成成為任務(wù)的切換基準(zhǔn)的時(shí)隙的時(shí)隙信息。
圖2是表示時(shí)隙存儲(chǔ)部12內(nèi)的時(shí)隙信息和任務(wù)存儲(chǔ)部13內(nèi)的任務(wù)管理模塊的具體例的圖。如該圖所示,時(shí)隙存儲(chǔ)部12存儲(chǔ)有多個(gè)時(shí)隙信息100、110、……120、130。假設(shè)時(shí)隙信息100~120表示分配了類別A的任務(wù)的時(shí)隙。此外,假設(shè)剩下的1個(gè)時(shí)隙信息130表示分配了類別B的任務(wù)的時(shí)隙。
時(shí)隙信息100對(duì)應(yīng)于1個(gè)時(shí)隙,包括分配時(shí)間100a、執(zhí)行標(biāo)志100b及指針100c。其他時(shí)隙信息也同樣。
分配時(shí)間100a表示對(duì)應(yīng)于時(shí)隙的任務(wù)能夠執(zhí)行的時(shí)間。如果實(shí)際執(zhí)行任務(wù)的時(shí)間達(dá)到了分配時(shí)間,則執(zhí)行對(duì)應(yīng)于下一個(gè)時(shí)隙的任務(wù)。與類別A的任務(wù)對(duì)應(yīng)的分配時(shí)間100a~120a與時(shí)隙信息100~120的生成同時(shí)分別設(shè)定在定時(shí)控制部30。與類別B的多個(gè)任務(wù)對(duì)應(yīng)的分配時(shí)間130a是從保持在周期寄存器16中的一周期的時(shí)間T減去其他時(shí)隙的分配時(shí)間100a~120a的合計(jì)時(shí)間后的剩余時(shí)間。該剩余時(shí)間是隨著任務(wù)調(diào)度變化的值。另外,分配時(shí)間130a的計(jì)算方法只是一例,對(duì)于其他計(jì)算方法在后面詳細(xì)敘述。
“執(zhí)行標(biāo)志”表示該時(shí)隙是有效的還是無(wú)效的。執(zhí)行標(biāo)志在時(shí)隙信息的生成時(shí)設(shè)定為有效,在任務(wù)執(zhí)行中訪問(wèn)目的地的資源為鎖定狀態(tài)、任務(wù)成為等待狀態(tài)時(shí)設(shè)定為無(wú)效,然后在該任務(wù)從等待狀態(tài)回到可執(zhí)行狀態(tài)時(shí)設(shè)定為有效。在執(zhí)行標(biāo)志表示無(wú)效的情況下,由時(shí)隙切換部14將時(shí)隙信息看作不存在。
“指針”表示對(duì)應(yīng)于該時(shí)隙的任務(wù)管理模塊。這些時(shí)隙信息100、110、……、120、130構(gòu)成排列,假設(shè)該順序表示時(shí)隙的生成順序。
<3.任務(wù)存儲(chǔ)部13>
任務(wù)存儲(chǔ)部13存儲(chǔ)與分配給時(shí)隙的任務(wù)對(duì)應(yīng)的任務(wù)管理模塊200、210、……、220、230。任務(wù)管理模塊200、210、……、220、230分別與1個(gè)任務(wù)對(duì)應(yīng),是用于管理該任務(wù)的信息。
任務(wù)管理模塊200由任務(wù)信息200a構(gòu)成。任務(wù)信息200a包括程序開始地址(或者應(yīng)再開始執(zhí)行程序的地址)以及堆棧指針。在任務(wù)管理模塊200的生成時(shí),任務(wù)信息200a是由任務(wù)受理部11輸入的任務(wù)信息本身。在任務(wù)切換時(shí),任務(wù)信息200a表示中斷的任務(wù)的執(zhí)行地址以及該時(shí)刻的堆棧指針的值。
<4.時(shí)隙切換部14>
時(shí)隙切換部14在當(dāng)前的時(shí)隙中任務(wù)的執(zhí)行時(shí)間達(dá)到了分配時(shí)間時(shí)進(jìn)行時(shí)隙的切換。是否到達(dá)了分配時(shí)間通過(guò)定時(shí)控制部30的超時(shí)信號(hào)通知。接收到通知的時(shí)隙切換部14選擇下一個(gè)時(shí)隙信息。
在本實(shí)施方式中,假設(shè)接下來(lái)選擇的時(shí)隙信息按照該排列順序。即設(shè)為按照時(shí)隙信息100、110、……120、130的順序選擇時(shí)隙信息,在選擇了最后的時(shí)隙信息130后,再次選擇最初的時(shí)隙信息100。
時(shí)隙切換部14從所選擇的時(shí)隙信息中取得分配時(shí)間設(shè)定在定時(shí)控制部30。由此開始下一個(gè)時(shí)隙的分配時(shí)間的計(jì)數(shù)。
<5.任務(wù)選擇部15>
任務(wù)選擇部15在時(shí)隙切換部14的時(shí)隙切換時(shí)或有來(lái)自執(zhí)行中的程序的指示時(shí),將當(dāng)前執(zhí)行中的任務(wù)的執(zhí)行地址以及堆棧指針等作為任務(wù)信息保存在該任務(wù)的任務(wù)管理模塊中,從接下來(lái)應(yīng)執(zhí)行的任務(wù)的任務(wù)管理模塊中提取任務(wù)信息,輸出給執(zhí)行控制部40。與此同時(shí),任務(wù)選擇部15還進(jìn)行執(zhí)行中的任務(wù)的前后關(guān)系(寄存器數(shù)據(jù)等)的保存、接著應(yīng)執(zhí)行的任務(wù)的前后關(guān)系的復(fù)原。由此,接下來(lái)應(yīng)執(zhí)行的任務(wù)成為執(zhí)行狀態(tài)。
圖3是用于說(shuō)明時(shí)隙切換部14及任務(wù)選擇部15的任務(wù)切換的狀況的圖。
在該圖中,周期T表示保持在周期寄存器16中的周期。t1~tn是分別與對(duì)應(yīng)于類別A的n個(gè)任務(wù)的、n個(gè)時(shí)隙信息100、110、……、120對(duì)應(yīng)的時(shí)隙,其長(zhǎng)度(t1~tn)分別表示n個(gè)任務(wù)的分配時(shí)間。此外,t0是與對(duì)應(yīng)于類別B的任務(wù)的時(shí)隙信息130對(duì)應(yīng)的時(shí)隙,其長(zhǎng)度(t0)表示該任務(wù)的分配時(shí)間。
S表示由時(shí)隙切換部14及任務(wù)選擇部15進(jìn)行任務(wù)切換的調(diào)度處理。
如該圖所示,在時(shí)隙t1的開始時(shí)的調(diào)度處理S中,選擇、執(zhí)行與時(shí)隙信息100對(duì)應(yīng)的類別A的任務(wù)A1。對(duì)于時(shí)隙t2~tn也同樣執(zhí)行類別A的任務(wù)。此外,在最后的時(shí)隙t0的調(diào)度處理S中,選擇、執(zhí)行類別B的任務(wù)B。這樣,所有的任務(wù)在1個(gè)周期T的期間一定被執(zhí)行1次。此外,類別B的任務(wù)B在1個(gè)周期T的期間僅執(zhí)行1次。
(處理的詳細(xì)情況)下面對(duì)本實(shí)施方式的程序執(zhí)行裝置執(zhí)行的調(diào)度處理進(jìn)行說(shuō)明。
<1.調(diào)度處理>
根據(jù)圖4的流程圖說(shuō)明調(diào)度處理。如果經(jīng)過(guò)了定時(shí)控制部30設(shè)定的時(shí)間,將超時(shí)信號(hào)發(fā)送給時(shí)隙切換部14,開始調(diào)度處理。首先,將當(dāng)前正在執(zhí)行的任務(wù)的狀態(tài)保存到任務(wù)信息中(S301)。接著,時(shí)隙切換部14進(jìn)行時(shí)隙的選擇處理(S302)。即,將時(shí)隙信息的排列的當(dāng)前所選擇的要素的下一個(gè)要素作為接下來(lái)選擇的時(shí)隙信息。在沒(méi)有下一個(gè)要素的情況下選擇時(shí)隙信息排列的起始的要素。即,時(shí)隙切換部14從時(shí)隙t1的時(shí)隙信息100到時(shí)隙t0的時(shí)隙信息130依次進(jìn)行選擇,然后,再次從時(shí)隙t1的時(shí)隙信息100開始依次進(jìn)行選擇。
根據(jù)接下來(lái)選擇的時(shí)隙是否是時(shí)隙t0,分配時(shí)間的處理、時(shí)隙上的任務(wù)無(wú)效或等待狀態(tài)時(shí)的工作不同(S303)。
在選擇了時(shí)隙t0以外的時(shí)隙的情況下(S303中的否),時(shí)隙切換部14取出包含在所選擇的時(shí)隙的時(shí)隙信息中的分配時(shí)間,輸出給定時(shí)控制部30(S304)。從該時(shí)刻僅經(jīng)過(guò)了分配時(shí)間后,由定時(shí)控制部30再次發(fā)送超時(shí)信號(hào)。
如果所選擇的時(shí)隙的時(shí)隙信息保持的執(zhí)行標(biāo)志為無(wú)效(S305中的否),則表示在該時(shí)隙中沒(méi)有執(zhí)行的任務(wù)或任務(wù)是等待狀態(tài)。因此,時(shí)隙切換部14切換為下一個(gè)時(shí)隙并進(jìn)行同樣的處理直到找到有效的時(shí)隙。
如果有有效的時(shí)隙(S305中的是),則任務(wù)選擇部15恢復(fù)對(duì)應(yīng)于該時(shí)隙的中斷的任務(wù)的狀態(tài),執(zhí)行控制部40再次開始執(zhí)行(S306)。
在時(shí)隙切換部14選擇時(shí)隙t0的情況下(S303中的是),時(shí)隙切換部14首先計(jì)算時(shí)隙t0的分配時(shí)間(S307)。由于該處理涉及多項(xiàng),所以對(duì)于其詳細(xì)情況在后面敘述。時(shí)隙切換部14將由該處理計(jì)算出的分配時(shí)間輸出給定時(shí)控制部30(S308)。
如果上述時(shí)隙保持的執(zhí)行標(biāo)志有效(S309中的是),則與上述時(shí)隙t0以外的情況同樣,任務(wù)選擇部15復(fù)原與時(shí)隙t0對(duì)應(yīng)的中斷任務(wù)的狀態(tài),執(zhí)行控制部40再次開始該任務(wù)的執(zhí)行(S306)。
如果上述時(shí)隙保持的執(zhí)行標(biāo)志無(wú)效(S309中的否),則時(shí)隙切換部14檢查時(shí)隙t0以外的時(shí)隙的執(zhí)行標(biāo)志是否全部無(wú)效(S310)。如果所有的執(zhí)行標(biāo)志無(wú)效(S310中的是),則是所有的時(shí)隙上沒(méi)有任務(wù)的有效的執(zhí)行處理的狀態(tài),所以任務(wù)選擇部15使CPU轉(zhuǎn)移到停止?fàn)顟B(tài)。從停止?fàn)顟B(tài)復(fù)原利用中斷等外部信號(hào)進(jìn)行。
只要有1個(gè)有效的時(shí)隙(S310中的否),CPU就工作,但由于在時(shí)隙t0的分配時(shí)間的期間不需要使CPU工作,所以在該時(shí)間的期間使CPU轉(zhuǎn)移到低電力狀態(tài)。
<2.時(shí)隙t0的分配時(shí)間計(jì)算處理>
接著,根據(jù)圖5及圖6所示的流程圖,對(duì)計(jì)算時(shí)隙t0的分配時(shí)間的處理(圖4的S307)進(jìn)行說(shuō)明。該處理有3個(gè)變形,分別對(duì)其進(jìn)行說(shuō)明。
(a)將等待狀態(tài)的時(shí)隙的分配時(shí)間分配給時(shí)隙t0的情況如圖5所示,對(duì)于時(shí)隙t1~tn的時(shí)隙,計(jì)算在過(guò)去1周的任務(wù)執(zhí)行中消耗的總時(shí)間(總消耗時(shí)間)和執(zhí)行標(biāo)志為無(wú)效的時(shí)隙的總分配時(shí)間(非執(zhí)行時(shí)間)(S401~S404)。
在總消耗時(shí)間比時(shí)隙t1~tn的總分配時(shí)間大的情況下,考慮是中斷等外部原因的影像。因此,從執(zhí)行標(biāo)志為無(wú)效的時(shí)隙的總分配時(shí)間即非執(zhí)行時(shí)間減去總消耗時(shí)間-總分配時(shí)間(S405)。即,將因外部原因超出的時(shí)間即總消耗時(shí)間-總分配時(shí)間,從分配給時(shí)隙的任務(wù)沒(méi)有執(zhí)行的時(shí)間(非執(zhí)行時(shí)間)中減去。
在該值上加上時(shí)隙t0的分配時(shí)間的時(shí)間成為時(shí)隙t0的計(jì)算后的分配時(shí)間(S406)。
另外,即使在上述總消耗時(shí)間比上述總分配時(shí)間小的情況下,通過(guò)使用相同的算式,也能夠計(jì)算時(shí)隙t0的分配時(shí)間。
(b)設(shè)定余量時(shí)間、將從分配時(shí)間延長(zhǎng)的部分從余量時(shí)間中減去的情況如圖6所示,假設(shè)由任務(wù)受理部11預(yù)先設(shè)定了余量值17,由任務(wù)受理部11取得該值(S411)。所謂的余量值17是分配給時(shí)隙t0的分配時(shí)間的余量時(shí)間(富余時(shí)間)M。即,在時(shí)隙t0的分配時(shí)間中,有t0和(t0+M)的2個(gè)階段。
首先,對(duì)于時(shí)隙t1~tn,計(jì)算在過(guò)去1周量的執(zhí)行中消耗的時(shí)間的合計(jì)(總消耗時(shí)間)(S412、S413)。
接著,在總消耗時(shí)間比總分配時(shí)間多的情況下,從余量時(shí)間M中減去總消耗時(shí)間-總分配時(shí)間(S414)。這里,所謂的總分配時(shí)間是指時(shí)隙t1~tn的總分配時(shí)間。
在相減后的值上加上時(shí)隙t0的分配時(shí)間的時(shí)間成為計(jì)算時(shí)隙t0之后的分配時(shí)間(S415)。
另外,在余量M<(總消耗時(shí)間-總分配時(shí)間)的情況下,即在由S414求出的值為負(fù)的情況下,將余量時(shí)間M設(shè)為0,并且進(jìn)行時(shí)間調(diào)整,以使由下個(gè)周期的時(shí)隙t0執(zhí)行(總消耗時(shí)間-總分配時(shí)間)-余量M。由此,在該周期T中,能夠確保執(zhí)行時(shí)隙t0的分配時(shí)間t0。
(c)也可以代替余量值由任務(wù)受理部11取得周期15、將從周期T(分配時(shí)間的合計(jì))中減去總消耗時(shí)間后的值作為計(jì)算時(shí)隙t0后的分配時(shí)間。
由以上說(shuō)明,根據(jù)本實(shí)施方式的程序執(zhí)行裝置,通過(guò)僅計(jì)算、設(shè)定特定時(shí)隙的分配時(shí)間,能夠不再計(jì)算其他時(shí)隙的分配時(shí)間而確保性能。結(jié)果,能夠削減狀況變化時(shí)的分配時(shí)間的再設(shè)定所需的開銷。
此外,通過(guò)檢測(cè)時(shí)隙的執(zhí)行狀況而改變CPU狀態(tài),能夠有助于執(zhí)行所消耗的耗電量的削減。
另外,在上述實(shí)施方式中,對(duì)于類別A任務(wù)的時(shí)隙,說(shuō)明了對(duì)每個(gè)任務(wù)信息指定1個(gè)分配時(shí)間作為固定值的情況,但也可以構(gòu)成為,對(duì)所有的時(shí)隙保有表示分配時(shí)間的最大值及最小值的2個(gè)固定值,將對(duì)所有的時(shí)隙的分配時(shí)間的最大值的合計(jì)作為周期,根據(jù)執(zhí)行狀況,各時(shí)隙一邊選擇哪種分配時(shí)間一邊工作。
此外,在檢測(cè)到所有的時(shí)隙都選擇了最小值的情況下,在短時(shí)間內(nèi)完成了處理。因此,在設(shè)定的周期T內(nèi)完成1周期量的處理的范圍內(nèi),也可以降低CPU的工作頻率來(lái)執(zhí)行任務(wù)。結(jié)果,能夠進(jìn)一步有助于任務(wù)執(zhí)行所需的消耗電力的削減。另外,使用分配時(shí)間的最大值、還是使用最小值,是由執(zhí)行這些任務(wù)的程序決定的。
工業(yè)實(shí)用性有關(guān)本發(fā)明的程序執(zhí)行裝置具有進(jìn)行保證處理性能的固定的時(shí)間分配的同時(shí)在與處理性能無(wú)關(guān)的時(shí)間分配中調(diào)整整體的分配時(shí)間的功能。由此,能夠?qū)ΡWC處理性能的處理減輕與分配時(shí)間的調(diào)整有關(guān)的負(fù)擔(dān),例如,在影像再生處理中,能夠不受由來(lái)自外部的訪問(wèn)對(duì)影像輸出施加的噪音或干擾的影響而執(zhí)行處理。特別是,能夠作為實(shí)時(shí)地進(jìn)行聲音影像處理和非同步的控制處理的設(shè)備、以及該設(shè)備的開發(fā)環(huán)境等應(yīng)用。
權(quán)利要求
1.一種任務(wù)執(zhí)行裝置,其特征在于,用于一邊切換一邊分時(shí)執(zhí)行多個(gè)任務(wù),對(duì)上述多個(gè)任務(wù)的每個(gè)分配了分配時(shí)間,上述多個(gè)任務(wù)包括多個(gè)第1類型的任務(wù)、和單個(gè)的第2類型的任務(wù);上述任務(wù)執(zhí)行裝置具備周期時(shí)間存儲(chǔ)單元,存儲(chǔ)上述多個(gè)任務(wù)的分配時(shí)間的合計(jì)時(shí)間即周期時(shí)間;任務(wù)選擇單元,在上述多個(gè)任務(wù)中,按照預(yù)先設(shè)定的順序選擇任務(wù);修正單元,在所選擇的任務(wù)是第2類型的任務(wù)的情況下,對(duì)上述第2類型的任務(wù)修正所分配的分配時(shí)間,以便在上述周期時(shí)間內(nèi)完成上述多個(gè)任務(wù)的執(zhí)行;任務(wù)執(zhí)行控制單元,執(zhí)行所選擇的任務(wù),以使該任務(wù)的執(zhí)行在所分配或所修正的上述分配時(shí)間內(nèi)完成。
2.如權(quán)利要求1所述的任務(wù)執(zhí)行裝置,其特征在于,上述修正單元將上述多個(gè)第1類型的任務(wù)中的不在執(zhí)行狀態(tài)的任務(wù)的總分配時(shí)間即非執(zhí)行時(shí)間,加到對(duì)上述第2類型的任務(wù)分配的分配時(shí)間上,從而修正該分配時(shí)間。
3.如權(quán)利要求2所述的任務(wù)執(zhí)行裝置,其特征在于,上述修正單元具有總消耗時(shí)間計(jì)算部,計(jì)算由上述多個(gè)第1類型的任務(wù)的執(zhí)行消耗的總消耗時(shí)間;非執(zhí)行時(shí)間計(jì)算部,計(jì)算上述多個(gè)第1類型的任務(wù)中的不在執(zhí)行狀態(tài)的任務(wù)的總分配時(shí)間即非執(zhí)行時(shí)間;分配時(shí)間修正部,從上述非執(zhí)行時(shí)間中減去上述總消耗時(shí)間與上述多個(gè)第1類型的任務(wù)的總分配時(shí)間的差,將相減的結(jié)果加到上述第2類型的任務(wù)的分配時(shí)間上,由此修正分配給上述第2類型的分配時(shí)間。
4.如權(quán)利要求1所述的任務(wù)執(zhí)行裝置,其特征在于,上述修正單元將上述周期時(shí)間與由上述多個(gè)第1類型的任務(wù)的執(zhí)行消耗的總消耗時(shí)間的差,作為對(duì)上述第2類型的任務(wù)分配的分配時(shí)間。
5.如權(quán)利要求1所述的任務(wù)執(zhí)行裝置,其特征在于,對(duì)上述第2類型的任務(wù)分配的分配時(shí)間包括在該任務(wù)的執(zhí)行時(shí)必須最低限度地執(zhí)行的時(shí)間即第1分配時(shí)間、和在該第1分配時(shí)間上加上預(yù)先設(shè)定的富余時(shí)間后的第2分配時(shí)間的2種時(shí)間;上述修正單元具有總消耗時(shí)間計(jì)算部,計(jì)算由上述多個(gè)第1類型的任務(wù)的執(zhí)行消耗的總消耗時(shí)間;及分配時(shí)間修正部,從上述富余時(shí)間中減去上述總消耗時(shí)間與上述多個(gè)第1類型的任務(wù)的總分配時(shí)間的差,將相減的結(jié)果加到上述第1分配時(shí)間上,從而修正分配給上述第2類型的分配時(shí)間。
6.如權(quán)利要求5所述的任務(wù)執(zhí)行裝置,其特征在于,上述分配時(shí)間修正部在上述總消耗時(shí)間與上述總分配時(shí)間的差比上述富余時(shí)間大的情況下,在設(shè)每執(zhí)行一次上述多個(gè)任務(wù)的區(qū)間為1周期的情況下,在不超過(guò)上述周期時(shí)間的范圍內(nèi),將從上述總消耗時(shí)間與上述總分配時(shí)間的差中減去了上述富余時(shí)間的時(shí)間,加到下個(gè)周期以后的上述第2類型的任務(wù)的第1分配時(shí)間上,從而修正分配給上述第2類型的分配時(shí)間。
7.如權(quán)利要求1所述的任務(wù)執(zhí)行裝置,其特征在于,還具備供電減少單元,在上述第2類型的任務(wù)轉(zhuǎn)移到等待狀態(tài)的情況下,在該任務(wù)的分配時(shí)間的期間減少向執(zhí)行該任務(wù)的處理器的供電。
8.如權(quán)利要求1所述的任務(wù)執(zhí)行裝置,其特征在于,還具備供電停止單元,在上述多個(gè)任務(wù)的全部轉(zhuǎn)移到等待狀態(tài)的情況下,停止向執(zhí)行該任務(wù)的處理器的供電。
9.如權(quán)利要求1所述的任務(wù)執(zhí)行裝置,其特征在于,在對(duì)上述多個(gè)任務(wù)的每個(gè)分配的分配時(shí)間中設(shè)有最大值及最小值;在上述周期時(shí)間存儲(chǔ)單元中存儲(chǔ)有上述多個(gè)任務(wù)的分配時(shí)間的最大值的合計(jì)時(shí)間即周期時(shí)間;上述任務(wù)執(zhí)行控制單元進(jìn)行控制,使上述多個(gè)第1類型的任務(wù)的每個(gè)在分配給該任務(wù)的分配時(shí)間的最大值或最小值內(nèi)完成執(zhí)行。
10.如權(quán)利要求9所述的任務(wù)執(zhí)行裝置,其特征在于,上述任務(wù)執(zhí)行控制單元在對(duì)上述多個(gè)第1類型的任務(wù)的全部進(jìn)行調(diào)度以便在該任務(wù)的分配時(shí)間的最小值內(nèi)完成執(zhí)行時(shí),降低執(zhí)行該任務(wù)的處理器的工作頻率。
11.一種任務(wù)執(zhí)行方法,其特征在于,用于一邊切換一邊分時(shí)執(zhí)行多個(gè)任務(wù),對(duì)上述多個(gè)任務(wù)的每個(gè)分配了分配時(shí)間;上述多個(gè)任務(wù)包括多個(gè)第1類型的任務(wù)、和單個(gè)的第2類型的任務(wù);該任務(wù)執(zhí)行方法包括從上述多個(gè)任務(wù)中,按照預(yù)先設(shè)定的順序選擇任務(wù)的步驟;在所選擇的任務(wù)是第2類型的任務(wù)的情況下,對(duì)上述第2類型的任務(wù)修正所分配的分配時(shí)間,以便在上述多個(gè)任務(wù)的分配時(shí)間的合計(jì)時(shí)間即周期時(shí)間內(nèi)完成上述多個(gè)任務(wù)的執(zhí)行的步驟;執(zhí)行所選擇的任務(wù),以使該任務(wù)的執(zhí)行在所分配或所修正的上述分配時(shí)間內(nèi)完成的步驟。
12.一種操作系統(tǒng),其特征在于,用于一邊切換一邊分時(shí)執(zhí)行多個(gè)任務(wù),對(duì)上述多個(gè)任務(wù)的每個(gè)分配了分配時(shí)間;上述多個(gè)任務(wù)包括多個(gè)第1類型的任務(wù)、和單個(gè)的第2類型的任務(wù);上述操作系統(tǒng)使計(jì)算機(jī)執(zhí)行從上述多個(gè)任務(wù)中,按照預(yù)先設(shè)定的順序選擇任務(wù)的步驟;在所選擇的任務(wù)是第2類型的任務(wù)的情況下,對(duì)上述第2類型的任務(wù)修正所分配的分配時(shí)間,以便在上述多個(gè)任務(wù)的分配時(shí)間的合計(jì)時(shí)間即周期時(shí)間內(nèi)完成上述多個(gè)任務(wù)的執(zhí)行的步驟;執(zhí)行所選擇的任務(wù),使該任務(wù)的執(zhí)行在所分配或所修正的上述分配時(shí)間內(nèi)完成的步驟。
全文摘要
一種用于一邊切換一邊分時(shí)執(zhí)行多個(gè)任務(wù)的程序執(zhí)行方法,對(duì)上述多個(gè)任務(wù)的每個(gè)分配了分配時(shí)間;上述多個(gè)任務(wù)包括多個(gè)第1類型的任務(wù)、和單個(gè)的第2類型的任務(wù);包括在上述多個(gè)任務(wù)中,按照預(yù)先設(shè)定的順序選擇任務(wù)的步驟;在所選擇的任務(wù)是第2類型的任務(wù)的情況下,對(duì)上述第2類型的任務(wù)修正所分配的分配時(shí)間,以便在多個(gè)任務(wù)的分配時(shí)間的合計(jì)時(shí)間即周期時(shí)間內(nèi)完成上述多個(gè)任務(wù)的執(zhí)行的步驟;執(zhí)行所選擇的任務(wù)以便該任務(wù)的執(zhí)行在分配時(shí)間內(nèi)完成的步驟。
文檔編號(hào)G06F9/46GK1920781SQ20061012129
公開日2007年2月28日 申請(qǐng)日期2006年8月24日 優(yōu)先權(quán)日2005年8月24日
發(fā)明者林邦彥 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社