(57)【特許請求の範囲】
【請求項１】
システムに異常が発生し、異常が発生した装置の使用が禁止されたとき、該異常が発生した装置の使用が禁止されたことを、該装置を制御する装置制御部に通知すべきか否かを判定する通知判定手段と、
該通知判定手段において通知すべきであると判定されたときに、前記装置制御部に、前記異常が発生した装置に対するアクセス動作を行わせることで、該装置の使用が禁止されたことを該装置制御部に通知する通知手段と、
を備えることを特徴とする通知装置。
【請求項２】
前記通知手段は、前記装置制御部に対して疑似的な割込みを発行して該装置制御部の割込み処理を呼び出すことにより、前記異常が発生した装置に対するアクセス動作を行わせる疑似割込み発行手段を含むことを特徴とする請求項１記載の通知装置。
【請求項３】
前記通知手段は、前記装置制御部に対してアクセス指示を発行して該装置制御部のアクセス処理を呼び出すことにより、前記異常が発生した装置に対するアクセス動作を行わせるアクセス指示発行手段を含むことを特徴とする請求項１記載の通知装置。
【請求項４】
前記通知判定手段は、前記装置の使用が禁止されたことを通知すべきか否かを、前記システムに含まれる装置グループ毎に判定する手段を含むことを特徴とする請求項１記載の通知装置。
【請求項５】
前記通知判定手段は、前記装置の使用が禁止されたことを通知すべきか否かを、前記システムに含まれる装置を制御する装置制御部毎に判定する手段を含むことを特徴とする請求項１記載の通知装置。
【請求項６】
前記通知判定手段は、前記装置の使用が禁止されたことを通知すべきか否かを、前記システムに含まれる装置毎に判定する手段を含むことを特徴とする請求項１記載の通知装置。
【請求項７】
前記通知判定手段は、前記装置の使用が禁止されたことを通知すべきか否かを設定する設定手段を含み、設定された情報に対応する判定結果を出力することを特徴とする請求項１記載の通知装置。
【請求項８】
前記異常が発生した装置の影響を受ける装置が前記システム内に存在するか否かを確認する確認手段をさらに備えることを特徴とする請求項１記載の通知装置。
【請求項９】
コンピュータのためのプログラムを記録した記録媒体であって、
システムに異常が発生し、異常が発生した装置の使用が禁止されたとき、該異常が発生した装置の使用が禁止されたことを、該装置を制御する装置制御部に通知すべきか否かを判定する処理と、
該処理において通知すべきであると判定されたときに、前記装置制御部に、前記異常が発生した装置に対するアクセス動作を行わせることで、該装置の使用が禁止されたことを該装置制御部に通知する処理と、
を前記コンピュータに行わせるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
システムに異常が発生したとき、異常が発生した装置の使用を禁止し、
該異常が発生した装置の使用が禁止されたことを、該装置を制御する装置制御部に通知すべきか否かを判定し、
通知すべきであると判定されたとき、前記装置制御部に、前記異常が発生した装置に対するアクセス動作を行わせることで、該装置の使用が禁止されたことを該装置制御部に通知する
ことを特徴とする通知方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システム動作中に異常が発生したとき、異常が発生した装置をシステムから切り離して動作を継続する動的縮退機能を有するシステムにおいて、各装置を制御する装置制御部や他のシステム等の通知先に、装置の切り離しを通知する通知装置およびその方法に関する。
【０００２】
【従来の技術】
コンピュータシステムの動作中に各種ハードウェア装置の異常が検出された場合、誤動作を防止するためにシステムを緊急停止すること（システムダウン）が一般的である。しかし、ハードウェア装置の異常によるシステムの停止率（システムダウン率）を低減するため、異常が発生した装置をシステムから切り離して、動作を継続するコンピュータシステムもある。このような機能は、動的縮退機能と呼ばれる。ここで、装置を切り離すとは、ハードウェアまたはソフトウェアによりその装置の使用を禁止することを意味する。
【０００３】
動的縮退機能を実現する技術としては、コンピュータのハードウェア資源である各装置を冗長化して、フォールト・トレラント機能により故障装置をシステムから動的に切り離すフォールト・トレラント・コンピュータ等が挙げられる。
【０００４】
ただし、異常が発生した装置を動的に切り離すには、装置を制御するドライバが、装置を切り離された場合の動作をサポートしている必要がある。例えば、異常が発生した装置の切り離しをドライバに通知するための特別なインタフェースを用意しておき、ドライバが、そのインタフェースを使用して装置の切り離しを認識する機能をサポートしている必要がある。
【０００５】
また、異常が発生した装置へのアクセスができないようにすることで、装置の切り離しをドライバに通知する方法を採用しているコンピュータシステムの場合、上述のようなインタフェースが用意されていなければ、異常が発生した後、ドライバが装置に初めてアクセスしたときに、その装置の切り離しを認識することになる。
【０００６】
さらに、切り離された装置と関連性を持つ他のコンピュータシステム上で動作するアプリケーションに装置の切り離しを通知する場合も、特別なインタフェースを用意しておき、アプリケーションが、そのインタフェースを使用して装置の切り離しを認識する機能をサポートしている必要がある。
【０００７】
【発明が解決しようとする課題】
しかしながら、上述した従来のシステムには、次のような問題がある。
コンピュータシステムで用いられる様々な装置とそれらを制御するドライバは、様々なベンダーにより、それぞれ独自に製造され、販売されている。一般に、オープンシステムと呼ばれるコンピュータシステムにおいては、利用者はこれらの様々な装置とドライバを組み合わせて、実際のシステムを構築している。
【０００８】
このようなオープンシステムの市場に提供されているドライバは、一般に装置へのアクセスインタフェースと装置からの割込みを制御する機能を備えているだけであり、動的縮退のための特別なインタフェースは持っていない。したがって、利用者が動的縮退機能を持つ高信頼性オープンシステムを構築しようとすると、使用できる装置やドライバが特定のベンダに限定されてしまうという問題がある。
【０００９】
また、異常が発生した装置へのアクセスができないようにすることで、装置の切り離しをドライバに通知する方法を採用しているシステムでは、異常が発生した後、ドライバが装置に長時間アクセスしなければ、装置の切り離しを長時間認識することができないという問題がある。
【００１０】
特に、外部から装置への割込み事象が発生しない限りドライバが動作しないような装置では、既に切り離されている装置に対する割込み事象を長時間待つことになり、検出すべき事象が検出されない等の誤動作が発生する可能性がある。
【００１１】
また、他のシステム上のアプリケーションが、特別なインタフェースを使用して装置の切り離しを認識する機能をサポートしていない場合、装置の切り離しをアプリケーションに通知することができない。このため、アプリケーションは、装置が切り離された後も、その装置がまだ正常に動作していると認識したままになるという問題がある。特に、アプリケーションがその装置の使用に伴う課金処理を行っている場合には、不当な課金が発生することになり、問題が大きくなる。
【００１２】
本発明の課題は、特別なインタフェースを用いることなく、装置の切り離しを通知先に通知し、切り離しの認識に関する問題により発生する誤動作を防止する通知装置およびその方法を提供することである。
【００１３】
【課題を解決するための手段】
図１は、本発明の通知装置の原理図である。図１の通知装置２は、自システム１内に設けられ、通知手段３を備える。
【００１４】
本発明において、不図示の通知判定手段は、システム１に異常が発生し、異常が発生した装置４の使用が禁止されたとき、装置４の使用が禁止されたことを、この装置４を制御する装置制御部５に通知すべきか否かを判定し、また、通知手段３は、上記通知判定手段において通知すべきであると判定されたときに、装置制御部５に、装置４に対するアクセス動作を行わせることで、装置４の使用が禁止されたことを装置制御部５に通知する。
【００１５】
装置４の使用が禁止されて装置４がシステム１から切り離されると、通知手段３は、装置制御部５に、装置４に対する通常のアクセス動作を行わせる。このとき、装置制御部５は、装置４にアクセスすることができないため、装置４の使用が禁止されたことを認識する。
【００１６】
このように、本発明の要点は、装置の使用が禁止されたとき、そのことを装置制御部に通知すべきか否かを判定し、通知すべきであると判定された場合に、装置に対するアクセス動作を装置制御部に行わせることである。  
【００２０】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
本実施形態の情報処理装置は、エラー検出機構により、システム動作中に装置（部品）の異常を検出した場合、既存のインタフェースを変更することなく、その装置の切り離しを通知先に通知する。また、本実施形態は、動的縮退機能を実現するためのドライバインタフェースおよびその制御方法を含んでいる。
【００２１】
このような構成によれば、切り離しを通知するための特別なインタフェースを持たないシステムでも、装置の切り離しを通知先に速やかに通知することが可能となる。したがって、切り離しの認識に関する問題により発生する誤動作を防止することができる。
【００２２】
また、既存のインタフェースをそのまま利用することで、ドライバへの影響を最小限にすることができ、動的縮退機能を有するオープンシステムを容易に構築することが可能となる。
【００２３】
また、ある装置で異常が発生し、その装置の影響を受ける他の装置が存在する場合、動的縮退モードでは、影響を受ける装置も同時に切り離すべきである。例えば、あるＩ／Ｏ（入出力）バスに複数のＩ／Ｏ装置が接続されている状態でＩ／Ｏバスが故障した場合は、故障したＩ／Ｏバスに接続されているすべてのＩ／Ｏ装置を、同時に切り離す必要がある。
【００２４】
この場合、同時に切り離される装置であっても、それを制御するドライバの仕様や個々の装置の状態等によって、ドライバへの切り離しの通知が必要な場合と必要でない場合とがある。切り離しの通知が必要でない場合は、逆に、通知することにより誤動作が発生する可能性もある。
【００２５】
そこで、異常が発生した装置の影響を受ける各装置やそのドライバについて、様々な条件を判定することで、各ドライバに装置の切り離しを通知すべきかどうかを自動的に決定することができる。これにより、通知が必要な場合のみ切り離しを通知し、通知が必要でない場合には、誤って通知するために発生する誤動作を防止することが可能となる。
【００２６】
また、異常が発生した装置と関連性を持つ他のコンピュータシステム上で動作するアプリケーションに、既存のインタフェースを変更することなく、装置の切り離しを通知することで、特別なインタフェースを持たない他のシステムにおいても、切り離しを認識できないために発生する問題を防止することが可能となる。
【００２７】
図２は、本実施形態の情報処理装置の構成図である。図２の情報処理装置１０（自システム）は、確認部１１、外部通知部１２、通知判定部１３、切り離し通知部１４、複数の装置制御部１５、各装置制御部１５に付随したエラー検出機構１６、装置制御部１５により制御される装置１７を備える。
【００２８】
装置１７は、例えば、Ｉ／Ｏバス、ディスプレイアダプタ、ディスプレイ、ＳＣＳＩ（small computer system interface ）アダプタ、ネットワークの通信アダプタ、ハードディスク等の外部記憶装置である。
【００２９】
装置制御部１５は、例えば、１つ以上の装置１７を制御するドライバソフトウェアである。エラー検出機構１６は、装置１７の異常を検出し、情報処理装置１０は、異常が発生した装置１７とその影響を受ける装置１７へのアクセスを禁止して、それらの装置１７をシステムから切り離す。
【００３０】
また、装置グループ１８は、ある装置で異常が発生したとき、その装置の影響を受ける他の装置と異常が発生した装置の集合を表している。言い換えれば、装置グループ１８は、特定の装置が切り離されるとき、その装置と同時に切り離すべき他の装置とその特定の装置の集合に対応する。一般に、ある装置グループ１８に属する装置１７を制御する装置制御部１５は、他の装置グループ１８に属する同じ種類の装置１７を制御することもできる。
【００３１】
通知判定部１３は、例えば、メモリに格納されたプログラムに対応し、情報処理装置１０から装置１７が切り離されたとき、装置１７の切り離しを装置制御部１５に通知すべきか否かを判定する。
【００３２】
このとき、装置制御部の仕様や装置の状態等の様々な条件を確認することによって、装置の切り離しを通知すべきか否かを自動的に判定する。そして、通知が必要と判定すると、切り離し通知部１４に通知動作を指示する。ここで、通知が不要と判定された場合は、通知動作の指示は行われない。
【００３３】
切り離し通知部１４は、例えば、メモリに格納されたプログラムに対応し、通知動作を指示されると、既存のインタフェースを変更することなく、装置の切り離しを装置制御部に通知する。既存のインタフェースを利用することにより、切り離しを通知するための特別なインタフェースを持たないシステムでも、装置の切り離しを装置制御部に通知することができる。
【００３４】
切り離し通知部１４は、通知手段として、疑似割込み発行部３１およびアクセス指示発行部３２を有する。
疑似割込み発行部３１は、装置制御部に対して疑似的な割込みを発行することで、装置制御部の割込み処理を呼び出す。疑似的に割込みを上げることにより、真の割込みが上がった場合と同様の手順で、装置制御部の割込みハンドラ（割込みエントリ）が呼び出される。
【００３５】
ここで、真の割込みとは、切り離される装置からの割込み処理の呼び出しを指し、疑似的な割込みとは、真の割込み以外を契機とする割込み処理の呼び出しを意味する。疑似的な割込みとしては、例えば、ＣＰＵ（中央処理装置）の内部割込み命令を実行することによるソフトウェア割込みが挙げられる。
【００３６】
例えば、異常が発生した装置へのアクセスができないようにすることで、装置制御部に装置の切り離しを通知する方法を採用しているシステムの場合、装置制御部の割込みハンドラが起動／実行されると、その割込みハンドラが装置にアクセスする際にアクセスエラーを検出する。これにより、装置制御部は、装置の切り離しを速やかに認識できる。
【００３７】
また、アクセス指示発行部３２は、装置に対するリード処理、ライト処理、オープン処理等のアクセス指示を意図的に発行することで、装置制御部の対応するアクセス処理（エントリ）を呼び出す。意図的にアクセス指示を発行することにより、装置制御部のリードエントリ、ライトエントリ、オープンエントリ等のエントリが呼び出される。
【００３８】
例えば、異常が発生した装置へのアクセスができないようにすることで、装置制御部に装置の切り離しを通知する方法を採用しているシステムの場合、装置制御部のリードエントリ、ライトエントリ、オープンエントリ等が起動／実行されると、実行されたエントリが装置にアクセスする際にアクセスエラーを検出する。これにより、装置制御部は、装置の切り離しを速やかに認識できる。
【００３９】
このように、疑似割込み発行部３１またはアクセス指示発行部３２を用いることで、従来の割込みインタフェースをそのまま利用することができ、特別なインタフェースを持たないシステムでも、装置制御部に装置の切り離しを通知することができる。
【００４０】
上述した通知判定部１３は、装置グループ判定部２１、装置制御部判定部２２、装置判定部２３、および設定部２４を含む。
装置グループ判定部２１は、異常が発生した装置の影響を受ける装置グループに属する各装置の状態や装置を制御する装置制御部の仕様等、装置グループの様々な条件を包括的に確認することによって、装置の切り離しを通知すべきか否かを、異常が発生した装置の影響を受ける装置グループ単位で自動的に判定する。ここで、装置グループについて通知が不要と判定された場合、その装置グループ内の装置を制御する装置制御部に対しては、切り離しが通知されない。
【００４１】
装置制御部判定部２２は、装置を制御する装置制御部のその時点での状態や仕様等、装置制御部毎の様々な条件を確認することによって、装置の切り離しを通知すべきか否かを装置制御部単位で自動的に判定する。ここで、ある装置制御部について通知が不要と判定された場合、その装置制御部に対しては切り離しが通知されない。
【００４２】
装置判定部２３は、個々の装置のその時点での状態や使用状況等、装置毎の様々な条件を確認することによって、装置の切り離しを通知すべきか否かを装置単位で自動的に判定する。ここで、ある装置について通知が不要と判定された場合、その装置を制御する装置制御部に対しては切り離しが通知されない。
【００４３】
設定部２４は、システム管理者により指定された情報を、例えば、メモリ上に設定する。これにより、システム管理者は、装置の切り離しを通知すべきか否かを選択して設定することができる。
【００４４】
通常は、システム管理者の負荷を軽減するために、システム管理者による設定の必要はない。ただし、自動的に決定された結果では不具合が発生する場合等、システム管理者が通知についての設定を変更すべきと判断した場合は、設定部２４により設定を変更することができる。
【００４５】
設定部２４は、装置グループ設定部２５、装置制御部設定部２６、および装置設定部２７を含む。
装置グループ設定部２５は、異常が発生した装置の影響を受ける装置グループ単位で切り離しを通知すべきか否かを設定する。これにより、システム管理者は、切り離しを通知すべきか否かを、装置グループ単位で設定することができる。
【００４６】
装置制御部設定部２６は、装置制御部単位で切り離しを通知すべきか否かを設定する。これにより、システム管理者は、切り離しを通知すべきか否かを、装置制御部単位で設定することができる。
【００４７】
装置設定部２７は、装置単位で切り離しを通知すべきか否かを設定する。これにより、システム管理者は、切り離しを通知すべきか否かを、個々の装置単位で設定することができる。
【００４８】
確認部１１は、例えば、メモリに格納されたプログラムに対応し、装置グループに属する装置について、装置制御部単位および装置単位の判定を行う際に、異常が発生した装置の影響を受ける他の装置が存在するか否かを確認する。影響を受ける装置は、動的縮退の際に異常が発生した装置と同時に切り離されるため、その装置を制御する装置制御部に対しても切り離しの通知が必要である可能性が高い。
【００４９】
他に影響を受ける装置が存在しないことが確認できれば、装置制御部への通知処理は完了する。他に影響を受ける装置が存在する場合は、次の装置についての判定が行われる。
【００５０】
このように、確認部１１、通知判定部１３、および切り離し通知部１４を備えることで、同時に切り離される他の装置を制御する装置制御部に対しても、装置の切り離しを通知することができる。したがって、切り離しの通知が必要となるすべての装置制御部に対して、速やかに切り離しが通知される。
【００５１】
外部通知部１２は、例えば、メモリに格納されたプログラムに対応し、情報処理装置１０と他のシステム４０との間の既存のインタフェースを利用することにより、装置の切り離しを外部のシステム４０に通知する。これにより、装置の切り離しを通知するための特別なインタフェースを持たない他のシステムに対しても、装置の切り離しを通知することができる。
【００５２】
次に、図３から図９までを参照しながら、図２の情報処理装置１０の動作をより詳細に説明する。
図３は、情報処理装置１０による通知処理のフローチャートである。この処理は、エラー検出機構１６が異常を検出したときに開始される。
【００５３】
まず、情報処理装置１０は、異常が発生した装置の影響を受ける装置グループに属するすべての装置を切り離す（ステップＳ１）。装置へのアクセスができないようにすることで装置制御部に装置の切り離しを通知する方法を採用している場合は、これ以降、切り離された装置へのアクセスができないようになる。
【００５４】
例えば、Ｉ／Ｏバスの異常が発生した場合、そのＩ／Ｏバスに接続されているディスプレイアダプタ、ＳＣＳＩアダプタ、通信アダプタ等の装置が同時に切り離される。
【００５５】
次に、装置グループ判定部２１は、異常が発生した装置の装置グループ単位で通知が必要か否かを判定する（ステップＳ２）。この判定で通知が必要と判定された場合、次に、装置制御部判定部２２は、装置グループに属する装置の装置制御部単位で通知が必要か否かを判定する（ステップＳ３）。この判定で通知が必要と判定された場合、次に、装置判定部２４は、装置グループに属する装置単位で通知が必要か否かを判定する（ステップＳ４）。
【００５６】
この判定で通知が必要と判定された場合、次に、切り離し通知部１４は、疑似割込み発行部３１またはアクセス指示発行部３２を用いて、装置を制御する装置制御部に切り離しを通知する（ステップＳ５）。例えば、Ｉ／Ｏバスの異常が発生した場合、異常が発生したＩ／Ｏバスに接続されている装置のドライバに、装置の切り離しが通知される。
【００５７】
次に、確認部１１は、装置グループ内に、異常が発生した装置の影響を受ける他の装置が存在するか否かを確認する（ステップＳ６）。影響を受ける他の装置が存在すれば、次の装置についてステップＳ３以降の処理が繰り返され、ステップＳ３またはＳ４において通知が不要と判定されると、対応する装置制御部には切り離しが通知されずに、ステップＳ６の処理が行われる。
【００５８】
ステップＳ６において他の装置が存在しなければ、次に、外部通知部１２は、例えば、切り離された装置グループに属するすべての装置を強制的にリセット（初期化）する。これにより、それらの装置の状態が変更されるため、切り離された装置と関連性を持つ他のシステム４０上で動作するアプリケーションは、それらの装置が切り離されたことを認識する。
【００５９】
ここで、リセットとは、装置の動作を停止するために行われるリセット処理と同様の処理を指す。装置がリセットされると、システム４０上のアプリケーションは、装置が停止した場合と同様の応答を行い、装置が使用できなくなった場合の動作を行う。
【００６０】
例えば、ネットワークの通信アダプタがリセットされた場合は、そのアダプタを使用して通信していた他のシステム上で動作するアプリケーションは、通信を切断することになる。これにより、アプリケーションが通信に伴う課金処理を行っている場合でも、不当な課金が発生することはなくなる。
【００６１】
図４は、図３のステップＳ２の装置グループ単位の判定処理のフローチャートである。装置グループ判定部２１は、まず、異常が発生した装置の影響を受ける装置グループについて、装置グループ設定部２５により設定された情報を確認する（ステップＳ１１）。ここで、通知必要と設定されている場合は、通知が必要と判定し（ステップＳ１３）、通知不要と設定されている場合は、通知が不要と判定する（ステップＳ１４）。
【００６２】
装置グループ設定部２５により通知が必要か否かが設定されていない場合は、次に、装置グループの状態を確認する（ステップＳ１２）。この確認は、例えば、図５に示すような装置グループの情報を参照して行われる。図５のｏｆｆｌｉｎｅ−ｅｎａｂｌｅは、例えば、メモリに格納された装置グループのプロパティに含まれ、その値が“０”のとき装置グループが切り離し不可であることを表し、“１”のとき装置グループが切り離し可であることを表す。
【００６３】
ｏｆｆｌｉｎｅ−ｅｎａｂｌｅの値は、異常が発生した装置の影響を受ける装置グループに属する各装置の状態、装置を制御する装置制御部の仕様等、装置グループの様々な条件を考慮して設定される。
【００６４】
装置グループ判定部２１は、ｏｆｆｌｉｎｅ−ｅｎａｂｌｅ＝“１”のとき、装置グループが切り離されたものとみなして、通知が必要と判定する（ステップＳ１３）。また、ｏｆｆｌｉｎｅ−ｅｎａｂｌｅ＝“０”またはｏｆｆｌｉｎｅ−ｅｎａｂｌｅが設定されていないとき、装置グループが切り離されていないものとみなして、通知が不要と判定する（ステップＳ１４）。
【００６５】
図６は、図３のステップＳ３の装置制御部単位の判定処理のフローチャートである。装置制御部判定部２２は、まず、装置制御部設定部２６により設定された情報を確認する（ステップＳ２１）。ここで、通知必要と設定されている場合は、通知が必要と判定し（ステップＳ２３）、通知不要と設定されている場合は、通知が不要と判定する（ステップＳ２４）。
【００６６】
装置制御部設定部２６により通知が必要か否かが設定されていない場合は、次に、装置制御部の仕様を確認する（ステップＳ２２）。この確認は、例えば、図７に示すような装置制御部の情報を参照して行われる。
【００６７】
図７のｒｅｇ−ａｃｃｅｓｓ−ｃｈｅｃｋ−ｅｎａｂｌｅは、例えば、メモリに格納された装置制御部のプロパティに含まれる。この値が“００”のとき、この装置制御部により制御される装置が切り離し不可であることを表し、“１０”のとき、装置が切り離し可であることを表し、“１１”のとき、装置が切り離し可かつ装置制御部に対して疑似割込み可であることを表す。ｒｅｇ−ａｃｃｅｓｓ−ｃｈｅｃｋ−ｅｎａｂｌｅの値は、開発者等により、装置制御部の様々な条件を考慮して設定される。
【００６８】
装置制御部判定部２２は、ｒｅｇ−ａｃｃｅｓｓ−ｃｈｅｃｋ−ｅｎａｂｌｅ＝“１１”のとき、通知が必要と判定する（ステップＳ２３）。また、ｒｅｇ−ａｃｃｅｓｓ−ｃｈｅｃｋ−ｅｎａｂｌｅ＝“００”または“１０”のとき、あるいは、ｒｅｇ−ａｃｃｅｓｓ−ｃｈｅｃｋ−ｅｎａｂｌｅが設定されていないとき、通知が不要と判定する（ステップＳ２４）。
【００６９】
図７では、疑似割込みの発行により通知が行われる場合を想定しているが、アクセス指示の発行により通知が行われる場合は、ｒｅｇ−ａｃｃｅｓｓ−ｃｈｅｃｋ−ｅｎａｂｌｅ＝“１１”のとき、装置が切り離し可かつ装置制御部に対してアクセス指示可であることを表すものとする。
【００７０】
また、図７に示した情報の代わりに、疑似割込み（またはアクセス指示）の可／不可を表すフラグを装置制御部のプロパティに設定しておき、このフラグを参照することで通知が必要か否かを判定してもよい。
【００７１】
図８は、図３のステップＳ４の装置単位の判定処理のフローチャートである。装置判定部２３は、まず、装置設定部２７により設定された情報を確認する（ステップＳ３１）。ここで、通知不要と設定されている場合は、通知が不要と判定する（ステップＳ３５）。
【００７２】
装置設定部２７により通知必要と設定されている場合、あるいは、通知が必要か否かが設定されていない場合は、次に、システム内でその装置が現在使用されているかどうかを確認する（ステップＳ３２）。この確認は、例えば、図９に示すようなフラグを参照して行われる。図９の使用状況フラグは、例えば、メモリに格納された装置のプロパティに含まれ、その値が“０”のとき装置が使用されていないことを表し、“１”のとき装置が使用中であることを表す。
【００７３】
装置判定部２３は、使用状況フラグの値が“０”のとき、通知が不要と判定する（ステップＳ３５）。また、使用状況フラグの値が“１”のとき、次に、装置の状態を参照して、現在その装置に真の割込み事象が発生しているかどうかを確認する（ステップＳ３３）。
【００７４】
ここで、既に割込み事象が発生していれば、装置制御部にあえて切り離しを通知する必要はないものと判断して、通知が不要と判定する（ステップＳ３５）。また、割込み事象が発生していなければ、装置制御部は切り離しを認識していないものと判断して、通知が必要と判定する（ステップＳ３４）。
【００７５】
以上説明したような通知処理によれば、特別なインタフェースを持たないシステムでも、各装置を制御するドライバや他のシステムのアプリケーションに対して、装置の切り離しを速やかに通知することが可能となる。
【００７６】
また、ドライバや装置等の様々な条件を自動的にチェックするため、誤って装置の切り離しが通知されることによる誤動作が防止される。また、ドライバや装置の条件によっては、システム管理者が、装置グループ単位／ドライバ単位／装置単位で通知を行うか否かを変更できるため、システムの柔軟な運用が可能となる。
【００７７】
また、ドライバ自身が異常監視の対象となっている場合は、ドライバに切り離しを通知することで、速やかに異常を検出することが可能となる。例えば、疑似割込みの発行により起動された割込みハンドラがアクセスエラーを検出し、これに応答して、ドライバがエラー情報を出力すれば、ドライバが異常であるという事象が検出される。アクセス指示の発行により起動されたエントリがアクセスエラーを検出した場合も同様である。
【００７８】
また、ドライバに切り離しを通知することで、バス等の共有資源を速やかに解放させることが可能になる。
また、他のシステムのアプリケーションに切り離しを通知することで、アプリケーションによる課金等の処理を直ちに停止することができ、不当な課金等の発生が防止される。
【００７９】
このように、切り離しを認識できないことで発生する問題（不当課金等）や、切り離しの認識が遅れることで発生する問題（検出すべき事象が検出されない問題等）が防止される。
【００８０】
図１０は、図２の情報処理装置１０にプログラムとデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。
メモリ５１は、例えば、ＲＯＭ（read only memory）、ＲＡＭ（random access memory）等を含み、処理に用いられるプログラムとデータを格納する。情報処理装置１０は、メモリ５１を利用してプログラムを実行することにより、必要な処理を行う。
【００８１】
例えば、図２の確認部１１、外部通知部１２、通知判定部１３、装置グループ判定部２１、装置制御部判定部２２、装置判定部２３、設定部２４、装置グループ設定部２５、装置制御部設定部２６、装置設定部２７、切り離し通知部１４、疑似割込み発行部３１、およびアクセス指示発行部３２は、メモリ５１に格納されたプログラムに対応する。
【００８２】
可搬記録媒体５２は、メモリカード、フロッピーディスク、ＣＤ−ＲＯＭ（compact disk read only memory ）、光ディスク、光磁気ディスク等の任意の記録媒体である。ユーザは、この可搬記録媒体５２に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ５１にロードして使用することができる。
【００８３】
また、情報処理装置は、外部の情報提供者のデータベース５３に保存されたプログラムとデータを、必要に応じて、メモリ５１にロードして使用することができる。
【００８４】
以上説明した実施形態においては、主として、図２の確認部１１、外部通知部１２、通知判定部１３、および切り離し通知部１４をソフトウェアにより実施する場合について説明したが、これをハードウェアにより実施することも可能である。この場合、これらの要素を、論理回路等を用いて構成すればよい。
【００８５】
また、以上説明した実施形態には、以下のような形態が含まれる。
（１）システムに異常が発生し、異常が発生した装置の使用が禁止されたとき、該装置を制御する装置制御部に、該装置に対するアクセス動作を行わせることで、該装置の使用が禁止されたことを該装置制御部に通知する通知手段を備えることを特徴とする通知装置。
（２）前記異常が発生した装置の使用が禁止されたことを、前記装置制御部に通知すべきか否かを判定する通知判定手段をさらに備えることを特徴とする（１）に記載の通知装置。
（３）前記通知判定手段は、前記装置の使用が禁止されたことを通知すべきか否かを設定する設定手段を含み、設定された情報に対応する判定結果を出力することを特徴とする（２）に記載の通知装置。
（４）前記設定手段は、前記システムに含まれる装置グループ毎に、前記装置の使用が禁止されたことを通知すべきか否かを設定する手段を含むことを特徴とする（３）に記載の通知装置。
（５）前記設定手段は、前記システムに含まれる装置を制御する装置制御部毎に、前記装置の使用が禁止されたことを通知すべきか否かを設定する手段を含むことを特徴とする（３）に記載の通知装置。
（６）前記設定手段は、前記システムに含まれる装置毎に、前記装置の使用が禁止されたことを通知すべきか否かを設定する手段を含むことを特徴とする（３）に記載の通知装置。
（７）前記異常が発生した装置の影響を受ける装置が前記システム内に存在するか否かを確認する確認手段をさらに備え、該システムは、前記異常が発生した装置の影響を受ける装置の使用を禁止し、前記通知判定手段は、該影響を受ける装置の使用が禁止されたことを、該影響を受ける装置を制御する装置制御部に通知すべきか否かを判定することを特徴とする（２）に記載の通知装置。
【００８６】
【発明の効果】
本発明によれば、システム動作中に装置の異常を検出したとき、異常が発生した装置をシステムから切り離して動作を継続するシステムにおいて、特別なインタフェースを設けることなく、装置の切り離しを通知先に通知することができる。
【００８７】
これにより、特別なインタフェースを持たないシステムでも、各装置を制御する装置制御部や他のシステムのアプリケーション等に対して、装置の切り離しを速やかに通知することが可能となる。
【００８８】
また、装置制御部やアプリケーションの開発者は、動的縮退機能をサポートするために、装置の切り離しを認識するための特別なインタフェースを組み込む必要がなく、装置制御部やアプリケーションへの影響が最小限に止められる。
【００８９】
また、装置制御部やアプリケーションが装置の切り離しを認識する機能をサポートしていない場合でも、それにより発生する誤動作が防止される。さらに、装置の切り離しが誤って通知されることによる誤動作が防止されるとともに、システム管理者がシステムを柔軟に運用することが可能となる。
【図面の簡単な説明】
【図１】本発明の通知装置の原理図である。
【図２】情報処理装置の構成図である。
【図３】通知処理のフローチャートである。
【図４】装置グループ単位の判定処理のフローチャートである。
【図５】装置グループの情報を示す図である。
【図６】装置制御部単位の判定処理のフローチャートである。
【図７】装置制御部の情報を示す図である。
【図８】装置単位の判定処理のフローチャートである。
【図９】使用状況フラグを示す図である。
【図１０】記録媒体を示す図である。
【符号の説明】
１  自システム
２  通知装置
３  通知手段
４  異常な装置
５、１５  装置制御部
６、４０  他システム
１０  情報処理装置
１１  確認部
１２  外部通知部
１３  通知判定部
１４  切り離し通知部
１６  エラー検出機構
１７  装置
１８  装置グループ
２１  装置グループ判定部
２２  装置制御部判定部
２３  装置判定部
２４  設定部
２５  装置グループ設定部
２６  装置制御部設定部
２７  装置設定部
３１  疑似割込み発行部
３２  アクセス指示発行部
５１  メモリ
５２  可搬記録媒体
５３  データベース
【図１】
0003647700.tif 000002
【図２】
0003647700.tif 000003
【図３】
0003647700.tif 000004
【図４】
0003647700.tif 000005
【図５】
0003647700.tif 000006
【図６】
0003647700.tif 000007
【図７】
0003647700.tif 000008
【図８】
0003647700.tif 000009
【図９】
0003647700.tif 000010
【図１０】
0003647700.tif 000011