專利名稱:任務執(zhí)行系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明涉及一種任務執(zhí)行系統(tǒng),其包括至少兩個處理器。
背景技術(shù):
目前為止,已經(jīng)知道了這樣的系統(tǒng),其具有改變將被處理任務的功能(參考,例如,專利文獻1)。然而,在多處理器系統(tǒng)中,如果某個處理器因為故障而被停止等,則不能確保由此處理器目前處理的任務的操作,從而導致不能確保整個系統(tǒng)的操作的問題。
可注意到,在一種實現(xiàn)了多個任務可以通過任務之間的通信相互協(xié)作的功能的系統(tǒng)中,給出了一種與本發(fā)明相關(guān)的任務處理系統(tǒng)(參見,例如,專利文獻2),其能夠容易地處理任務之間由于,例如,添加/刪除任務而導致的例如消息的變化。
(專利文獻1)日本專利公開公報11-203149(專利文獻1)日本專利公開公報6-95896發(fā)明內(nèi)容本發(fā)明的目的在于,即使多處理器系統(tǒng)中某個處理器由于故障等而停止,也能夠確保該處理器目前處理的任務的操作,并確保所述整個系統(tǒng)的操作。
本發(fā)明被設計為實現(xiàn)上述目的,它是一種包括至少兩個處理器的任務執(zhí)行系統(tǒng),其包括任務管理表,在該表中注冊有在至少任務、用于執(zhí)行該任務的主執(zhí)行處理器以及用于當所述主執(zhí)行處理器停止時執(zhí)行所述任務的停止時負責(in-charge-of-stoppage)處理器之間的相關(guān)關(guān)系,用于從在所述任務管理表中注冊的任務中選擇可執(zhí)行任務的裝置,用于如果試圖執(zhí)行所述選擇的任務的所述處理器之外的處理器被注冊為所述選擇的任務的主執(zhí)行處理器,檢查被注冊為所述主執(zhí)行處理器的所述處理器的停止狀態(tài)的裝置,以及,用于如果被注冊為所述主執(zhí)行處理器的所述處理器保持停止,執(zhí)行所述選擇的任務的裝置。
根據(jù)本發(fā)明,總是將被由某處理器(所述主執(zhí)行處理器)執(zhí)行的任務被預先分配給其它處理器(所述停止時負責處理器),并且對所述任務(包括所述已分配的任務)進行任務接受判斷。然后,當上述處理器發(fā)生停止時,由所述預先分配的處理器執(zhí)行所述任務,從而使得可以實現(xiàn)確保所述已分配的任務的操作,并確保系統(tǒng)所需要的操作。于是,能夠提高即使當所述系統(tǒng)部分地停止時也能確保系統(tǒng)操作的可能性。
進一步地,本發(fā)明可被說明如下。
一種包括至少兩個處理器的任務執(zhí)行系統(tǒng),其包括用于判斷是否能夠?qū)⒄埱笞缘娜蝿兆詾橹鲌?zhí)行處理器的任務的裝置,用于判斷是否能夠?qū)⑺稣埱笞缘娜蝿兆詾橥V箷r負責處理器的任務的裝置,用于如果判斷為可注冊為所述主執(zhí)行處理器的任務并且如果判斷為可注冊為所述停止時負責處理器的任務,注冊在所述請求注冊的任務、所述主執(zhí)行處理器以及所述停止時負責處理器之間的相關(guān)關(guān)系的裝置,用于從所述已注冊的任務中選擇可執(zhí)行任務的裝置,用于如果試圖執(zhí)行所述選擇的任務的所述處理器之外的處理器被注冊為所述選擇的任務的所述主執(zhí)行處理器,檢查被注冊為所述主執(zhí)行處理器的所述處理器的停止狀態(tài)的裝置,以及,用于如果被注冊為所述主執(zhí)行處理器的所述處理器保持停止時,執(zhí)行所述選擇的任務的裝置。
另外,可通過如下的方法發(fā)明對本發(fā)明進行說明。
包括至少兩個處理器的任務執(zhí)行系統(tǒng)中的任務執(zhí)行方法,包括從在任務管理表中注冊的任務中選擇可執(zhí)行的任務,其中在所述任務管理表中注冊有在至少任務、用于執(zhí)行所述任務的主執(zhí)行處理器以及用于當所述主執(zhí)行處理器停止時執(zhí)行所述任務的停止時負責處理器之間的相關(guān)關(guān)系,如果試圖執(zhí)行所述選擇的任務的所述處理器之外的處理器被注冊為所述選擇的任務的所述主執(zhí)行處理器,檢查被注冊為所述主執(zhí)行處理器的所述處理器的停止狀態(tài),以及,如果被注冊為所述主執(zhí)行處理器的所述處理器保持停止,執(zhí)行所述選擇的任務。
更進一步地,可通過如下的程序發(fā)明對本發(fā)明進行說明。
一種程序,其使得包括至少兩個處理器的信息處理裝置起到如下部分的作用任務管理表,在其中注冊有在至少任務、用于執(zhí)行所述任務的主執(zhí)行處理器以及用于當所述主執(zhí)行處理器停止時執(zhí)行所述任務的停止時負責處理器之間的相關(guān)關(guān)系,用于從在所述任務管理表中注冊的任務中選擇可執(zhí)行的任務的裝置,用于如果試圖執(zhí)行所述選擇的任務的所述處理器之外的處理器被注冊為所述選擇的任務的主執(zhí)行處理器,檢查被注冊為所述主執(zhí)行處理器的所述處理器的停止狀態(tài)的裝置,以及,用于如果被注冊為所述主執(zhí)行處理器的所述處理器保持停止,執(zhí)行所述選擇的任務的裝置。
再進一步地,也可以將本發(fā)明規(guī)定為可由信息處理裝置(計算機)讀取的存儲有上述程序的存儲介質(zhì)。
圖1示出了利用本發(fā)明實施例的任務執(zhí)行系統(tǒng)的架構(gòu)的概要;圖2是用于解釋本發(fā)明實施例的任務執(zhí)行系統(tǒng)的操作的流程圖;圖3是用于解釋本發(fā)明實施例的任務執(zhí)行系統(tǒng)的操作的流程圖。
具體實施例方式
以下將參照附圖描述利用本發(fā)明的一個實施例的任務管理系統(tǒng)。
(本系統(tǒng)的架構(gòu)概要)圖1是用于解釋任務執(zhí)行系統(tǒng)的架構(gòu)概要的示圖。
(系統(tǒng)環(huán)境)通過諸如PDA(個人數(shù)字助理)、個人計算機等的一般類型的信息處理裝置100來實現(xiàn)本發(fā)明的任務執(zhí)行系統(tǒng)。
如圖1所示,信息處理裝置100包括兩個處理器110、120(為便于解釋,以下將稱其中一個處理器為主執(zhí)行處理器110,而將另一個處理器稱為停止時負責處理器120),諸如硬盤裝置等的存儲裝置130、存儲器140等。進一步地,在一些情況下,信息處理裝置100包括用于輸入各種信息和命令的輸入裝置(例如,按鍵),用于顯示其處理結(jié)果的圖像顯示裝置(例如,液晶顯示器),語音輸出裝置(例如,揚聲器)等(不對這些裝置進行描述)。可注意到,為解釋方便起見,用兩個處理器110、120進行示例,然而,本發(fā)明不限于兩個處理器。例如,即使在設置了三個或更多處理器時,也可以類似地應用本發(fā)明。
(任務和操作系統(tǒng))任務141,通常稱為進程或線程,是程序執(zhí)行單元的一般名稱??梢栽谌蝿兆灾挟a(chǎn)生任務141,也可以如本申請人的在前申請中所述預先產(chǎn)生(共享(pooled))。例如,任務141可以是例如被定義為能夠控制所需資源量的可變?nèi)蝿盏腝oS(服務質(zhì)量)任務。
例如,操作系統(tǒng)(OS)142是實時操作系統(tǒng),其具有通過DM(截止期限單調(diào))方法調(diào)度各任務141的功能(作為調(diào)度程序)。在各調(diào)度時刻的可執(zhí)行任務141(相當于根據(jù)本發(fā)明的執(zhí)行目標任務)中,呈現(xiàn)最短截止期限時間的任務141被設置為活動任務?;谌蝿展芾肀?43管理所述各任務141。
圖1的最下部分說明了任務管理表143。任務管理表143是用于管理關(guān)于各任務的信息的表,并且被注冊有關(guān)于任務141的信息,諸如,任務ID 143a、主執(zhí)行處理器ID 143b、停止時負責處理器ID 143c、任務執(zhí)行參數(shù)143d等。
任務ID 143a用于識別各任務141。
主執(zhí)行處理器ID 143b和停止時負責處理器ID 143c用于識別各處理器。啟動時間、執(zhí)行分配時間、截止期限時間等,被給出作為任務執(zhí)行參數(shù)143d。啟動時間是從各任務141的執(zhí)行開始時刻到下一個執(zhí)行開始時刻的時間段(周期)。當執(zhí)行某任務141時,不會發(fā)生在此時段內(nèi)重新執(zhí)行該任務141的情況。所述執(zhí)行分配時間被定義為分配給各任務141的資源量(諸如,各處理器的使用時間)。可注意到,不需要在分配時段內(nèi)將所述資源連續(xù)分配給已經(jīng)分配了資源的任務141。時間分配可以以任何次數(shù)分別地實現(xiàn)。進一步地,如果由具有更高優(yōu)先級的不同任務141而不是某任務141先占了,則中斷此任務141的處理。
如果在某時段中所述分配時間經(jīng)過,不會給系統(tǒng)帶來任何影響。此時段即是截止期限時間。在本實施例中,為呈現(xiàn)較短截止期限時段的任務141賦予比呈現(xiàn)較長截止期限時段的任務141更高的優(yōu)先級。將具有較短截止期限時間的任務141(即,被賦予高優(yōu)先級的任務141)設置為活動任務。
諸如API(應用程序接口)等用于提供前述的調(diào)度功能以及后面將會描述的其它各種功能的預定程序被前述的信息處理裝置100讀取,并被安裝到操作系統(tǒng)142,從而實現(xiàn)這些功能。注意到,操作系統(tǒng)142和所述預定程序等都被預先安裝在存儲裝置130等中,并且被適當?shù)刈x入存儲器140中,并且在需要時被執(zhí)行(參見圖1)。
(任務注冊操作)接下來,將參照附圖解釋具有上述架構(gòu)的任務管理系統(tǒng)的操作。首先,將描述注冊任務時的處理。圖2是注冊任務時的處理的解釋性流程圖。
信息處理裝置100讀取和執(zhí)行操作系統(tǒng)142等,從而實現(xiàn)以下處理。當從操作系統(tǒng)142、預定應用程序等給出任務注冊請求時(S100),判斷所述請求注冊的任務141(以下也將其成為注冊目標任務)是否能夠被注冊為主執(zhí)行處理器110的任務(如果S100中的注冊請求包括所述主執(zhí)行處理器ID,可通過此主執(zhí)行處理器ID識別所述主執(zhí)行處理器)(S101)。即,在注冊的情況下,例如,注冊目標任務141作為主執(zhí)行處理器110的任務,在以包括此注冊目標任務141的方式保持QoS的同時能夠進行關(guān)于是否執(zhí)行的判斷,其中,判斷預定條件是否被滿足。
結(jié)果,如果判斷注冊目標任務141不是主執(zhí)行處理器110的任務(S101否),不注冊此注冊目標任務141,并給出不允許注冊的通知(S102)。
而另一方面,如果判斷可注冊為主執(zhí)行處理器110的任務(S101是),進一步判斷所述任務注冊請求(S100)是否僅對于主執(zhí)行處理器(S103)??紤]到,這可以通過得知,例如,任務注冊請求(S100)是否僅包括主執(zhí)行處理器ID(即,此請求是否也包括停止時負責處理器ID)來進行判斷。
結(jié)果,如果判斷不是僅包括所述主執(zhí)行處理器ID(例如,如果判斷也包括所述停止時負責處理器ID)(S103否),則進一步判斷是否能夠?qū)⒋俗阅繕巳蝿?41注冊為停止時負責處理器的任務(S104)。即,例如,如果此注冊目標任務141被注冊為停止時負責處理器120的任務(例如,當S100中的注冊請求包括所述停止時負責處理器ID時,可通過此停止時負責處理器ID識別所述停止時負責處理器120),則能夠在以包括此注冊目標任務141的方式保持QoS的同時進行關(guān)于是否執(zhí)行的判斷,其中,判斷預定條件是否被滿足。
結(jié)果,如果判斷不能被注冊為停止時負責處理器120的任務(S104否),不注冊此注冊目標任務141,并給出不允許注冊的通知(S102)。
而另一方面,如果判斷可注冊為停止時負責處理器120的任務(S104是),所述注冊目標任務141被注冊到主執(zhí)行處理器110以及停止時負責處理器120的任務管理表(S105)。即,各任務管理表143都被注冊有注冊目標任務141的任務ID 143a、主處理器ID 143b、停止時負責處理器ID143c以及任務執(zhí)行參數(shù)143d。
而另一方面,作為S103中的判斷結(jié)果,當判斷所述注冊請求僅對于主執(zhí)行處理器(例如,如果判斷不包括所述停止時負責處理器ID)(S103是)時,該注冊目標任務141被注冊到主執(zhí)行處理器的任務管理表143中(S106)。即,主執(zhí)行處理器的任務管理表143被注冊有請求注冊的任務141的任務ID 143a、主處理器ID 143b以及任務執(zhí)行參數(shù)143d。
如上討論,當注冊所述任務時,分配了主要執(zhí)行所述任務的處理器的處理器ID(主執(zhí)行處理器ID)以及在主要執(zhí)行所述任務的處理器停止的情況下執(zhí)行所述任務的處理器的處理器ID(停止時負責處理器ID)。然后,當給出任務注冊請求時(S100),首先,作出接受判斷的系統(tǒng)執(zhí)行接受處理(S101,S103,S104),并且,如果可執(zhí)行,注冊所述請求的任務(S105,S106)。
(任務切換操作)接下來,將解釋切換任務時的處理。圖3是示出了切換任務時的處理的解釋性流程圖。
由信息處理裝置100讀取和執(zhí)行操作系統(tǒng)142(諸如調(diào)度程序)等,從而實現(xiàn)如下處理。
當執(zhí)行所述調(diào)度程序時(S200),從自處理器(self-processor)的已注冊任務中選擇可執(zhí)行的任務(S201)。例如,當?shù)竭_基于任務調(diào)度的切換時刻時,從注冊于所述自處理器的任務管理表143的任務141中選擇呈現(xiàn)更短截止期限時間的任務。可注意到,如果不存在可執(zhí)行的任務(S202否),不執(zhí)行所述任務切換處理,而是終止所述處理。
然而如果存在可執(zhí)行任務(S202是),判斷是否所述自處理器被設置為在S201中選擇的任務(此后將稱為選擇的任務)的主執(zhí)行處理器(S203)。參考所述自處理器的任務管理表143進行此判斷。任務管理表143被注冊有在任務ID 143a和主執(zhí)行處理器ID 143b之間的相關(guān)關(guān)系(參見圖1)。因而可以參照此任務管理表143來判斷是否所述自處理器被設置為所述選擇的任務的主執(zhí)行處理器。
結(jié)果,如果判斷所述自處理器被設置為所述選擇的任務的主執(zhí)行處理器(S203是),將所述選擇的任務設置為執(zhí)行任務(S204)。即,執(zhí)行所述選擇的任務。
而另一方面,如果判斷所述自處理器未被設置為所述選擇的任務的主執(zhí)行處理器(例如,如果所述自處理器之外的處理器被設置為所述主執(zhí)行處理器)(S203否),進一步判斷被設置為所述選擇的任務的主執(zhí)行處理器的處理器是否停止(即,檢查被設置為所述主執(zhí)行處理器的處理器的停止狀態(tài)),并且判斷所述自處理器是否被設置為所述選擇的任務的停止時負責處理器(S205)。參考所述自處理器的任務管理表143進行后一判斷。任務管理表143被注冊有在任務ID 143a和停止時負責處理器ID 143c之間的相關(guān)關(guān)系(參見圖1)。因而可以參照此任務管理表143來判斷所述自處理器是否被設置為所述選擇的任務的停止時負責處理器。附帶地,考慮到作為用于所述后一判斷的方法,通過直接地向被設置為所述選擇的任務的主執(zhí)行處理器的所述處理器查詢操作狀態(tài)來檢查停止狀態(tài)。
結(jié)果,當判斷被設置為所述選擇的任務的主執(zhí)行處理器的所述處理器保持停止時(諸如由于故障變得不可操作的情況等),并且當所述自處理器被設置為所述選擇的任務的停止時負責處理器時(S205是),將所述選擇的任務設置為執(zhí)行任務(S204)。即,執(zhí)行所述選擇的任務。
另一方面,作為S205中的判斷結(jié)果,如果判斷被設置為所述選擇的任務的主執(zhí)行處理器的所述處理器保持停止,或者如果所述自處理器未被設置為停止時負責處理器(S205否),所述操作返回S201,其中,重新執(zhí)行從S201開始的所述處理。
如上討論,當各處理器110和120執(zhí)行所述任務時,基于已注冊任務的管理信息執(zhí)行所述任務。然而,在這個時候,如果從讀取所述處理器ID證明所述自處理器之外的處理器被設置為所述主執(zhí)行處理器(S203否),檢查所述自處理器的停止狀況(S205)。如果停止(S205是),執(zhí)行其任務(S204)。
因而,在各任務的操作時檢查所述處理器的停止狀況(S205),并且因此,隨后迅速地進行執(zhí)行所述任務的替代。進一步地,將總是由主執(zhí)行處理器110執(zhí)行的任務預先分配給停止時負責處理器120,由此,當處理器110進入停止時,由預先分配的處理器120執(zhí)行所述任務。于是,可以提高即使當所述系統(tǒng)部分地停止時還能確保所述系統(tǒng)的操作的可能性。
無需脫離其精神或主要特征,可以以各種形式實現(xiàn)本發(fā)明。因此,以上討論的實施例僅僅起到示例的作用。所述實施例的描述不作為對于本發(fā)明的限制性解釋。
工業(yè)實用性根據(jù)本發(fā)明,總是將被由某處理器(所述主執(zhí)行處理器)執(zhí)行的任務預先分配給其它處理器(所述停止時負責處理器)。當以上處理器進入停止時,由預先分配的處理器執(zhí)行所述任務,從而,能夠提高即使當系統(tǒng)部分地停止(當所述主執(zhí)行處理器停止)時也能確保系統(tǒng)的操作的可能性。
權(quán)利要求
1.一種包括至少兩個處理器的任務執(zhí)行系統(tǒng),包括任務管理表,在該表中注冊有在至少任務、用于執(zhí)行該任務的主執(zhí)行處理器和用于當所述主執(zhí)行處理器停止時執(zhí)行該任務的停止時負責處理器之間的相關(guān)關(guān)系;選擇單元,從在所述任務管理表中注冊的任務中選擇可執(zhí)行的任務;檢查單元,如果試圖執(zhí)行所述選擇的任務的所述處理器之外的處理器被注冊為所述選擇的任務的主執(zhí)行處理器,檢查被注冊為所述主執(zhí)行處理器的所述處理器的停止狀態(tài);以及,執(zhí)行單元,如果被注冊為所述主執(zhí)行處理器的所述處理器保持停止,執(zhí)行所述選擇的任務。
2.一種包括至少兩個處理器的任務執(zhí)行系統(tǒng),包括判斷單元,判斷是否能夠?qū)⒄埱笞缘娜蝿兆詾橹鲌?zhí)行處理器的任務;判斷單元,判斷是否能夠?qū)⑺稣埱笞缘娜蝿兆詾橥V箷r負責處理器的任務;注冊單元,如果判斷為可注冊為所述主執(zhí)行處理器的任務并且如果判斷為可注冊為所述停止時負責處理器的任務,注冊在所述請求注冊的任務、所述主執(zhí)行處理器以及所述停止時負責處理器之間的相關(guān)關(guān)系;選擇單元,從所述已注冊的任務中選擇可執(zhí)行的任務;檢查單元,如果試圖執(zhí)行所述選擇的任務的所述處理器之外的處理器被注冊為所述選擇的任務的所述主執(zhí)行處理器,檢查被注冊為所述主執(zhí)行處理器的所述處理器的停止狀態(tài);以及,執(zhí)行單元,如果被注冊為所述主執(zhí)行處理器的所述處理器保持停止,執(zhí)行所述選擇的任務。
3.一種包括至少兩個處理器的任務執(zhí)行系統(tǒng)中的任務執(zhí)行方法,包括以下步驟從在任務管理表中注冊的任務中選擇可執(zhí)行的任務,其中在所述任務管理表中注冊有在至少任務、用于執(zhí)行該任務的主執(zhí)行處理器以及用于當所述主執(zhí)行處理器停止時執(zhí)行該任務的停止時負責處理器之間的相關(guān)關(guān)系;如果試圖執(zhí)行所述選擇的任務的所述處理器之外的處理器被注冊為所述選擇的任務的所述主執(zhí)行處理器,檢查被注冊為所述主執(zhí)行處理器的所述處理器的停止狀態(tài),以及,如果被注冊為所述主執(zhí)行處理器的所述處理器保持停止,執(zhí)行所述選擇的任務。
4.一種程序,其使得包括至少兩個處理器的信息處理裝置起到如下部分的作用任務管理表,在該表中注冊有在至少任務、用于執(zhí)行該任務的主執(zhí)行處理器和用于當所述主執(zhí)行處理器停止時執(zhí)行該任務的停止時負責處理器之間的相關(guān)關(guān)系;選擇單元,從在所述任務管理表中注冊的任務中選擇可執(zhí)行的任務;檢查單元,如果試圖執(zhí)行所述選擇的任務的所述處理器之外的處理器被注冊為所述選擇的任務的主執(zhí)行處理器,檢查被注冊為所述主執(zhí)行處理器的所述處理器的停止狀態(tài);以及,執(zhí)行單元,如果被注冊為所述主執(zhí)行處理器的所述處理器保持停止,執(zhí)行所述選擇的任務。
全文摘要
一種包括至少兩個處理器的任務執(zhí)行系統(tǒng),其具有任務管理表,在該表中注冊有在至少任務、用于執(zhí)行該任務的主執(zhí)行處理器以及用于當所述主執(zhí)行處理器停止時執(zhí)行該任務的停止時負責處理器之間的相關(guān)關(guān)系,用于從在所述任務管理表中注冊的任務中選擇可執(zhí)行的任務的裝置,用于如果試圖執(zhí)行所述選擇的任務的所述處理器之外的處理器被注冊為所述選擇的任務的主執(zhí)行處理器,檢查被注冊為所述主執(zhí)行處理器的所述處理器的停止狀態(tài)的裝置,以及,用于如果被注冊為所述主執(zhí)行處理器的所述處理器保持停止,執(zhí)行所述選擇的任務的裝置。
文檔編號G06F11/00GK1926516SQ20048004252
公開日2007年3月7日 申請日期2004年11月12日 優(yōu)先權(quán)日2004年3月31日
發(fā)明者阿部睦 申請人:豐田自動車株式會社