(57)【要約】【課題】ハードウェア資源の排他処理を行うレベルを容易に変更可能なリソースの排他処理を選択的に行うデバイスドライバを提供する。【解決手段】デバイスドライバ２は、１つ又は複数の層にて当該デバイスドライバが管理するリソースの排他処理が可能な処理手段と、１つ又は複数の層のいずれで排他処理を行うかどうか設定可能な処理設定手段とを有する。これにより最適の効率を実現するシステムが提供可能となる。【選択図】図１
2010134684.tif 000002
【特許請求の範囲】
【請求項１】
１つ又は複数の層にて本デバイスドライバが管理するリソースの排他処理が可能な処理手段と、
前記１つ又は複数の層のいずれで前記排他処理を行うかどうか設定可能な処理設定手段とを有することを特徴とするデバイスドライバ。
【請求項２】
当該デバイスドライバが管理する前記リソースが、前記１つ又は複数の層のいずれの前記処理手段においても獲得可能なことを判定する判定手段と、
前記判定手段にて前記リソースが獲得可能と判定された場合に、前記１つ又は複数のいずれの層で排他処理を行うか設定変更可能な変更手段とを有することを特徴とする請求項１に記載のデバイスドライバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばシステムＬＳＩを構成するハードウェアＩＰといったリソースを管理するデバイスドライバにおいて、リソースの排他処理を選択的に行うデバイスドライバ等に関する。
【背景技術】
【０００２】
従来、システムＬＳＩを構成するハードウェアＩＰを制御するデバイスドライバは、プロジェクト毎又はオペレーティングシステム毎に最適になるように書き換えが行われていた。それに対して近年、μITRON4.0仕様研究会 デバイスドライバ設計ガイドラインWGから公開されているμITRON4.0仕様研究会、デバイスドライバ設計ガイドラインWG中間報告書（DICアーキテクチャの提案）で示されるものがある。即ち、μITRONをOSとするプロジェクト間では移植性が容易なデバイスドライバ構造が提案されている。
【０００３】
更に、特許文献１では、デバイスを管理するＯＳのデバイスドライバから、デバイスを使用するもうひとつのＯＳのデバイスドライバへ割り込みでデータを渡すことにより、複数のＯＳでひとつのリソースを共有する発明が提案されている。
また、特許文献２では、アプリケーションが利用するリソースのシステムコールとその引数を蓄積することにより不正なリソース使用の判定に用いる発明が提案されている。
【０００４】
【特許文献１】特開平８−２１２０８９号公報
【特許文献２】特開２００３−３３０７３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のデバイスドライバにおいてはデバイスドライバが管理するリソースの排他処理をデバイスドライバで一意的に行うか、デバイスディスクリプタを用いるＩＯライブラリで一意的に行うかというようにシステム毎に一意的に決定されている。そのため、移植性を考慮し、且つシステム構築時に動的にリソースの排他処理をどの階層で行うかを指定できない。
【０００６】
更に、リソースを使用するアプリケーションが限定される場合に動的に排他処理の位置を移動することもはなはだ困難である。このために、デバイスドライバの下位レベルで排他処理を行うと、その排他処理機能が頻繁に行われハードウェア資源へのアクセス処理が遅くなる。よって、アプリケーションレベルで行うと、複数のタスク、スレッド、プロセスなどに対してハードウェア資源の排他処理が不可能となるという問題がシステム毎に発生する。
【０００７】
また、移植性が考慮されたデバイスドライバであってもシステム毎の排他処理をどこで行うか変更するためには、デバイスドライバの修正が必要となる。前記報告書では、デバイスドライバをハードウェア依存部とハードウェア非依存部に分けることにより、ハードウェアの変更に伴う移植性を考慮した構造の提案であり、システム毎にリソースの排他処理の手段を切り換える提案はなされていない。
【０００８】
また、特許文献１では、複数のＯＳから一つのデバイスを管理する発明である。また、特許文献２ではアプリケーションからリソースの不正利用を監視するための発明であり、リソースの排他処理手段の切り換えは考慮されていない。
【０００９】
そこで、本発明はハードウェア資源の排他処理を行うレベルを容易に変更可能なリソースの排他処理を選択的に行うデバイスドライバを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明のデバイスドライバは、１つ又は複数の層にて本デバイスドライバが管理するリソースの排他処理が可能な処理手段と、前記１つ又は複数の層のいずれで前記排他処理を行うかどうか設定可能な処理設定手段とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ハードウェア資源の排他処理を行うレベルを容易に変更可能なリソースの排他処理を選択的に行うデバイスドライバを提供する。これにより最適の効率を実現するシステムが提供可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して、本発明によるデバイスドライバの実施形態を説明する。
図１は、本発明のリソースの排他処理を選択的に行うデバイスドライバを説明するブロック図である。図において、１はアプリケーション、２はアプリケーションが後述のデバイス３を利用するために使用するデバイスドライバ、３はデバイスドライバ２によって制御されるデバイスである。
【００１３】
デバイスドライバ２は、デバイスディスクリプタを用いて排他制御を行うＩＯライブラリを使用するＯＳ依存層４とセマフォ排他処理を使用するハードウェア非依存層５と割り込みマスクレベル変更により排他処理を行うハードウェア依存層６で構成される。
【００１４】
例えば、ハードウェア依存層６では、割り込みマスクレベル変更関数を外部参照にて排他処理を実行する。
ハードウェア非依存層５では、セマフォ排他処理関数を外部参照にて排他処理を実行する。
ＯＳ依存層４においては、概デバイスドライバをＩＯライブラリへ登録して排他処理を実行する。
【００１５】
排他処理指示手段７においては、複数のいずれの階層で排他処理を行うかを決定する。即ち、システム構築時にＯＳ依存層４及びハードウェア非依存層５及びハードウェア依存層６のいずれの階層で排他処理を行うかを決定して設定可能となっている。例えば、ハードウェア依存層６の排他処理をオフにし、ハードウェア非依存層５の排他処理をオンにし、ＯＳ依存層４の排他処理をオフにする場合は、ハードウェア依存層６が外部参照する割り込みマスクレベル変更関数をヌル定義する。
【００１６】
そして、ハードウェア非依存層５が外部参照するセマフォ排他処理関数を使用するＯＳに合わせてリソースを準備すると共に定義し、ＯＳ依存層４でのデバイスドライバのＩＯライブラリへの登録の無効を指示する。このようにデバイスドライバを階層化し、各階層で異なる排他処理を準備することにより、システム構築時にシステムにとって最適な排他処理を実行するデバイスドライバが設定及び設定変更可能となる。
【００１７】
図２は、本発明のリソースの排他処理を選択的に行うデバイスドライバを説明する第二の実施形態を示すブロック図である。図において、１１はアプリケーション、１２はアプリケーションが後述のデバイス１３を利用するために使用するデバイスドライバ、１３はデバイスドライバ１２によって制御されるデバイスである。
【００１８】
デバイスドライバ１２は、排他制御として排他処理１を使用する最上位層１４と排他制御として排他処理２を使用する中間層１５と排他制御として排他処理３を使用する最下位層１６の３層から構成されている。
【００１９】
例えば、排他処理１から排他処理３は排他処理関数を外部参照して排他処理を実行する。排他処理管理手段１７においては、前記ドライバを構成する層１４、１５、１６が使用する排他処理１、２、３において、リソースとしてのデバイスが獲得可能かどうかの判定を行う。そして、リソースのデバイスが獲得可能と判定された場合に、アプリケーションの指示に従い指定された層において排他処理の設定を行う。
【００２０】
１８は排他処理管理手段１７において、前記リソースが獲得可能かどうかの判定と指定された層に排他処理設定を行うための排他処理管理テーブルである。排他処理管理テーブル１８において、前記ドライバを構成する層１４、１５、１６が使用する排他処理１、２、３それぞれに対して排他処理情報１９、２０、２１を有する。各排他処理情報は、排他処理情報位置を示す位置情報２２と、排他処理が有効であるか無効であるかを示すＯＮ／ＯＦＦ情報２３を有する。また、セマフォ排他処理関数や割り込みマスクレベル変更関数といった排他処理関数情報２４を有する。
【００２１】
また、ＯＮ／ＯＦＦ情報２３がＯＮであった場合に、排他処理関数情報２４においてリソースが占有されているか開放されているかを示す占有／開放情報２５から構成されている。例えば、排他処理管理手段１７にドライバを構成するすべての層における排他処理を無効とすることを要求した場合に、排他処理管理手段１７はＯＮ／ＯＦＦ情報２３がＯＮである排他処理情報を排他処理管理テーブル１８から検索する。図２では、排他処理情報１９と２１である。
【００２２】
ＯＮ／ＯＦＦ情報２３がＯＮであると検索された排他処理情報において、占有／開放情報２５がすべて開放されていることを確認する。図２では、排他処理情報２１がリソースを占有しているので開放されるまで待つ。
【００２３】
ＯＮ／ＯＦＦ情報２３がＯＮであった排他処理情報のＯＮ／ＯＦＦ情報をＯＦＦにして処理を終了する（図２では排他処理情報１９と２１のＯＮ／ＯＦＦ情報２３をＯＦＦとする）。このように、階層化されたデバイスドライバにおいて、各階層で異なる排他処理を準備している場合に、アプリケーション動作時にシステムにとって最適な排他処理を実行するデバイスドライバが構築可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明のリソースの排他処理を選択的に行うデバイスドライバを説明するブロック図である。
【図２】本発明のリソースの排他処理を選択的に行うデバイスドライバを説明する第二の実施例を示すブロック図である。
【符号の説明】
【００２５】
１  アプリケーション
２  デバイスドライバ
３  デバイス
４  ＯＳ依存層
５  ハードウェア非依存層
６  ハードウェア依存層
７  排他処理指示手段
【図１】
2010134684.tif 000003
【図２】
2010134684.tif 000004