專利名稱:競爭仲裁裝置、競爭仲裁方法及競爭仲裁程序的制作方法
技術領域:
本發明涉及在多個應用程序起動的計算機系統內使用的裝置及方法,特別是涉及在多個應用程序對訪問對象同時進行訪問時對產生的競爭進行仲裁用的裝置及方法。
背景技術:
通常,一個計算機系統中執行的一個應用程序,是通過控制揚聲器或MIDI(Musical Instruments Digital Interface,樂器數字接口)物理設備、SDSP(SoundDigital Signal Processor,聲音數字信號處理器)物理設備等多種物理設備的動作,來控制整個計算機系統的工作,進行所希望的處理。但是,在多個應用程序起動的計算機系統內,在二個以上(含二個)的應用程序同時想要訪問一個物理設備時,訪問請求產生沖突。在訪問請求發生沖突時,物理設備不按照所希望的那樣動作。
下面將這樣的二個以上(含二個)的應用程序同時想要訪問一個物理設備的狀態稱為競爭。若發生競爭,則應用程序不能按照所希望的那樣來控制計算機系統的工作。因而,在多個應用程序起動的計算機系統內,就必須控制從各應用程序起動的計算機系統內,就必須控制從各應用程序向物理設備的訪問請求,使其不發生競爭。下面將這樣的對于從各應用程序向物理設備的訪問請求進行的控制稱為競爭仲裁。以往,關于競爭仲裁的方法提出了各種各樣的方案。
例如,作為競爭仲裁用的方法,提出了采用排他控制標識符的方法(例如參照日本專利特開號公報)。在該方法中,預先由執行應用程序的計算機分配排他控制標識符。在某應用程序訪問公用的物理設備時,執行該應用程序的計算機匯總其它的計算機分配的排他控制標識符。然后,匯總了全部排他控制標識符的計算機獲得排他控制權,能夠訪問公用的物理設備。
另外,提出了對在一個計算機系統內同時多線程請求訪問存儲數據及目標時產生的訪問競爭進行仲裁用的方法(例如參照日本專利特開平10-187527號公報)。在該方法中,是通過競爭處理來訪問競爭進行仲裁。
另外,提出了在一個計算機系統內通過設置進行競爭仲裁的專用控制設備來進行競爭仲裁的方法(例如參照日本專利特開號公報)。在該方法中,控制設備根據賦予訪問請求的優先級來進行競爭仲裁。
另外,還提出一種方法,是在對一個控制對象設備給予多個控制命令時,該控制對象設備根據規定的條件,選擇某一個控制命令,通過這樣來進行競爭仲裁(例如參照日本專利特開號公報)。
但是,在以往的競爭仲裁方法中,在一個計算機系統內進行競爭仲裁時,是僅以實際存在的物理設備位單位進行競爭仲裁的。因此,在實際上雖然是一個物理設備,但在某種條件下,在采用從多個應用程序能夠同時訪問的那樣的物理設備時,或者在采用從多至規定數量的應用程序允許同時訪問的那樣的允許多重訪問的物理設備時,若采用以往的競爭仲裁方法進行競爭仲裁,則不能充分發揮物理設備的特性。
另外,像揚聲器物理設備那樣,它是與其它物理設備通過布線連接的物理設備。它作為單體,當不具有I/O接口的物理設備在多個物理設備之間公用那樣的情況下,若采用以往的競爭仲裁方法進行競爭仲裁,則各應用程序一面參照狀態轉移表,一面為了不同時訪問該物理設備,只有依靠自己的判斷來避免競爭。因此,競爭仲裁就變成與應用程序本身的工作及物理設備之間的連接構成有關。另外,隨著物理設備數量增加,各應用程序必須更新狀態轉移表,就難以進行競爭仲裁。
這樣,已有的競爭仲裁方法不能充分發揮物理設備的特性,而且難以適應物理設備的構成變化,缺乏靈活性。
發明內容
因此,本發明的目的在于提供能夠充分發揮物理設備的特性,而且能夠靈活適應物理設備的構成變化的競爭仲裁裝置及競爭仲裁方法。
為了解決上述問題,本發明的第一種具有以下的特征。本發明是對多個應用程序希望同時使用至少一個物理設備時發生的競爭進行仲裁用的競爭仲裁裝置,包含存儲表示定義物理設備所具有的功能的至少一個資源和允許使用與該資源對應的功能的至少一個應用程序之對應關系的資源信息的資源信息存儲手段;存儲表示在希望使用物理設備時定義由應用程序指定的功能的邏輯設備和為了實現由該邏輯設備定義的功能而定義了必需的功能的至少一個資源之對應關系的設備信息的設備信息存儲手段;在根據應用程序指定邏輯設備時,參照設備信息來識別與邏輯設備對應的資源的使用資源識別手段;參照資源信息,對于由使用資源識別手段識別的資源,判斷允許使用的應用程序的資源訪問判斷手段;以及根據資源訪問判斷手段的判斷結果,判斷指定邏輯設備的應用程序是否能夠使用實現由該邏輯設備定義的功能的物理設備的設備訪問判斷手段。
最好是對資源信息附加表示是否能夠允許多個應用程序同時使用的多重訪問信息,資源訪問判斷手段根據多重訪問信息,在允許多個應用程序同時使用時,對于資源則對多個應用程序允許使用。
這時,資源訪問判斷手段僅在滿足規定條件的情況下,對多個應用程序允許使用。
例如,規定條件最好是應用程序使用由資源提供的功能的條件,或在多個應用程序之間全部通用的條件。
最好還具有在利用設備訪問判斷手段判斷為指定邏輯設備的應用程序能夠使用物理設備時,使控制物理設備用的設備驅動程序執行的執行手段。
例如,執行手段最好在利用訪問判斷手段判斷為指定邏輯設備的應用程序不能使用物理設備時,對應用程序通知出錯消息。
最好是資源訪問判斷手段根據應用程序的優先級,判斷允許使用的應用程序。
再有,最好具有存儲與應用程序優先級有關的信息的應用程序信息存儲手段。
另外,也可以對資源信息附加有關每個資源對先提出訪問請求的應用程序予以允許使用還是對隨后提出訪問請求的應用程序予以允許使用的先行信息,資源訪問判斷手段在應用程序的優先級相同時,根據先行信息,判斷允許使用的應用程序。
最好還具有將根據設備訪問判斷手段的判斷結果與應用程序對應,作為應用程序信息存儲的應用程序信息存儲手段,設備訪問判斷手段還具有在根據由應用程序最初指定邏輯設備而有訪問開始請求時判斷是否能夠使用物理設備并將判斷結果存入應用程序信息存儲手段,而在訪問開始請求之后有訪問請求對參照存入應用程序信息存儲手段的應用程序信息判斷應用程序是否能夠使用物理設備的執行手段。
例如,執行手段也可以在不能使用物理設備的應用程序有訪問請求時,對該應用程序通知出錯消息。
另外,執行手段也可以在一旦允許使用物理設備后而不能使用該物理設備的應用程序有訪問請求時,對該應用程序通知出錯消息。
最好資源訪問判斷手段在從應用程序接受了結束請求時,對希望使用與資源對應的功能的其它應用程序予以允許使用,并更新資源信息以反映允許的結果,設備訪問判斷手段根據利用資源訪問判斷手段更新的資源信息,判斷其它應用程序是否能夠使用物理設備。
再有,也可以還具有使設備訪問判斷手段的判斷結果與應用程序對應作為應用程序信息存儲的應用程序信息存儲手段、以及根據設備訪問判斷手段的判斷結果更新應用程序信息的執行手段。
再有,也可以具有在利用設備訪問判斷手段判斷為其它應用程序能夠使用物理設備時,對設備驅動程序改變設定,以使得其它應用程序能夠訪問的執行手段。
最好設備訪問判斷手段也可以僅在對于與邏輯設備對應的全部資源,允許使用與該全部資源對應的功能的應用程序是指定全部邏輯設備的應用程序時,判斷為應用程序能夠使用物理設備。
最好設備訪問判斷手段也可以在與邏輯設備對應的資源內,與一部分資源對應的應用程序是指定全部邏輯設備的應用程序時,判斷為通過應用程序訪問物理設備能夠使用由一部分資源定義的功能。
再有,也可以具有從應用程序接受邏輯設備指定的應用程序I/F手段。
例如,也可以對資源信息附加有關每個資源對先提出訪問請求的應用程序予以允許使用還是對隨后提出訪問請求的應用程序予以允許使用的先行信息,資源訪問判斷手段根據先行信息,判斷允許使用的應用程序。
另外,本發明的第二種是為了對多個應用程序希望同時使用至少一個物理設備時發生的競爭進行仲裁而使計算機裝置具有這種功能用的程序,在計算機裝置中,存儲表示定義物理設備所具有的功能的至少一個資源和允許使用與該資源對應的功能的至少一個應用程序之對應關系的資源信息、以及表示在希望使用物理設備時定義由應用程序指定的功能的邏輯設備和為了實現由該邏輯設備定義的功能而定義了必需的功能的至少一個資源之對應關系的設備信息,具有在根據應用程序指定邏輯設備時,參照設備信息使計算機裝置識別與邏輯設備對應的資源的步驟;參照資源信息對識別的資源,使計算機判斷允許使用的應用程序的步驟;以及根據允許使用的應用程序的判斷結果,使計算機判斷指定邏輯設備的應用程序是否能夠使用實現由該邏輯設備定義的功能的物理設備的步驟。
另外,本發明的第三種是利用計算機裝置對多個應用程序希望同時使用至少一個物理設備時發生的競爭進行仲裁用的方法,在計算機裝置中,存儲表示定義物理設備所具有的功能的至少一個資源和允許使用與該資源對應的功能的至少一個應用程序之對應關系的資源信息、以及表示在希望使用物理設備時定義由應用程序指定的功能的邏輯設備和為了實現由該邏輯設備定義的功能而定義了必需的功能的至少一個資源之對應關系的設備信息,具有在根據應用程序指定邏輯設備時,參照設備信息,計算機裝置識別與邏輯設備對應的資源的步驟;參照資源信息,對識別的資源,計算機判斷允許使用的應用程序的步驟;以及根據允許使用的應用程序的判斷結果,計算機判斷指定邏輯設備的應用程序是否能夠使用實現由該邏輯設備定義的功能的物理設備的步驟。
采用上述本發明,競爭仲裁裝置將由應用程序指定的邏輯設備及實際存在的物理設備分離成與物理設備及邏輯設備相對應的資源,對物理設備的功能及應用程序所希望的功能進行管理,以資源為單位對于從應用程序向物理設備的訪問進行競爭仲裁。因而,即使設物理設備的構成發生變化,由于只要改變競爭仲裁裝置內的資源信息及設備信息即可,因此能夠提供可以靈活適應物理設備構成變化的競爭仲裁裝置及競爭仲裁方法。再有,由于將物理設備的功能分割成以資源為單位進行競爭仲裁,因此即使設物理設備有各種各樣的特性,也功能提供可以充分完全發揮其特性的競爭仲裁裝置及競爭仲裁方法。
另外,在若是某一上限數量以內則允許多重訪問那樣的情況下,或者若滿足某種條件則允許多重訪問那樣的情況下,競爭仲裁裝置能夠對多個應用程序賦予訪問權。這樣競爭仲裁裝置能夠充分完全發揮物理設備的特性來進行競爭仲裁。
另外,即使在雖然與其它物理設備通過布線連接,但單體不具有I/O接口的物理設備在多個設備之間公用那樣的情況下,競爭仲裁裝置也能夠對訪問該物理設備進行競爭仲裁。
又提供這樣的結構,即在應用程序提出訪問請求時,若能夠訪問則執行該設備驅動程序程序,若不能訪問則向應用程序返回出錯消息。因而應用程序只要考慮在提出請求訪問時應付出錯消息即可。這樣的系統對于應用程序開發者來說,能夠減輕開發負擔。
另外,通過采用賦予應用程序的優先級來進行競爭仲裁,就允許從優先級高的應用程序開始按順序對物理設備進行訪問。特別是允許多重訪問的物理設備中,能夠從優先級更高的開始進行訪問,能夠進行與優先級相應的復雜的排他控制。
另外,由于應用程序是否能夠對物理設備進行訪問將登錄在應用程序信息內,因此每次有訪問請求時,都不需要判斷是否能夠訪問,所以處理能實現高速化。
再有,在由于其它的應用程序的訪問請求剝奪了對物理設備的訪問權時,若訪問權被剝奪之前的應用程序在下一次進行訪問請求之前,再一次成為對該物理設備能夠訪問,則該應用程序不知道一度成為不能訪問這樣的事實,能夠不進行特別的處理而繼續對物理設備進行訪問。
另外,在采用通過同時控制多個物理設備來實現所希望的功能這樣的應用程序時,為了實現該所希望的處理,必須允許對該多個物理設備進行訪問。如本發明那樣,若以資源為單位來管理訪問權,則執行在全部物理設備能夠訪問時所需要的設備驅動程序,能夠實現所希望的功能。另外,在即使有一個不能訪問時,競爭仲裁裝置能夠對應用程序通知出錯消息。
反之,即使不能對全部物理設備進行訪問,在只要能夠執行所希望的功能的一部分也可以的情況下,競爭仲裁裝置也能夠執行設備驅動程序,使得應用程序能夠執行該希望的功能的一部分。
關于本發明的這些內容及其他的目的、特征、方面及效果,參照附圖并根據以下的詳細說明將進一步更加清除。
圖1為本發明一實施形態的競爭仲裁裝置的計算機系統整體構成方框圖。
圖2為應用程序、邏輯設備、資源與物理設備的對應關系例子的示意圖。
圖3為應用程序、邏輯設備、資源與物理設備的對應關系例子的示意圖。
圖4為應用程序、邏輯設備、資源與物理設備的對應關系例子的示意圖。
圖5為競爭仲裁裝置1的功能構成方框圖。
圖6為應用程序信息存儲單元12中存儲的應用程序信息的一個例子。
圖7為設備信息的一個例子。
圖8為資源信息的一個例子。
圖9為從應用程序有訪問開始請求時的競爭仲裁裝置1的工作流程圖。
圖10為步驟S104的資源訪問判斷單元15的詳細工作流程圖。
圖11為從應用程序有訪問請求時的競爭仲裁裝置1的工作流程圖。
圖12為從應用程序有訪問結束請求時的競爭仲裁裝置1的工作流程圖。
圖13為步驟S403的資源訪問判斷單元15的詳細工作流程圖。
圖14為即使在不能使用邏輯設備使用的全部資源的情況下,也使得應用程序能夠僅使用能夠使用的資源時的競爭仲裁裝置的工作流程圖。
具體實施例方式
圖1為本發明一實施形態的競爭仲裁裝置的計算機系統整體構成方框圖,在圖1中,計算機系統具有競爭仲裁裝置1、應用程序執行裝置2、多個物理設備3及設備驅動程序執行裝置4。另外,在圖1中,作為應用程序執行裝置2及設備驅動程序執行裝置4,雖然分別所示的僅各一個裝置,但也可以是多個裝置。另外,物理設備3的數量與連接關系不限定于圖1所示的情況。
圖1的計算機系統可以認為是移動電話等移動通信終端、PDA等移動終端、個人計算機等通信終端、連接多個通信終端的LAN系統、連接多臺數字家電的家庭內的LAN系統等使用計算機裝置的所有系統。
應用程序執行裝置2是執行應用程序用的計算機裝置,至少包含中央處理器(下面稱為“CPU”)及存儲裝置。應用程序執行裝置2將程序讀入存儲器,用CPU執行,以此執行應用程序。應用程序執行裝置2利用多任務功能,能夠同時執行多個應用程序。
物理設備3是輸入裝置及輸出裝置、輔助存儲裝置、通信裝置等硬件。作為輸入裝置的物理設備3,是例如按鈕開關、凹凸拔盤、鍵盤、鼠標器、控制桿及話筒等。作為輸出裝置的物理設備3,是例如揚聲器、液晶顯示器、陰極射線管、打印機、SDSP裝置及MIDI裝置等。另外,SDSP裝置是將應用程序具有的數字數據解碼后作為模擬聲音輸出用的裝置。作為輔助存儲裝置的物理設備3,是硬盤裝置、光盤裝置、CD-ROM驅動裝置及DVD驅動裝置等。作為通信裝置的物理設備3,是調制解調器、DSU及LAN卡等。
設備驅動程序執行裝置4是執行控制物理設備3的動作用的軟件(下面稱為“設備驅動程序”)用的計算機裝置,至少包含CPU及存儲裝置。
競爭仲裁裝置1是對應用程序執行裝置2執行的應用程序訪問物理設備3時的競爭進行仲裁的裝置,至少包含CPU及存儲裝置。競爭仲裁裝置1在從應用程序有想要開始使用物理設備3的請求時,進行競爭仲裁。然后,競爭仲裁裝置1使設備驅動程序執行裝置4執行設備驅動程序,以使得該應用程序能夠使用該物理設備3。通過這樣,應用程序能夠使用所希望的物理設備3。
另外,在上面所述中為了便于理解說明,假設競爭仲裁裝置1、應用程序執行裝置2及設備驅動持程序執行裝置4是分別獨立構成的,但也可以采用公用的CPU及/或存儲裝置,使其利用多任務處理,通過軟件構成上述各部分。另外,競爭仲裁裝置1、應用程序執行裝置2及設備驅動程序執行裝置4也可以分別用專用的LSI通過硬件來實現,也可以用通用的CPU來執行專用程序,以通過軟件來實現。
在本實施形態中,物理設備3的功能可以從物理設備一方及應用程序一方這兩方面的觀點來定義。
首先,說明從物理設備一方的觀點來定義的物理設備3的功能。各物理設備3分別具有特定的功能。在本實施形態中,競爭仲裁裝置1利用構件來定義由物理設備提供的功能。在本實施形態中,將該構件稱為資源。物理設備由于至少提供一個以上的功能,因此對于一個物理設備,至少對應于一個以上的資源。
下面說明從應用程序一方的觀點來定義的物理設備3的功能。各應用程序通過控制物理設備3的工作,希望實現所希望的功能,在本實施形態中,競爭仲裁裝置1利用構件來定義應用程序所希望的功能。在本實施形態中,將該構件稱為邏輯設備。應用程序所希望的功能通過至少一個以上的物理設備工作來實現。由于物理設備3的功能利用至少一個以上的資源來定義,因此應用程序所希望的功能由一個以上的資源來提供。亦即對于邏輯設備,對應于一個以上資源。
本發明的最大特征在于,引入所謂邏輯設備及資源的概念,用邏輯設備及資源來進行競爭仲裁。
應用程序在想要對物理設備通過電信號實際進行訪問以實現所希望的功能時,對于競爭仲裁裝置1,指定邏輯設備,讓它進行競爭仲裁。競爭仲裁裝置1以資源為單位,對應用程序是否能夠訪問物理設備進行管理。競爭仲裁裝置1識別與邏輯設備對應的資源,判斷對于識別的資源,是否對應用程序賦予訪問權。在賦予訪問權的情況下,競爭仲裁裝置1執行設備驅動程序,使得該應用程序能夠訪問物理設備。
圖2~圖4所示為應用程序、邏輯設備、資源與物理設備的對應關系例子的示意圖。下面參照圖2~圖4說明本實施形態的簡要情況。
在圖2中,作為物理設備所示的例子是使用SDSP物理設備、揚聲器物理設備及MIDI物理設備的例子。在圖2中,具有I/O接口的物理設備假設是SDSP物理設備及MIDI物理設備。揚聲器物理設備假設與SDSP物理設備及MIDI物理設備通過布線連接,而不具有I/O接口。
因此,應用程序不能僅控制揚聲器物理設備。再有,揚聲器物理設備是由SDSP物理設備及MIDI物理設備公用,因此在應用程序A1訪問SDSP物理設備時,應用程序A2不能訪問MIDI物理設備。另外,也可能出現相反的情況。
這樣,在多個應用程序希望同時對SDSP物理設備及MIDI物理設備進行訪問時,對于從應用程序看不到的揚聲器物理設備來說,就發生訪問競爭。為了避免該訪問競爭,以往必須在應用程序之間進行仲裁。因此,根據以往的方法,隨著應用程序或設備的種類的增加,則仲裁將難以進行。但是,在本發明中,由于利用資源來定義物理設備提供的功能,以資源為單位進行競爭仲裁,因此在應用程序之間不需要仲裁,即使應用程序或設備的種類增加,也容易進行仲裁。
在圖2中,與SDSP物理設備對應的資源是SDSP資源。與揚聲器物理設備對應的資源是揚聲器資源。與MIDI對應的資源是MIDI資源。定義SDSP功能的SDSP邏輯設備需要SDSP資源及揚聲器資源。定義MIDI功能的MIDI邏輯設備需要MIDI資源及揚聲器資源。
應用程序能夠訪問邏輯設備需要的條件,是對于邏輯設備所需要的全部資源要,對該應用程序賦予訪問權。在本實施形態中,對一個個的資源的訪問權是根據應用程序的優先級來決定的。另外,也可以根據先行或后行等來決定。
例如,在圖2中,假設這樣的情況,即應用程序A1希望訪問SDSP邏輯設備,而應用程序A2希望訪問MIDI邏輯設備。這里,在應用程序A1與應用程序A2之間,假設應用程序A2的優先級較高。在這種情況下,由于只有應用程序A1希望對SDSP資源進行訪問,因此應用程序A1取得SDSP資源的訪問權。同樣,由于只有應用程序A2希望對MIDI資源進行訪問,因此應用程序A2取得MIDI資源的訪問權。
由于應用程序A1與應用程序A2的兩者所希望的邏輯設備都需要揚聲器資源,因此發生競爭。在這里,由于假設應用程序A2的優先級較高,因此應用程序A2能夠取得揚聲器資源的訪問權。然后,由于應用程序A2在訪問對象的MIDI邏輯設備所需要的全部資源中取得訪問權,因此應用程序A2能夠對MIDI物理設備及揚聲器設備進行訪問。另外,由于應用程序A1在訪問對象的SDSP邏輯設備所需要的資源中不能取得對于揚聲器資源的訪問權,因此不能對SDSP物理設備及揚聲器設備進行訪問。
在圖3中,作為物理設備所示的例子是線路物理設備。在圖3中,物理設備只存在一個。但是實際上允許多重訪問,采用同時能夠使用多至三條的線路的適合多調用的線路物理設備。在這種情況下,應用程序的訪問對象即邏輯設備及線路物理設備雖然只有一個,但線路資源定義了三個。線路邏輯設備最低限度需要一個線路資源。
例如,在圖3中,假設是應用程序A1、A2、A3及A4都希望對線路邏輯設備進行訪問的情況。在這里,假設優先級是按照應用程序A1、應用程序A2、應用程序A3及應用程序A4的順序由高到低。即,假設應用程序A1具有最高的優先級。
首先,若應用程序A1希望對線路邏輯設備進行訪問,則應用程序A1在有三個線路資源中取得第一個線路資源32的訪問權。接著,若應用程序A2希望對線路邏輯設備進行訪問,則應用程序A2取得第二個線路資源33的訪問權。然后,若優先級最低的應用程序A4希望對線路邏輯設備進行訪問,則應用程序A4取得第三個線路資源34的訪問權。
在這樣的情況下,若優先級比應用程序A4要高的應用程序A3希望對線路邏輯設備進行訪問,則競爭仲裁裝置1比較應用程序A4與應用程序A3的優先級。在上述的例子中,由于應用程序A3的優先級高,因此應用程序A4對第三個線路資源34不能訪問。然后,應用程序A3取得對線路資源34的訪問權。結果,應用程序A1、A2及A3能夠對線路邏輯設備進行訪問。
在圖4中,作為物理設備所示的例子是采用SDSP物理設備的例子。在這里,設想SDSP物理設備是允許多重訪問的物理設備。還假設圖2所示的不允許多重訪問的SDSP物理設備與圖4所示的允許多重訪問的SDSP物理設備能夠在一個計算機裝置內共存。在圖4中,物理設備只存在一個。在該SDSP物理設備中,假設能夠同時使用錄音功能及重放功能。在這種情況下,應用程序的訪問對象邏輯設備是SDSP錄音邏輯設備及SDSP重放邏輯設備的這兩個邏輯設備。資源是表示編碼譯碼器功能的SDSP編碼譯碼器資源、表示錄音功能的SDSP錄音資源及表示重放功能的SDSP重放資源的三個資源。再有,SDSP編碼譯碼器資源在編碼譯碼器相同時,能夠同時使用錄音功能及重放功能。因此,SDSP編碼譯碼器資碼不考慮存在二個,通過使其具有編碼譯碼器信息作為附加信息,認為僅存在一個,認為允許多重訪問。
在這樣的情況下,在存在多個希望對SDSP物理設備進行訪問的應用程序時,競爭仲裁裝置1對SDSP編碼譯碼器資源設定優先級最高的應用程序的編碼譯碼器若與設定為優先級低的應用程序的編碼譯碼器的編碼譯碼器相同,則競爭仲裁裝置1對于優先級低的應用程序也賦予對SDSP編碼譯碼器資源的訪問權。
例如,假設在圖4中應用程序A1及Aa2希望對SDSP錄音邏輯設備進行訪問,應用程序A3希望對SDSP重放邏輯設備進行訪問。假設優先級是按照應用程序A1、應用程序A2及應用程序A3的順序由高到低。亦即應用程序A1具有最高的優先級。另外,假設應用程序A1、A2及A3都希望以相同的編碼譯碼器X進行訪問。
首先,若應用程序A1希望對SDSP錄音邏輯設備進行訪問,則應用程序A1取得SDSP編碼譯碼器資源的訪問權,設定SDSP編碼譯碼器資源內的編碼譯碼器為X。另外,應用程序A1對SDSP錄音資源也取得訪問權。然后,若應用程序A2希望對SDSP錄音邏輯設備進行訪問,則應用程序A2由于具有與優先級高的A1相同的編碼譯碼器,因此雖能夠取得對SDSP編碼譯碼器資源的訪問權,但對于SDSP錄音資源,由于與A1進行競爭,因此不能取得訪問權。
接著,假設應用程序A3希望對SDSP重放邏輯設備進行訪問。應用程序A3由于具有與優先級高的A1相同的編碼譯碼器,因此能夠取得對SDSP編碼譯碼器資源的優先權。還有,應用程序A3由于對SDSP重放資源不發生競爭,因此能夠取得訪問權。
結果,應用程序A1及A3對于訪問對象邏輯設備所需要的全部資源都能夠訪問。因此,應用程序A1及A3能夠分別對SDSP錄音邏輯設備及SDSP重放邏輯設備進行訪問。另外,應用程序A2由于不能取得SDSP錄音資源的訪問權,因此不能對SDSP錄音邏輯設備進行訪問。
圖5所示為競爭仲裁裝置1的功能構成方框圖。在圖5中,競爭仲裁裝置1包含應用程序IF單元11、應用程序信息存儲單元12、使用資源識別單元13、資源信息存儲單元14、資源訪問判斷單元15、設備訪問判斷單元16、執行單元17及設備信息存儲單元18。圖5所示的全部功能單元可以利用使具有通用CPU的計算機裝置實現功能的程序集中來實現,也可以利用專用的LSI集中來實現。另外,各功能單元可以分別利用使通用的CPU執行的程序來實現,也可以利用專用的LSI來實現。另外,同樣也可以實現多個功能單元的組合。
應用程序IF單元11從應用程序接收想要開始使用物理設備3的請求(下面稱為“訪問開始請求”)。訪問開始請求中指定該應用程序的應用ID、該應用程序想要使用的邏輯設備名稱(下面稱為“訪問對象邏輯設備名”)、以及該應用程序的優先級。優先級可以預先對每個應用程序進行設定,也可以是OS后來對應用程序設定的,還可以是應用程序本身識別其它的應用程序種類后自己設定的。
接收了訪問開始請求的應用程序IF單元11與識別應用程序用的ID(下面稱為“應用ID”)相對應,將用該訪問開始請求指定的訪問對象邏輯設備名及優先級存入應用程序信息存儲單元12。另外,接收了訪問開始請求的應用程序IF單元11對使用資源識別識別單元13,使其識別用該訪問開始請求指定的訪問對象邏輯設備所使用的資源。
在有訪問開始請求后,應用程序IF單元11從應用程序接收想要對物理設備3進行訪問的請求(下面稱為“訪問請求”)。訪問請求中指定應用ID、訪問對象邏輯設備名、以及該應用程序的優先級。接收了訪問請求的應用程序IF單元11將該訪問請求的內容通知執行單元17,從執行單元17接收表示該應用程序是否能夠對該邏輯設備進行訪問的信息。在接受了表示能夠訪問的信息時,應用程序IF單元11將對該訪問對象邏輯設備是能夠訪問的情況通知該應用程序。另一方面,在從執行單元17接受了表示不能訪問的信息時,應用程序IF單元11將對該訪問對象邏輯設備不能訪問的情況通知該應用程序。
在有訪問請求后,應用程序IF單元11從應用程序接收想要結束對物理設備3的訪問的請求(下面稱為“訪問結束請求”)。接收了訪問結束請求的應用程序IF單元11對使用資源識別單元13發出指示,令其放掉該應用程序保持的訪問權。
應用程序信息存儲單元12對每個應用程序存儲應用程序信息。這里,應用程序信息由對應的應用程序的優先級、對應的應用程序的訪問對象邏輯設備名、以及表示與訪問對象邏輯設備對應的應用程序是否能夠訪問的信息(下面稱為“訪問可否信息”)構成。
圖6所示為信息程序信息存儲單元12存儲的應用程序信息的一個例子。如圖6所示,在應用程序信息存儲單元中,與應用ID相對應存儲優先級、訪問對象邏輯設備名及訪問可否信息。例如,應用ID為“1”的應用程序的優先級為“1”,訪問對象邏輯設備名為“SDSP邏輯設備”,訪問可否信息為“可以”。另外,在這里訪問對象邏輯設備名也可以用標識ID來表示。訪問可否信息也可以用標記來表示。
設備信息存儲單元18保持有表示邏輯設備與該邏輯設備所需要的資源之關系的設備信息。圖7所示為設備信息的一個例子。如圖7所示,用設備信息指定與邏輯設備名對應的資源名。例如,在SDSP邏輯設備中指定SDSP資源及揚聲器資源。一個邏輯設備中所需要的資源可以是一個,也可以是多個。
使用資源識別單元13若從應用程序IF單元11得到訪問開始請求的通知,則參照設備信息存儲單元18中存儲的設備信息,識別訪問對象邏輯設備所需要的資源。使用資源識別單元13將識別的資源、希望使用該訪問對象邏輯設備的應用程序的應用ID、該訪問對象邏輯設備、以及該應用程序的優先級,通知資源訪問判斷單元15及設備訪問判斷單元16。在一個邏輯設備所需要的資源是多個時,使用資源識別單元13可以將多個資源名同時通知資源訪問判斷單元15,也可以一個一個依次通知。
資源信息存儲單元14存儲資源信息。這里的所謂資源信息,指的是對每一資源預先指定具有訪問權的應用程序用的信息。圖8所示為資源信息的一個例子。如圖8所示,在資源信息中與資源名相對應,登錄了具有對該資源的訪問權的應用程序的應用ID。例如,在圖8中,具有對SDSP資源的訪問權的應用程序的應用ID為“1”。另外,對未設定訪問權的資源,登錄了“NULL”。資源信息存儲單元14中存儲的資源信息利用資源訪問判斷單元15,在判斷為保持對資源的訪問權的應用程序改變時進行更新。
資源訪問判斷單元15從資源信息存儲單元14讀出與使用資源識別單元13通知的資源有關的資源信息,判斷已經取得訪問權的應用程序。資源訪問判斷單元15在已經取得訪問權的應用程序存在情況下,在該應用程序與提出訪問開始請求的應用程序之中,根據應用程序信息存儲單元12中存儲的應用程序的優先級,判斷哪一個的優先級高。資源訪問判斷單元15在根據判斷的結果是取得訪問權的應用程序改變時,更新資源信息存儲單元14中的資源信息內容。
設備訪問判斷單元16根據使用資源識別單元13檢測出的資源及資源信息存儲單元14中存儲的資源信息,判斷提出訪問開始請求的應用程序對于訪問對象邏輯設備使用的全部資源是否取得訪問權,并將該信息通知執行單元17。設備訪問判斷單元16在對全部資源取得訪問權時,決定能夠由該應用程序對該邏輯設備進行訪問。
執行單元17從設備訪問判斷單元16接受表示是否能夠對邏輯設備進行訪問的信息。執行單元17根據接受的信息,更新應用程序存儲單元12中存儲的應用程序信息的訪問可否信息。另外,執行單元17若從應用程序IF單元11得到訪問請求的通知,則參照應用程序信息存儲單元12,判斷該應用程序是否能夠對作為訪問對象的邏輯設備進行訪問。在能夠訪問時,執行單元17使設備驅動程序執行裝置4執行與該邏輯設備對應的設備驅動程序,將表示是能夠訪問的信息送給應用程序IF單元。另外,在不能訪問時,執行單元17對應用程序IF單元11送出表示是不能訪問的信息。
下面詳細說明競爭仲裁裝置1的工作。首先,在具有競爭仲裁裝置1的計算機系統中,應用程序在想要使用物理設備3時,將訪問開始請求通知競爭仲裁裝置1。在實際上想要使用物理設備3時,應用程序將訪問請求通知競爭仲裁裝置1。最后,在想要結束對物理設備3進行訪問時,應用程序將訪問結束請求通知競爭仲裁裝置1。
圖9所示為從應用程序有訪問開始請求時的競爭仲裁裝置1的工作流程圖。下面參照圖9說明從應用程序有訪問開始請求時的競爭仲裁裝置1的工作。
首先,應用程序IF單元從應用程序接收訪問開始請求(步驟S101)。下面將提出訪問開始請求的應用程序稱為應用程序AP1。另外,將該訪問開始請求中的訪問對象邏輯設備稱為邏輯設備DEV1。如上所述,在該訪問開始請求中還指定應用程序的優先級。
然后,應用程序IF單元從根據接收的訪問開始請求,將應用程序AP1的應用程序信息登錄在應用程序信息存儲單元12。另外,應用程序IF單元11將用訪問開始請求所指定的應用ID、訪問對象邏輯設備名及優先級提供給使用資源識別單元13、通知有了訪問開始請求(步驟S102)。另外,在該階段中,應用程序信息存儲單元12中的與應用程序AP1對應的訪問可否信息是空白。
然后,使用資源識別單元13參照設備信息存儲單元18中存儲的設備信息,取得由應用程序IF單元11通知的訪問對象邏輯設備DEV1使用的資源名,并通知資源訪問判斷單元15及設備訪問判斷單元16(步驟S103)。這時,在訪問對象邏輯設備DEV1使用的資源是多個的情況下,使用資源識別單元13將全部資源名通知資源訪問判斷單元15及設備訪問判斷單元16。
然后,資源訪問判斷單元15參照資源信息存儲單元14及應用程序信息存儲單元12,對于由使用資源識別單元13通知的全部資源,判斷提出訪問開始請求的該應用程序是否能夠取得訪問權,并使該判斷結果反映在資源信息存儲單元14及應用程序信息存儲單元12(步驟S104)。步驟S104中的處理將在后面詳細敘述。
然后,設備訪問判斷單元16參照資源信息存儲單元14中存儲的資源信息,判斷應用程序AP1是否具有與訪問對象邏輯設備DEV1所需要的全部資源有關的訪問權(步驟S105)。
在具有與全部資源有關的訪問權的情況下,設備訪問判斷單元16將該情況通知執行單元17。與此相應,執行單元17更新應用程序信息存儲單元12的登錄內容,使得與應用程序AP1相對應的訪問可否信息變為“可以”(步驟S106)。然后,執行單元17使設備驅動程序執行裝置4執行與訪問對象邏輯設備DEV1有關的設備驅動程序(步驟S107),并結束處理。
另一方面,在不具有與全部資源有關的訪問權的情況下,設備訪問判斷單元16將該情況通知中心單元17。與此相應,執行單元17更新應用程序信息存儲單元12的登錄內容,使得與應用程序AP1相對應的訪問可否信息變為“不可”(步驟S108),并結束處理。
圖10所示為步驟S104的資源訪問判斷單元15的詳細工作流程圖。下面參照圖10說明步驟S104中的資源訪問判斷單元15的工作。
首先,資源訪問判斷單元15參照資源信息存儲單元14,對于訪問對象邏輯設備DEV1使用的資源,判斷是否存在多個同一名稱的資源(步驟S201)。例如,如圖8所示,作為同一名稱的資源有線路資源。
在存在多個的情況下,資源訪問判斷單元15對同一名稱的資源,判斷應用程序是否全部設定具有訪問權(步驟S202)。在全部設定時,資源訪問判斷單元15參照應用程序信息存儲單元12中存儲的應用程序信息,檢索對該資源設定訪問權的應用程序內優先級最低的應用程序(步驟S203),進入步驟S204的工作。這里,將優先級最低的應用程序稱為應用程序AP2。在沒有全部設定時,資源訪問判斷單元15進入步驟S208的工作。
在步驟S204中,資源訪問判斷單元15判斷該資源是否是允許多重訪問的資源。所謂允許多重訪問的資源是指允許從滿足規定的條件應用程序同時訪問那樣的資源。是否是允許多重訪問的資源是利用對資源信息附加的多重訪問信息(在圖8中未圖示)來表示的。
在是不允許多重訪問的資源的情況下,資源訪問判斷單元15進入步驟S206的工作。另一方面,在是允許多重訪問的資源的情況下,資源訪問判斷單元15判斷對該資源進行訪問的應用程序AP1的屬性與已經設定的資源屬性是否相同(步驟S205)。
這里,所謂屬性指定是表示應用程序怎樣利用資源的條件的信息。例如,作為屬性對于SDSP編碼譯碼資源有表示用怎樣的編碼譯碼的信息。該屬性與訪問開始請求一起,由應用程序來進行通知。在屬性是相同時,資源訪問判斷單元15進入步驟S208的工作,對該資源更新資源信息,使得對應用程序AP1及AP2賦與訪問權。另外,在屬性不相同時,資源訪問判斷單元15進入步驟S210的動作。這樣,在本實施形態中,在滿足屬性在提出訪問開始請求的全部應用程序之間是共同的這樣規定的條件時,資源訪問判斷單元15將資源信息進行登錄,以便能夠進行多重訪問。
另外,在允許多重訪問的應用程序的數量有上限時,在步驟S205中,資源訪問判斷單元15判斷是否超過該上限數,僅在不超過的情況下,進入步驟S208的工作,在超過的情況下,進入步驟S206的工作,將優先級最低的應用程序的優先級與應用程序AP1的優先級進行比較,對優先級高的應用程序設定訪問權。
在步驟S206中,資源訪問判斷單元15將提出訪問開始請求的應用程序AP1的優先級與應用程序AP2的優先級進行比較。然后,資源訪問判斷單元15根據比較的結果,判斷是否應用程序AP1的優先級較高(步驟S207)。在應用程序AP1的優先級較高時,資源訪問判斷單元15進入步驟S208的工作,更新資源信息,使得對優先級高的應用程序設定訪問權。然后,資源訪問判斷單元15設定應用程序信息存儲單元12中的與應用程序AP2有關的訪問可否信息,使其成為“不可”(步驟209),進入步驟S210的工作。另外,在應用程序AP1的優先級較低時,資源訪問判斷單元15進入步驟S210的工作。
另一方面,在步驟S201中,在判斷為不存在多個的情況下,即訪問對象邏輯設備DEV1使用的資源僅為一個,或者雖然使用的資源有多個,但分別各為一個時,資源訪問判斷單元15判斷是否存在對該資源的某一個取得訪問權的其它應用程序(步驟S211)。這里,將取得訪問權的其它應用程序稱為應用程序AP2。另外,是與步驟S203中的應用程序AP2不同的其它的應用程序。在分別為各一個的資源有多個時,雖然取得訪問權的應用程序有的情況下有多個,但這里首先對某一個資源進行以下的處理。
在步驟S211中,判斷為不存在時,資源訪問判斷單元15進入步驟S208的工作,更新資源信息,使得應用程序AP1取得訪問權。另外,在判斷為存在時,資源訪問判斷單元15參照應用程序信息存儲單元12,取得與該資源對應的應用程序的應用程序信息(步驟S212),進入步驟S204。
在步驟S210中,資源訪問判斷單元15對于訪問對象邏輯設備DEV1使用的全部資源,判斷上述資源信息及應用程序信息是否結束更新處理(步驟S210)。在未結束時,資源訪問判斷單元15返回步驟S201的工作。這時,資源訪問判斷單元15對于判斷過一次的資源,不進行步驟S201以后的判斷。另外,在結束時,競爭仲裁裝置1進行步驟S105以后的工作。
圖11所示為從應用程序有訪問請求時的競爭仲裁裝置1的工作流程圖。下面參照圖11說明從應用程序有訪問請求時的競爭仲裁裝置1的工作。
應用程序AP1在進行訪問請求前,進行訪問開始請求。在進行了訪問請求時,如上所述,應用程序AP1對于訪問對象邏輯設備DEV1的訪問可否信息登錄在應用程序信息存儲單元12中。在訪問請求時的工作中,采用由訪問開始請求所設定的應用程序信息進行處理。
首先,應用程序IF單元11從應用程序AP1接收訪問請求,并通知執行單元17(步驟S301)。然后,執行單元17參照應用程序信息存儲單元12(步驟S302)。
然后,執行單元17根據與應用程序AP1對應的訪問可否信息,判斷提出訪問請求的應用程序AP1是否設定為對于訪問對象邏輯設備DEV1能夠訪問(步驟S303)。
在設定為能夠訪問時,執行單元17使設備驅動程序執行單元4執行該設備驅動程序(步驟S304),并結束處理。
另一方面,在設定為不能訪問時,執行單元17將表示不能訪問意思的出錯消息通知應用程序IF單元11。與此相應,應用程序IF單元將不能訪問邏輯設備DEV1的情況通知應用程序AP1(步驟S305),并結束處理。
圖12所示為從應用程序有訪問結束請求時的競爭仲裁裝置1的工作流程圖。下面參照圖12說明從應用程序有訪問結束請求時的競爭仲裁裝置1的工作。
首先,應用程序IF單元從應用程序AP1接收訪問結束請求,將應用ID、訪問對象邏輯設備名及優先級傳送至使用資源識別單元13,將送來訪問結束請求的情況通知使用資源識別單元13(步驟S401)。
與此相應,使用資源識別單元13參照設備信息存儲單元18,取得該訪問對象邏輯設備DEV1所需要的資源名,通知資源訪問判斷單元15。與此相應,資源訪問判斷單元15從資源信息存儲單元14取得與該訪問對象邏輯設備所需要的資源所對應的資源信息(步驟S402)。
然后,資源訪問判斷單元15參照設備信息存儲單元18,識別使用在步驟S402中識別的資源的邏輯設備,并參照應用程序信息存儲單元12,識別雖然對該邏輯設備提出訪問開始請求但訪問可否信息為“不可”的應用程序。通過這樣,資源訪問判斷單元15對于在步驟S402中識別的全部資源,判斷除應用程序AP1以外的應用程序是否是雖然提出訪問開始請求但不能取得訪問權的狀況。在有不能取得訪問權的應用程序時,資源訪問判斷單元15則重寫資源信息存儲單元14的內容,對該應用程序設定訪問權(步驟S403)。關于步驟S403中的處理,將在后面詳細敘述。
接著,資源訪問判斷單元15參照應用程序信息存儲單元12,識別利用步驟S403的處理取得了訪問權的應用程序的訪問對象邏輯設備,并參照設備信息,識別該訪問對象邏輯設備使用的全部資源,再參照資源信息存儲單元14,對該全部資源判斷對該應用程序是否設定了訪問權。通過這樣,資源訪問判斷單元15檢索對使用的全部資源設定了訪問權的應用程序(步驟S404)。下面,將步驟S404中檢索的應用程序作為應用程序AP2。另外,這里的應用程序AP2與圖10的說明中所用的應用程序AP2是不同的其它程序。
然后,資源訪問判斷單元15判斷步驟S404中檢索的結果是否發現應用程序AP2(步驟S405)。在沒有發現的情況下,資源訪問判斷單元15進入步驟S408的工作,從應用程序信息存儲單元12刪除有訪問結束請求的應用程序AP1有關的應用程序AP1有關的應用程序信息,并結束處理。
另一方面,在有發現的情況下,資源訪問判斷單元15更新應用程序信息存儲單元12,使得應用程序AP2有關的訪問可否信息變為“可以”(步驟S406)。然后,執行單元17為了使得訪問可否信息變為“可以”的應用程序能夠使用,就改變與邏輯設備對應的設備驅動程序的設定,使得應用程序AP2能夠使用,然后進入步驟S408的工作,再結束處理。
但是,上述工作僅在設備驅動程序具有保持設定了一次的有訪問權的應用程序有關的設定的功能的情況下才有效地實現。如果在設備驅動程序沒有這樣的功能的情況下,執行單元17在應用程序AP2提出來訪問請求時,只要將必須進行設備設定這樣的出錯代碼返回應用程序AP2即可。另外,在設備驅動程序支持上述保持功能的情況下,設備驅動程序能夠使設定自動復原。
圖13所示為步驟S403的資源訪問判斷單元15的詳細工作流程圖。下面參照圖13說明步驟S403中的資源訪問判斷單元15的工作。
首先,資源訪問判斷單元15參照應用程序信息存儲單元12,識別應用程序AP1的訪問對象邏輯設備,并參照設備信息,識別該訪問對象邏輯設備使用的全部資源,再參照資源信息存儲單元14,判斷對于識別的某一個資源對應用程序AP1是否設定了訪問權(步驟S501)。
在設定了訪問權的情況下,資源訪問判斷單元15參照設備信息存儲單元18,識別使用該資源的邏輯設備,并參照應用程序信息存儲單元12,檢索對該邏輯設備提出訪問開始請求的應用程序(步驟S502)。這里,將檢索的應用程序稱為AP3。
然后,資源訪問判斷單元15判斷步驟S502中識別的應用程序AP3是否存在多個(步驟S503)。在存在多個的情況下,資源訪問判斷單元15參照應用程序信息存儲單元12,從其中檢索優先級最高的應用程序AP3(步驟S504),進入步驟S505的工作。另外,在不存在多個的情況下,資源訪問判斷單元15按照原樣進入步驟S505的工作。
在步驟S505中,資源訪問判斷單元15更新資源信息存儲單元14的內容,使得對應用程序AP3給予訪問權,再進入步驟S506的工作。這時,資源訪問判斷單元15在需要已對應用程序AP1給予訪問權的資源的應用程序AP3不存在時,對該資源的資源信息設定NULL。另外,在允許多重訪問的資源的資源信息更新時,資源訪問判斷單元15更新設定資源屬性。然后,資源訪問判斷單元15將新設定的屬性與步驟S502中檢索的其它應用程序所用的該資源的屬性進行比較。比較的結果在判斷為是同一屬性時,資源訪問判斷單元15也對其它的應用程序賦予訪問權。這時,在能夠賦予的訪問權的數量有上限時,資源訪問判斷單元15則按照優先級的高低順序賦予訪問權。
在步驟S506中,資源訪問判斷單元15對應用程序AP1的訪問對象即邏輯設備所需要的全部資源,判斷是否進行上述處理(步驟S506)。在不進行時,資源訪問判斷單元15返回步驟S501的工作。另外,在進行時,競爭仲裁裝置進入步驟S404的工作。
如用圖12及圖13所說明的那樣,競爭仲裁裝置1在應用程序AP1結束對邏輯設備DEV1的訪問時,自動地對迄今為止由于產生資源競爭而變成不能訪問的應用程序賦予對邏輯設備DEV1的訪問權。
用圖12及圖13所說明的處理具有的特征是,對于進行了訪問結束處理的邏輯設備DEV1以外的邏輯設備(例如DEV2)也賦予訪問權。這里,作為一個例子考慮下述的情況,即應用程序AP2對訪問對象邏輯設備DEV2提出訪問開始請求,但在實際上還未對邏輯設備DEV2進行訪問時,優先級比應用程序AP2要高的應用程序AP1已經對邏輯設備DEV1提出訪問開始請求。這里,假設邏輯設備DEV1及邏輯設備DEV2都需要資源R。
首先,一開始在應用程序AP2對邏輯設備DEV2提出訪問開始請求時,對資源R沒有發生訪問競爭。因此,應用程序AP2對邏輯設備DEV2將能夠訪問。在這之后,假設應用程序AP1對邏輯設備DEV1提出了訪問開始請求。這里,由于假設應用程序AP1的優先級較高,因此對資源R的訪問權是由應用程序AP1取得。結果,應用程序AP2成為對邏輯設備DEV2不能訪問。
但是,由于應用程序AP2是在提出了訪問開始請求的階段停止的,因此實際上對邏輯設備DEV2還沒有提出訪問請求。所以,應用程序AP2還不知道成為對邏輯設備DEV2不能訪問。
在這樣的狀況下,假設應用程序AP1在對邏輯設備DEV1進行訪問之后,結束必要的處理,提出了訪問結束請求。通過這樣,資源R從應用程序AP1釋放。由于邏輯設備DEV2需要資源R,因此利用圖12及圖13中說明的處理,應用程序AP2自動變成對邏輯設備DEV2能夠訪問(參照步驟S404~S406)。即,應用程序AP2自己提出訪問開始請求后,在對邏輯設備DEV2進行訪問之前的期間,不知道成為對邏輯設備DEV2不能訪問的情況,而又成為對邏輯設備DEV2能夠訪問。通過這樣的處理,進行設備訪問用的應用程序的編制就很簡潔。
下面以圖2~圖4所示的應用程序、邏輯設備、資源與物理設備的對應關系為例,具體說明用圖9~圖13說明的處理流程。
例如,在圖2中,考慮應用程序A1已經對SDSP邏輯設備能夠訪問時、應用程序A2對MIDI邏輯設備提出訪問開始請求的情況。這里,假設應用程序A2的優先級比應用程序A1要高。
首先,競爭仲裁裝置1取得應用程序A2所需要的MIDI資源及揚聲器資源的資源信息。MIDI資源及揚聲器資源都沒有相同名稱的資源,分別只存在一個。因此,競爭仲裁裝置1判斷是否存在已經取得這些資源的訪問權的應用程序(參照圖10的步驟S211)。這里,揚聲器資源的訪問權已經由應用程序A1取得。因此,競爭仲裁裝置1比較應用程序A2與應用程序A1的優先級(參照圖10的步驟S206)。這里,由于假設應用程序A2的優先級較高,因此應用程序A2就取得MIDI資源及揚聲器資源的訪問權。變成對MIDI邏輯設備能夠訪問(參照圖10的步驟S208)。
另一方面,應用程序A1由于變成對揚聲器資源不能訪問,因此對SDSP邏輯設備就不能訪問(參照圖10的步驟S209)。
然后,在應用程序A1提出訪問請求時,由于在應用程序信息中已經設定為不能訪問,因此競爭仲裁裝置1對應用程序A1返回出錯消息(參照圖11的步驟S305)。通過這樣,應用程序A1知道變成了不能訪問的情況。
接著,考慮在應用程序A1提出訪問請求之前、應用程序A2提出了訪問請求的情況。首先,競爭仲裁裝置1取得應用程序A2取得了訪問權的資源(MIDI資源及揚聲器資源)的資源信息。然后,競爭仲裁裝置1檢索是否存在對各資源需要訪問權的應用程序。在本例中,由于對MIDI資源需要訪問權的應用程序不存在,因此競爭仲裁裝置1對MIDI資源的資源信息設定為NULL。另外,由于應用程序A1需要對揚聲器資源的訪問權,因此競爭仲裁裝置1對揚聲器資源信息設定應用程序A1取得了訪問權(參照圖12的步驟S403)。
如果在應用程序A1以外還存在需要揚聲器資源的其它應用程序的情況下,競爭仲裁裝置1則比較應用程序A1與其它應用程序的優先級,使優先級高的應用程序取得訪問權。
由于應用程序A1通過重新取得揚聲器資源的訪問權,就能夠對所需要的全部資源進行訪問,因此對SDSP邏輯設備能夠訪問。通過這樣,競爭仲裁裝置1對應用程序A1的應用程序信息設定對SDSP邏輯設備能夠訪問(參照圖12的步驟S406)。
如果在SDSP設備驅動程序具有能夠復原應用程序A1的設定的功能的情況下,接下來應用程序A1提出訪問請求時,應用程序不知道一度成為不能訪問的情況,而又能夠對SDSP邏輯設備進行訪問那。即應用程序A1能夠對SDSP物理設備及揚聲器物理設備進行訪問。
下面說明圖3的構成例的情況下的具體處理流程。例如,在圖3中,假設應用程序A1、A2及A4已經對線路邏輯設備能夠訪問。這時,考慮應用程序A3對線路邏輯設備提出訪問開始請求時的情況。這里,假設優先級是按照應用程序A1、應用程序A2、應用程序A3及應用程序A4的順序由高到低。即AP1的優先級最高。
首先,競爭仲裁裝置1在三個線路資源32~34中判斷沒有設定訪問權的線路資源(參照圖10的步驟S202)。在本例中,應用程序A1、A2及A4已經對全部線路資源32~34取得了訪問權。因而,沒有設定訪問權的線路資源(空的線路資源)就不存在。
接著,競爭仲裁裝置1識別應用程序A1、A2及A4中的優先級最低的應用程序(參照圖10的步驟S203)。在本例中,應用程序A4的優先級最低。然后,競爭仲裁裝置1比較應用程序A4與A3的優先級(參照圖10的步驟S206)。在本例中,應用程序A3的優先級比應用程序A4的優先級要高。因而,競爭仲裁裝置1進行設定,使得對于應用程序A4取得了訪問權的線路資源,由應用程序A3取得訪問權。通過這樣,應用程序A3成為對線路邏輯設備能夠訪問(參照圖10的步驟S208)。另外,應用程序A4成為對線路邏輯設備不能訪問(參照圖10的步驟S209)。
下面考慮優先級低于應用程序A4的應用程序A5(未圖示)提出來訪問開始請求的情況。這時,由于線路資源已經全部占滿,因此競爭仲裁裝置1識別應用程序A1、A2及A3中的優先級最低的應用程序(參照圖10的步驟S203)。其中,應用程序A3的優先級最低。然后,競爭仲裁裝置1比較應用程序A3與A5的優先級(參照圖10的步驟S206)。在本例中,AP5的優先級較低。因而,競爭仲裁裝置1進行設定,使得AP5成為對線路邏輯設備不能訪問(參照圖9步驟S108)。
下面考慮在應用程序A4及A5都對線路邏輯設備提出訪問請求之前,應用程序A2提出了訪問結束請求的情況。在這樣情況下,需要線路資源的應用程序存在應用程序A4及A5的二個應用程序(參照圖13的步驟S502)。競爭仲裁裝置1在應用程序A4與A5中,識別優先級最高的應用程序(參照圖13的步驟S504)。在本例中,AP4的優先級較高。因而,競爭仲裁裝置1對于AP2取得了訪問權的線路資源,對應用程序A4給予訪問權(參照圖13的步驟S505)。通過這樣,應用程序A4成為對線路邏輯設備能夠訪問(參照圖12的步驟S406)。
下面說明圖4的構成例的情況下的具體處理流程。例如,在圖4中,假設應用程序A1對SDSP錄音邏輯設備已經是能夠訪問。這時,考慮應用程序A3對SDSP重放邏輯設備提出了訪問開始請求的情況。這里,假設應用程序A1的優先級比應用程序A3的優先級要高。另外,假設應用程序A1及A3使用相同的編碼譯碼器X。另外,假設SDSP編碼譯碼器資源是具有附加信息的資源,具有若設定的狀態相同、則允許多重訪問的性質。
若SDSP編碼譯碼器資源是不允許多重訪問的資源,則由于對SDSP編碼譯碼器資源已經對應用程序A1設定了訪問權,因此競爭仲裁裝置1比較應用程序A1與應用程序A3的優先級(參照圖10的步驟S206)。在本例中,應用程序A1的優先級比應用程序A3的優先級要高。因而,在這種情況下,若是不允許多重訪問的普通的資源,則應用程序A3不能取得訪問權。
但是,由于SDSP編碼譯碼器資源是允許多重訪問的資源,因此應用程序A3有可能能夠取得訪問權。因此,競爭仲裁裝置1將SDSP編碼譯碼器資源中設定的編碼譯碼器的種類與應用程序A3使用的編碼譯碼器的種類進行比較(參照圖10的步驟S205)。在本例中,由于二個種類是相同的編碼譯碼器X,因此競爭仲裁裝置1對應用程序A3賦予對SDSP編碼譯碼器資源的訪問權(圖10的步驟S208)。通過這樣,應用程序A3成為對SDSP重放邏輯設備能夠訪問。
下面考慮應用程序A2對SDSP錄音邏輯設備提出訪問開始請求的情況。這里,假設應用程序A2的優先級比應用程序A1的優先級要低,而比應用程序A3的優先級要高。
首先,競爭仲裁裝置1將SDSP編碼譯碼器資源中設定的編碼譯碼器的種類與AP2使用的編碼譯碼器的種類進行比較(圖10的步驟S205)。這里,假設應用程序A2使用與應用程序A1及A3不同的編碼譯碼器Y。在這種情況下,由于資源中設定的屬性即編碼譯碼器的種類不同,因此應用程序A2成為不能取得SDSP編碼譯碼器的訪問權。所以,應用程序A2成為對SDSP錄音邏輯設備不能訪問(參照圖9的步驟S108)。
另一方面,假設應用程序A2使用與應用程序A1及A3相同的編碼譯碼器X。在這種情況下,由于與在資源中設定的屬性、即編碼譯碼器的種類相同,應用程序A2能夠取得對SDSP編碼譯碼器資源的訪問權(參照圖10的步驟S205)。但是,由于SDSP錄音資源的訪問權是原封不動賦予應用程序A1的,因此應用程序A2沒有對全部資源的訪問權(參照圖9的步驟S105),對SDSP錄音邏輯設備不能訪問(參照圖9的步驟S108)。
下面考慮應用程序A1提出訪問結束請求時的情況。首先,對于SDSP錄音資源,由于應用程序A2需要訪問權(參照圖13的步驟S502),因此競爭仲裁裝置1使應用程序A2取得訪問權(參照圖13的步驟S505)。
然后,對于SDSP編碼譯碼器資源,由于應用程序A2及A3需要訪問權(參照圖13的步驟S502),因此競爭仲裁裝置1比較應用程序A2與A3的優先級(參照圖13的步驟S504)。而由于應用程序A2的優先級較高,因此競爭仲裁裝置1對應用程序A2給予SDSP編碼譯碼器資源的訪問權(參照圖13的步驟S505)。這時,由于編碼譯碼器的種類改變,因此競爭仲裁裝置1重新設定編碼譯碼器的種類。
然后,競爭仲裁裝置1將SDSP編碼譯碼器資源中新設定的編碼譯碼器的種類與應用程序A3使用的編碼譯碼器的種類進行比較(參照圖13的步驟S505)。這里,由于假設應用程序A2與A3使用不同的編碼譯碼器,因此競爭仲裁裝置1進行設定,使得應用程序A3成為對SDSP編碼譯碼器資源不能訪問。通過這樣,應用程序A3成為對SDSP重放邏輯設備不能訪問。
這樣,在上述實施形態中,競爭仲裁裝置分離為由應用程序指定的邏輯設備、實際存在的物理設備及與物理設備和邏輯設備相對應的資源,對物理設備的功能及應用程序所希望的功能進行管理,以資源為單位對于從應用程序對物理設備的訪問進行競爭仲裁。因而,即使物理設備的構成發生變化,由于只要改變競爭仲裁裝置內的資源信息及設備信息即可,因此能夠提供可以靈活適應物理設備構成變化的競爭仲裁裝置及競爭仲裁方法。再有,由于將物理設備的功能分割為以資源為單位進行競爭仲裁,因此即使物理設備具有各種各樣的特性,也能夠提供可以充分完全發揮其特性的競爭仲裁裝置及競爭仲裁方法。
例如,像線路物理設備那樣,若是某上限數量以內,則在允許多重訪問那樣的情況下,或者像SDSP物理設備中的SDSP編碼譯碼器功能那樣,滿足某種條件,則允許多重訪問那樣的情況下,競爭仲裁裝置能夠對多個應用程序賦予訪問權。這樣,競爭仲裁裝置能夠進行競爭仲裁,使得充分完全發揮物理設備的特性。
另外,例如像揚聲器物理設備那樣,即使在是與其它的物理設備通過布線連接、但單體不具有I/O接口的物理設備在多個設備之間公用那樣的情況下,競爭仲裁裝置能夠對訪問該物理設備進行競爭仲裁。
另外,還提供這樣的結構,即在應用程序提出訪問請求時,若能夠訪問,則執行該設備驅動程序,若不能訪問,則向應用程序返回出錯消息。因此,應用程序只要考慮在提出訪問請求時付出錯消息即可。這樣的系統對應應用程序開發者來說,能夠減輕開發負擔。
另外,通過采用賦予應用程序的優先級來進行競爭仲裁,就允許從優先級高的應用程序開始按順序對物理設備進行訪問。特別是在允許多重訪問的物理設備中,能夠從優先級更高的開始進行訪問,能夠進行與優先級相應的復雜的排他控制另外,由于應用程序是否能夠對物理設備進行訪問將登錄在應用程序信息內,因此每次有訪問請求時,都不需要判斷是否能夠訪問,所以處理能夠實現高速化。
再有,在由于其它的應用程序的訪問請求而剝奪了對物理設備的訪問權時,若訪問權被剝奪之前的應用程序在下一次進行訪問請求之前,若再一次成為對該物理設備能夠訪問,則該由于程序不知道一度成為不能訪問這樣的事實,能夠不進行特別的處理而繼續對物理設備進行訪問。
另外,在采用通過同時控制多個物理設備來實現所希望的功能這樣的應用程序時,為了實現該所希望的處理,必須允許對該多個物理設備進行訪問。如本發明那樣,若以資源為單位來管理訪問權,則執行在對全部物理設備能夠訪問時所許喲的設備驅動程序,能夠實現所希望的功能。另外,在即使有一個不能訪問時,競爭仲裁裝置能夠對應用程序通知出錯消息。
另外,上述實施形態所示的物理設備、邏輯設備及資源是一個例子,當然不限定于這些。
另外,在上述實施形態中,資源訪問判斷單元是對優先級高的應用程序賦予對資源的訪問權。其它也可以是對于每個資源信息,附加與對先提出訪問請求的程序予以允許使用、或者對隨后提出訪問請求的應用程序予以允許使用有關的先行信息,然后資源訪問判斷單元根據先行信息,判斷給予訪問權的應用程序。另外,資源訪問判斷單元也可以僅在應用程序的優先級相同時,根據先行信息,判斷給予訪問權的應用程序。
另外,在上述實施形態中,競爭仲裁裝置僅在對應用程序所希望的邏輯設備所需要的全部資源賦予訪問權的情況下,設定為該應用程序對該邏輯設備能夠訪問(參照圖9的步驟S105~S106)。但是,即使沒有對全部資源設定訪問權,若僅對一部分資源設定訪問權,則有時也能夠實現邏輯設備的一部分功能。因此,競爭仲裁裝置即使在不能使用邏輯設備的全部資源的情況下,也能夠使得應用程序能夠僅使用可使用的資源。
圖14所示為即使在不能使用邏輯設備使用的全部資源的情況下,也使得應用程序能夠僅使用能夠使用的資源時的競爭仲裁裝置的工作流程圖。圖14所示的流程圖是替換圖9所示的步驟S105~S108的部分。在圖14中,對于與圖9所示的步驟進行相同工作的步驟,附加相同的步驟編號,并省略說明。
競爭仲裁裝置1在判斷為提出訪問開始請求的應用程序對于訪問對象邏輯設備使用的全部資源沒有訪問權時,進入步驟S1081的工作。在步驟S1081中,競爭仲裁裝置1的執行單元17在訪問對象邏輯設備使用的全部資源內,識別該應用程序能夠訪問的資源。然后,執行單元17在步驟S1081識別的資源內,判斷是否存在能夠單獨使用的資源(步驟S1082)。這時,執行單元17根據資源信息中附加的表示是否能夠單獨使用的信息,進行判斷。
在存在能夠單獨使用的資源時,執行單元17使設備驅動程序執行單元5執行設備驅動程序,使得實現該資源的功能(步驟S1083),并結束處理。另外,在不存在能夠單獨使用的資源時,執行單元17更新應用程序信息的存儲單元內的登錄內容,使得與該應用程序相對應的訪問可否信息成為“不可”(步驟S108),并結束處理。
這樣,即使不能對全部物理設備進行訪問,在只要能夠執行所希望的功能的一部分也可以的情況下,競爭仲裁裝置也能夠執行設備驅動程序,使得應用程序能夠執行該所希望的功能的一部分。
本發明有關的競爭仲裁裝置、競爭仲裁方法及競爭仲裁程序能夠充分完全發揮物理設備的特性,而且能夠靈活適應物理設備的構成變化,用于多個應用程序起動的計算機系統等是很有效的。
以上詳細說明了本發明,但前述說明在所有方面不過是表示本發明的例子,不是想限定其范圍。當然,在不超出本發明范圍的情況下,能夠進行各種改進及變形。
權利要求
1.一種競爭仲裁裝置,是對多個應用程序希望同時使用至少一個物理設備時發生的競爭進行仲裁用的競爭仲裁裝置,其特征在于,包含存儲表示定義所示物理設備所具有的功能的至少一個資源和允許使用與該資源對應的功能的至少一個應用程序之對應關系的資源信息的資源信息存儲手段;存儲表示在希望使用所述物理設備時定義由所述應用程序指定的功能的邏輯設備和為了實現由該邏輯設備定義的功能而定義了必需的功能的至少一個所述資源之對應關系的設備信息的設備信息存儲手段;在根據所述應用程序指定邏輯設備時,參照所述設備信息來識別與所述邏輯設備對應的資源的使用資源識別手段;參照所述資源信息,對由所述使用資源識別手段識別的所述資源,判斷允許使用的應用程序的資源訪問判斷手段;以及根據所述資源訪問判斷手段的判斷結果,判斷指定所述邏輯設備的應用程序是否能夠使用實現由該邏輯設備定義的功能的物理設備的設備訪問判斷手段。
2.如權利要求1所述的競爭仲裁裝置,其特征在于,對所述資源信息附加表示是否能夠允許多個應用程序同時使用的多重訪問信息,所述資源訪問判斷手段根據所述多重訪問信息,在允許多個應用程序同時使用時,對于所述資源信息則對多個應用程序允許使用。
3.權利要求2所述的競爭仲裁裝置,其特征在于,所述資源訪問判斷手段僅在滿足規定條件的情況下,對多個應用程序允許使用。
4.如權利要求3所述的競爭仲裁裝置,其特征在于,所述規定條件是所述應用程序使用由所述資源提供的功能的條件,或在所述多個應用程序之間全部通用的條件。
5.如權利要求1所述的競爭仲裁裝置,其特征在于,還具有在利用所述設備訪問判斷手段判斷為指定所述邏輯設備的應用程序能夠使用所述物理設備時,使控制所述物理設備用的設備驅動程序執行的執行手段。
6.如權利要求5所示的競爭仲裁裝置,其特征在于,所述執行手段在利用所述訪問判斷手段判斷為指定所述邏輯設備的應用程序不能使用所述物理設備時,對所述應用程序通知出錯消息。
7.如權利要求1所述的競爭仲裁裝置,其特征在于,所述資源訪問判斷手段根據應用程序的優先級,判斷允許使用的應用程序。
8.如權利要求7所述的競爭仲裁裝置,其特征在于,還具有存儲與所述應用程序優先級有關的信息的應用程序信息存儲手段。
9.如權利要求7所述的競爭仲裁裝置,其特征在于,對所述資源信息附加有關每個資源對先提出訪問請求的應用程序予以允許使用還是對隨后提出訪問請求的應用程序予以允許使用的先行信息,所述資源訪問判斷手段在所述程序的優先級相同時,根據所述先行信息,判斷允許使用的應用程序。
10.如權利要求1所述的競爭仲裁裝置,其特征在于,還具有使根據所述設備訪問判斷手段的判斷結果與應用程序對應,作為應用程序信息加以存儲的應用程序信息存儲手段,所述設備訪問判斷手段還具有在因由所述應用程序最初指定所述邏輯設備而有訪問開始請求時判斷是否能夠使用所述物理設備,并將判斷結果存入所述應用程序信息存儲手段,而在訪問開始請求之后有訪問請求時,參照存入所述應用程序信息存儲手段的應用程序信息,判斷所述應用程序是否能夠使用所述物理設備的執行手段。
11.如權利要求10所述的競爭仲裁裝置,其特征在于,所述執行手段在由不能使用所述物理設備的應用程序提出訪問請求時,對該應用程序通知出錯消息。
12.如權利要求10所述的競爭仲裁裝置,其特征在于,所述執行手段在一旦被允許使用所述物理設備后而不能使用該物理設備的應用程序有訪問請求時,對該應用程序通知出錯消息。
13.如權利要求1所述的競爭仲裁裝置,其特征在于,所述資源訪問判斷手段在從所述應用程序接受了結束請求時,對希望使用與所述資源對應的功能的其它應用程序予以允許使用,并更新所述資源信息以反映允許的結果,所述設備訪問判斷手段根據利用所述資源訪問判斷手段更新的所述資源信息,判斷所述其它應用程序是否能夠使用所述物理設備。
14.如權利要求13所述的競爭仲裁裝置,其特征在于,還具有使所述設備訪問判斷手段的判斷結果與應用程序對應作為應用程序信息存儲的應用程序信息存儲手段、以及根據所述設備訪問判斷手段的判斷結果更新所述應用程序信息的執行手段。
15.如權利要求13所述的競爭仲裁裝置,其特征在于,還具有在利用所述設備訪問判斷手段判斷為所述其它應用程序能夠使用所述物理設備時,對設備驅動程序改變設定,以使得所述其它應用程序能夠訪問的執行手段。
16.如權利要求1所述的競爭仲裁裝置,其特征在于,所述設備訪問判斷手段僅在對于與所述邏輯設備對應的全部所述資源,允許使用與該全部資源對應的功能的應用程序是指定全部所述邏輯設備的應用程序時,判斷為所述應用程序程序能夠使用所述物理設備。
17.如權利要求1所述的競爭仲裁裝置,其特征在于,所述設備訪問判斷手段在與所述邏輯設備對應的所述資源內,與一部分所述資源對應的應用程序是指定全部所述邏輯設備的應用程序時,判斷為通過所述應用程序訪問所述物理設備能夠使用由一部分所述資源定義的功能。
18.如權利要求1所述的競爭仲裁裝置,其特征在于,還具有從所述應用程序接收所述邏輯設備的指定的應用程序I/F手段。
19.如權利要求1所述的競爭仲裁裝置,其特征在于,對所述資源信息附加有關每個資源對先提出訪問請求的應用程序予以允許使用還是對隨后提出訪問請求的應用程序予以允許使用的先行信息,所述資源訪問判斷手段根據所述先行信息,判斷允許使用的應用程序。
20.一種競爭仲裁程序,是為了對多個應用程序希望同時使用至少一個物理設備時發生的競爭進行仲裁而使計算機裝置具有這種功能用的程序,其特征在于,在所述計算機裝置中,存儲表示定義物理設備所具有的功能的至少一個資源和允許使用與該資源對應的功能的至少一個應用程序之對應關系的資源信息、以及表示在希望使用所述物理設備時定義由所述應用程序指定的功能的邏輯設備和為了實現由該邏輯設備定義的功能而定義了必需的功能的至少一個所述資源之對應關系的設備信息,具有在根據所述應用程序指定邏輯設備時,參照所述設備信息,使所述計算機裝置識別與所述邏輯設備對應的資源的步驟;參照所述資源信息,對識別的所述資源,使所述計算機裝置判斷允許使用的應用程序的步驟;以及根據允許使用的應用程序的判斷結果,使所述計算機判斷指定所述邏輯設備的應用程序是否能夠使用實現由該邏輯設備定義的功能的物理設備的步驟。
21.一種競爭仲裁方法,是利用計算機裝置對多個應用程序希望同時使用至少一個物理設備發生的競爭進行仲裁用的方法,其特征在于,在所述計算機裝置中,存儲表示定義所述物理設備所具有的功能的至少一個資源和允許使用與該資源對應的功能的至少一個應用程序之對應關系的資源信息、以及表示在希望使用所述物理設備時定義由所述應用程序指定的功能的邏輯設備和為了實現由該邏輯設備定義的功能而定義了必需的功能的至少一個所述資源之對應關系的設備信息,具有在根據所述應用程序指定邏輯設備時,參照所述設備信息,所述計算機裝置識別與所述邏輯設備對應的資源步驟;參照所述資源信息,對識別的所述資源,所述計算機判斷允許使用的應用程序的步驟;以及根據允許使用的應用程序的判斷結果,所述計算機判斷指定所述邏輯設備的應用程序是否能夠使用實現由該邏輯設備定義的功能的物理設備的步驟。
全文摘要
本發明的目的在于提供能夠充分發揮物理設備的特性而且能夠靈活適應物理設備的構成變化的競爭仲裁裝置及競爭仲裁方法。競爭仲裁裝置(1)包含存儲資源信息的資源信息存儲單元(14);存儲表示邏輯設備和資源之對應關系的設備信息的設備信息存儲單元(18);識別與邏輯設備對應的資源的使用資源識別單元(13);對于由使用資源識別手段識別的資源,判斷允許使用的應用程序的資源訪問判斷單元(15);以及根據利用資源訪問判斷手段的判斷結果,來判斷指定邏輯設備的應用程序是否能夠使用實現由該邏輯設備定義的功能的物理設備的設備訪問判斷單元(16)。
文檔編號G06F9/50GK1501255SQ20031011438
公開日2004年6月2日 申請日期2003年11月17日 優先權日2002年11月15日
發明者松本美智子, 鈴木良章, 章 申請人:松下電器產業株式會社