專利名稱:信號(hào)量管理方法和信號(hào)量管理程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種使用多任務(wù)系統(tǒng)的操作系統(tǒng)中的資源的排他控制,尤其是涉及一種使用信號(hào)量(semaphore)來(lái)執(zhí)行排他控制時(shí)的信號(hào)量的管理方法。
背景技術(shù):
在使用多任務(wù)系統(tǒng)的操作系統(tǒng)中的資源的排他控制中,常常使用信號(hào)量。在使用信號(hào)量的資源的排他控制中,在使用資源之前,任務(wù)首先利用信號(hào)量生成命令來(lái)生成信號(hào)量。在生成信號(hào)量時(shí),將信號(hào)量結(jié)構(gòu)體的指針、信號(hào)量結(jié)構(gòu)體陣列的索引或操作系統(tǒng)提供的用于信號(hào)量操作的句柄(下面稱為信號(hào)量句柄)返回到任務(wù)側(cè)。任務(wù)側(cè)利用指定了信號(hào)量句柄的信號(hào)量獲得命令獲得信號(hào)量,從而使用資源。在使用了資源之后,利用指定了信號(hào)量句柄的信號(hào)量釋放命令釋放信號(hào)量,從而釋放資源。
任務(wù)是為了實(shí)現(xiàn)期望的功能而由用戶生成的程序。因此,在通過(guò)使用上述信號(hào)量操作命令(信號(hào)量生成命令、信號(hào)量獲得命令和信號(hào)量釋放命令)來(lái)使用資源的、基于信號(hào)量的排他控制中,用戶必須了解信號(hào)量句柄與資源之間的關(guān)聯(lián)。
但是,由于信號(hào)量句柄為數(shù)值,所以難以直觀地建立信號(hào)量句柄與資源之間的關(guān)聯(lián),從而存在信號(hào)量句柄與資源之間的關(guān)聯(lián)的管理很麻煩的問(wèn)題。
作為用于改善這種問(wèn)題的現(xiàn)有技術(shù),具有專利文獻(xiàn)1。在專利文獻(xiàn)1中,公開(kāi)了一種涉及資源管理方式的技術(shù),該技術(shù)可利用名稱(符號(hào))來(lái)管理資源,從而可容易地進(jìn)行程序(任務(wù))的生成和挪用以及資源管理。
具體地說(shuō),任務(wù)將所要使用的資源的符號(hào)通知給資源管理模塊。經(jīng)由資源管理模塊的識(shí)別號(hào)碼分配部件從任務(wù)輸入了符號(hào)后,識(shí)別號(hào)碼管理部件檢索用于存儲(chǔ)資源的符號(hào)與識(shí)別號(hào)碼(信號(hào)量句柄)的對(duì)應(yīng)的識(shí)別號(hào)碼管理表,檢測(cè)出未使用的信號(hào)量句柄,與檢測(cè)出的信號(hào)量句柄相對(duì)應(yīng)地登記所通知的符號(hào),將該信號(hào)量句柄設(shè)為使用中,并經(jīng)由識(shí)別號(hào)碼分配部件將檢測(cè)出的信號(hào)量句柄通知給任務(wù)。任務(wù)使用所通知的信號(hào)量句柄,向多任務(wù)操作系統(tǒng)發(fā)出系統(tǒng)呼叫,從而使用資源。資源使用結(jié)束后,任務(wù)將正使用的信號(hào)量句柄通知給資源管理模塊。經(jīng)由資源管理模塊的識(shí)別號(hào)碼釋放部件從任務(wù)通知了信號(hào)量句柄后,識(shí)別號(hào)碼管理部件刪除與所通知的信號(hào)量句柄相對(duì)應(yīng)地登記于識(shí)別號(hào)碼管理表中的符號(hào),在將該信號(hào)量句柄設(shè)為未使用后釋放。
專利文獻(xiàn)1特開(kāi)平5-81048號(hào)公報(bào)在上述專利文獻(xiàn)1所記載的現(xiàn)有技術(shù)中,具備用于使資源的符號(hào)與信號(hào)量句柄相對(duì)應(yīng)的識(shí)別號(hào)碼管理表,任務(wù)向管理該識(shí)別號(hào)碼管理表的對(duì)應(yīng)表資源管理模塊通知符號(hào),并使用從識(shí)別號(hào)碼管理部件返回的信號(hào)量句柄來(lái)進(jìn)行信號(hào)量的操作,所以生成任務(wù)的用戶無(wú)需了解資源的符號(hào)與信號(hào)量句柄的對(duì)應(yīng),就可以用符號(hào)來(lái)管理資源。
但是,在上述專利文獻(xiàn)1所記載的現(xiàn)有技術(shù)中,雖然生成任務(wù)的用戶不必了解符號(hào)與信號(hào)量句柄的對(duì)應(yīng),但由于從資源管理模塊向任務(wù)返回信號(hào)量句柄,并使用所返回的信號(hào)量句柄來(lái)使用信號(hào)量,所以存在必須在任務(wù)內(nèi)管理信號(hào)量句柄的問(wèn)題。
另外,在上述專利文獻(xiàn)1所記載的現(xiàn)有技術(shù)中,必須取得與符號(hào)相對(duì)應(yīng)的信號(hào)量句柄,并使用所取得的信號(hào)量句柄來(lái)獲得信號(hào)量。即,任務(wù)需要用于取得與符號(hào)相對(duì)應(yīng)的信號(hào)量句柄的命令和用于獲得信號(hào)量的信號(hào)量獲得命令這兩個(gè)命令,從而存在步驟數(shù)多的問(wèn)題。
另外,在使用信號(hào)量時(shí),利用信號(hào)量生成命令來(lái)生成與信號(hào)量相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體,并取得與所生成的信號(hào)量結(jié)構(gòu)體相對(duì)應(yīng)的信號(hào)量的信號(hào)量句柄,但存在必須向使用所生成的信號(hào)量的全部任務(wù)通知所取得的信號(hào)量句柄的問(wèn)題。
發(fā)明內(nèi)容本發(fā)明鑒于上述問(wèn)題而做出,其目的在于提供一種信號(hào)量管理方法,在使用信號(hào)量的排他控制中,可以使用資源的符號(hào)來(lái)操作信號(hào)量,而無(wú)需在任務(wù)內(nèi)管理信號(hào)量句柄。
為了解決上述問(wèn)題并實(shí)現(xiàn)目的,本發(fā)明提供了一種信號(hào)量管理方法,應(yīng)用于利用信號(hào)量來(lái)執(zhí)行排他控制的多任務(wù)系統(tǒng)的操作系統(tǒng),并且根據(jù)信號(hào)量結(jié)構(gòu)體與符號(hào)/句柄對(duì)應(yīng)表,利用任務(wù)發(fā)出的、包含資源的符號(hào)的信號(hào)量操作命令,來(lái)操作信號(hào)量,其中,所述信號(hào)量結(jié)構(gòu)體與對(duì)應(yīng)于所述操作系統(tǒng)內(nèi)的資源的信號(hào)量相對(duì)應(yīng),并登記有與該信號(hào)量的使用狀態(tài)有關(guān)的信號(hào)量信息,所述符號(hào)/句柄對(duì)應(yīng)表與用于識(shí)別操作系統(tǒng)內(nèi)的資源的符號(hào)相對(duì)應(yīng)地登記有用于識(shí)別管理該資源的信號(hào)量的信號(hào)量句柄,其特征在于,所述方法具備對(duì)應(yīng)表管理步驟,取得與包含在所述信號(hào)量操作命令中的符號(hào)相對(duì)應(yīng)地登記在所述符號(hào)/句柄對(duì)應(yīng)表中的信號(hào)量句柄;信號(hào)量獲得步驟,在所述信號(hào)量操作命令是信號(hào)量獲得命令的情況下,根據(jù)與所述對(duì)應(yīng)表管理步驟取得的信號(hào)量句柄所表示的信號(hào)量相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體的信號(hào)量信息,取得信號(hào)量,并將該信號(hào)量所管理的資源分配給發(fā)出了所述信號(hào)量獲得命令的任務(wù);和信號(hào)量釋放步驟,在所述信號(hào)量操作命令是信號(hào)量釋放命令的情況下,根據(jù)與所述對(duì)應(yīng)表管理步驟取得的信號(hào)量句柄所表示的信號(hào)量相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體的信號(hào)量信息,釋放信號(hào)量,并從發(fā)出了所述信號(hào)量釋放命令的任務(wù)釋放該信號(hào)量所管理的資源。
根據(jù)本發(fā)明,可實(shí)現(xiàn)得到如下信號(hào)量管理方法的效果即對(duì)應(yīng)表管理部件從與用于識(shí)別資源的符號(hào)名相對(duì)應(yīng)地登記有用于識(shí)別管理該資源的信號(hào)量的信號(hào)量句柄的符號(hào)/句柄對(duì)應(yīng)表中,取得與任務(wù)發(fā)出的信號(hào)量操作命令中包含的符號(hào)相對(duì)應(yīng)的信號(hào)量句柄,在信號(hào)量操作命令是信號(hào)量獲得命令的情況下,信號(hào)量獲得處理部件取得所取得的信號(hào)量句柄所表示的信號(hào)量,將由所取得的信號(hào)量管理的資源分配給發(fā)出了信號(hào)量獲得命令的任務(wù),在信號(hào)量操作命令是信號(hào)量釋放命令的情況下,信號(hào)量釋放處理部件釋放所取得的信號(hào)量句柄所表示的信號(hào)量,從發(fā)出了信號(hào)量釋放命令的任務(wù)釋放該信號(hào)量所管理的資源,所以在使用信號(hào)量的排他控制中,可以使用資源的符號(hào)來(lái)操作信號(hào)量,而無(wú)需在任務(wù)內(nèi)管理信號(hào)量句柄。
圖1是表示應(yīng)用本發(fā)明的信號(hào)量管理方法的多任務(wù)系統(tǒng)的構(gòu)成的圖。
圖2是用于說(shuō)明應(yīng)用本發(fā)明的信號(hào)量管理方法的多任務(wù)系統(tǒng)的基于信號(hào)量獲得命令的動(dòng)作的流程圖。
圖3是用于說(shuō)明應(yīng)用本發(fā)明的信號(hào)量管理方法的多任務(wù)系統(tǒng)的基于信號(hào)量釋放命令的動(dòng)作的流程圖。
圖4是用于說(shuō)明應(yīng)用本發(fā)明的信號(hào)量管理方法的多任務(wù)系統(tǒng)的基于信號(hào)量獲得命令的動(dòng)作的流程圖。
具體實(shí)施方式下面,參照附圖來(lái)詳細(xì)說(shuō)明本發(fā)明的信號(hào)量管理方法和信號(hào)量管理程序的實(shí)施方式。該實(shí)施方式并不限定本發(fā)明。
實(shí)施方式利用圖1~圖3來(lái)說(shuō)明本發(fā)明的實(shí)施方式。圖1是表示應(yīng)用了本發(fā)明的信號(hào)量管理方法的多任務(wù)系統(tǒng)1的構(gòu)成的圖。在圖1中,作為主要部分,多任務(wù)系統(tǒng)1具備在多任務(wù)系統(tǒng)1的管理下動(dòng)作的多個(gè)(此處為兩個(gè))任務(wù)5(表示5-1、5-2)和操作系統(tǒng)2,該操作系統(tǒng)2具有n(n為自然數(shù))個(gè)資源7(表示7-1~7-n)和根據(jù)來(lái)自任務(wù)5的命令、通過(guò)使用信號(hào)量的排他控制來(lái)分配和釋放資源7的信號(hào)量管理部件3。
任務(wù)5是用戶生成的程序,由用于實(shí)現(xiàn)期望功能的各種命令構(gòu)成。在構(gòu)成任務(wù)5的命令當(dāng)中,作為利用資源7的命令,包括用于操作對(duì)資源7進(jìn)行排他控制的信號(hào)量的信號(hào)量操作命令。信號(hào)量操作命令具有用于在使用資源7時(shí)獲得與資源7相對(duì)應(yīng)的信號(hào)量的信號(hào)量獲得命令(圖中為P命令);和用于在釋放所使用的資源7時(shí)釋放與資源7相對(duì)應(yīng)的信號(hào)量之信號(hào)量釋放命令(圖中為V命令)。用戶在使用信號(hào)量獲得命令和信號(hào)量釋放命令時(shí),指定被預(yù)先賦予作為對(duì)象的資源7的符號(hào)。
資源7是操作系統(tǒng)2使用的存儲(chǔ)器或打印機(jī)等設(shè)備,分別被賦予符號(hào)。符號(hào)中可使用用戶容易識(shí)別資源7的名稱,在圖1中,向資源7-1賦予符號(hào)“mem1”,向資源7-2賦予符號(hào)“mem2”,…,向資源7-n賦予符號(hào)“memn”。
信號(hào)量管理部件3具備信號(hào)量結(jié)構(gòu)體6(表示6-1~6-n)、符號(hào)/句柄對(duì)應(yīng)表4和信號(hào)量操作部件8。信號(hào)量結(jié)構(gòu)體6與對(duì)資源7進(jìn)行排他控制的信號(hào)量相對(duì)應(yīng),構(gòu)成基于預(yù)定順序的陣列(信號(hào)量結(jié)構(gòu)體陣列)。在信號(hào)量管理部件3中,利用信號(hào)量結(jié)構(gòu)體陣列的索引或指針來(lái)識(shí)別各信號(hào)量結(jié)構(gòu)體6。
在圖1中,信號(hào)量結(jié)構(gòu)體6-1與對(duì)資源7-1進(jìn)行排他控制的信號(hào)量相對(duì)應(yīng),信號(hào)量結(jié)構(gòu)體6-2與對(duì)資源7-2進(jìn)行排他控制的信號(hào)量相對(duì)應(yīng),…,信號(hào)量結(jié)構(gòu)體6-n與對(duì)資源7-n進(jìn)行排他控制的信號(hào)量相對(duì)應(yīng)。另外,信號(hào)量結(jié)構(gòu)體6-1的索引為“sem1”,信號(hào)量結(jié)構(gòu)體6-2的索引為“sem2”,…,信號(hào)量結(jié)構(gòu)體6-n的索引為“semn”。信號(hào)量結(jié)構(gòu)體6的索引為數(shù)值。另外,從操作系統(tǒng)2向信號(hào)量提供用于信號(hào)量操作的句柄(下面稱為信號(hào)量句柄),但這里,信號(hào)量句柄與對(duì)應(yīng)于該信號(hào)量句柄所表示的信號(hào)量的信號(hào)量結(jié)構(gòu)體6的索引為相同值。
信號(hào)量結(jié)構(gòu)體6登記與相對(duì)應(yīng)的信號(hào)量的使用狀態(tài)有關(guān)的信號(hào)量信息。信號(hào)量結(jié)構(gòu)體6由登記有相對(duì)應(yīng)的信號(hào)量的狀態(tài)或?qū)傩缘臉?biāo)志61、登記有相對(duì)應(yīng)的信號(hào)量的剩余數(shù)量的計(jì)數(shù)器62、和登記有等待相對(duì)應(yīng)的信號(hào)量的任務(wù)5的進(jìn)程名的等待任務(wù)隊(duì)列63構(gòu)成。
符號(hào)/句柄對(duì)應(yīng)表4與資源7的符號(hào)相對(duì)應(yīng)地登記有對(duì)該資源7進(jìn)行排他控制的信號(hào)量的信號(hào)量句柄。信號(hào)量操作部件8接收到來(lái)自任務(wù)5的信號(hào)量操作命令后,執(zhí)行如下處理,即根據(jù)符號(hào)/句柄對(duì)應(yīng)表4和信號(hào)量結(jié)構(gòu)體6,獲得或釋放信號(hào)量,從而向任務(wù)5分配資源7,或從任務(wù)5釋放資源7。
信號(hào)量操作部件8具備管理符號(hào)/句柄對(duì)應(yīng)表4的對(duì)應(yīng)表管理部件81、生成與信號(hào)量相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體6的信號(hào)量生成部件82、根據(jù)信號(hào)量結(jié)構(gòu)體6來(lái)執(zhí)行信號(hào)量的獲得處理的信號(hào)量獲得處理部件83、和根據(jù)信號(hào)量結(jié)構(gòu)體6來(lái)執(zhí)行信號(hào)量的釋放處理的信號(hào)量釋放處理部件84。
參照?qǐng)D1~圖3,說(shuō)明應(yīng)用本發(fā)明的信號(hào)量管理方法的多任務(wù)系統(tǒng)1的動(dòng)作。首先,參照?qǐng)D2的流程圖和圖1,說(shuō)明基于信號(hào)量獲得命令的動(dòng)作。在將要使用資源7的情況下,任務(wù)5向信號(hào)量操作部件8輸出(發(fā)出)包含將要使用的資源7的符號(hào)的信號(hào)量獲得命令(步驟S100)。
輸入了信號(hào)量獲得命令后,信號(hào)量操作部件8的對(duì)應(yīng)表管理部件81取得與信號(hào)量獲得命令內(nèi)的符號(hào)相對(duì)應(yīng)地登記在符號(hào)/句柄對(duì)應(yīng)表4中的信號(hào)量句柄(步驟S101)。
在取得了信號(hào)量句柄的情況下,即在符號(hào)/句柄對(duì)應(yīng)表4中登記有信號(hào)量獲得命令內(nèi)的符號(hào)和對(duì)應(yīng)于該符號(hào)的信號(hào)量句柄的情況下(步驟S102為是),對(duì)應(yīng)表管理部件81將包含所取得的信號(hào)量句柄的信號(hào)量獲得指示通知給信號(hào)量獲得處理部件83。
在接收到信號(hào)量獲得指示后,信號(hào)量獲得處理部件83使用信號(hào)量獲得指示內(nèi)的信號(hào)量句柄,執(zhí)行信號(hào)量獲得處理(步驟S103)。具體地說(shuō),信號(hào)量獲得處理部件83確認(rèn)與信號(hào)量獲得指示內(nèi)的信號(hào)量句柄相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體6的計(jì)數(shù)器62中登記的計(jì)數(shù)值,判定是否能獲得信號(hào)量。計(jì)數(shù)值表示與信號(hào)量結(jié)構(gòu)體6相對(duì)應(yīng)的信號(hào)量的剩余數(shù)量。因此,信號(hào)量獲得處理部件83在計(jì)數(shù)值為“0”的情況下,判定為不能獲得信號(hào)量,在計(jì)數(shù)值不為“0”的情況下,判定為能獲得信號(hào)量。在判定為能獲得信號(hào)量的情況下,信號(hào)量獲得處理部件83將與信號(hào)量獲得指示內(nèi)的信號(hào)量句柄相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體6的計(jì)數(shù)器62的值減1,獲得信號(hào)量。
在獲得了信號(hào)量的情況下(步驟S104為是),信號(hào)量獲得處理部件83向任務(wù)5通知獲得了信號(hào)量。被通知獲得了信號(hào)量后,任務(wù)5利用由通過(guò)信號(hào)量獲得命令獲得的信號(hào)量進(jìn)行排他控制的資源7,執(zhí)行期望的處理(步驟S105)。
在沒(méi)能獲得信號(hào)量的情況下,即判定為不能獲得信號(hào)量的情況下(步驟S104為否),信號(hào)量獲得處理部件83將輸出了信號(hào)量獲得命令的任務(wù)5的進(jìn)程名登記在與信號(hào)量句柄相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體6的等待任務(wù)隊(duì)列63中(步驟S106)。
在其它任務(wù)5釋放了所等待的信號(hào)量(步驟S107)后,信號(hào)量獲得處理部件83執(zhí)行信號(hào)量獲得處理,獲得信號(hào)量,向任務(wù)5通知獲得了信號(hào)量,任務(wù)5利用由通過(guò)信號(hào)量獲得命令獲得的信號(hào)量進(jìn)行排他控制的資源7,執(zhí)行期望的處理(步驟S103~S105)。另外,信號(hào)量獲得處理部件83在從信號(hào)量等待到獲得信號(hào)量的情況下,將與信號(hào)量相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體6的計(jì)數(shù)器62減1,同時(shí),刪除登記在等待任務(wù)隊(duì)列63中的該任務(wù)的進(jìn)程名。
另一方面,在不能從符號(hào)/句柄對(duì)應(yīng)表4取得信號(hào)量句柄的情況下,即符號(hào)/句柄對(duì)應(yīng)表4中未登記信號(hào)量獲得命令內(nèi)的符號(hào)和與該符號(hào)相對(duì)應(yīng)的信號(hào)量句柄的情況下(步驟S102為否),對(duì)應(yīng)表管理部件81將信號(hào)量生成指示通知給信號(hào)量生成部件82。
在接收到信號(hào)量生成指示后,信號(hào)量生成部件82將新的信號(hào)量結(jié)構(gòu)體追加到信號(hào)量結(jié)構(gòu)體陣列,從而生成信號(hào)量(步驟S108)。信號(hào)量生成部件82向?qū)?yīng)表管理部件81通知包含在生成信號(hào)量時(shí)從操作系統(tǒng)2提供的信號(hào)量句柄的生成完成通知。
接收到生成完成通知后,對(duì)應(yīng)表管理部件81將生成完成通知內(nèi)的信號(hào)量句柄與信號(hào)量獲得命令內(nèi)的符號(hào)相對(duì)應(yīng)地登記在符號(hào)/句柄對(duì)應(yīng)表4中(步驟S109)。對(duì)應(yīng)表管理部件81將包含生成完成通知內(nèi)的信號(hào)量句柄、即登記在符號(hào)對(duì)應(yīng)表中的信號(hào)量句柄的信號(hào)量獲得指示通知給信號(hào)量獲得處理部件83。
信號(hào)量獲得處理部件83執(zhí)行信號(hào)量獲得處理,獲得信號(hào)量,向任務(wù)5通知獲得了信號(hào)量,任務(wù)5利用由通過(guò)信號(hào)量獲得命令獲得的信號(hào)量進(jìn)行排他控制的資源7,執(zhí)行期望的處理(步驟S103~S105)。
下面,參照?qǐng)D3的流程圖和圖1,說(shuō)明基于信號(hào)量釋放命令的動(dòng)作。在釋放利用信號(hào)量獲得命令獲得的信號(hào)量的情況下,任務(wù)5將包含所要釋放的資源7的符號(hào)的信號(hào)量釋放命令輸出到信號(hào)量操作部件8(步驟S200)。
在輸入了信號(hào)量釋放命令后,信號(hào)量操作部件8的對(duì)應(yīng)表管理部件81取得與信號(hào)量釋放命令內(nèi)的符號(hào)相對(duì)應(yīng)地登記在符號(hào)/句柄對(duì)應(yīng)表4中的信號(hào)量句柄(步驟S201)。對(duì)應(yīng)表管理部件81將包含所取得的信號(hào)量句柄的信號(hào)量釋放指示通知給信號(hào)量釋放處理部件84。
在接收到信號(hào)量釋放指示后,信號(hào)量釋放處理部件84使用信號(hào)量釋放指示內(nèi)的信號(hào)量句柄,執(zhí)行信號(hào)量釋放處理(步驟S202)。具體地說(shuō),信號(hào)量釋放處理部件84使與信號(hào)量釋放指示內(nèi)的信號(hào)量句柄相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體6的計(jì)數(shù)器62中登記的計(jì)數(shù)值加1。
信號(hào)量釋放處理部件84向任務(wù)5通知釋放了信號(hào)量。由此,任務(wù)5識(shí)別為信號(hào)量的釋放操作結(jié)束,從而執(zhí)行下一命令(步驟S203)。
這樣,在本實(shí)施方式中,對(duì)應(yīng)表管理部件81從與用于識(shí)別資源7的符號(hào)名相對(duì)應(yīng)地登記有用于識(shí)別管理該資源7的信號(hào)量的信號(hào)量句柄的符號(hào)/句柄對(duì)應(yīng)表4中,取得與任務(wù)5發(fā)出的信號(hào)量操作命令中包含的符號(hào)相對(duì)應(yīng)的信號(hào)量句柄,在信號(hào)量操作命令是信號(hào)量獲得命令的情況下,信號(hào)量獲得處理部件83取得所取得的信號(hào)量句柄所表示的信號(hào)量,將所取得的信號(hào)量所管理的資源7分配給發(fā)出了信號(hào)量獲得命令的任務(wù)5,在信號(hào)量操作命令是信號(hào)量釋放命令的情況下,信號(hào)量釋放處理部件84釋放所取得的信號(hào)量句柄所表示的信號(hào)量,從發(fā)出了信號(hào)量釋放命令的任務(wù)5釋放該信號(hào)量所管理的資源7,因此在使用信號(hào)量的排他控制中,可以使用資源7的符號(hào)來(lái)操作信號(hào)量,而無(wú)需在任務(wù)5內(nèi)管理信號(hào)量句柄。
另外,由于可以使用資源7的符號(hào)來(lái)操作信號(hào)量,而無(wú)需在任務(wù)5內(nèi)管理信號(hào)量句柄,所以可在無(wú)需向使用相同信號(hào)量的所有任務(wù)5通知信號(hào)量句柄的情況下,實(shí)現(xiàn)使用信號(hào)量的排他控制。
另外,在本實(shí)施方式中,在與任務(wù)5發(fā)出的信號(hào)量操作命令內(nèi)的符號(hào)相對(duì)應(yīng)的信號(hào)量句柄未登記在符號(hào)/句柄對(duì)應(yīng)表4中的情況下,信號(hào)量生成部件82生成新的信號(hào)量結(jié)構(gòu)體6,從而生成信號(hào)量,對(duì)應(yīng)表管理部件81將信號(hào)量生成部件82生成的信號(hào)量的信號(hào)量句柄與信號(hào)量操作命令內(nèi)的符號(hào)相對(duì)應(yīng)地登記在符號(hào)/句柄對(duì)應(yīng)表4中之后,信號(hào)量獲得處理部件83獲得信號(hào)量,因此可以用1個(gè)命令來(lái)執(zhí)行信號(hào)量的生成和獲得,從而可削減任務(wù)5的步驟。
并且,在使用信號(hào)量的排他控制中,由于可以使用資源7的符號(hào)來(lái)操作信號(hào)量,而無(wú)需在任務(wù)5內(nèi)管理信號(hào)量句柄,所以還可期待如下效果,即可削減生成任務(wù)5的用戶的勞力,同時(shí)可避免信號(hào)量句柄與符號(hào)的對(duì)應(yīng)錯(cuò)誤,從而可提高程序的質(zhì)量。
另外,在本實(shí)施方式中,在信號(hào)量獲得命令動(dòng)作時(shí)不能從符號(hào)/句柄對(duì)應(yīng)表4取得信號(hào)量句柄的情況下,無(wú)條件地生成信號(hào)量,但也可以如圖4的流程圖所示,在前面圖2的流程圖的步驟S108的信號(hào)量生成處理之前,追加判定是否需要明示的信號(hào)量生成的步驟S110,僅在必須生成信號(hào)量的情況下,才生成信號(hào)量,在不必生成信號(hào)量的情況下,向任務(wù)5通知錯(cuò)誤通知(步驟S111)。所謂明示的信號(hào)量生成是包含信號(hào)量生成命令的信號(hào)量獲得命令,這種情況下,作為信號(hào)量獲得命令,僅在從符號(hào)/句柄對(duì)應(yīng)表4取得了信號(hào)量句柄的情況下,即符號(hào)與信號(hào)量句柄的對(duì)應(yīng)被登記在符號(hào)/句柄對(duì)應(yīng)表4中的情況下,準(zhǔn)備獲得信號(hào)量的命令,在沒(méi)能從符號(hào)/句柄對(duì)應(yīng)表4取得信號(hào)量句柄的情況下,即符號(hào)與信號(hào)量句柄的對(duì)應(yīng)沒(méi)有登記在符號(hào)/句柄對(duì)應(yīng)表4中的情況下,準(zhǔn)備在生成信號(hào)量并登記到符號(hào)/句柄對(duì)應(yīng)表4中之后獲得信號(hào)量的命令,并在任務(wù)5上分開(kāi)使用這兩個(gè)命令。
另外,也可將由本發(fā)明中的信號(hào)量操作部件8的對(duì)應(yīng)表管理部件81、信號(hào)量生成部件82、信號(hào)量獲得處理部件83和信號(hào)量釋放處理部件84實(shí)現(xiàn)的上述功能,提供作為由操作系統(tǒng)2所操作的CPU(中央處理單元)等微處理器執(zhí)行的程序。
產(chǎn)業(yè)上的可利用性如上所述,本發(fā)明的信號(hào)量管理方法可用于利用信號(hào)量來(lái)進(jìn)行排他控制的多任務(wù)系統(tǒng)的操作系統(tǒng),尤其適用于從多個(gè)任務(wù)操作同一信號(hào)量的情況。
權(quán)利要求
1.一種信號(hào)量管理方法,應(yīng)用于利用信號(hào)量來(lái)執(zhí)行排他控制的多任務(wù)系統(tǒng)的操作系統(tǒng),根據(jù)信號(hào)量結(jié)構(gòu)體與符號(hào)/句柄對(duì)應(yīng)表,利用任務(wù)發(fā)出的、包含資源的符號(hào)的信號(hào)量操作命令,來(lái)操作信號(hào)量,其中,所述信號(hào)量結(jié)構(gòu)體與對(duì)應(yīng)于所述操作系統(tǒng)內(nèi)的資源的信號(hào)量相對(duì)應(yīng),并登記有與該信號(hào)量的使用狀態(tài)有關(guān)的信號(hào)量信息,所述符號(hào)/句柄對(duì)應(yīng)表與用于識(shí)別操作系統(tǒng)內(nèi)的資源的符號(hào)相對(duì)應(yīng)地登記有用于識(shí)別管理該資源的信號(hào)量的信號(hào)量句柄,其特征在于,所述信號(hào)量管理方法具備對(duì)應(yīng)表管理步驟,取得與包含在所述信號(hào)量操作命令中的符號(hào)相對(duì)應(yīng)地登記在所述符號(hào)/句柄對(duì)應(yīng)表中的信號(hào)量句柄;信號(hào)量獲得步驟,在所述信號(hào)量操作命令是信號(hào)量獲得命令的情況下,根據(jù)與所述對(duì)應(yīng)表管理步驟取得的信號(hào)量句柄所表示的信號(hào)量相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體的信號(hào)量信息,取得信號(hào)量,并將該信號(hào)量所管理的資源分配給發(fā)出了所述信號(hào)量獲得命令的任務(wù);和信號(hào)量釋放步驟,在所述信號(hào)量操作命令是信號(hào)量釋放命令的情況下,根據(jù)與所述對(duì)應(yīng)表管理步驟取得的信號(hào)量句柄所表示的信號(hào)量相對(duì)應(yīng)的信號(hào)量結(jié)構(gòu)體的信號(hào)量信息,釋放信號(hào)量,并從發(fā)出了所述信號(hào)量釋放命令的任務(wù)釋放該信號(hào)量所管理的資源。
2.根據(jù)權(quán)利要求
1所述的信號(hào)量管理方法,其特征在于,還具備信號(hào)量生成步驟,在所述對(duì)應(yīng)表管理步驟沒(méi)能取得與包含在所述信號(hào)量操作命令中的符號(hào)相對(duì)應(yīng)地登記在所述符號(hào)/句柄對(duì)應(yīng)表中的信號(hào)量句柄的情況下,生成新的信號(hào)量結(jié)構(gòu)體以生成信號(hào)量,其中,所述對(duì)應(yīng)表管理步驟將用于識(shí)別由所述信號(hào)量生成步驟生成的信號(hào)量的符號(hào)與包含在所述信號(hào)量操作命令中的符號(hào)相對(duì)應(yīng)地登記在所述符號(hào)/句柄對(duì)應(yīng)表中。
3.一種信號(hào)量管理程序,使計(jì)算機(jī)執(zhí)行權(quán)利要求
1或2所述的信號(hào)量管理方法。
4.一種信號(hào)量管理媒體,使計(jì)算機(jī)執(zhí)行權(quán)利要求
3所述的信號(hào)量管理方法,其特征在于,還具備信號(hào)量生成步驟,在所述對(duì)應(yīng)表管理步驟沒(méi)能取得與包含在所述信號(hào)量操作命令中的符號(hào)相對(duì)應(yīng)地登記在所述符號(hào)/句柄對(duì)應(yīng)表中的信號(hào)量句柄的情況下,生成新的信號(hào)量結(jié)構(gòu)體以生成信號(hào)量,其中,所述對(duì)應(yīng)表管理步驟將用于識(shí)別由所述信號(hào)量生成步驟生成的信號(hào)量的符號(hào)與包含在所述信號(hào)量操作命令中的符號(hào)相對(duì)應(yīng)地登記在所述符號(hào)/句柄對(duì)應(yīng)表中。
專利摘要
本發(fā)明提供了一種信號(hào)量管理方法和信號(hào)量管理程序,可以使用資源的符號(hào)來(lái)操作信號(hào)量,而無(wú)需在任務(wù)內(nèi)管理信號(hào)量句柄。對(duì)應(yīng)表管理部件(81)從與資源(7)的符號(hào)名相對(duì)應(yīng)地登記有管理該資源(7)的信號(hào)量的信號(hào)量句柄的符號(hào)/句柄對(duì)應(yīng)表(4)中,取得與任務(wù)(5)發(fā)出的信號(hào)量操作命令中包含的符號(hào)相對(duì)應(yīng)的信號(hào)量句柄,在信號(hào)量操作命令為信號(hào)量獲得命令的情況下,信號(hào)量獲得處理部件(83)取得所取得的信號(hào)量句柄所表示的信號(hào)量,并將由所取得的信號(hào)量管理的資源(7)分配給發(fā)出命令的任務(wù)(5),在信號(hào)量操作命令為信號(hào)量釋放命令的情況下,信號(hào)量釋放處理部件(84)釋放由所取得的信號(hào)量句柄表示的信號(hào)量,并從發(fā)出命令的任務(wù)(5)釋放由該信號(hào)量管理的資源(7)。
文檔編號(hào)G06F9/52GK1991767SQ200610094654
公開(kāi)日2007年7月4日 申請(qǐng)日期2006年6月20日
發(fā)明者南角茂樹(shù), 井上禎一郎, 平松宙祥 申請(qǐng)人:三菱電機(jī)株式會(huì)社導(dǎo)出引文BiBTeX, EndNote, RefMan