JP4277952B2 - 競合調停装置、競合調停方法および競合調停プログラム - Google Patents

競合調停装置、競合調停方法および競合調停プログラム Download PDF

Info

Publication number
JP4277952B2
JP4277952B2 JP2003381153A JP2003381153A JP4277952B2 JP 4277952 B2 JP4277952 B2 JP 4277952B2 JP 2003381153 A JP2003381153 A JP 2003381153A JP 2003381153 A JP2003381153 A JP 2003381153A JP 4277952 B2 JP4277952 B2 JP 4277952B2
Authority
JP
Japan
Prior art keywords
application
access
resource
resources
physical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003381153A
Other languages
English (en)
Other versions
JP2004178578A5 (ja
JP2004178578A (ja
Inventor
美智子 松本
良章 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003381153A priority Critical patent/JP4277952B2/ja
Publication of JP2004178578A publication Critical patent/JP2004178578A/ja
Publication of JP2004178578A5 publication Critical patent/JP2004178578A5/ja
Application granted granted Critical
Publication of JP4277952B2 publication Critical patent/JP4277952B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、複数のアプリケーションが起動するコンピュータシステム内において使用される装置および方法に関し、より特定的には、複数のアプリケーションがアクセス対象に同時にアクセスする時に生じる競合の調停を行うための装置および方法に関する。
一般に、一つのコンピュータシステムで実行される一つのアプリケーションは、スピーカやMIDI(Musical Instruments Digital Interface)物理デバイス、SDSP(Sound Digital Signal Processor)物理デバイス等の複数の物理デバイスの動作を制御することによって、コンピュータシステム全体の動作を制御し、所望の処理を行っている。しかし、複数のアプリケーションが起動するコンピュータシステム内において、二つ以上のアプリケーションが同時に一つの物理デバイスにアクセスしようとした場合、アクセス要求が衝突してしまうこととなる。アクセス要求が衝突した場合、物理デバイスは、所望通りに動作しない。
以下、このように、二つ以上のアプリケーションが同時に一つの物理デバイスにアクセスしようとする状態のことを競合ということにする。競合が発生すると、アプリケーションは、所望通りにコンピュータシステムの動作を制御することができない。したがって、複数のアプリケーションが起動するコンピュータシステム内では、競合が発生しないように、各アプリケーションから物理デバイスへのアクセス要求を制御する必要がある。以下、このように、各アプリケーションから物理デバイスへのアクセス要求を制御することを競合調停ということにする。従来、競合調停のための方法は、様々提案されてきた。
たとえば、競合調停のための方法として、排他制御識別子を用いる方法が提案されている(たとえば、特許文献1参照)。この方法では、排他制御識別子が、アプリケーションを実行する計算機に予め配布されている。あるアプリケーションが共有の物理デバイスにアクセスする場合、当該アプリケーションを実行する計算機は、他の計算機に配布されている排他制御識別子を集める。そして、全ての排他制御識別子を集めた計算機は、排他制御権を獲得し、共有の物理デバイスにアクセスすることができる。
また、一つのコンピュータシステム内において、同時に複数のスレッドが記憶データ・オブジェクトにアクセス要求する際に生じるアクセス競合を調停するための方法が提案されている(たとえば、特許文献2参照)。この方法では、先勝ち処理することによってアクセス競合を調停する。
また、一つのコンピュータシステム内において、競合調停を行う専用の制御デバイスを設けることによって、競合調停を行う方法が提案されている(たとえば、特許文献3参照)。この方法では、制御デバイスが、アクセス要求に付与されている優先度に基づいて、競合調停を行う。
また、一つの制御対象機器に対して、複数の制御命令が与えられたとき、当該制御対象機器は、所定の条件に基づいて、いずれか一つの制御命令を選択することによって、競合調停する方法も提案されている(たとえば、特許文献4参照)。
特開2002−175287号公報 特開平10−187527号公報 特開2000−231458号公報 特開2001−346276号公報
しかし、従来の競合調停方法では、一つのコンピュータシステム内で競合調停を行う場合、実際に存在する物理デバイスの単位でのみ競合調停を行っていた。そのため、実際には一つの物理デバイスであるが、ある条件の下では、複数のアプリケーションからの同時アクセスが可能であるような物理デバイスを用いる場合や、所定数までのアプリケーションからの同時アクセスを許容するような多重アクセスを許容する物理デバイスを用いる場合、従来の競合調停方法を用いて競合調停を行ったとしたら、物理デバイスの特性を十分に活かすことができなかった。
また、スピーカ物理デバイスのように、他の物理デバイスと配線結合されている物理デバイスであって、それ単体では、I/Oポートを持っていない物理デバイスが複数の物理デバイス間で共有されているような場合、従来の競合調停方法を用いて競合調停を行ったとしたら、各アプリケーションは、状態遷移表を参照しながら、当該物理デバイスに同時にアクセスしないように、自らの判断で競合を回避するしかなかった。そのため、競合調停は、アプリケーション自身の動作や、物理デバイス間の接続構成に依存してしまうこととなっていた。また、物理デバイスの数が増えることによって、各アプリケーションが状態遷移表を更新する必要があり、競合調停が困難なものとなっていた。
このように、従来の競合調停方法は、物理デバイスの特性を十分に活かしきることができず、かつ物理デバイスの構成変化に対応しにくい柔軟性に乏しいものであった。
それゆえ、本発明の目的は、物理デバイスの特性を十分に活かしきることができ、かつ物理デバイスの構成変化に柔軟に対応することができる競合調停装置および競合調停方法を提供することである。
上記課題を解決するために、本発明は、以下のような特徴を有する。本発明は、複数のアプリケーションが同時に少なくとも一つの物理デバイスの使用を所望した場合に発生する競合を調停する競合調停装置であって、物理デバイスには、I/Oポートを持つ第1の物理デバイスと、当該第1の物理デバイスに配線結合されI/Oポートを持たない第2の物理デバイスとが存在し、各物理デバイスが有する少なくとも一つの機能を機能毎に定義するリソースと当該リソースの使用が現在許可されているアプリケーションとの対応関係を示すリソース情報を格納するリソース情報記憶手段と、アプリケーションが実行されることで実現される機能を定義る論理デバイスと当該論理デバイス定義した機能を実現するために必要なリソースとの対応関係を示すデバイス情報を格納するデバイス情報格納手段と、アプリケーションによって新たに論理デバイスが指定された場合、デバイス情報を参照して、新たに指定された論理デバイスに対応する必要なリソースを認識する使用リソース認識手段と、リソース情報を参照して現在使用が許可されているアプリケーションを認識し、使用リソース認識手段によって認識された必要なリソースのそれぞれについて、使用が許可されるアプリケーションを所定の基準に基づいて判定するリソースアクセス判定手段と、アプリケーションが指定した論理デバイス定義る機能を実現するために必要なリソースの全てを使用可能か否かを、リソースアクセス判定手段による判定結果に基づいて判定することによって、当該アプリケーションが当該論理デバイスにアクセス可能か否かを判定するデバイスアクセス判定手段とを備える。
好ましくは、デバイスアクセス判定手段によって、論理デバイスを新たに指定したアプリケーションが必要なリソースの全てを使用可能と判定されたことによって当該アプリケーションがこ当該論理デバイスにアクセス可能と判定された場合、当該必要なリソースの全てにそれぞれ対応する物理デバイスを制御するためのデバイスドライバを実行させる実行手段をさらに備えるとよい。
好ましくは、デバイスアクセス判定手段による判定結果を、判定対象のアプリケーションと対応させてアプリケーション情報として格納するアプリケーション情報記憶手段と、デバイスアクセス判定手段による判定結果に基づいてアプリケーション情報を更新し、当該判定結果がアクセス可能である場合、必要なリソースの全てにそれぞれ対応する物理デバイスを制御するためのデバイスドライバを実行させる実行手段とをさらに備え、使用リソース認識手段は、論理デバイスにアクセスしているアプリケーションから当該論理デバイスへのアクセス終了要求を受け取った場合、アクセスを終了する論理デバイスに対応するリソースを認識し、リソースアクセス判定手段は、アプリケーション情報を参照して、アクセスを終了する論理デバイスに対応するリソースの使用が競合により許可されていない他のアプリケーションの有無を判定し、当該他のアプリケーションが有る場合、当該他のアプリケーションに競合を理由に使用許可されていないリソースの使用許可を与え、当該許可の結果を反映してリソース情報を更新し、デバイスアクセス判定手段は、リソースアクセス判定手段により更新されたリソース情報に基づいて、他のアプリケーションが指定する論理デバイスが定義する機能を実現するために必要なリソースの全てを当該他のアプリケーションが使用できるか否かを判定することによって、当該他のアプリケーションが当該論理デバイスにアクセス可能か否かを判定し、実行手段は、デバイスアクセス判定手段によって他のアプリケーションが論理デバイスにアクセス可能と判定された場合、当該他のアプリケーションが必要なリソースの全てにそれぞれ対応する物理デバイスにアクセスできるように、当該物理デバイスを制御するデバイスドライバの設定を変更するとよい。
また、本発明は、複数のアプリケーションが同時に少なくとも一つの物理デバイスの使用を所望した場合に発生する競合を調停するようにコンピュータ装置を機能させるためのプログラムであって、物理デバイスには、I/Oポートを持つ第1の物理デバイスと、当該第1の物理デバイスに配線結合されI/Oポートを持たない第2の物理デバイスとが存在し、コンピュータ装置には、物理デバイスが有する少なくとも一つの機能を機能毎に定義するリソースと当該リソースの使用が現在許可されているアプリケーションとの対応関係を示すリソース情報とアプリケーションが実行されることで実現される機能を定義る論理デバイスと当該論理デバイス定義した機能を実現するために必要なリソースとの対応関係を示すデバイス情報とが記憶されており、アプリケーションによって新たに論理デバイスが指定された場合、デバイス情報を参照して、新たに指定された論理デバイスに対応する必要なリソースをコンピュータ装置に認識させるステップと、リソース情報を参照して現在使用が許可されているアプリケーションをコンピュータ装置に認識させ新たに指定された論理デバイスに対応する必要なリソースのそれぞれについて、使用が許可されるアプリケーションを所定の基準に基づいてコンピュータ装置に判定させるステップと、アプリケーションが指定した論理デバイス定義る機能を実現するために必要なリソースの全てを使用可能か否かを、使用が許可されるアプリケーションの判定結果に基づいて判定させることによって、当該アプリケーションが当該論理デバイスにアクセス可能か否かをコンピュータ装置に判定させるステップとを備える。
また、本発明は、コンピュータ装置によって、複数のアプリケーションが同時に少なくとも一つの物理デバイスの使用を所望した場合に発生する競合を調停するための方法であって、物理デバイスには、I/Oポートを持つ第1の物理デバイスと、当該第1の物理デバイスに配線結合されI/Oポートを持たない第2の物理デバイスとが存在し、コンピュータ装置には、物理デバイスが有する少なくとも一つの機能を機能毎に定義するリソースと当該リソースの使用が現在許可されているアプリケーションとの対応関係を示すリソース情報とアプリケーションが実行されることで実現される機能を定義る論理デバイスと当該論理デバイス定義した機能を実現するために必要なリソースとの対応関係を示すデバイス情報とが記憶されており、アプリケーションによって新たに論理デバイスが指定された場合、デバイス情報を参照して、新たに指定された論理デバイスに対応する必要なリソースをコンピュータ装置が認識するステップと、リソース情報を参照して現在使用が許可されているアプリケーションをコンピュータ装置が認識し新たに指定された論理デバイスに対応する必要なリソースのそれぞれについて、使用が許可されるアプリケーションを所定の基準に基づいてコンピュータ装置が判定するステップと、アプリケーションが指定した論理デバイス定義る機能を実現するために必要なリソースの全てを使用可能か否かを、使用が許可されるアプリケーションの判定結果に基づいて判定することによって、当該アプリケーションが当該論理デバイスにアクセス可能か否かをコンピュータ装置が判定するステップとを備える。
本発明によれば、競合調停装置は、アプリケーションによって指定される論理デバイスと、実際に存在する物理デバイスと、物理デバイスと論理デバイスとを対応付けるリソースとに分離して、物理デバイスの機能およびアプリケーション所望する機能を管理し、リソース単位でアプリケーションから物理デバイスへのアクセスの競合調停を行う。したがって、物理デバイスの構成が変化したとしても、競合調停装置内のリソース情報およびデバイス情報を変更するだけでよいので、物理デバイスの構成変化に柔軟に対応することができる競合調停装置および競合調停方法を提供することができる。さらに、物理デバイスの機能をリソース単位に分割して競合調停を行うので、物理デバイスが様々な特性を有していたとしても、その特性を十分に活かしきることができる競合調停装置および競合調停方法を提供することができる。
また、ある上限数以内であれば多重アクセスを許すような場合や、ある条件を満たせば多重アクセスを許すような場合において、競合調停装置は、複数のアプリケーションにアクセス権を付与することができる。このように、競合調停装置は、物理デバイスの特性を十分に活かしきように競合調停を行うことができる。
また、他の物理デバイスとは配線結合されているもの、単体ではI/Oポートを持たない物理デバイスが複数のデバイス間で共有されるような場合でも、競合調停装置は、当該物理デバイスへのアクセスの競合調停を行うことができる。
図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は、当該アプリケーションが当該物理デバイス3を使用できるように、デバイスドライバ実行装置4にデバイスドライバを実行させる。これによって、アプリケーションは、所望の物理デバイス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物理デバイスを用いている例を示している。ここでは、SDSP物理デバイスは、多重アクセスを許さない物理デバイスであると想定する。図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の方が優先度が高いとする。この場合、SDSPリソースへはアプリケーションA1しかアクセスを所望していないので、アプリケーションA1がSDSPリソースのアクセス権を取得する。同様に、MIDIリソースへはアプリケーションA2しかアクセスを所望していないので、アプリケーション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は、3つある回線リソースのうち、一つ目の回線リソース32のアクセス権を取得する。次に、アプリケーションA2が回線論理デバイスへのアクセスを所望すると、アプリケーションA2は、二つ目の回線リソース33のアクセス権を取得する。次に、最も優先度の低いアプリケーションA4が回線論理デバイスへのアクセスを所望すると、アプリケーションA4は三つ目の回線リソース34のアクセス権を取得する。
このような状況の下、アプリケーションA4より優先度の高いアプリケーションA3が回線論理デバイスへのアクセスを所望すると、競合調停装置1は、アプリケーションA4とアプリケーションA3との優先度を比較する。上記の例では、アプリケーションA3の方が優先度が高いため、アプリケーションA4は、3つ目の回線リソース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およびA2が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は、使用リソース認識部13から通知されるリソースに関するリソース情報をリソース情報記憶部14から読み出して、既にアクセス権を取得しているアプリケーションを判定する。リソースアクセス判定部15は、既にアクセス権を取得しているアプリケーションが存在する場合、そのアプリケーションとアクセス開始要求をなしているアプリケーションとの内、どちらの優先度が高いかを、アプリケーション情報記憶部12に格納してあるアプリケーションの優先度に基づいて判定する。リソースアクセス判定部15は、判定の結果、アクセス権を取得するアプリケーションが変更になった場合、リソース情報記憶部14におけるリソース情報の内容を更新する。
デバイスアクセス判定部16は、使用リソース認識部13が検出したリソースと、リソース情報記憶部14に格納されているリソース情報とに基づいて、アクセス開始要求をなしているアプリケーションが、アクセス対象論理デイバスによって使用される全てのリソースに対して、アクセス権を取得しているか否かを判定し、その情報を実行部17に通知する。デバイスアクセス判定部16は、全てのリソースに対してアクセス権を取得している場合、当該アプリケーションによる当該論理デバイスへのアクセスが可能であると決定する。
実行部17は、デバイスアクセス判定部16から論理デバイスへのアクセスが可能であるか否かを示す情報を受け取る。実行部17は、受け取った情報に基づいて、アプリケーション情報記憶部12に格納されているアプリケーション情報におけるアクセス可否情報を更新する。また、実行部17は、アプリケーションIF部11からアクセス要求が通知されると、アプリケーション情報記憶部12を参照して、当該アプリケーションがアクセス対象としている論理デバイスにアクセス可能であるか否かを判断する。アクセス可能である場合、実行部17は、当該論理デバイスに対応するデバイスドライバをデバイスドライバ実行装置4に実行させ、アクセス可能である旨を示す情報をアプリケーションIF部11に送る。一方、アクセス不可能である場合、実行部17は、アプリケーションIF部11にアクセス不可能である旨を示す情報を送る。
次に、競合調停装置1の動作を詳細に説明する。まず、競合調停装置1を備えるコンピュータシステムにおいて、アプリケーションは、物理デバイス3を使用したい場合、アクセス開始要求を競合調停装置1に通知する。実際に物理デバイス3を使用したい場合、アプリケーションは、アクセス要求を競合調停装置1に通知する。最後に、物理デバイス3へのアクセスを終了したい場合、アプリケーションは、アクセス終了要求を競合調停装置1に通知する。
図9は、アプリケーションからアクセス開始要求があったときの競合調停装置1の動作を示すフローチャートである。以下、図9を参照しながら、アプリケーションからアクセス開始要求があったときの競合調停装置1の動作について説明する。
まず、アプリケーションIF部11は、アプリケーションからのアクセス開始要求を受信する(ステップS101)。以下、アクセス開始要求をなしたアプリケーションをアプリケーションAP1という。また、当該アクセス開始要求におけるアクセス対象論理デバイスを論理デバイスDEV1という。上述のように、当該アクセス開始要求には、アプリケーションの優先度も指定されている。
次に、アプリケーションIF部11は、受信したアクセス開始要求に基づいて、アプリケーション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は、アプリケーションAP1に対するアクセス可否情報が「可」となるようにアプリケーション情報記憶部12の登録内容を更新する(ステップS106)。次に、実行部17は、アクセス対象論理デバイスDEV1に関するデバイスドライバをデバイスドライバ実行装置4に実行させて(ステップS107)、処理を終了する。
一方、全てのリソースに関するアクセス権を有していない場合、デバイスアクセス判定部16は、実行部17にその旨を通知する。これに応じて、実行部17は、アプリケーションAP1に対するアクセス可否情報が「不可」となるようにアプリケーション情報記憶部12の登録内容を更新し(ステップ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に関するアクセス可否情報を「不可」となるように設定し(ステップS209)、ステップS210の動作に進む。一方、アプリケーションAP1の方が優先度が低い場合、リソースアクセス判定部15は、ステップS210の動作に進む。
一方、ステップS201において、複数存在しないと判断された場合、すなわち、アクセス対象論理デバイスDEV1が使用するリソースが一つだけであるか、あるいは使用するリソースは複数あるが、それぞれは一つずつである場合、リソースアクセス判定部15は、当該リソースのいずれか一つに対してアクセス権を取得している他のアプリケーションが存在するか否かを判断する(ステップS211)。ここで、アクセス権を取得している他のアプリケーションをアプリケーションAP3ということにする。それぞれは一つずつのリソースが複数ある場合、アクセス権を取得しているアプリケーションは複数ある場合があるが、ここではまず、いずれか一つのリソースについて以下の処理を行うこととする。
ステップS211において、存在しないと判断した場合、リソースアクセス判定部15は、ステップS208の動作に進み、アプリケーションAP1がアクセス権を取得するようにリソース情報を更新する。一方、存在すると判断した場合、リソースアクセス判定部15は、アプリケーション情報記憶部12を参照して、当該リソースに対応するアプリケーションのアプリケーション情報を取得し(ステップS212)、ステップS204に進む。
ステップS210において、リソースアクセス判定部15は、アクセス対象論理デバイスDEV1で使用される全てのリソースに関して、上記リソース情報およびアプリケーション情報の更新処理が終了しているか否かを判断する(ステップS210)。終了していない場合、リソースアクセス判定部15は、ステップS201の動作に戻る。この際、リソースアクセス判定部15は、一度判定したリソースに関しては、ステップS201以降の判定を行わないこととする。一方、終了している場合、競合調停装置1は、ステップS105以降の動作に進む。
図11は、アプリケーションからアクセス要求があったときの競合調停装置1の動作を示すフローチャートである。以下、図11を参照しながら、アプリケーションからアクセス要求があったときの競合調停装置1の動作について説明する。
アプリケーションAP1は、アクセス要求をする前に、アクセス開始要求を行っている。アクセス要求が行われたとき、上述のように、アクセス対象論理デバイスDEV1に対するアプリケーションAP1のアクセス可否情報がアプリケーション情報記憶部12に登録される。アクセス要求時の動作では、アクセス開始要求で設定されたアプリケーション情報を用いて、処理がなされる。
まず、アプリケーションIF部11は、アプリケーションAP1からのアクセス要求を受信して、実行部17に通知する(ステップS301)。次に、実行部17は、アプリケーション情報記憶部12を参照する(ステップS302)。
次に、実行部17は、アプリケーションAP1に対応するアクセス可否情報に基づいて、アクセス要求をなしたアプリケーションAP1がアクセス対象論理デバイスDEV1にアクセス可能と設定されているか否かを判断する(ステップS303)。
アクセス可能と設定されている場合、実行部17は、当該デバイスドライバをデバイスドライバ実行部17に実行させて(ステップS304)、処理を終了する。
一方、アクセス不可と設定されている場合、実行部17は、アプリケーションIF部11に対して、アクセス不可である旨のエラーメッセージを通知する。これに応じて、アプリケーションIF部11は、アプリケーションAP1に対して、論理デバイスDEV1にアクセス不可である旨を通知し(ステップS305)、処理を終了する。
図12は、アプリケーションからアクセス終了要求があったときの競合調停装置1の動作を示すフローチャートである。以下、図12を参照しながら、アプリケーションからアクセス終了要求があったときの競合調停装置1の動作について説明する。
まず、アプリケーションIF部11は、アプリケーション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で検索されたアプリケーションをアプリケーションAP4とする。
次に、リソースアクセス判定部15は、ステップS404での検索の結果、アプリケーションAP4が見つかったか否かを判断する(ステップS405)。見つからなかった場合、リソースアクセス判定部15は、ステップS408の動作に進んで、アクセス終了要求のあったアプリケーションAP1に関するアプリケーション情報をアプリケーション情報記憶部12から削除し、処理を終了する。
一方、見つかった場合、リソースアクセス判定部15は、アプリケーションAP4に関するアクセス可否情報が「可」となるように、アプリケーション情報記憶部12を更新する(ステップS406)。次に、実行部17は、アクセス可否情報が「可」となったアプリケーションが所望の論理デバイスを使用することができるように、当該論理デバイスに対応するデバイスドライバの設定をアプリケーションAP4が使用できるように変更して、ステップS408の動作に進んで、処理を終了する。
ただし、上記動作は、デバイスドライバが一度設定されたアクセス権を有するアプリケーションに関する設定を保持しておく機能を有している場合にのみ有効に実現する。もし、このような機能をデバイスドライバが有していない場合、実行部17は、アプリケーションAP4がアクセス要求をなしてきたときに、デバイス設定が必要だというエラーコードをアプリケーションAP4に返せばよい。また、デバイスドライバが上記の保持機能をサポートしている場合、デバイスドライバは、設定の自動復元ができる。
図13は、ステップS403におけるリソースアクセス判定部15の動作の詳細を示すフローチャートである。以下、図13を参照しながら、ステップS403におけるリソースアクセス判定部15の動作について説明する。
まず、リソースアクセス判定部15は、アプリケーション情報記憶部12を参照して、アプリケーションAP1のアクセス対象論理デバイスを認識し、デバイス情報を参照して、当該アクセス対象論理デバイスが使用する全てのリソースを認識し、リソース情報記憶部14を参照して、認識したいずれか一つのリソースに対してアプリケーションAP1にアクセス権が設定されているか否かを判断する(ステップS501)。
アクセス権が設定されている場合、リソースアクセス判定部15は、デバイス情報記憶部18を参照して、当該リソースを用いる論理デバイスを認識し、アプリケーション情報記憶部12を参照して、当該論理デバイスに対してアクセス開始要求をなしているアプリケーションを検索する(ステップS502)。ここで、検索されたアプリケーションをAP5ということにする。
次に、リソースアクセス判定部15は、ステップS502で認識したアプリケーションAP3が複数存在するか否かを判断する(ステップS503)。複数存在する場合、リソースアクセス判定部15は、アプリケーション情報記憶部12を参照して、その中から最も優先度の高いアプリケーションAP5を検索して(ステップS504)、ステップS505の動作に進む。一方、複数存在しない場合、リソースアクセス判定部15は、そのまま、ステップS505の動作に進む。
ステップS505において、リソースアクセス判定部15は、アプリケーションAP5にアクセス権が与えられるように、リソース情報記憶部14の内容を更新し、ステップS506の動作に進む。このとき、リソースアクセス判定部15は、アプリケーションAP1にアクセス権が与えられていたリソースを必要とするアプリケーションAP5が存在しない場合、当該リソースのリソース情報に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へのアクセスできることとなる。このような処理によって、デバイスアクセスするためのアプリケーションの作りが簡潔になる。
次に、図9〜図13を用いて説明した処理の流れを、図2〜図4に示したアプリケーション、論理デバイス、リソース、および物理デバイスの対応関係を例にとって、具体的に説明する。
たとえば、図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がアクセス要求をなしたとき、アプリケーションA1は、一度アクセス不可になっていたことを知ることなく、SDSP論理デバイスにアクセスできる。つまり、アプリケーションA1は、SDSP物理デバイスとスピーカ物理デバイスとにアクセスできる。
次に、図3の構成例の場合における具体的な処理の流れについて説明する。たとえば、図3において、アプリケーションA1、A2、A4が既に回線論理デバイスにアクセス可能であると想定する。このとき、アプリケーションA3が、回線論理デバイスにアクセス開始要求をなしたときを考える。ここで、優先度は、アプリケーションA1、アプリケーションA2、アプリケーションA3、アプリケーションA4の順に高いとする。すなわち、AP1の優先度が最も高い。
まず、競合調停装置1は、三つの回線リソース32〜34の内、アクセス権が設定されていない回線リソースを判断する(図10:ステップS202参照)。本事案では、既に、全ての回線リソース32〜34に対して、アプリケーションA1、A2、A4が、アクセス権を取得している。したがって、アクセス権が設定されていない回線リソース(空いている回線リソース)は、存在しない。
次に、競合調停装置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の2つが存在する(図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は、当該アプリケーションに対するアクセス可否情報が「不可」となるようにアプリケーション情報記憶部12の登録内容を更新し(ステップS108)、処理を終了する。
このように、全ての物理デバイスにアクセスできなくても、所望の機能の一部が実行できればよい場合、競合調停装置は、アプリケーションが当該所望の機能の一部を実行できるように、デバイスドライバを実行させることもできる。
本発明にかかる競合調停装置、競合調停方法および競合調停プログラムは、物理デバイスの特性を十分に活かしきることができ、かつ物理デバイスの構成変化に柔軟に対応することができ、複数のアプリケーションが起動するコンピュータシステム等に用いられるものとして有用である。
本発明の一実施形態に係る競合調停装置が適用されるコンピュータシステムの全体構成を示すブロック図 アプリケーション、論理デバイス、リソース、および物理デバイスの対応関係の例を示す模式図 アプリケーション、論理デバイス、リソース、および物理デバイスの対応関係の例を示す模式図 アプリケーション、論理デバイス、リソース、および物理デバイスの対応関係の例を示す模式図 競合調停装置1の機能的構成を示すブロック図 アプリケーション情報記憶部12に格納されているアプリケーション情報の一例を示す図 デバイス情報の一例を示す図 リソース情報の一例を示す図 アプリケーションからアクセス開始要求があったときの競合調停装置1の動作を示すフローチャート ステップS104におけるリソースアクセス判定部15の動作を詳細に示したフローチャート アプリケーションからアクセス要求があったときの競合調停装置1の動作を示すフローチャート アプリケーションからアクセス終了要求があったときの競合調停装置1の動作を示すフローチャート ステップS403におけるリソースアクセス判定部15の動作の詳細を示すフローチャート 論理デバイスが使用するリソースの全てが使用できない場合であっても、使用可能なリソースのみアプリケーションが使用できるようにするときの競合調停装置の動作を示すフローチャート
符号の説明
1 競合調停装置
2 アプリケーション実行装置
3 物理デバイス
4 デバイスドライバ実行装置
11 アプリケーションIF部
12 アプリケーション情報記憶部
13 使用リソース認識部
14 リソース情報記憶部
15 リソースアクセス判定部
16 デバイスアクセス判定部
17 実行部
18 デバイス情報記憶部

Claims (5)

  1. 複数のアプリケーションが同時に少なくとも一つの物理デバイスの使用を所望した場合に発生する競合を調停する競合調停装置であって、
    前記物理デバイスには、I/Oポートを持つ第1の物理デバイスと、当該第1の物理デバイスに配線結合されI/Oポートを持たない第2の物理デバイスとが存在し、
    前記物理デバイスが有する少なくとも一つの機能を機能毎に定義するリソースと当該リソースの使用が現在許可されているアプリケーションとの対応関係を示すリソース情報を格納するリソース情報記憶手段と、
    記アプリケーションが実行されることで実現される機能を定義る論理デバイスと当該論理デバイス定義した機能を実現するために必要なリソースとの対応関係を示すデバイス情報を格納するデバイス情報格納手段と、
    前記アプリケーションによって新たに論理デバイスが指定された場合、前記デバイス情報を参照して、新たに指定された論理デバイスに対応する必要なリソースを認識する使用リソース認識手段と、
    前記リソース情報を参照して現在使用が許可されているアプリケーションを認識し、前記使用リソース認識手段によって認識された必要なリソースのそれぞれについて、使用が許可されるアプリケーションを所定の基準に基づいて判定するリソースアクセス判定手段と、
    前記アプリケーションが指定した論理デバイス定義る機能を実現するために必要なリソースの全てを使用可能か否かを、前記リソースアクセス判定手段による判定結果に基づいて判定することによって、当該アプリケーションが当該論理デバイスにアクセス可能か否かを判定するデバイスアクセス判定手段とを備える、競合調停装置。
  2. 前記デバイスアクセス判定手段によって、前記論理デバイスを新たに指定したアプリケーションが前記必要なリソースの全てを使用可能と判定されたことによって当該アプリケーションが当該論理デバイスにアクセス可能と判定された場合、当該必要なリソースの全てにそれぞれ対応する物理デバイスを制御するためのデバイスドライバを実行させる実行手段をさらに備える、請求項1に記載の競合調停装置。
  3. 前記デバイスアクセス判定手段による判定結果を、判定対象のアプリケーションと対応させてアプリケーション情報として格納するアプリケーション情報記憶手段と、
    前記デバイスアクセス判定手段による判定結果に基づいて前記アプリケーション情報を更新し、当該判定結果がアクセス可能である場合、前記必要なリソースの全てにそれぞれ対応する物理デバイスを制御するためのデバイスドライバを実行させる実行手段とをさらに備え、
    前記使用リソース認識手段は、論理デバイスにアクセスしているアプリケーションから当該論理デバイスへのアクセス終了要求を受け取った場合、アクセスを終了する論理デバイスに対応するリソースを認識し、
    前記リソースアクセス判定手段は、前記アプリケーション情報を参照して、前記アクセスを終了する論理デバイスに対応するリソースの使用が競合により許可されていない他のアプリケーションの有無を判定し、当該他のアプリケーションが有る場合、当該他のアプリケーションに競合を理由に使用許可されていないリソースの使用許可を与え、当該許可の結果を反映して前記リソース情報を更新し、
    前記デバイスアクセス判定手段は、前記他のアプリケーションが指定する論理デバイスが定義する機能を実現するために必要なリソースの全てを当該他のアプリケーションが使用できるか否かを、前記リソースアクセス判定手段により更新された前記リソース情報に基づいて判定することによって、当該他のアプリケーションが当該論理デバイスにアクセス可能か否かを判定し、
    前記実行手段は、前記デバイスアクセス判定手段によって前記他のアプリケーションが前記論理デバイスにアクセス可能と判定された場合、当該他のアプリケーションが前記必要なリソースの全てにそれぞれ対応する物理デバイスにアクセスできるように、当該物理デバイスを制御するデバイスドライバの設定を変更することを特徴とする、請求項1に記載の競合調停装置。
  4. 複数のアプリケーションが同時に少なくとも一つの物理デバイスの使用を所望した場合に発生する競合を調停するようにコンピュータ装置を機能させるためのプログラムであって、
    前記物理デバイスには、I/Oポートを持つ第1の物理デバイスと、当該第1の物理デバイスに配線結合されI/Oポートを持たない第2の物理デバイスとが存在し、
    前記コンピュータ装置には、前記物理デバイスが有する少なくとも一つの機能を機能毎に定義するリソースと当該リソースの使用が現在許可されているアプリケーションとの対応関係を示すリソース情報と、前記アプリケーションが実行されることで実現される機能を定義る論理デバイスと当該論理デバイス定義した機能を実現するために必要なリソースとの対応関係を示すデバイス情報とが記憶されており、
    前記アプリケーションによって新たに論理デバイスが指定された場合、前記デバイス情報を参照して、新たに指定された論理デバイスに対応する必要なリソースを前記コンピュータ装置に認識させるステップと、
    前記リソース情報を参照して現在使用が許可されているアプリケーションを前記コンピュータ装置に認識させ前記新たに指定された論理デバイスに対応する必要なリソースのそれぞれについて、使用が許可されるアプリケーションを所定の基準に基づいて当該コンピュータ装置に判定させるステップと、
    前記アプリケーションが指定した論理デバイス定義る機能を実現するために必要なリソースの全てを使用可能か否かを、前記使用が許可されるアプリケーションの判定結果に基づいて判定させることによって、当該アプリケーションが当該論理デバイスにアクセス可能か否かを前記コンピュータ装置に判定させるステップとを備える、競合調停プログラム。
  5. コンピュータ装置によって、複数のアプリケーションが同時に少なくとも一つの物理デバイスの使用を所望した場合に発生する競合を調停するための方法であって、
    前記物理デバイスには、I/Oポートを持つ第1の物理デバイスと、当該第1の物理デバイスに配線結合されI/Oポートを持たない第2の物理デバイスとが存在し、
    前記コンピュータ装置には、前記物理デバイスが有する少なくとも一つの機能を機能毎に定義するリソースと当該リソースの使用が現在許可されているアプリケーションとの対応関係を示すリソース情報と、前記アプリケーションが実行されることで実現される機能を定義る論理デバイスと当該論理デバイス定義した機能を実現するために必要なリソースとの対応関係を示すデバイス情報とが記憶されており、
    前記アプリケーションによって新たに論理デバイスが指定された場合、前記デバイス情報を参照して、新たに指定された論理デバイスに対応する必要なリソースを前記コンピュータ装置が認識するステップと、
    前記リソース情報を参照して現在使用が許可されているアプリケーションを前記コンピュータ装置が認識し前記新たに指定された論理デバイスに対応する必要なリソースのそれぞれについて、使用が許可されるアプリケーションを所定の基準に基づいて当該コンピュータ装置が判定するステップと、
    前記アプリケーションが指定した論理デバイス定義る機能を実現するために必要なリソースの全てを使用可能か否かを、前記使用が許可されるアプリケーションの判定結果に基づいて判定することによって、当該アプリケーションが当該論理デバイスにアクセス可能か否かを前記コンピュータ装置が判定するステップとを備える、競合調停方法。
JP2003381153A 2002-11-15 2003-11-11 競合調停装置、競合調停方法および競合調停プログラム Expired - Fee Related JP4277952B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003381153A JP4277952B2 (ja) 2002-11-15 2003-11-11 競合調停装置、競合調停方法および競合調停プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002331905 2002-11-15
JP2003381153A JP4277952B2 (ja) 2002-11-15 2003-11-11 競合調停装置、競合調停方法および競合調停プログラム

Publications (3)

Publication Number Publication Date
JP2004178578A JP2004178578A (ja) 2004-06-24
JP2004178578A5 JP2004178578A5 (ja) 2006-08-24
JP4277952B2 true JP4277952B2 (ja) 2009-06-10

Family

ID=32716234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003381153A Expired - Fee Related JP4277952B2 (ja) 2002-11-15 2003-11-11 競合調停装置、競合調停方法および競合調停プログラム

Country Status (1)

Country Link
JP (1) JP4277952B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4851079B2 (ja) * 2004-10-20 2012-01-11 ソフトバンクモバイル株式会社 移動体通信端末
US8448187B2 (en) 2005-08-18 2013-05-21 Panasonic Corporation Conflict resolution apparatus
WO2009058154A1 (en) * 2007-11-02 2009-05-07 Qualcomm Incorporated Apparatus and methods of configurable system event and resource arbitration management
WO2012160814A1 (ja) * 2011-05-24 2012-11-29 日本電気株式会社 情報処理システム、アクセス権管理方法、情報処理装置およびその制御方法と制御プログラム
JP6067215B2 (ja) * 2011-09-15 2017-01-25 富士通株式会社 デバイス管理方法、デバイス管理装置及びデバイス管理プログラム
US9390294B2 (en) 2011-09-30 2016-07-12 Hewlett-Packard Development Company, L.P. Virtualized device control in computer systems
JP5919179B2 (ja) * 2012-12-07 2016-05-18 日本電信電話株式会社 情報処理装置及び情報処理プログラム
JP5479621B2 (ja) * 2013-02-22 2014-04-23 クゥアルコム・インコーポレイテッド 構成可能なシステム・イベントおよびリソース・アービトレーション管理の装置および方法
JP7415345B2 (ja) * 2019-07-03 2024-01-17 オムロン株式会社 制御システム、サポート装置および設定プログラム
CN114035771A (zh) * 2021-11-17 2022-02-11 河南许继仪表有限公司 一种基于自平衡技术的物联管理终端资源共享系统及方法

Also Published As

Publication number Publication date
JP2004178578A (ja) 2004-06-24

Similar Documents

Publication Publication Date Title
US9317275B2 (en) Computer system and program restoring method thereof
US8904067B2 (en) Adaptive multi-threaded buffer
JP2566717B2 (ja) 条件付きオペレーション提供装置及び方法
JP6293657B2 (ja) 他のオペレーティング・システムへのブート動作の動的なリダイレクト
JP4277952B2 (ja) 競合調停装置、競合調停方法および競合調停プログラム
JP2004280297A (ja) タスク切換装置、方法及びプログラム
JPH04308961A (ja) 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
US20060047874A1 (en) Resource management apparatus
US7000050B2 (en) Apparatus, method and program for contention arbitration
EP1717703A1 (en) Electronic device for automatically continuing to provide service
JP2007094649A (ja) アクセス調停回路
JP2005209206A (ja) マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ
WO2014190700A1 (zh) 一种内存访问的方法、缓冲调度器和内存模块
JP5067723B2 (ja) 情報処理装置、情報処理方法およびプログラム
CN108920092B (zh) 内存数据的数据操作方法、装置及电子设备
US20130097340A1 (en) Usb multi-functions device and method thereof
US20220261489A1 (en) Capability management method and computer device
JP3864250B2 (ja) 排他制御装置、排他制御方法、プログラム、及び記録媒体
US9418175B2 (en) Enumeration of a concurrent data structure
CN111026542A (zh) 一种应用程序的覆盖图标的显示方法和装置
JPH05120041A (ja) 資源割り当て管理方式
CN117041980B (zh) 一种网元管理方法、装置、存储介质及电子设备
JP2008269113A (ja) アプリケーション実行環境構築システム、装置及びそれに用いる方法並びにそのプログラム
JPH09293055A (ja) 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体
JP2008181370A (ja) アクセス管理装置、アクセス管理方法及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060711

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060711

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081002

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090209

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090303

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees