(57)【特許請求の範囲】
【請求項１】
バス接続により繋がれた複数の装置の各々に対応し，装置を制御する複数の装置制御プログラムと，
バス接続の制御を行うバス制御プログラムとを備え，
前記装置制御プログラムによる装置の制御を前記バス制御プログラムを介して行う，前記複数の装置とバス接続を介して接続された処理装置の動作時間監視方法において，
前記複数の装置制御プログラムのうち，制御される装置に対応する装置制御プログラムが当該装置の動作情報を前記バス制御プログラムに送り，前記バス制御プログラムが，前記当該装置と他の装置との動作情報から，当該装置制御プログラムが動作監視を行うべき時間を求めて，前記対応する装置制御プログラムに送り，前記対応する当該装置制御プログラムが前記当該装置の動作時間監視を行うことを特徴とする動作時間監視方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は，動作時間監視方法に関し，特に装置（以下，ＳＣＳＩ（Small Computer System Interface ）装置と略す）の動作時間監視方法に関する。
【０００２】
複数台のＳＣＳＩ装置がコンピュータ等に接続されている場合，各ＳＣＳＩ装置におけるオーバハング検出は，ＳＣＳＩ装置への起動の各々についての時間監視を行うことにより実施している。この時間監視は各ＳＣＳＩ装置に対応する装置制御プログラムによって行われる。
【０００３】
【従来の技術】
図３及び図４は従来のＳＣＳＩ装置の動作時間監視処理について示す。
ＳＣＳＩ装置９がＡ，Ｂの２台（複数台）接続されているとすると，装置制御プログラム３もその各々に対応するようにＡ，Ｂの２つ（複数）設けられる。なお，必要に応じて，２台のＳＣＳＩ装置９を９Ａ，９Ｂと表記して区別する。装置制御プログラム３も同様に３Ａ，３Ｂと表記する。
【０００４】
図３において，最上位のアプリケーションプログラム２は例えばＳＣＳＩ装置９Ａを用いた処理があると，これを装置制御プログラム３Ａに依頼する。装置制御プログラム３Ａは対応するＳＣＳＩ装置９Ａを制御するが，ＳＣＳＩバスを介して実際にＳＣＳＩ装置９の制御を実行するのはバス制御プログラム（以下，ＳＣＳＩ制御プログラムという）６である。
【０００５】
そこで，図４に示す如く，装置制御プログラム３Ａは，ＳＣＳＩ制御プログラム６に対して，（コマンド）起動要求を発行する。これを受けてＳＣＳＩ制御プログラム６は，当該ＳＣＳＩ装置９Ａを起動するか又はＳＣＳＩバスの空くのを待つ。そして，これを要求元へ通知し，更に，当該ＳＣＳＩ装置９Ａの動作終了を待ってこれを要求元へ通知する。
【０００６】
一方，装置制御プログラム３Ａは，装置起動等の通知を受けるとＳＣＳＩ装置９Ａの時間監視を開始し，動作終了の通知を受けると時間監視を解除する。
装置制御プログラム３Ｂも，同様にＳＣＳＩ装置９Ｂについての時間監視を行う。
【０００７】
【発明が解決しようとする課題】
ＳＣＳＩ装置９についてその動作を監視すべき時間（監視時間）は，ＳＣＳＩ装置９毎に異なり，また，実行コマンド毎に異なる。このため，監視時間は，ＳＣＳＩ装置９との間でのＳＣＳＩプロトコル制御を行なうＳＣＳＩ制御プログラム６ではなく，装置制御プログラム３が行なっている。装置制御プログラム３は，監視時間を設定し，この時間内において，起動要求の発行から動作終了までを監視する。即ち，監視時間内に動作が終了したか（タイムアウトが発生していないか）を監視する。
【０００８】
しかし，装置制御プログラム３が監視を行なうことにより，以下の如き問題を生じていた。
例えば図５に示す如く，ＳＣＳＩ装置９Ａが起動され動作中（ａｂ間）に他のＳＣＳＩ装置９Ｂの起動要求ｅがあったとする。しかし，ＳＣＳＩ装置９Ｂは起動されるが，ＳＣＳＩ装置９Ａの起動中により実際にはｆから起動され処理が開始される。即ち，現実には時間ｅｆだけ待たされる。
【０００９】
この時間ｅｆだけ待たされるのは，ＳＣＳＩ装置９が接続される小型コンピュータでは，この接続のためのバス（ＳＣＳＩバス）が通常１本であることに起因する。例えば，あるＳＣＳＩ装置９Ａが動作中即ちＳＣＳＩバスを使用中の場合，他のＳＣＳＩ装置９ＢはＳＣＳＩバスを使用できないのでその処理を開始できない。なお，ＳＣＳＩバスを制御するＳＣＳＩ制御プログラム６は１個である。
【００１０】
ところが，装置制御プログラム３ＢからはＳＣＳＩ装置９Ｂが時間ｅｆだけ待たされたことを知ることができず，一方，監視時間は予めコマンド等に応じて設定した値のままである。このため，監視時間内に動作終了（ｇ）までに到らず，実際には正常であるとしてもタイムアウトが発生してしまう場合があるという問題があった。
【００１１】
また，図５に示す如く，起動され動作中（ａｂ間）のＳＣＳＩ装置９Ａが，一旦処理を中断し，ＳＣＳＩバスの使用権を解放する場合がある。例えば，ＳＣＳＩ装置９Ａが磁気ディスク装置である場合におけるシーク動作の如き機械的動作を行う場合等である。
【００１２】
この処理中断（ｂ）を待って他のＳＣＳＩ装置９Ｂが処理を開始し（ｆ）動作中である場合，ＳＣＳＩ装置９Ａは，その動作再開の準備が完了したとしても，ＳＣＳＩ装置９Ｂの処理の終了（ｇ）まで処理を再開（ｃ）できず待たされる。
【００１３】
ところが，装置制御プログラム３Ａからは時間ｆｇだけ待たされたことを知ることができないので，時間ｆｇが長い場合には，ＳＣＳＩ装置９Ａについて実際には正常であるとしてもタイムアウトが発生してしまう場合があるという問題があった。
【００１４】
本発明は，適切な時間監視をすることが可能な動作時間監視方法を提供することを目的とする。
【００１５】
【課題を解決するための手段】
図１は本発明の原理構成図であり，本発明によるデータ処理システムを示す。
図１において，複数のＳＣＳＩ装置９が処理装置１に１本のＳＣＳＩバス８を介して接続される。また，複数の装置制御プログラム３が複数のＳＣＳＩ装置９の各々に対応して処理装置１に設けられ，対応するＳＣＳＩ装置９をＳＣＳＩ制御プログラム６を介して制御する。ＳＣＳＩ制御プログラム６は，処理装置１に設けられ，ＳＣＳＩ装置９の実質的な制御を行なう。
【００１６】
装置制御プログラム３は，ＳＣＳＩ制御プログラム６に対して対応するＳＣＳＩ装置９の起動要求をすると共に，当該ＳＣＳＩ装置９についての動作時間監視を行なう。このために，装置制御プログラム３は前記起動要求と共に対応するＳＣＳＩ装置９の動作情報４をＳＣＳＩ制御プログラム６に送る。ＳＣＳＩ制御プログラム６は，当該ＳＣＳＩ装置９についての補正値（以下，加算値という）７を他のＳＣＳＩ装置９の動作情報４に基づいて求め，これを当該ＳＣＳＩ装置９の起動要求をした装置制御プログラム３に送る。これを受けた装置制御プログラム３が，当該動作情報４及び加算値７に基づいて動作時間監視を行うべき時間５を求める。
【００１７】
【作用】
２台のＳＣＳＩ装置９Ａ．９ＢのうちＳＣＳＩ装置９Ａが先に起動され動作中であるとすると，この起動のための起動要求が，既に，対応する装置制御プログラム３ＡからＳＣＳＩ制御プログラム６に送られている。この起動要求と共に，ＳＣＳＩ装置９Ａについての動作情報４Ａも送られる。
【００１８】
ＳＣＳＩ装置９Ａの動作中にＳＣＳＩ装置９Ｂの起動要求が対応する装置制御プログラム３ＢからＳＣＳＩ制御プログラム６に送られてくると，ＳＣＳＩ制御プログラム６は，新たに起動要求をしたＳＣＳＩ装置９Ｂについての加算値７Ｂを，その時点で動作中の他のＳＣＳＩ装置９Ａについての動作情報４Ａに基づいて求め，これを起動要求元へ返す。
【００１９】
そこで，装置制御プログラム３Ｂは，自己の対応するＳＣＳＩ装置９Ｂについての動作情報４Ｂと，送られてきた加算値７Ｂとに基づいて監視時間（動作時間監視を行うべき時間）５Ｂを求め，この時間だけＳＣＳＩ装置９Ｂを監視する。
【００２０】
これにより，監視時間５Ｂは，自己の動作情報４Ｂにより定まる本来の監視時間を加算値７Ｂの分だけ延長したものとなる。加算値７Ｂは他のＳＣＳＩ装置９Ａの動作情報４Ａから求まるものであるから，監視時間５Ｂは，本来の監視時間を，他のＳＣＳＩ装置９Ａの動作中により当該ＳＣＳＩ装置９Ｂが動作できない時間の分だけ少なくとも延長できる。
【００２１】
従って，監視時間５内に動作終了までに到らずにＳＣＳＩ装置９についてタイムアウトが発生してしまうことを防止でき，適切な時間監視ができる。また，加算値７はＳＣＳＩ制御プログラム６が求めるので，各装置制御プログラム３は，他のＳＣＳＩ装置９の動作状態を意識する必要がなく，その負担は殆どない。
【００２２】
【実施例】
図１のデータ処理システムについて図２及び図５を参照して更に説明する。
このシステムはいわゆるＳＣＳＩに従う小型コンピュータシステムである。従って，磁気ディスク装置等のＳＣＳＩ装置９は１本のＳＣＳＩバス８に複数台接続され，これを介して処理装置１に接続される。
【００２３】
処理装置１は，小型コンピュータの本体装置であって，中央処理装置（ｃｐｕ）とメモリとからなる。メモリ上には，アプリケーションプログラム２，装置制御プログラム３Ａ及び３Ｂ，ＳＣＳＩ制御プログラム６が存在する。これらのプログラムとｃｐｕとによって各種の処理が実行される。
【００２４】
ＳＣＳＩ装置９Ａ，９Ｂの各々に対応してその制御を行なう装置制御プログラム３Ａ，３Ｂが設けられる。アプリケーションプログラム２はＳＣＳＩ装置９を用いた処理があると，これを装置制御プログラム３に依頼する。
【００２５】
装置制御プログラム３はＳＣＳＩ装置９を制御するが，このための通信はＳＣＳＩプロトコル制御及びＳＣＳＩバス８の制御を行なうＳＣＳＩ制御プログラム６に依頼する必要がある。
【００２６】
そこで，装置制御プログラム３は，図２に示す如く，対応するＳＣＳＩ装置９の起動要求を発行し，ＳＣＳＩ制御プログラム６へ送る。この時，起動要求と共に当該ＳＣＳＩ装置９の動作情報４も送られる。
【００２７】
動作情報４は，例えば当該ＳＣＳＩ装置９が当該起動要求に係るコマンドの実行のために実際にＳＣＳＩバス８を占有する時間（バス占有時間）と，当該ＳＣＳＩ装置９の処理開始（起動ではない）から処理終了までに要する時間（動作時間）とからなる。動作情報４は処理装置１を構成するメモリ内の所定の領域に格納される。
【００２８】
ＳＣＳＩ制御プログラム６は，起動要求を受けると，当該ＳＣＳＩ装置９を起動するか又はＳＣＳＩバス８の空を待って，起動要求に対する応答を要求元へ返す。この時，応答と共に加算値７も要求元へ送られる。
【００２９】
加算値７は，当該起動要求があった時点で他のＳＣＳＩ装置９が動作中か否か，及び，その動作中の他のＳＣＳＩ装置９の動作情報４によって決定される。例えば，他のＳＣＳＩ装置９が動作中でない場合，加算値７は“０”とされる。他のＳＣＳＩ装置９が動作中である場合，加算値７は最大で動作情報４の動作時間に等しくされる。加算値７はＳＣＳＩ制御プログラム６によって算出され，処理装置１を構成するメモリ内の所定の領域に格納される。
【００３０】
起動要求への応答を受けた装置制御プログラム３は，監視時間５を求め，対応するＳＣＳＩ装置９についての時間監視を開始する。
監視時間５は，自己の動作情報４中の動作時間と加算値７との和として求まる。即ち，対応するＳＣＳＩ装置９の動作時間を，それ以外のＳＣＳＩ装置９の動作状況に応じた時間だけ延長した値を監視時間５とする。監視時間５は処理装置１を構成するメモリ内の所定の領域に格納される。
【００３１】
時間監視は，この求めた監視時間５内において行なわれる。即ち，この監視時間５内にＳＣＳＩ制御プログラム６から動作終了通知があった場合，時間監視を解除する。この場合，タイムアウトが発生していないので，所定時間内に正常に処理が終了したことになる。なお，監視時間５内に動作終了通知がなかった場合，タイムアウトが発生し，所定の処理が行なわれる。
【００３２】
次に，図５を参照して本発明による時間監視について具体的に説明する。
アプリケーションプログラム２からの依頼により装置制御プログラム３ＡがＳＣＳＩ装置９Ａの起動要求をＳＣＳＩ制御プログラム６へ送る。これに応じて，ＳＣＳＩ制御プログラム６がＳＣＳＩ装置９Ａを起動し，当該コマンドの処理を開始する（ａ）。
【００３３】
また，ＳＣＳＩ制御プログラム６は，この起動要求に対応する応答を装置制御プログラム３Ａへ送る。この応答と共に加算値７Ａも装置制御プログラム３Ａへ送られる。ここで，加算値７Ａの値は，ａの時点で他のＳＣＳＩ装置９Ｂが動作中でないので（動作情報４Ｂが送られてきていないので），“０”とされる。
【００３４】
装置制御プログラム３Ａは，応答を受けると，監視時間５（図示しないが，以下５Ａとして他と区別する）を求め，ＳＣＳＩ装置９Ａの時間監視を開始する。監視時間５Ａは自己の動作情報４Ａにおける動作時間ａｄと，加算値７Ａ（即ち“０”）との和（即ちａｄ）となる。
【００３５】
前記起動要求と共に動作情報４ＡもＳＣＳＩ制御プログラム６へ送られる。動作情報４Ａにおいて，動作時間はａｄ，バス占有時間はａｂ＋ｃｄである。即ち，ｂｃ間ではＳＣＳＩバス８を解放するのでこの時間は除かれる。なお，ｂｃ間では，例えば，ＳＣＳＩ装置９Ａが磁気ディスク装置である場合におけるシーク動作の如き機械的動作が行なわれる。
【００３６】
ＳＣＳＩ装置９Ａの動作中（ａｂ間）において，前述と同様に，装置制御プログラム３ＢがＳＣＳＩ装置９Ｂの起動要求をＳＣＳＩ制御プログラム６へ送る（ｅ）。しかし，ｅの時点で他のＳＣＳＩ装置９Ａが動作中であるので，ＳＣＳＩ制御プログラム６は，ＳＣＳＩ装置９Ｂを起動するが（ｅ），当該コマンドの処理は開始できない。
【００３７】
ＳＣＳＩ制御プログラム６は，この起動要求に対する応答を装置制御プログラムＢへ送る。この応答と共に加算値７Ｂも装置制御プログラム３Ｂへ送られる。ここで，加算値７Ｂの値は，ｅの時点で他のＳＣＳＩ装置９Ａが動作中であるので（動作情報４Ａが送られてきているので），例えばその最大時間ａｄとされる。
【００３８】
装置制御プログラム３Ｂは，応答を受けると，監視時間５Ｂを求め，ＳＣＳＩ装置９Ｂの時間監視を開始する。監視時間５Ｂは自己の動作情報４Ｂにおける動作時間ｆｇと，加算値７Ｂ（即ちａｄ）との和（即ちｆｇ＋ａｄ）となる。
【００３９】
前記起動要求と共に動作情報４ＢもＳＣＳＩ制御プログラム６へ送られる。動作情報４Ｂにおいて，動作時間及びバス占有時間は共にｆｇである。
次に，ＳＣＳＩ装置９Ａが例えばシーク動作の開始に伴いＳＣＳＩバス８を解放し（ｂ），処理を中断する。
【００４０】
これに応じて，直ちにＳＣＳＩ制御プログラム６がＳＣＳＩ装置９ＢにＳＣＳＩバス８を使用した当該コマンドの処理を開始させる（ｆ）。そして，所定の処理の終了（ｇ）により，ＳＣＳＩ装置９ＢはＳＣＳＩバス８を解放する。これに応じて，ＳＣＳＩ制御プログラム６は，要求元の装置制御プログラム３Ｂに対して動作終了通知をする（ｇ）と共に，ＳＣＳＩ装置９ＡにＳＣＳＩバス８を使用した処理を再開させる（ｃ）。
【００４１】
この結果，装置制御プログラム３Ｂは，監視時間ｆｇ＋ａｄ内に動作終了通知を受けることになる。そこで，タイムアウトを発生することなく，処理を終了し，これをアプリケーションプログラム２に通知する。
【００４２】
処理を再開（ｃ）したＳＣＳＩ装置９Ａは，所定の処理の終了（ｄ）により，ＳＣＳＩバス８を解放する。これに応じて，ＳＣＳＩ制御プログラム６は，要求元の装置制御プログラム３Ａに対して動作終了通知をする（ｄ）。
【００４３】
この結果，装置制御プログラム３Ａは，監視時間ａｄ内に動作終了通知を受けることになる。そこで，タイムアウトを発生することなく，処理を終了し，これをアプリケーションプログラム２に通知する。
【００４４】
なお，ｂｃ＞ｆｇの場合には，先にＳＣＳＩ装置９Ｂの処理が終了し（ｇ），この後ＳＣＳＩ装置９Ａの処理再開の準備（例えばシーク動作）の完了を待って処理が再開される（ｃ）。この場合，監視時間５Ａ及び５Ｂは前述と同じくａｄ及びｆｇ＋ａｄであるので，いずれも当該時間内に動作終了となりタイムアウトは発生しない。
【００４５】
また，ｂｃ＜ｆｇの場合には，ＳＣＳＩ装置９Ａの処理を長時間待たせることを防ぐため，ｂの時点でＳＣＳＩ装置９Ｂの処理を開始させることなく，ＳＣＳＩ装置９Ａの処理を再開（ｃ）させ，その処理の終了（ｄ）を待ってＳＣＳＩ装置９Ｂの処理を開始させる。この場合も，監視時間５Ａ及び５Ｂはａｄ及びｆｇ＋ａｄであるので，当該時間内に動作終了となりタイムアウトは発生しない。
【００４６】
なお，ｂｃ＜ｆｇの場合であっても，ｂの時点でＳＣＳＩ装置９Ｂの処理を開始（ｆ）させるようにしてもよい。この時は，監視時間５Ａは（ａｄ＋ｃｄ）＋ｆｇ又はａｄ＋ｆｇとされる。このため，ＳＣＳＩ制御プログラム６は，ｂｃ（＝ａｄ−（ａｂ＋ｃｄ））とｆｇとの大小比較を行ない，ｂｃ＜ｆｇなら加算値７Ａをｆｇとしてこれを装置制御プログラム３Ａに通知する。これにより，ＳＣＳＩ装置９Ａの動作終了通知も監視時間５Ａ内に受けることができる。
【００４７】
【発明の効果】
以上説明したように，本発明によれば，動作時間監視処理において，動作中の他のＳＣＳＩ装置の動作情報に基づいて監視時間を求めることにより，監視時間内に動作終了通知を受けることができるので，タイムアウトの発生を防いで適切な時間監視をすることができる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】実施例説明図である。
【図３】従来技術説明図である。
【図４】従来技術説明図である。
【図５】本発明を説明するための図である。
【符号の説明】
１  処理装置（ｃｐｕ／メモリ）
２  アプリケーションプログラム
３  装置制御プログラム
４  動作情報
５  監視時間
６  ＳＣＳＩ制御プログラム
７  加算値
８  ＳＣＳＩバス
９  ＳＣＳＩ装置
【図１】
0003545772.tif 000002
【図２】
0003545772.tif 000003
【図３】
0003545772.tif 000004
【図４】
0003545772.tif 000005
【図５】
0003545772.tif 000006