(57)【特許請求の範囲】
【請求項１】
入出力制御ユニットをホスト・システムに接続するために入出力制御ユニット内に配置された複数のホスト・システム・インタフェース・アダプタと協動する入出力制御ユニット内のサポート制御であって、前記ホスト・システムが入出力要求を前記制御ユニットに送信し、そしてタイムアウトの検出により、前記制御ユニットに接続された要求入出力装置が要求入出力操作の実行に失敗した時を判断するものにおいて、前記制御ユニットが、
入出力操作のために、前記入出力装置のいずれかの前記インタフェース・アダプタへの接続を制御するために、前記制御ユニットに接続された入出力装置に夫々関連付けられた複数の装置ロック・ビットと、
ビジー・ビット、前記インタフェース・アダプタの各々に関連付けられたしきい値タイマ及び前記タイマと協動して、しきい値タイムアウトの発生を判断するための記憶されたしきい値タイムアウト値と、
前記インタフェース・アダプタにより受信された現入出力要求により要求された前記入出力装置に関連付けられた使前記ロック・ビットのうち使用可能な１つをロック状態にセットしようとする、前記インタフェース・アダプタの各々のためのビット・テスト制御であって、前記現入出力要求が、同時に前記関連付けられた入出力装置の使用を獲得しようとしている、前記インタフェース・アダプタのうちの任意の他のものにより受信された現入出力要求と前記ロック状態を競合し得る、前記ビット・テスト制御と、
前記関連付けられた入出力装置を使用する現入出力要求のために前記関連付けられたロック・ビットが前記ロック状態にセットされている間に、待機中の入出力要求が前記インタフェース・アダプタにより受信されたとき、前記関連付けられたビジー・ビットをビジー状態にセットする、前記インタフェース・アダプタに関連付けられたビジー・ビット制御と、
前記関連付けられたロック・ビットが前記ロック状態にセットされたとき、前記インタフェース・アダプタに関連付けられた前記タイマをリセットし、及び開始するタイマ開始制御と、
前記ロック状態が前記ロック・ビットに対して存在する間に、関連付けられたタイマが前記しきい値タイムアウトを超過するとき、各前記インタフェース・アダプタに関連付けられた前記制御ユニット内において、前記インタフェース・アダプタへのロング・ビジー信号を生成するロング・ビジー制御であって、前記ロング・ビジー制御が前記ロング・ビジー信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送する、前記ロング・ビジー制御と、
前記しきい値タイムアウトの超過後に、前記装置ロックがアンロック状態にセットされるとき、ロング・ビジー解除信号を生成するための、各前記ロック・ビットに関連付けられた操作完了制御であって、前記操作完了制御が、前記ロング・ビジー解除信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送する、前記操作完了制御と、
を含む、入出力制御ユニット。
【請求項２】
前記ロック状態が前記ロック・ビットに対して存在し、前記関連付けられたタイマが前記しきい値タイムアウトを超過しない間に、前記関連付けられた入出力装置に対する別の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、前記インタフェース・アダプタへの正規ビジー信号を生成するための、各前記インタフェース・アダプタに関連付けられた前記制御ユニット内の正規ビジー制御と、
前記しきい値タイムアウトの超過以前の前記現入出力要求の完了時に、前記装置ロックがアンロック状態にリセットされるとき、正規ビジー解除信号を生成するための、各前記ロック・ビットに関連付けられた操作完了制御であって、前記操作完了制御が、前記ビジー解除信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送し、前記入出力装置が別の前記入出力要求に対して使用可能であることを示す、前記操作完了制御と、
を含む、請求項１記載の入出力制御ユニット。
【請求項３】
前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタ制御が前記インタフェース・アダプタへの前記ロング・ビジー信号を表す信号及びステータス情報を生成し、前記ロング・ビジー信号に応答して前記インタフェース・アダプタが、前記入出力装置が使用不能であることを外部ソフトウェアに伝達し、前記外部ソフトウェアに未着割込みハンドラ・タイムアウトを延長するように助言し、前記関連付けられた入出力装置が故障していないときに、前記入出力装置による前記現入出力要求の処理における操作故障を示し得る誤ったタイムアウト検出を防止するようにし、
前記しきい値タイムアウトの超過後、前記ロック・ビットが前記ロック状態に維持され、前記入出力装置が前記現入出力要求に対する操作を継続する、
請求項１記載の入出力制御ユニット。
【請求項４】
前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタ制御が前記インタフェース・アダプタへの前記ロング・ビジー信号を表す割込み信号及びステータス情報を生成し、前記インタフェース・アダプタが前記待機中の入出力要求を前記インタフェース・アダプタに送信した外部ソフトウェアに、ロング・ビジー割込み信号を伝達することを可能にし、前記外部ソフトウェアに前記制御ユニットがもはや前記待機中の入出力要求を処理する責任を負わないことを知らせ、前記外部ソフトウェアが前記待機中の入出力要求に対して任意の未着割込みハンドラ・タイムアウト操作を停止することを可能にし、前記要求入出力装置が将来使用可能になるとき、前記入出力要求が再度前記制御ユニットに提供されるようにし、
前記ロック・ビット及び前記関連付けられた入出力装置が前記インタフェース・アダプタにおいて、前記現入出力要求に対して操作を継続する、
請求項１記載の入出力制御ユニット。
【請求項５】
前記関連付けられた入出力装置が前記しきい値タイムアウトの後、前記現入出力要求に対する操作を成功裡に完了し、前記制御ユニットに前記関連付けられたロック・ビットを使用可能状態にリセットするように信号で知らせ、
前記制御ユニットが装置終了割込み信号及びステータス情報を生成し、前記インタフェース・アダプタが前記関連付けられた入出力装置の使用可能性を外部ソフトウェアに伝達することを可能にし、次の前記入出力要求が前記制御ユニットに提供されて、前記関連付けられたロック・ビットの前記ロック状態を競合し得ることを助言する、
請求項２記載の入出力制御ユニット。
【請求項６】
前記関連付けられた入出力装置が前記しきい値タイムアウトの後、前記現入出力要求に対する操作を不成功裡に完了し、外部ソフトウェアに完了割込みを送信することに失敗し、前記外部ソフトウェアが前記未着割込みハンドラ内で前記延長されたタイムアウトを超過し、前記関連付けられた入出力装置による前記現入出力要求に対する操作の失敗を示す、
請求項２記載の入出力制御ユニット。
【請求項７】
前記割込み信号及びステータス情報が前記インタフェース・アダプタ制御から伝達された後、前記関連付けられたタイマにより操作を終了する、
請求項４記載の入出力制御ユニット。
【請求項８】
前記インタフェース・アダプタ制御の各々が、前記しきい値タイムアウトの超過後、前記しきい値タイムアウト値を第２のしきい値タイムアウト値により置換することにより、前記制御ユニット内で前記関連付けられたタイマによる時限操作を継続し、前記第２のしきい値タイムアウトが外部ソフトウェアに、該ソフトウェア内の前記未着割込みハンドラ・タイムアウトを前記ロング・ビジー・タイムアウトに延長するように伝達し、前記タイムアウト延長の細分性の増加により、前記現入出力要求に対する入出力装置故障の誤った検出を回避し、
前記関連付けられたロック・ビットがそのロック状態を継続し、前記関連付けられた入出力装置が前記現入出力要求に対して操作を継続する間に、前記第２のしきい値タイムアウトを超過する時、前記インタフェース・アダプタ制御が割込み信号及びステータス情報を生成し、前記外部ソフトウェアに前記ロング・ビジー信号を延長する必要性を伝達する、
請求項１記載の入出力制御ユニット。
【請求項９】
複数のホスト・システムによる入出力装置故障検出をサポートする入出力制御ユニット内の方法であって、前記複数のホスト・システムが前記制御ユニット内の入出力インタフェース・アダプタに接続され、前記制御ユニットが前記ホスト・システムから入出力要求を受信するものにおいて、前記方法が前記制御ユニットから前記ホスト・システムに前記ホスト・システム内で未着割込みタイムアウト検出をサポートする情報を伝達し、前記ホスト・システムが前記制御ユニットに接続される要求入出力装置による操作故障を誤って示すことを防止するものにおいて、
複数のロック・ビットを前記制御ユニットに接続されるそれぞれの前記入出力装置に関連付けるステップであって、前記ロック・ビットが入出力操作に対応して、前記入出力装置の前記インタフェース・アダプタへの接続を制御する、前記関連付けステップと、
各前記インタフェース・アダプタに、ビジー・ビット、しきい値タイマ及び前記タイマと協動して、しきい値タイムアウトの発生を判断するための記憶されたしきい値タイムアウト値を構成するステップと、
前記複数のインタフェース・アダプタが、前記入出力装置の使用を同時に獲得しようとする現入出力要求に対して前記ロック・ビットの状態をロック状態にセットしようとする競合状態において、前記インタフェース・アダプタにより受信される前記現入出力要求により要求される前記入出力装置に関連付けられた前記ロック・ビットの状態を条件付きでテストするステップと、
前記関連付けられた入出力装置を使用する前記現入出力要求に対して前記関連付けられたロック・ビットが前記ロック状態にセットされている間に、待機中の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、前記関連付けられたビジー・ビットをビジー状態にセットするステップと、
前記テストされたロック・ビットが前記ロック状態にセットされているとき、前記インタフェース・アダプタに関連付けられた前記タイマをリセットし、及び開始するステップと、
前記ロック状態が前記ロック・ビットに対して存在する間に、前記タイマが前記しきい値タイムアウトを超過するとき、各前記インタフェース・アダプタに対してロング・ビジー信号を生成し、及び前記ロング・ビジー信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送し、前記入出力装置が前記ロック状態を獲得している現入出力要求に対してビジー状態であることを伝達するステップと、
前記しきい値タイムアウトの超過後に、前記装置ロックがアンロック状態にセットされるとき、ロング・ビジー解除信号を前記インタフェース・アダプタから出力し、前記入出力装置が要求入出力操作を完了したことを示すステップと、
を含む、方法。
【請求項１０】
前記ロック状態が前記ロック・ビットに対して存在し、前記関連付けられたタイマが前記しきい値タイムアウトを超過しない間に、前記関連付けられた入出力装置に対する別の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、正規ビジー信号を前記インタフェース・アダプタに提供するステップと、
前記しきい値タイムアウトの超過以前の前記現入出力要求の完了時に、正規ビジー解除信号を生成し、前記ロック・ビットをアンロック状態にリセットし、前記ビジー解除信号を前記インタフェース・アダプタから外部システムに転送し、前記入出力装置が別の前記入出力要求に対して使用可能であることを示すステップと、
を含む、請求項９記載の方法。
【請求項１１】
前記ロック状態が存在する間に前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタにより、前記ロング・ビジー信号を表すロング・ビジー信号及びステータス情報を生成するステップであって、前記ロング・ビジー信号に応答して、前記インタフェース・アダプタが前記入出力装置が使用不能であることを前記ホスト・システムに伝達し、前記ホスト・システムに未着割込みハンドラにおけるタイムアウトを延長するように助言し、前記関連付けられた入出力装置が故障していないときに前記入出力装置による前記現入出力要求の処理における操作故障を誤って示し得る、前記ホスト・システムによる誤ったタイムアウト検出を防止するステップと、
前記しきい値タイムアウトの超過後、前記ロック状態及び前記現入出力要求に対する前記入出力装置操作を継続するステップと、
を含む、請求項９記載の方法。
【請求項１２】
前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタに対して前記ロング・ビジー割込み信号及びステータス情報を生成するステップであって、前記インタフェース・アダプタが前記ロング・ビジー割込み信号を前記待機中の入出力要求を前記インタフェース・アダプタに送信した前記制御ユニットの外部の前記ホスト・システムに伝達することを可能にし、前記ホスト・システムに前記制御ユニットがもはや前記待機中の入出力要求を処理せず、前記ホスト・システムが前記待機中の入出力要求に対して未着割込みハンドラ・タイムアウト操作を停止すべきであり、前記要求入出力装置が将来使用可能になるとき、前記入出力要求を再度前記制御ユニットに提供すべきことを助言する、前記生成ステップと、
前記ロック・ビットに対する前記ロック状態、及び前記インタフェース・アダプタに関連付けられた前記現入出力要求に対する前記関連付けられた入出力装置の操作を継続するステップと、
を含む、請求項９記載の方法。
【請求項１３】
前記しきい値タイムアウトの後、前記関連付けられた入出力装置により前記現入出力要求に対する操作を成功裡に完了し、前記制御ユニットに前記関連付けられたロック・ビットを使用可能状態にリセットするように信号で知らせるステップと、
装置終了割込み信号及びステータス情報を提供するステップであって、前記インタフェース・アダプタが前記関連付けられた入出力装置の使用可能性を前記ホスト・システムに伝達することを可能にし、前記入出力装置に対する次の前記入出力要求が再度前記制御ユニットに提供され、前記関連付けられたロック・ビットの前記ロック状態を競合し得ることを助言する、前記提供ステップと、
を含む、請求項１０記載の方法。
【請求項１４】
前記しきい値タイムアウトの後、前記関連付けられた入出力装置により前記現入出力要求に対する操作を不成功裡に完了するステップであって、
２次タイムアウト操作が２次タイムアウト値を超過し、前記未着割込みハンドラ内において、前記関連付けられた入出力装置による前記現入出力要求に対する操作の失敗を示すまで、前記ホスト・システムが前記２次タイムアウト操作を継続する、前記不成功の完了ステップを含む、
請求項１０記載の方法。
【請求項１５】
前記割込み信号及びステータス情報が前記インタフェース・アダプタ制御から伝達された後、前記関連付けられたタイマにより操作を終了する、
請求項１２記載の方法。
【請求項１６】
前記しきい値タイムアウトの超過後、前記しきい値タイムアウト値を第２のしきい値タイムアウト値により置換することにより、前記関連付けられたタイマにより前記インタフェース・アダプタに対して時限操作を継続するステップであって、
前記第２のしきい値タイムアウトにより前記インタフェース・アダプタが前記ホスト・システムに、前記ホスト・システム内の前記未着割込みハンドラ・タイムアウトを前記ロング・ビジー・タイムアウトに延長するように伝達し、前記タイムアウト延長の細分性の増加により、前記現入出力要求に対する入出力装置故障の誤った検出を回避する、前記継続ステップと、
前記関連付けられたロック・ビットがそのロック状態を継続し、前記関連付けられた入出力装置が前記現入出力要求に対して操作を継続する間に、前記第２のしきい値タイムアウトを超過する時、割込み信号及びステータス情報を生成し、前記インタフェース・アダプタから前記ホスト・システムに前記ロング・ビジー信号の延長の必要性を伝達する、前記生成ステップと、
を含む、請求項９記載の方法。
【請求項１７】
１つ以上のホスト・オペレーティング・システム（ＯＳ）と協動する入出力制御ユニット内のサポート制御であって、前記オペレーション・システムが前記制御ユニットに接続される入出力装置による操作を要求する入出力要求を前記制御ユニットに送信するものにおいて、前記制御ユニットが、
前記オペレーション・システムからの前記入出力要求に関連付けられた入出力プログラムに対して現在前記入出力装置により実行されている入出力コマンドを示す命令コード信号と、
前記命令コード信号をテストし、前記コマンドがロング・コマンドか否かを判断するコマンド検出器であって、と、
前記コマンド検出器は前記コマンドが前記ロング・コマンドと判断するとき、ロング・ビジー割込み信号を生成する割込み発生器と、
を含み、
前記ロング・ビジー割込み信号をプロセッサに送信して、前記ロング・ビジー割込み信号を、前記入出力要求を発行した前記オペレーション・システムに伝達し、前記オペレーション・システムがロング・コマンドが見出されない場合に使用される１次未着割込みハンドラ（ＭＩＨ）タイムアウト期間の終了以前に、前記１次ＭＩＨタイムアウト期間をロング・コマンドが見出された場合に使用される２次ＭＩＨタイムアウト期間に延長することを可能にし、前記１次ＭＩＨタイムアウト期間がタイムアウトにより終了し、潜在入出力装置操作故障を誤って示すことを防止する、入出力制御ユニット。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ構成内の複数のオペレーティング・システム（ＯＳ）のいずれかにより要求される、Ｉ／Ｏ装置操作の潜在故障を検出する未着割込みハンドラ（ＭＩＨ）・タイムアウト機能をサポートするＩ／Ｏ制御ユニット（ＣＵ）に関する。本発明は、待機中のＩ／Ｏ要求が同一装置を使用する現Ｉ／Ｏ要求により不当に遅延されるときに生じ得る、特定タイプの誤った指示を防止する。ＭＩＨは要求がＯＳにより発行されるとき開始するＭＩＨタイムアウト期間のタイムアウトにより潜在Ｉ／Ｏ装置操作故障を検出する。ＭＩＨ期間が操作に対してタイムアウトする以前に操作完了割込みがＩ／Ｏ装置から受信されない場合、潜在Ｉ／Ｏ装置故障指示がＯＳ内で生成される。
【０００２】
【従来の技術】
全てのコンピュータ環境では、様々なＩ／Ｏ装置からのその装置による操作を要求する割込みがＯＳにより認識されずに終り得る。なぜなら、Ｉ／Ｏ装置からＯＳに至る経路内に存在する構成要素が割込みを転送し損ない、結果的にＩ／Ｏ装置が割込みを提供し損なうか、或いはＯＳが割込みが提供されるとき、それを認識し損なうからである。
【０００３】
未着割込みの検出の失敗は、データ処理システムにおける操作をスロー・ダウンさせ、割込みが発生するまで重要な資源が解放されなかったり、或いは未着割込みに関連付けられる処理が中止される場合、究極的にはシステムを停止させ得る。こうした検出の失敗は資源を再度使用可能にするために、不定期のシステム再始動（ＩＰＬ）を要求し得る。特定のキュー上の資源要求を突き止めるための手動による試みは、通常、要求元の利用者が待つことのできない長い時間を費やす。
【０００４】
未着割込みがシステムに及ぼす致命的な影響を軽減するために、失われた割込みを検出し、失敗操作を終了させ、配備された回復機構により失敗操作を再開するか、或いはその操作を開始したジョブをエラーにより終了する方法が開発された。この機構は未着割込みハンドラ（ＭＩＨ）と呼ばれ、進行中のＩ／Ｏ操作を'時間設定（time）'する能力を有する。実際、これは時間測定ではなくＩ／Ｏ装置に対して可能性のある最長のＩ／Ｏ操作に対して、'正常'と見なされる時間長の制限である。これは全ての操作が長時間を費やすべきことを意味するのではなく、この時間を超過する全ての操作が異常と見なされるべきことを意味する。従って未着割込みハンドラは、ホストを失われた割込みの影響から保護するための、システム下の'安全網（safety net）'である。
【０００５】
初期には、低速装置（ユニット・レコード）と高速装置（ＤＡＳＤ）とを区別するために、２つのタイマ値が確立され、異なるマシンに対してタイマ値を個別に適合化するといった限られた能力を提供した。しかしながら、２つのタイマ値では十分ではなく、従って様々な装置のニーズ及び応答要求に適合するように調整され得る、追加の個々のＭＩＨタイマ値が実現された。
【０００６】
時を経て、ＭＩＨ構成要素の機能が、ＭＩＨタイムアウトの動的な変更を可能にするように拡張され、最初に実施された単なる活動時間の代わりに全てのＩ／Ｏ要求処理にわたり、制限時間を定める能力を備えるようになった。これらには、キューイング時間及びエラー回復プロシジャ（ＥＲＰ）が含まれる。しかしながら、コンピュータ・オペレーティング・システムの今日の未着割込みハンドラ構成要素は欠点を有する。
【０００７】
今日のオペレーティング・システムでは、装置クラス（すなわちＤＡＳＤ、テープなど）にもとづく様々なデフォルト指定のＭＩＨインタバルが存在する。しかしながら、各装置クラス内では異なる装置タイプに対する推奨ＭＩＨ時間の間に多大な不均衡が存在する。例えばテープ装置では、異なるモデルのテープ装置に対する推奨ＭＩＨ検出インタバルはＳ／３９０  ３４２０テープ装置の場合の３分から、Ｓ／３９０  ３４９０Ｅテープ装置の場合の２０分まで変化する。ＭＩＨ時間のこの変化はテープが含める異なる容量、及び媒体が移動できる最大物理スピードによる。
【０００８】
ＭＩＨ検出インタバルは、装置の最長のコマンド（例えばスペース・ファイル先送り、巻き戻し／アンロードなど）を実行する時間よりも大きくなければならない。別の例はＤＡＳＤ装置の場合である。ＭＶＳ（多重仮想記憶装置、Ｓ／３９０マシンにおけるＩＢＭの最初のオペレーティング・システム）オペレーティング・システムはＤＡＳＤ装置に対して、１５秒のデフォルト指定のＭＩＨ時間を有する。これは通常、作業負荷または特定の装置を使用するアプリケーションの特殊な特性により、システム操作者による調整を必要とするだけである。例えばＪＥＳ２（ジョブ・エントリ・システム２）チェックポイント・データ・セットは初期化の間に長い時間を確保され得るが、高い可用性のアプリケーションはそれらのＩ／Ｏが完了したか否かを、数秒の後に通知される必要がある。なぜなら、アプリケーションが別の装置を試行し、その上トランザクション時間要求を生成するからである。しかしながら、新たなＤＡＳＤ特性はＭＩＨ検出インタバルを選択する問題を一層複雑にする。ＩＢＭ３９９０  ＤＡＳＤは、その完了に３０秒を費やし得る内部エラー回復機能を有する。この回復の間にＭＩＨ条件が検出される場合、ホスト回復動作が制御ユニットにおいて重大な問題を生じ得る。従って、３９９０  ＤＡＳＤでは、システム操作者が３０秒のＭＩＨインタバルを設定することが推奨される。更に他の装置がシステムに対して、あたかもそれらがＤＡＳＤ装置であるかのように定義され得る。これに相当する例はＩＢＭ３９９５光装置であり、これらの装置上の幾つかの操作は光媒体の取り外し及び装着を要求し、これには数分を費やし得る。事態を一層複雑にするのは新たな装置がコンピュータ・システムに追加されるとき、こうした装置の適正な操作を保証するために既存のＭＩＨ個別化情報が更新される必要があり得ることである。
【０００９】
オペレーティング・システムＭＩＨハンドラに関する別の問題は、ＭＩＨが余りに長いことである。上述のように、ＭＩＨ時間は各装置タイプに対してその装置の特性にもとづき利用者により設定される必要がある。実行され得る最長のコマンド（すなわち巻き戻し／アンロード）が２０分を費やすと思われる場合、たとえほとんどの単純なデータ転送コマンドが数秒で実行されると期待されても、２０分のインタバルの後に全てのハング条件が検出される。エラー検出時間の延長はシステムの信頼性及び可用性を低下させる点で、利用者に悪影響を及ぼす。改善された技術を備える新たな装置が旧装置を置換する場合、ＭＩＨ時間が新たな要求に合致するように手動式に調整されなければならない。
【００１０】
更に、今日の装置及びＭＩＨ機能では、全てのコマンドが同一のＭＩＨインタバルに設定される。これはオペレーティング・システムにより、回復及び再構成動作の間に使用される特殊な制御及び回復コマンド（すなわち、パス・グループＩＤのセット、パス・グループＩＤのセンス、忠誠（allegiance）のリセット、割当て／割当て解除、アクセス制御など）にも当てはまる。これらのコマンドがオペレーティング・システムにより発行されるとき、重要なシステム資源が保持され、他の利用者の通常の作業の実行を遅延させ得る。これらのコマンドの回復のための特殊タイマ・コードの追加は、システムの開発にとって極めて高価であり、製品コストを押し上げる。
【００１１】
上述のように、コンピュータ・システムは、利用者が装置の物理特性にもとづき、手動式にＭＩＨ時間をセットすることを要求する。例えば利用者はＳ／３９０  ３９９５光ライブラリ装置が実際はＳ／３９０  ＤＡＳＤ３３８０装置として定義されること、及び光媒体の通常のステージング／デステージングに対してＭＩＨ条件が検出されないように、ＭＩＨインタバルが十分に高くセットされなければならないことを知らなければならない。更に、テープ・ドライブのセットが追加または更新される場合、テープ・ドライブのスピード及び容量にもとづきＭＩＨ時間が調整される必要がある。この手動プロセスはエラーにつながり易い。たまたま省略された誤ったＭＩＨ条件が検出されるとジョブは失敗し得る。
【００１２】
また、ＭＩＨ仕様は物理Ｉ／Ｏ構成定義と同期され、更に動的に及びシステム再始動により実行されるシステム構成変更に伴い、更新される必要がある。ＭＩＨ時間が正しく更新されないと、システムＲＡＳ（信頼性／可用性／保守性）が低下する。利用者が異なる装置に対してＭＩＨ検出を承知しなければならない事実はシステム管理のコスト及び計算の全体コストを増加させる。
【００１３】
システム環境：
図１０は複数のホスト（５１０）を示す。各ホストは汎用コンピュータ・システムであり、中央プロセッサ命令を含むプログラムを実行する１つ以上の中央処理ユニット（ＣＰＵ（５１１））と、Ｉ／Ｏチャネル・サブシステム（５１２）とを含み、後者はチャネル・プログラムを実行し、１つ以上のチャネル・パス（５１３）を通じてホスト（５１０）と１つ以上のＩ／Ｏサブシステム（５２０）との間の情報の転送を管理する。好適な実施例では、ホスト・コンピュータはＩＢＭ  Ｓ／３７０またはＩＢＭ  Ｓ／３９０コンピュータ・システムであり、Ｉ／Ｏ装置にＥＳＣＯＮまたはＯＥＭＩ  Ｉ／Ｏチャネル・インタフェースを介して接続される。しかしながら、ホスト・コンピュータは任意のタイプであってよく、実際には複数のタイプであり得る。同様にインタフェースが接続ホスト及びＩ／Ｏサブシステムによりサポートされるならば、チャネル・パスも複数のタイプであってよい。チャネル・パスのトポロジは、潜在的にＩ／Ｏインタフェースのタイプに固有である。
【００１４】
各Ｉ／Ｏサブシステム（５２０）は制御ユニット（５２１）を含み、これは１つ以上のホスト（５１０）に接続される１つ以上のＩ／Ｏ装置（５３０）を管理する。Ｉ／Ｏ装置は１つ以上の装置パス（５３１）を介して、制御ユニットに接続され、これらの装置パスはＩ／Ｏ装置及び制御ユニットにより情報の通信のためにサポートされる。一般に制御ユニットは、Ｉ／Ｏ装置によりサポートされるＩ／Ｏインタフェース（すなわち装置パス（５３１））を、ホストによりサポートされるＩ／Ｏインタフェース（すなわちチャネル・パス（５１３））に適応させる。
【００１５】
各制御ユニット（５２１）の内部には、複数のホストと複数のＩ／Ｏ装置との間の対話を管理するための機構が存在する。各チャネル・パスは制御ユニット内のチャネル・アダプタ（５２４）に接続され、これは関連チャネル・パスを通じて通信するために必要な機構を含む。共用メモリ（５２２）が各Ｉ／Ｏサブシステム（５２０）内に存在し、Ｉ／Ｏサブシステム内にあってチャネル・アダプタ（５２４）を制御するＩ／Ｏ処理要素によりアクセスされる。この共用メモリは各装置に関連付けられる情報のブロックを含み、これは"装置ｎロック・データ"（５２３）として参照される。
【００１６】
各ホスト（５１０）内では、ＯＳプログラムがその任意のＣＰＵ（５１１）により実行され、ＣＰＵはチャネル・サブシステム（５１２）に対して選択チャネル・パスまたはチャネル・パスのセットに接続される選択装置（５３０）に、Ｉ／Ｏ信号を発行するように指示する。ＯＳプログラムは要求がチャネル・サブシステム（５１２）に提供されてから、Ｉ／Ｏ操作が完了したことを示す応答がチャネル・サブシステムから受信されるまでのＩ／Ｏ操作の期間をモニタするように設計される。Ｉ／Ｏ操作の経過時間が特定のしきい値を越える場合、プログラムは本願の出願人に権利譲渡された米国特許第５３８８２５４号で述べられるように未着割込みタイムアウトを検出する。このＭＩＨプログラム機能は特定の報告されない条件により完了し損なったＩ／Ｏ操作を検出するように意図され、それによりＩ／Ｏ操作の完了に依存するプロセスの無期限の延期を回避する。
【００１７】
チャネル・サブシステム内ではＩ／Ｏ要求が選択装置に対してキューに待機され得る。要求装置がＩ／Ｏ要求を実行するのを待機する間、Ｉ／Ｏ要求をキューに待機する結果、Ｉ／Ｏ要求はチャネル・サブシステムと選択制御ユニットとの間のチャネル・パスを通じて通信を開始する。Ｉ／Ｏ要求がチャネル・サブシステムにより処理されている間、ＯＳプログラムは他の作業の実行の継続を許可される。Ｉ／Ｏ操作の完了時、チャネル・サブシステムがＯＳプログラムに割込みを発生し、完了したＩ／Ｏ操作のステータスを提供する。
【００１８】
制御ユニットは、自身が制御する各装置への同時要求を管理する。制御ユニットがホストにより生成されたＩ／Ｏ要求を許可すると決定する場合、コマンドがチャネルから受諾され、チャネルにより選択された装置に対して処理される。制御ユニットが同時活動のためにホストにより生成されたＩ／Ｏ要求を許可しないと決定する場合には、コマンドが"ビジー"指示により拒絶され、Ｉ／Ｏ要求がチャネル・サブシステムにキュー待機される。制御ユニットが以前にビジー指示を提供した後、コマンドを実行できると判断するとき、制御ユニットは"ビジー解除（no-longer busy）"指示を提供し、チャネル・サブシステムにキュー待機されたＩ／Ｏ要求を再発行するように指示する。要求元のＯＳプログラムはそのＩ／Ｏ要求が完了したようには知らされていない程度にしか、この対話を認識しない。ビジー指示を提供するために、制御ユニットにより通常、使用されるアルゴリズムについて、次に述べることにする。本発明は、１つ以上のＯＳが同一の制御ユニットに対して同時Ｉ／Ｏ要求をマークしているとき、未着割込み信号を確実に検出するために、ＯＳプログラムにより使用される制限時間の低減を可能にすることによりシステム効率を向上するものである。
【００１９】
同時Ｉ／Ｏ要求の管理：
制御ユニットは所与の装置に対して、その制御ユニットにおいて進行中の同時Ｉ／Ｏ要求の数を判断する。しばしば、装置はその装置により処理される媒体上での予測可能な結果を保証するために、Ｉ／Ｏ要求が直列化されることを要求する。制御ユニット内の他の設計制約もまた、装置に対して同時に実行され得るＩ／Ｏ要求の数に対して制限を課し得る。
【００２０】
図１１は、受諾される同時Ｉ／Ｏ要求の数を１に制限するために使用され得るプロセスを示し、これは装置における同時要求の直列実行を指示する。この処理は、チャネル・アダプタにより使用される装置ロック・プロトコルにより実施され、そこではアダプタが要求装置に対応するロック・データ・ブロック５２３内において、その装置に関連付けられるロックに対してアトミック・"テスト及びセット操作"を実行する。このロック・テスト及びセット・プロトコルは装置がＩ／Ｏ操作を開始する以前に実行される。テスト及びセット操作が成功の場合（装置が使用可能であることが判明する）、Ｉ／Ｏ操作が受諾され、装置により処理される。テスト及びセット操作が不成功の場合（装置が使用不能）、チャネル・アダプタのＩ／Ｏ要求はビジー指示を提供される。チャネル・アダプタは必要な装置に対するロックを獲得したとき、（装置に関連付けられるロック・ビットをセットすることにより）成功する。装置操作の完了時、ビジー指示を告げられた各チャネル・アダプタは今度"ビジー解除"指示を告げられ、チャネル・サブシステムにキュー待機されたＩ／Ｏ要求が、再びその装置に対して再発行される。このクロス・チャネル・アダプタ通信は、図１１で点線により示される。"ビジー解除"指示の提供の実現は、特定のホストが他のホストによる装置のアクセスを頻繁に阻止することの無いように、"公正（fairness）"機構の考慮を要求し得る。この方法の変形が異なるインタフェース・アーキテクチャ（例えばＳＣＳＩタグ無し及びタグ付きキューイング）に対して提供され得り、そこでは、チャネル・サブシステム・キューイング機能を使用する代わりに、直列キューが制御ユニット内に構成される。
【００２１】
キューイング期間の制限：
同時Ｉ／Ｏ要求の直列化のための上述のビジー／ビジー解除方法により生じる問題はホストから見て、Ｉ／Ｏ操作を実行するために要求される時間が制御ユニット（ＣＵ）で要求Ｉ／Ｏ操作の実行に必要とされる時間の関数でないことである。すなわち、ホストのＯＳから見た実行時間は実際のＣＵ／装置実行時間に、待機時間（この間、ＣＵは他のホストに対する他のインタリーブ式Ｉ／Ｏ操作を実行している）を加えたものである。実際、ＯＳが装置に対するキュー内の全てのＩ／Ｏ操作を知らなければ、適切な未着割込みタイムアウト値を決定するために要求Ｉ／Ｏ操作の期間を判断することはできない。同時アクセスの解決におけるある程度の公正さ、及び同時要求の数に対する特定の制限を前提とすると、統計分析によりＩ／Ｏ操作の完了の検出の失敗が、特定の失敗条件に起因するものであって、同時アクセス要求の結果ではないことを保証する高い確率を有する期間を拾い出すことが可能である。
【００２２】
例えば、所与のディスク装置が通常、任意のコマンドを１０ミリ秒以下で実行すると仮定する。ほとんどのＩ／Ｏ要求が１０個程度のコマンド（１０個程度のＩ／Ｏチャネル命令）を有し、比較的等価なサービスを獲得する１０個程度のホストが一般に存在すると仮定すると、１０ミリ秒×１０個のコマンド×１０個のホストの乗算により、Ｉ／Ｏ要求が約１秒を費やすと期待される。この数字は、例外条件を特定の高度な確率内で処理する特定の要因により、例えば１５秒に増加される。
【００２３】
所与の装置に対するＩ／Ｏ操作の期待実行時間が広い範囲で変化する場合、問題は複雑化する。なぜなら、同時要求の解決を予測する統計分析が、最悪の場合のＩ／Ｏ操作実行時間を考慮しなければならず、"短い"Ｉ／Ｏ要求の期間と、未着割込みタイムアウトとの間の相違を一層増大するからである。
【００２４】
例えば所与のディスク装置に対して、典型的なコマンドが通常１００ミリ秒以下で実行されるのに対して、アウトボード・コピー・コマンド（このディスクの内容を別のディスクにコピーする）は５分以下で実行されると仮定する。統計的に、Ｉ／Ｏ要求が８つの同時要求よりも長くキュー待機されることがないと判断すると（すなわち、このホストは８つのＩ／Ｏ要求が処理される毎に、少なくとも１度返却を獲得する）、最悪の場合としてキューイング時間を７×５分＝３５分と予測することができる。このホストが典型的なコマンドを実行している場合、キューイング時間とコマンド実行時間との和として予測される未着割込みタイムアウトは、３５分と０．０００１秒、すなわち約３５分である。７つの異なるホストが７つの同時アウトボード・コピーを発行し、３５分未満（例えばｎ（＜３５）分）のタイムアウト制限が可能になる確率は全ての共用システムが同時にフル・コピーを開始する確率にもとづくと見なすこともできる。
【００２５】
未着割込みが検出されるとき、しばしばプログラムは追加のＩ／Ｏを実行しなければならない。これらのＩ／Ｏ要求はキューイング問題に遭遇しがちで、結局同一の未着割込みタイムアウトを適用されなければならない。装置が実際に壊れていて、もはやホストに応答することができない状況ではジョブが失敗し、それ故再実行されなければならないとプログラムが結論するまでに、数１０分を費やすことは容易に理解される。
【００２６】
特定の環境では、プログラムはこうした統計方法により規定された時間を待機できなくてもよく、その上、リアルタイム処理の要求を満足できなくてもよい。他の場合では、未着割込みタイムアウト及び結果の回復が操作的な難題を生じる期間となる（例えば処理が要求ウィンドウ内に完了しない）。
【００２７】
特定の状況が発生するときに、ＭＩＨプロセスがエラー指示の出所となり得る単一ＯＳのデータ処理システムでは、従来のＭＩＨ検出システムは良好に機能しなかった。例えばロングＩ／Ｏコマンド（長い期間のＩ／Ｏ操作を要求するコマンド）が、Ｉ／Ｏプログラムの最後のコマンドとしてＩ／Ｏ制御ユニットに発行され、最後のＩ／Ｏコマンドが完了する以前に、同一装置に対するショート・コマンドを有する別のＩ／ＯプログラムがＯＳにより開始されようとする状況において、誤った指示が発生し得る。従来システムでは、ロング・コマンドはそれが制御ユニットにおいて受諾されるとき、部分的な完了を信号で知らせる。それにより、Ｉ／Ｏ装置が第１の要求に対する操作を完了するまで、そのＩ／Ｏ装置に対する次の要求が待機させられた（従来のＳ／３９０  Ｉ／Ｏアーキテクチャに精通する当業者には、これはジョブの迅速な終了、並びにテープ巻き戻し／アンロード・コマンドに続く新たなジョブの開始を可能にする、１次ステータスの再駆動として既知である）。第１の要求が終了する以前に、第２のＩ／Ｏ要求の開始が許可され、オペレーティング・システムが活動状態と想定されるショート・コマンドに対して、ＭＩＨタイムアウトを調整しようとするとき、誤った指示が検出され得る。なぜなら、ＯＳが以前のロング・コマンドに対する実行時間を知らないからである。この短いタイムアウトが誤って未着割込みを示し得る。しかしながら、実際にはどの割込みも未着ではない。なぜなら、装置がまだ以前のロング・コマンドを実行しているために、ショート・コマンドがまだ装置により開始されていないからである（そして、これらのいずれのコマンドも完了割込みを提供できていない）。
【００２８】
【発明が解決しようとする課題】
本発明の目的は、ロングＩ／ＯコマンドがＩ／Ｏ装置により実行されており、その装置が要求装置を共用する１つ以上の他のＯＳから別のＩ／Ｏ要求を受信するとき、要求Ｉ／Ｏ装置が複数のホストＯＳに信号で知らせることを可能にする信号送信プロセスを提供することである。
【００２９】
本発明の別の目的は、ほとんどの未着割込みを処理するための、細分的なＭＩＨ検出タイムアウトを提供することである。
【００３０】
本発明の更に別の目的は、同一のＩ／Ｏ装置を共用する１つ以上のＯＳにより使用される、細分的なＭＩＨタイムアウトを提供することである。
【００３１】
本発明の更に別の目的は、新たな装置の追加、装置のリネーム、装置の移動、または既存の装置に対する新たなサービスの追加により、Ｉ／Ｏ構成が変更されるとき、以前に手動によりカストマイズされたＯＳ内のＭＩＨタイムアウト値を排除することである。
【００３２】
【課題を解決するための手段】
本発明は、要求Ｉ／Ｏ装置操作の故障を検出するタイムアウト機能を使用する複数のホスト・オペレーティング・システム（ＯＳ）をサポートするＩ／Ｏ制御ユニット（ＣＵ）機構に関する。これらのＣＵ機構はホストＯＳが誤ってＩ／Ｏ装置故障を検出することを防止することにより、これらのＯＳをサポートする。こうしたことは、Ｉ／Ｏ装置が複数のホストＯＳにより共用される場合に問題となる。Ｉ／Ｏ装置の使用を共用する全てのホストＯＳからの各Ｉ／Ｏ要求は、所定のＭＩＨタイムアウト期間内に完了すると期待される。Ｉ／Ｏ装置がＭＩＨタイムアウト期間の終了以前にＯＳに成功完了割込みを送信しない場合、ＭＩＨは要求Ｉ／Ｏ装置操作の潜在故障の指示を生成する（その時、実際には装置は故障しておらず、単に他のホストＯＳの要求を処理しているかも知れない。従ってＭＩＨ潜在故障指示は誤りとなり得る）。
【００３３】
こうしたホストＯＳ  ＭＩＨ検出機能は、一般にＯＳ  ＭＩＨソフトウェアにより実行され、これは各発行されるＩ／Ｏ要求に対してＭＩＨタイムアウトを開始し、そのＩ／Ｏ装置から所定ＭＩＨタイムアウト内に成功完了割込みを受信しない場合、そのＩ／Ｏ装置の故障を示す。
【００３４】
本発明は、複数のホスト・インタフェース・アダプタを含むＩ／Ｏ  ＣＵ内に組み込まれ、アダプタはそれぞれＩ／Ｏ要求を異なるＯＳを有する異なるホスト・システムから受信する。ＣＵはそのＩ／Ｏ装置の各々に対応するそれぞれのロック・ビットを有する。同一装置に対して同時に受信されるＩ／Ｏ要求は同一のロックを競合するが、同時要求の１つだけがその時ロックを提供される。
【００３５】
各ホスト・インタフェース・アダプタはまた、ビジー・ビット及びしきい値タイマを有する。ビジー・ビットは使用不能な装置（ロック済み）に対する要求がアダプタにより受信されるときセットされ、その時しきい値タイマが開始される。拒絶された要求はしきい値タイムアウトが発生する以前に、要求装置が使用可能になるのを待機する。ＣＵに記憶されるしきい値タイムアウト値は、しきい値タイムアウトを決定し、これはＯＳ  １次ＭＩＨタイムアウトが発生する以前に発生するようにセットされる。しきい値タイムアウトが発生する以前に装置により現Ｉ／Ｏ要求が完了されると、待機中の要求が装置ロックを競合し、こうした要求はロックを獲得できたりできなかったりする。
【００３６】
しきい値タイムアウトの発生は、アダプタにロング・ビジー割込みを生成し、ＯＳ  ＭＩＨに送信するように指示する。こうした割込みはＯＳ  ＭＩＨにその初期１次ＭＩＨタイムアウト期間を２次（ロング・ビジー・タイムアウト値）に延長するように指示する。後者はＯＳ  ＭＩＨ内で非常に長いタイムアウトを生じる。このロング・ビジー・タイムアウトは、Ｉ／Ｏ装置故障を誤って示す初期１次タイムアウト期間のタイムアウトを阻止する。
【００３７】
ホスト・インタフェース・アダプタがビジーである（ロック済みの）装置に対する別のＩ／Ｏ要求を受信する場合、その要求は装置により拒絶されるが、任意のしきい値タイムアウトが発生するまで、Ｉ／Ｏサブシステム内で待機することが許可される。任意のしきい値タイムアウトの後、要求はＯＳに戻される。すなわち、アダプタがＯＳに待機中の要求を取り戻すように信号で知らせる。これはアダプタがロング・ビジー割込みを生成し、ＯＳに送信することにより達成され、ＯＳはその時、待機中の要求に対するそのＭＩＨタイマを停止する（待機中の要求に対する１次タイムアウトの発生を阻止する）。そして、その要求はＩ／Ｏサブシステムの代わりに今度はＯＳ内で待機する。ＯＳは後に待機中の要求をＩ／Ｏ  ＣＵに再発行するとき、ＭＩＨタイマを再始動する。
【００３８】
現Ｉ／Ｏ要求がロング・ビジー期間の間に成功裡に完了するとき、そのＣＵ装置ロックがその使用可能な状態にセットされ、装置終了割込みがＯＳに送信される。ＯＳは待機中の要求を再発行し、（１次タイムアウト値を用いて、）その要求に対してＯＳ  ＭＩＨタイマを再始動する。装置操作が１次ＭＩＨまたは２次ＭＩＨロング・ビジー・タイムアウト期間内に成功裡に完了しない場合、ロング・ビジー・タイムアウトが装置故障を指摘する。
【００３９】
本発明はＭＩＨ最大タイムアウトの延長を任意の回数可能にする。好適な実施例では、ＭＩＨタイムアウト期間が最小１次ＭＩＨタイムアウト期間から、最大（且つ非常に長い）２次ＭＩＨタイムアウト期間に１度延長可能である。短い１次ＭＩＨタイムアウト期間は、その終了以前にほとんどのＩ／Ｏ装置操作が完了するように選択される。
【００４０】
本発明は、（従来システムにおいて、所与のタイプの各Ｉ／Ｏ装置に対して使用された固定ＭＩＨタイムアウト期間と比較して、）ＭＩＨタイムアウト期間を短縮し、従来のＭＩＨソフトウェアと比較してほとんどのＩ／Ｏ装置故障の素早い検出を提供する。本発明による潜在Ｉ／Ｏ装置操作故障の素早い判断は、ほとんどのＩ／Ｏ装置操作に対するＭＩＨタイムアウト期間の短縮による。本発明に従う、ＭＩＨタイムアウト期間のその最小ＭＩＨタイムアウト期間からの延長は、その完了に長時間を要求する数少ないＩ／Ｏ操作に対してのみ必要とされる。従って、システム効率の全体的な改善が本発明の使用により獲得される。
【００４１】
本発明では理論的には、ＭＩＨ最大タイムアウト期間は任意の有限な数の延長を有する。例えば好適な実施例では、ＭＩＨ最大タイムアウト期間はＣＵのホスト・インタフェース・アダプタの各々において、１つのＣＵしきい値タイムアウトを用いて２度延長される。３度の延長を有するＭＩＨタイムアウトをサポートするためには、２つのＣＵしきい値タイムアウトがＣＵのホスト・インタフェース・アダプタの各々において使用され得る。好適な実施例では、第１のＣＵしきい値は、短い１次ＭＩＨ期間に類似の短い１次ＭＩＨタイムアウト期間をサポートする。第１のＣＵしきい値の終了に達すると、ＭＩＨが第２のＭＩＨ延長（例えばロング・ビジー延長）を呼び出す。２番目の例では、第２のＣＵしきい値が、第２のＭＩＨ延長期間の終了よりも僅かに先にタイムアウトし、第３の（最後の）ＭＩＨ延長をトリガする。
【００４２】
第２の延長が長い２次ＭＩＨタイムアウト期間を終了する場合、第３の延長は超長いＭＩＨ延長期間を終了するように指示され得る。後者の例では、第３の超長いＭＩＨ延長期間は、過度に長いＩ／Ｏ装置操作に対してのみ必要とされ得る。こうした操作には、人の介入を含むテープ実装コマンドなどがあり、第３の延長期間の終了時には、ＭＩＨタイムアウト故障指示が提供される。ほとんどのＩ／Ｏ装置操作は１次ＭＩＨ延長だけを使用し、数少ない長いＩ／Ｏ装置操作が２次ＭＩＨ延長を使用する。しかしながら、第１のしきい値割込みの後、待機中の要求の位置が変更されてもよく、その後、要求はＩ／Ｏサブシステムの代わりに、ＯＳ内で待機し、そこで装置ロックを即時競合することができる。これはコンピュータ・システムのＩ／Ｏアーキテクチャにより影響される。
【００４３】
前記の例から、本発明が任意の数のＯＳ  ＭＩＨタイムアウト延長を有し得ること、各ＯＳ  ＭＩＨ延長がそのＯＳに対するＣＵインタフェース・アダプタにおいて、対応するＣＵしきい値タイムアウトを有することが明らかである。各ＣＵしきい値タイムアウトは、対応するＭＩＨ延長タイムアウトよりも僅かに先にタイムアウトするようにセットされる。任意のしきい値タイムアウトとその対応するＭＩＨタイムアウトとの間の時間は、アダプタが割込み通信をＯＳ（待機中のＩ／Ｏ要求に関連付けられる）に送信し、現期間のＭＩＨタイムアウトの発生以前に、ＯＳがそのＭＩＨタイムアウトを次の時間延長により延長することを可能にしなければならない。潜在Ｉ／Ｏ操作故障を宣言するＭＩＨタイムアウトは、常に最後に使用される延長の終了時のタイムアウトに相当する。
【００４４】
本発明は、ある所定の１次ＭＩＨタイムアウト期間を超過するチャネル・プログラム実行時間を要求するコマンドに対してＩ／Ｏ装置またはそのＩ／Ｏ制御ユニットにおいて、ロング・ビジー状態を使用し得る。
【００４５】
複数のＯＳがＩ／Ｏ装置を共用する環境では、要求ＯＳプログラムが同一装置の使用を要求する別のＯＳに対するチャネル・サブシステムにより実行される処理を認識しない。その結果、あるＯＳは別のＯＳのチャネル・サブシステム内または制御ユニット内で発生しているかもしれない任意のＩ／Ｏ要求のキューイング（待機）に気を止めない。
【００４６】
類似のコマンド実行時間を有するコマンド（すなわち多大に異なるコマンド実行時間を有するコマンドが存在しない）を使用する装置を考える場合、理想的な状況は、任意の適切なＩ／Ｏ要求の最悪の場合の実行時間を超過しようとしている任意のキューイングを報告することである。この場合、ＭＩＨタイムアウトは、ＯＳから見て最長の期待実行時間よりも多少大きくセットされる。ＯＳがＩ／Ｏ操作が完了した、または過度なキューイングが発生しているとの知らせを受信しなかった場合、ＯＳは割込みが失われたものと見なす。実際のＭＩＨタイムアウトは、通常のコマンドを実行するための最悪の場合の時間の数倍のオーダである。
【００４７】
本発明は、Ｉ／Ｏ要求内のロング・コマンドを処理するためのロング・ビジー・プロトコルを含む。例えば過度なキューイング持続期間など、要求ＯＳから見て、多大に長い処理時間を生じ得る（たとえコマンドがまだ要求装置内で実行されていなくても）非エラー条件が存在する。本発明はＯＳから見て、任意の持続期間のＩ／Ｏコマンドを処理するために使用され得る。より詳細には、本発明は要求ＯＳに要求に対して過度なキューイングが存在する時を知らせ、それによりＯＳは、ＭＩＨタイムアウトを発行されたＩ／Ｏ要求の期待持続期間と時間しきい値との和に調整する。Ｉ／Ｏサブシステムはこの時間しきい値にもとづき過度なキューイングを報告する。過度なキューイングが稀であれば、過度なキューイング条件を報告するオーバヘッドはシステム性能にほとんど影響しない。本発明は、ＯＳが通常のショート・コマンド処理のために比較的短いＭＩＨタイムアウトを使用することを可能にする一方、発生し得る長期間のコマンド処理に対しては、より長いＭＩＨタイムアウトの使用を可能にする。
【００４８】
本発明の好適な実施例では、装置操作に対する各Ｉ／Ｏコマンドがコマンドの期待実行時間に従い、ショートとロングの２つのクラスのいずれかに分類される。期待実行時間は、コマンドに対するビジー条件により生じる内部インタバル回復処理時間と、キューイング時間とを含み、ビジー条件が共用Ｉ／Ｏ装置に対してバックアップされる要求の待機（キューイング）時間を延長する。ディスク・シーク・コマンドなどのショート・コマンドは、通常、数ミリ秒で実行されるのに対してテープ巻き戻しコマンドなどのロング・コマンドは、その実行に数秒乃至数１０分を費やす。
【００４９】
好適な実施例では、Ｉ／Ｏ要求（すなわちチャネル・プログラム）の実行に関連して、１次ＭＩＨタイムアウト及び２次ＭＩＨタイムアウトの２つのＭＩＨタイムアウトが割当てられる。各タイムアウトは、例えばプロセッサが"Ｉ／Ｏ開始"または"サブチャネル開始"命令を実行するときなど、Ｉ／Ｏ要求がＯＳによりチャネル・サブシステムに発行されるとき、開始する。短期間コマンドだけを含む各Ｉ／Ｏ要求は割当てられた１次ＭＩＨタイムアウト期間の間に実行されるものと期待されるのに対して、少なくとも１つの長期間コマンドを有する各Ｉ／Ｏ要求は割当てられた２次ＭＩＨタイムアウト期間の間に実行されるものと期待される。これらのＭＩＨタイムアウト期間が、各Ｉ／Ｏ装置タイプに対して定義され、従って、これらは装置タイプごとに異なり得る。
【００５０】
１次ＭＩＨタイムアウト期間は、ほとんどのＩ／Ｏ要求の最長期待実行時間の完了後に終了し、このＭＩＨタイムアウト期間は、任意のこうしたコマンドに対するビジー条件により生じる任意の内部回復処理時間と、キューイング時間とを含む。２次ＭＩＨ時限（インタバル）は、１つ以上のロング・コマンドを含むＩ／Ｏ要求の実行時間の完了後に終了する。ロング・コマンドは１次ＭＩＨタイムアウト期間よりも長く、２次ＭＩＨタイムアウト期間よりも短い装置実行時間を有する。
【００５１】
本発明はＩ／Ｏ装置に対して新たなＩ／Ｏ信号を提供する。この信号は本明細書では"ロング・ビジー"信号と呼ばれる。本明細書では、装置がＩ／Ｏ要求に対してロング・コマンドを実行しているとき、常に装置はロング・ビジー状態であると定義される。Ｉ／Ｏ要求に対してロング・コマンドが存在しないとき、装置はロング・ビジー状態と見なされない。別のＩ／Ｏ要求がロング・ビジー状態のＩ／Ｏ装置に提供されるとき、常に装置は"ロング・ビジー"・ステータス情報を有する割込みによりＩ／Ｏ要求を拒絶する。好適な実施例であるＳ／３９０  Ｉ／Ｏアーキテクチャでは、これはデバイス制御装置がプロセッサＩ／Ｏサブシステムに、"センス・データ"情報と一緒に"ユニット・チェック割込み"信号を送信することにより、通知される。
【００５２】
Ｉ／Ｏプログラム内の各Ｉ／Ｏコマンド（任意のＩ／Ｏコンピュータ・アーキテクチャにおいて、その使用可能な装置タイプに対して定義される）が、本発明により、"短期間Ｉ／Ｏコマンド"または"長期間Ｉ／Ｏコマンド"のいずれかとして分類され、前者は割当てられた１次ＭＩＨタイムアウトの限度内で完了し、後者は１次ＭＩＨタイムアウトの満了後、且つ２次ＭＩＨタイムアウトの満了以前に完了する。そして、これらの両方のタイムアウト期間はＯＳがＩ／Ｏコマンドを有するＩ／Ｏ要求に対して開始命令を発行するとき、開始する。
【００５３】
好適な実施例はＳ／３９０アーキテクチャを使用し、そこではＩ／Ｏコマンドがチャネル・コマンド・ワード（ＣＣＷ）により定義される。ＣＣＷは、１つ以上のＣＰＵを有する中央プロセッサ・コンプレックスのＩ／Ｏサブシステム内のＩ／Ｏプロセッサにより解釈され、任意のＣＰＵがＩ／Ｏ要求を開始する。
【００５４】
各Ｉ／Ｏ装置は、その装置が接続されるＩ／Ｏ制御ユニット内に"自己記述データ・ブロック"を記憶される。各装置の自己記述データ・ブロックは、本発明により関連装置に対するコマンドに対して、１次ＭＩＨ値及び２次ＭＩＨ値の両方を含むように変更される。更に自己記述データ・ブロックはコマンドの２つのリストを含み、第１のリストは短期間コマンド用であり、第２のリストは長期間コマンド用である。任意の装置の自己記述データ・ブロックは、例えばＣＰＵがコマンド・リストまたは２つのＭＩＨインタバルを獲得するために"構成データ読出し"ＣＣＷを実行することにより、任意に獲得され得る。
【００５５】
ＯＳがそのオンライン装置（ＯＳがＩ／Ｏ要求を送信可能な装置）を初期化するとき、その装置が実際に存在し、ＯＳに正しく定義されているか否かを判断する確認操作が実行される。この初期化プロセスの一部は各装置に対する自己記述データ・ブロックを獲得し、ＯＳにとって使用可能な物理Ｉ／Ｏ構成を表すソフトウェア・テーブルの生成を可能にする。装置の自己記述データは任意に１次ＭＩＨタイムアウト値及び２次ＭＩＨタイムアウト値を含み得る。装置の自己記述データ・ブロックが利用者が明示的に優先ＭＩＨタイムアウト値を指定しなかった１次ＭＩＨタイムアウト値を含む場合、デフォルト指定の１次ＭＩＨタイムアウト値が装置に割当てられる。類似の構成処理がシステム初期化後にオンラインに変更される任意のＩ／Ｏ装置に対しても実行される。
【００５６】
より詳細には、各Ｉ／Ｏ要求はＣＣＷから成る関連チャネル・プログラムを有する。チャネル・プログラムは、それがロング・コマンドを含まない場合、１次ＭＩＨ時限（インタバル）内に実行を完了すべきである。チャネル・プログラムがロング・コマンドを含む場合、それは２次ＭＩＨ時限（インタバル）内に完了すべきである。Ｉ／Ｏ要求が１次ＭＩＨタイムアウト期間活動状態であると、ＯＳは装置依存のＭＩＨエグジット（exit）を呼び出し、サブプロセスを実行する。そして、このサブプロセスがチャネル・プログラムを走査し、チャネル・プログラムがロング・コマンドを含むか否かを判断する（装置に関連付けられるロング・コマンド・リスト内に表される）。
【００５７】
チャネル・プログラムがロング・コマンドを含まない場合、１次ＭＩＨインタバルがＩ／Ｏ要求に対して使用される。チャネル・プログラムが少なくとも１つの実行中のロング・コマンドを含む場合には、２次ＭＩＨインタバルがＩ／Ｏ要求に対して使用される。
【００５８】
Ｉ／Ｏ要求がＯＳにより生成されるとき、ＭＩＨ時限プロセスが開始される。このプロセスはカウンタを増分して、ＯＳがＩ／Ｏ要求をそのＩ／Ｏサブシステムに生成して以来、そのＩ／Ｏ要求に対して経過した総時間を測定する。時限プロセスは、周期的に（例えば指定タイマ割込み信号により）、その現在測定された経過時間と、選択ＭＩＨインタバル値（１次または２次ＭＩＨタイムアウト期間）とを比較し、選択ＭＩＨタイムアウト期間の満了を検出する。タイムアウトとが検出されると、ＭＩＨ時限プロセスはＯＳがＩ／Ｏ要求のチャネル・プログラムを終了し、通常の回復プロセスを呼び出すように要求する。
【００５９】
従来技術では、ある装置がロング・コマンドを含むＩ／Ｏ要求を実行しているときに第２のＯＳが同一の装置にＩ／Ｏ要求を生成する場合（これはＩ／Ｏキュー上で保留となる）、第２のＯＳの要求は、未着装置操作完了割込みにより、１次ＭＩＨタイムアウト期間の満了が誤って潜在ＭＩＨエラー条件を示すまで、待機するように要求される。しかしながら、実際には割込みはまだ提供されていないので未着ではない。
【００６０】
しかしながら、本発明によれば、全ての関連ＯＳに送信される"ロング・ビジー"信号により誤ったエラー条件は検出されない。"ロング・ビジー"信号は各ＯＳに、そのＯＳが装置における適切な操作により停止させられており、Ｉ／Ｏ割込みが実際には未着でないことを知らせる。従って、ＯＳはハングアップすることなくそのＩ／Ｏ要求の完了を待機する。Ｓ／３９０では、装置が次のコマンドをユニット・チェック割込み及びセンス・データにより拒絶し、"ロング・ビジー"条件が装置において存在することを知らせる。ロング・ビジー条件を確認すると、ＯＳソフトウェアはその内部ＭＩＨインタバルを再調整する制御を有し、それにより試行されたＩ／Ｏ要求は別のＩ／Ｏ要求が装置に対して実行可能であることを示すビジー解除ステータスが確認されるまで、ＯＳ内にキュー待機される。従って、Ｉ／Ｏ要求が２次ＭＩＨ時間よりも長くキューに待機され続け、ＭＩＨインタバルが満了する場合、時限制御プロセスがＭＩＨインタバルを再度開始し得る。これは例えば割込みをシミュレートして、Ｉ／Ｏ要求に対する現ＭＩＨタイムアウト測定を終了し、Ｉ／Ｏ要求の再試行を信号で知らせることにより、そのＩ／Ｏ要求に対してタイムアウト測定を最初から開始することによる。これらの再試行は、システム内における装置エラー回復プロシジャからのカウント制御による。
【００６１】
従って、装置はＩ／Ｏ要求に対してチャネル・プログラムの実行を開始するとき、ビジー状態に置かれ、ロング・コマンドに対しては、ロング・ビジー状態に置かれる。ロング・ビジー状態は要求が完了するまで継続する。装置におけるビジー／ロング・ビジー状態は関連するＩ／Ｏ要求が成功裡に完了するとき、終了する。
【００６２】
１次及び２次ＭＩＨインタバルは、Ｉ／Ｏ要求が装置おいて実行されるとき、要求元ＯＳにより使用される。ロング・ビジー信号はＭＩＨタイムアウト期間（インタバル）の延長（以前に使用されていない）を可能にする。
【００６３】
本発明の別の目的は、システムを単一のＯＳの下で操作することであり、このＯＳは、まだ完了していない現要求と次の要求とのオーバラップを可能にし、未着割込み信号の誤ったＭＩＨエラー指示を回避する。
【００６４】
ロング・コマンドは続く連鎖コマンドを有さず、時に"非同期即時コマンド"として参照される。そのビジー状態は、要求装置が要求操作を完了するまで、要求装置またはその制御ユニットにおいて、非常に長い時間維持される。
【００６５】
本発明は、たとえコマンドが関連装置において実際に操作を完了していない場合でも（また、その完了割込みが要求元ＯＳに送信されるとき、装置操作でさえ開始していないかもしれない）、ロング・ビジー信号がＩ／Ｏ制御ユニットにより提供されるとき、即時完了割込みを提供することにより、Ｉ／Ｏ制御ユニット内における要求オーバラップ問題を解決する。これはＩ／Ｏ要求を処理する責任をそのＯＳにシフトし、Ｉ／Ｏサブシステムをその要求の処理から解放する。これはＩ／Ｏ制御ユニット（ＣＵ）が"非同期即時コマンド"のＣＵ受諾に応答して、"即時"割込み信号をＯＳの中央プロセッサ・コンプレックスに送信することにより達成され得る。ここで"即時"とは、コマンドが制御ユニットにおいて受諾されるときに、"完了割込み"が中央プロセッサ・コンプレックスに送信されることを意味する。その時、装置がそのコマンドの実行を開始している必要はない。後に装置が実際にコマンドを完了するときには割込み信号は提供されない。"ロング・ビジー"状態は、ロング・コマンドに対する全ての操作が要求装置により完了されるまでＣＵにおいて継続する。ＯＳは即時割込みを受信すると、即時ロング・コマンドに対する責任を請け負う。
【００６６】
装置のロング・ビジー状態は、ＯＳが任意の時点にテスト命令をＣＵに発行することによりテストされ、ＯＳは装置に対してロング・ビジー状態が存在する場合、その装置への別の要求の発行を遅延したいか否かなどを判断する。従って、本発明に従う、装置に対する"ロング・ビジー"信号と、ＯＳへの"即時"割込み信号との組み合わせは、装置完了割込みがＣＵからＯＳに送信されるのを待機する間に、ＭＩＨタイムアウトを有した従来のＭＩＨシステムで遭遇したような、ロング・ビジー・コマンドに対する誤ったＭＩＨ指示の発生を防止する。従って、制御ユニットが任意の既存のＯＳによりテストされ、関連装置を操作するための別のＩ／Ｏ要求を発行する以前にその装置の可用性が判断される。
【００６７】
【発明の実施の形態】
好適な実施例の環境は、ＩＢＭのＭＶＳ／ＥＳＡ（エンタプライズ・システム・アーキテクチャ）及びＩＢＭ３５９０テープ記憶装置を含むものとして述べられる。当業者には、好適な実施例としてここで述べられる方法が、本発明の範囲から逸脱すること無しに、他のオペレーティング・システム及びコンピュータ・アーキテクチャ・プラットフォームにも適用され得ることが理解されよう。
【００６８】
装置自己記述拡張：
好適な実施例をサポートする装置は、前述の構成データ読出しコマンドを使用するとき、次のように自己記述データに含まれる２つの新たなフィールドを返却する。
【００６９】
未着割込みハンドラ１次タイムアウト（ＭＩＨＰＴＯ）：
ワード１のバイト２（６０３）は、制御ユニットの推奨"１次ＭＩＨタイムアウト・インタバル"を指定する値を含み、この値は装置に対して未着割込みハンドラ・タイムアウトをセットするために使用される。このタイムアウトは未着割込みハンドラ２次タイムアウトに対する値がセットされない場合、ビジーまたはチャネル・コマンド再試行ステータスの提示の結果として、チャネル・プログラムが継続すると期待される最長時間であり、任意の装置回復プロセス及び任意のキューイング時間を考慮する。２次ＭＩＨタイムアウトが指定される場合には、この時間はビジーまたはチャネル・コマンド再試行ステータスの提示の結果として、チャネル・プログラム（モデル依存型のロング・コマンドを含まない）が費やすと期待される最長時間であり、任意の装置回復プロセス及び任意のキューイング時間を考慮する。
【００７０】
１次ＭＩＨタイムアウト・インタバル値は、１次ＭＩＨタイムアウト・インタバル・フィールド内で指定される仮数及び指数から獲得される、底１０の値である。この値を含む１次ＭＩＨタイムアウト・フィールドは、図１６に示される形式（６０４）を有する。
【００７１】
仮数が０よりも大きい場合、ワード１のバイト２のビット０乃至１（指数）は、符号無し２進整数を含み、これは０よりも大きい１次ＭＩＨタイムアウト値の指数に相当する。仮数が０の場合、１次ＭＩＨタイムアウト値として何も値が指定されず、ワード１のバイト２のビット０乃至１（指数）は意味を有さない。
【００７２】
ワード１のバイト２のビット２乃至７は符号無し２進整数を含み、これは１次ＭＩＨタイムアウト値の仮数に相当する。このフィールドが０を含む場合、１次ＭＩＨタイムアウト・インタバルとして何も値が指定されない。
【００７３】
指数フィールドは、図１７に示されるように復号される。
【００７４】
２次ＭＩＨタイムアウト（ＭＩＨＳＴＯ）：
ワード１のバイト３（６０２）は、装置に対するプログラムの２次ＭＩＨタイムアウト・インタバルに対する、制御ユニットの推奨値を指定する値を含む。ＭＩＨＳＴＯ値は、
装置依存のロング・コマンドに対して形成される、任意の長い暗黙の忠誠の最大期待持続期間、または
装置依存のロング・ビジー条件の最大期待持続期間
の大きい方に相当する。
【００７５】
ＭＩＨＳＴＯ値は、ロング・ビジー条件の最大期待持続期間、またはモデル依存のロング・コマンドを含むチャネル・プログラムの最長期待実行時間であり、、ビジーまたはチャネル・コマンド再試行ステータスの結果生じる、あらゆる装置回復機構及び任意のキューイング時間を考慮する。
【００７６】
２次ＭＩＨタイムアウト値は、２次ＭＩＨタイムアウト・フィールド内で指定される仮数及び指数にもとづく、底１０の値である。
【００７７】
２次ＭＩＨタイムアウト・フィールドは、図１６に示される形式を有する。
【００７８】
仮数が０より大きい場合、ワード１のバイト３のビット０乃至１（指数）は、符号無し２進整数を含み、これは０よりも大きい２次ＭＩＨタイムアウト値の指数に相当する。仮数が０の場合、２次ＭＩＨタイムアウト・インタバルとして何も値が指定されず、ワード１のバイト３のビット０乃至１（指数）は意味を有さない。
【００７９】
ワード１のバイト３のビット２乃至７は符号無し２進整数を含み、これは２次ＭＩＨタイムアウト値の仮数に相当する。このフィールドが０を含む場合、２次ＭＩＨタイムアウト・インタバルとして何も値が指定されない。
【００８０】
指数フィールドは、図１７に示されるように復号される。
【００８１】
ロング・ビジー・プロトコル：
"キューイング期間の制限"の項目で述べたプロセスは、次のようである。
【００８２】
ここで使用される方法が図１２乃至図１３に示され、その変形が図１１に示される。本方法は各チャネル・アダプタに対してＣＵ内に組み込まれるＣＵタイマを使用する。各ＣＵタイマはそれぞれのチャネル・アダプタにより受信されるＩ／Ｏ要求のキューイング時間、すなわちＩ／Ｏ要求が最初にチャネル・アダプタにより受信されてから、要求装置が要求の処理を開始するまでの時間を測定する。ＣＵタイマは初期には０にセットされ、始動されると経過時間を測定し始める。制御ユニット・タイマの経過時間が"しきい値"を超過する場合、ＣＵタイムアウトが制御ユニットにより検出される。このしきい値はＩ／Ｏ要求をモニタしているＯＳソフトウェアにより現在使用されているＭＩＨタイムアウト値よりも、幾分小さく定義される。ここでの概念は、制御ユニットが活動状態からロング・ビジー（ＬＢ）状態に遷移できるように時間設定することである。
【００８３】
各チャネル・アダプタは、要求装置が要求に対するＩ／Ｏ操作の開始を許可される以前に要求装置に関連付けられるロックに対して、アトミック・"テスト及びセット"操作を実行する。テスト及びセット操作が成功の場合（すなわち要求が装置のロックを獲得する）、Ｉ／Ｏ要求が装置により受諾され処理される。この要求は装置に対する１つ以上のＩ／Ｏコマンドを含み得る。テスト及びセット操作が不成功の場合にはＩ／Ｏ要求はビジー指示を提供され、ＣＵタイマが始動される。
【００８４】
ＣＵタイマは、要求チャネル・アダプタが成功裡に要求装置に対してロックを獲得するときリセットされる。なぜなら、Ｉ／Ｏ要求の受諾は要求のキューイング時間の終了を示すからである。装置によるＩ／Ｏ要求の完了時、他のチャネル・アダプタは、ロックがリセットされ、装置が再度使用可能であることを信号で知らされる。ビジー指示を提供され、タイムアウトを経験していない他のチャネル・アダプタにとって、この信号は"ビジー解除"指示を提供し、これがチャネル・サブシステムに、再度Ｉ／Ｏ要求をこれらのチャネル・アダプタの各々に発行するように指示する。ＣＵタイマは各チャネル・アダプタに対して走行し続ける。なぜなら、Ｉ／Ｏ要求の再発行が再度装置ロックを獲得し損ね、別のビジー指示及びキューイング時間の継続を生じ得るからである。
【００８５】
万一ＣＵアダプタしきい値タイムアウトが発生する場合、チャネル・アダプタはＩ／Ｏ要求が次に受信されるとき、ユニット・チェック指示をチャネルに知らせるように条件付けられる。タイムアウトが"ビジー"指示と"ビジー解除"指示との間に発生する場合には、"ビジー解除"指示がチャネル・サブシステムに信号で知らされ、チャネル・サブシステムは自身のキューに待機されているＩ／Ｏ要求を再発行する。"ユニット・チェック"指示はＯＳソフトウェアに提供され、"センス"・データを伴う。センス・データはＯＳソフトウェアに制御ユニットがまだ機能状態であるが、装置が"ロング・ビジー状態"である（すなわち、装置が他のホストからのＩ／Ｏ操作を処理するのに多忙であるため、このＩ／Ｏ要求に応答せず、これらの操作がこのＩ／Ｏ要求に対する最大キューイング時間を超過した）ことを通知する。この指示に対する通常のＯＳソフトウェア応答は、次に装置ロックが解除されるときにチャネル・パスにより提供される"ロング・ビジー解除（no longer long busy）"指示を待機することである。
【００８６】
議論を正当化する幾つかの実施の複雑性が存在する。サブ項目"システム環境"で述べたマルチパス・システムはビジー指示が受信されるとき、使用可能なチャネル・パスのセットを通じてＩ／Ｏ要求を再試行する傾向がある（少なくとも所与のホストに関連付けられるチャネル・パスのセットが、グループとして調整されない特定の操作モードにおいて）。２つ以上のチャネル・アダプタがビジー指示を送信して終了し、ビジー解除指示を提供するように準備され得る。結果のビジー解除指示が提供されるとき、チャネル・サブシステムは使用可能なパスの１つを選択し、Ｉ／Ｏ要求を再駆動する。Ｉ／Ｏがチャネル・サブシステムにおいて終了され、再発行されない場合も存在する。
【００８７】
ソフトウェア・タイムアウト値：
前述したように、本発明では受信ビジー指示により、ロング・ビジー・タイムアウトの期間キューに待機される所与のＩ／Ｏ要求が再駆動され、続いてソフトウェアにとって認識可能な"ユニット・チェック"指示を提供される。ソフトウェアは次に、所与のＩ／Ｏ要求がその実行時間とロング・ビジー・タイムアウトとの和により提供される時限内に、またはロング・ビジー指示が受信されるまでに完了することを期待する。
【００８８】
更に、装置のロング・ビジー・タイムアウトがその制限時間に達せずに解放されるとき、"ロング・ビジー解除"指示が信号で知らされるので、"ロング・ビジー"指示の受信と"ロング・ビジー解除"指示の受信の間の時限が、任意の所与のＩ／Ｏ要求の最悪の場合の実行時間により制限される。所与の装置に対して決定されるように、このタイムアウト値は"ロング・ビジー解除"指示が喪失されないことを保証するために使用される。Ｉ／Ｏ要求をキュー待機したチャネル・パスと、ロング・コマンドを実行しているチャネル・パスとの関係が図１４に示される。
【００８９】
ＭＩＨタイムアウトに対するコマンド実行時間の影響を考慮するために、Ｉ／Ｏ要求に対したチャネル・プログラムを構成するコマンドがロングとショートの２つのクラスに分けられる（理論的には、コマンド分類は、３つ以上の実行時間クラス（例えばショート、中間及びロングなど）を提供することにより、実行され得るが、好適な実施例では２つのクラスが使用される）。ＯＳソフトウェアは現Ｉ／Ｏ要求におけるコマンドを分析し、そのチャネル・プログラムがロング・コマンドを含むか否かを判断し、Ｉ／Ｏ要求に対してロング・コマンドが見い出されない場合には、短いＭＩＨタイムアウト値である１次ＭＩＨタイムアウト（ＭＩＨＰＴＯ）値を使用する。Ｉ／Ｏ要求に対して１つ以上のロング・コマンドがチャネル・プログラム内に見い出される場合には、長いＭＩＨタイムアウト値である２次ＭＩＨタイムアウト（ＭＩＨＳＴＯ）が使用される。
【００９０】
このように、Ｉ／Ｏ要求がショート要求（ロング・コマンドを含まないチャネル・プログラムを有するＩ／Ｏ要求）、またはロング要求（少なくとも１つのロング・コマンドを含むチャネル・プログラムを有するＩ／Ｏ要求）のいずれかに分類され得る。
【００９１】
１次ＭＩＨタイムアウト（ＭＩＨＰＴＯ）値は、ロング・コマンドを含まない通常のＩ／Ｏ要求に対して期待される実行時間として決定され得る。２次ＭＩＨタイムアウト（ＭＩＨＳＴＯ）値は、最長のコマンドの実行時間と、ロング・コマンドを含むＩ／Ｏ要求の名目チャネル・プログラムにおける最悪の場合の実行時間との和として決定され得る。
【００９２】
ＯＳソフトウェアは、１）ショートＩ／Ｏ要求の完了指示、または２）装置が別の要求のロング・コマンドを実行するのに多忙になったことを示すロング・ビジー指示のいずれかを示す割込みを受信する以前にＭＩＨＰＴＯが経過する場合、ショートＩ／Ｏ要求に対する未着割込みを検出する。ロング・ビジー指示が受信される場合、ＯＳソフトウェアはＩ／Ｏ要求をキューに待機し、装置から"ロング・ビジー解除"指示を知らせる割込みの受信を待機する。その後、ＯＳソフトウェアはその装置にＩ／Ｏ要求を再発行する。
【００９３】
ロングＩ／Ｏ要求に対してＯＳソフトウェアは、ＭＩＨＳＴＯがそのロングＩ／Ｏ要求の完了を示す任意の割込みが受信される以前に経過する場合、装置からの未着割込みを検出する。
【００９４】
ＯＳソフトウェアによるロング・ビジー指示の受信の後、ＯＳソフトウェアは、ＭＩＨＳＴＯが任意の"ロング・ビジー解除"指示を受信する以前に経過する場合、未着割込みを検出する。
【００９５】
システム装置初期化：
図１のステップ１０４は、装置初期化プロセスを表し、これは図２に詳細に示される。このプロセスはオペレーティング・システムにオンライン接続されるように定義される各装置に対してシステム初期化プロセスを実行する。装置初期化プロセスが図２のステップ２０１で呼び出され、ステップ２１１で、無害なＩ／Ｏコマンドにより、装置への各使用可能なパスをテストすることにより装置（図１に示される）が動作状態であることを確認する（ステップ２０２）。テープ・ドライブの場合には、ノーオペレーション（ＮＯＰ）・チャネル・コマンドが発行される。作動可能なパスがステップ２０３で見い出されない場合、装置はオフラインとマークされ（ステップ２０８）、処理は次の装置へと継続する（ステップ１０４）。装置に対して少なくとも１つの作動状態のパスが見い出される場合（ステップ２０３）、（現ＥＳＡ／３９０コンピュータ・アーキテクチャでは、）センスｉｄＩ／Ｏコマンドが発行され（ステップ２１２）、装置に対するコマンド情報ワード（ＣＩＷ）が検索される（ステップ２０４）。コマンド情報ワードはプログラムが装置の自己記述データを検索することを可能にするチャネル・コマンドを識別する。装置への各作動状態のパスに対して（ステップ２０５）、構成データ読出しコマンド（ＲＣＤ）が発行され（ステップ２１３）、それにより装置構成データ記録（ＣＤＲ）が検索されて、ＯＳ構成データ・テーブル（ＣＤＴ）に追加される（ステップ２１５）。
【００９６】
図１５は、ＣＤＲに含まれる装置１次ＭＩＨタイムアウト値（６０３）及び装置２次ＭＩＨタイムアウト値（６０２）を示す。
【００９７】
図２において、装置の自己記述データがＯＳ内のＣＤＴに配置されると、装置依存の初期化プロシジャがステップ２０６で呼び出され、システム制御ブロックを装置が使用され得る方法に関する情報により初期化する。装置初期化プロセスの間にステップ２０７によりエラーが見い出されない場合、装置はステップ２０９でオンライン且つ使用可能とマークされる。ステップ２０７でエラーが見い出される場合には、装置初期化プロセスはステップ２０８で装置をオフラインとマークし、装置はエラーが修理されるまでアプリケーションにより使用され得ない。
【００９８】
図１において、ステップ１０４で全ての装置が確認され、装置初期化プロセスが完了すると、ステップ１０５でＭＩＨ初期化が開始する。ＭＩＨ初期化は最初、システム・プログラマによりSYS1．PARMLIBデータセット内に指定されるカストマイズ・データ（メンバＩＥＣＩＯＳｘｘ）の読出しを含む（１０２）。このカストマイズ・データは、利用者が特定のＩ／Ｏ装置に課せられるように望むＭＩＨタイムアウト値を含む。しかしながら、このカストマイズ・データは任意選択である。なぜなら、システムによりサポートされる全ての装置タイプに対して固定のＭＩＨＰＴＯ及びＭＩＨＳＴＯタイムアウト・デフォルト指定値が存在するからである。ステップ１０６で、ＩＥＣＩＯＳｘｘメンバからのテキスト・レコードが、ＤＥＶブロックと呼ばれる内部テキスト・レコードに変換される。このステップはＩＥＣＩＯＳｘｘ内に作成された各装置ＭＩＨ値に対して１ＤＥＶブロックを生成し、これらが連鎖されて、ＭＩＨ処理作業領域からアンカ（anchored）される（ステップ１１３）。システム初期化が進み、全てのシステム・サービスが使用可能になるとき、ＭＩＨ初期化はステップ１０７において継続し、ステップ１１４で各ＤＥＶブロックを処理して、利用者により指定されるＭＩＨタイムアウトを推奨するために必要な内部データ構造を生成する。
【００９９】
利用者の全ての指定時間インタバルが、システム初期化ステップ１０７において処理された後、ＭＩＨタイムアウト値が利用者により変更されなかった装置は、ステップ１０８で、デフォルト指定の１次ＭＩＨタイムアウト値により処理される。この処理は、装置を表すＤＥＶブロックを生成するステップ１１５、及びそれらをステップ１１４に入力するステップを含み、ステップ１１４がＤＥＶブロックを利用者入力により処理する。
【０１００】
ＭＩＨタイムアウト値を有するこれらのＤＥＶブロックを生成するプロセスの詳細が図３乃至図４に示される。システム初期化の間、または後述の装置変更プロセスからステップ３０１で装置のＭＩＨインタバル処理に入力する。ステップ３０２は装置ブロックをキューに待機し、そのアクセスを装置に対するＭＩＨ処理を変更する他のＭＶＳコマンドから生じる他のＭＩＨ処理に対して直列化する。こうしたコマンドには、例えばＳＥＴ  ＩＯＳ＝ｘｘ及びＳＥＴＩＯＳ  ＭＩＨなどが含まれる。システム・エンキューが獲得されると、システム内の各装置が調査され（ステップ３０３）、既に導入がＩＥＣＩＯＳｘｘ１０２内にＭＩＨインタバルを指定したか否かを判断する。利用者が既にインタバルを指定している場合（ステップ３１１）、処理は次の装置に移行する（ステップ３０４）。しかしながら、利用者がＭＩＨインタバルを指定していない場合には、その装置に対して、構成データ・テーブル（１１２）からＭＩＨ１次タイムアウト値が検索される（ステップ３１３）。ＭＩＨ１次タイムアウト値が０でない場合、装置を表すＤＥＶブロックが生成される（ステップ３１５）。次にＤＥＶブロックがＤＥＶブロックの大域キュー上にアンカされ（ステップ３１６）、処理はシステム内の次の装置に移行する（ステップ３０４）。システム内の全ての装置が処理されると、ＤＥＶブロックが生成されたか否かがチェックされる（ステップ３０５）。ＤＥＶブロックが生成されていない場合、処理はＭＩＨエンキューをデキューすることにより解放し（ステップ３０９）、制御を呼び出し元に戻して終了する。
【０１０１】
しかしながら、ステップ３０２でＤＥＶブロックがキュー待機されるとき、それらは最初に全てのメッセージ処理をスキップするためのフラグをセットすることにより処理される（ステップ３０６）。メッセージ処理は、これらのＭＩＨ変更が明示的な利用者コマンドに由来しないのでスキップされる。次に、ＭＩＨ初期化プロセス（ＩＯＳＲＭＩＨＩ）がステップ３１２で呼び出され、利用者が指定したＭＩＨインタバルが処理されるのと同様にキュー待機されるＤＥＶブロックを処理する（ステップ３１８）。ＩＯＳＲＭＩＨＩが処理を完了すると、メッセージ処理が再度イネーブルされ（ステップ３０８）、ＭＩＨエンキューが解放され（ステップ３０９）、制御が呼び出し側に戻される（ステップ３１０）。
【０１０２】
本発明によれば、ＭＩＨタイムアウト値（ＭＩＨＰＴＯ及びＭＩＨＳＴＯ）が一意的に各装置に割当てられる。ＯＳのデフォルト値以外の値が一般に使用されるものと期待される。ＯＳがサポートできるより多い固有ＭＩＨタイムアウト値が、装置に対して使用される場合（ＭＶＳは２５６の固有ＭＩＨタイムアウト値をサポートできる）、装置を処理するための特殊処理が必要となる。ＭＶＳでは、もはやこれ以上の固有ＭＩＨ走査インタバルが使用可能でない場合（ステップ３２１）、ＭＶＳは装置により要求される値よりも大きな最小の有効インタバルを割当てる（ステップ３２２）。このことは、ほとんどの応答時間を装置故障の検出に当てる一方でＩ／Ｏ操作が早まって終了されないように保証する。ＤＥＶブロックに含まれる１次ＭＩＨタイムアウト値よりも大きなインタバルが使用可能でない場合、装置クラスに対するデフォルト指定のＭＩＨ時間が使用される。
【０１０３】
システム初期化が完了すると（ステップ１０９）、新たな装置を追加することにより、または単にオフライン装置をオンラインにするＭＶＳ装置変更コマンドを発行することにより（ステップ１１７）、システムは構成テーブルを変更する。オフライン装置がオンラインにされるとき、常にそれらはシステム初期化の間に実行された図２と同一の装置初期化プロセス（図１の２０１及び図２の全て）を実行する。装置初期化プロセスの実行の後、ＤＥＶブロックが生成され、それらがシステム初期化の間に処理されたのと同様に処理される（図１）。
【０１０４】
オペレーティング・システムが初期化され、ジョブがシステム上で実行を開始すると、Ｉ／Ｏ要求がその実行のために、ＯＳによりそのＩ／Ｏスーパバイザに発行され、前記米国特許第５３８８２５４号で述べられるタイプの未着割込みハンドラ・サブコンポーネントにより時間設定される。
【０１０５】
本発明を実現する各装置に対して３つの新たなフィールドが、オペレーティング・システムの内部表現に追加される。
【０１０６】
ロング・ビジー標識：
これは装置に対する最後のＩ／Ｏ要求が、ロング・ビジー指示（センス・データを伴うユニット・チェック）に遭遇したことを示すビットである。ロング・ビジーは装置からの信号であり、装置がロング・コマンドを含むコマンド連鎖を実行しているとき、またはサブシステムが長い時間を費やす処理状態に入り、その状態がサブシステムがビジーの間、あらゆるコマンドを受諾するのを阻害するとき、発行される。
【０１０７】
ＬＢＲＥＤＲＩＶＥ標識：
これはロング・ビジー状態において、経過時間がＭＩＨＳＴＯ値を超過した後、Ｉ／Ｏ要求がＯＳにより装置に再発行されたことを示すビットである。
【０１０８】
累積ＭＩＨ時間：
これは装置がロング・ビジー状態にある総時間を表す３２ビット・フィールドである（この経過時間は、ロング・ビジー標識が装置に対してセットされるとき、開始する）。
【０１０９】
ＯＳ内では、１次ＭＩＨインタバルが活動状態のまたはキュー待機中のＩ／Ｏ要求に対して満了するとき（累積時間＞ＭＩＨＰＴＯ）、ＯＳは装置がＭＩＨ回復の資格があると見なし、図５に示される装置依存のＭＩＨエグジット処理にエグジットする。このＭＩＨエグジットには１次インタバルが満了した後、ステップ４０１で入る。ステップ４０２は、Ｉ／Ｏ要求が装置において保留になる総経過時間を累算する。ステップ４０３は、装置がロング・ビジー状態（Ｉ／Ｏ要求がキュー待機状態であり、活動状態でない）で示されているか否かをテストし、次に総累積時間が装置のＭＩＨＳＴＯ時間と比較される（ステップ４０９）。ＭＩＨＳＴＯ時間を超過すると、ステップ４１０はＬＢＲＥＤＲＩＶＥビットをオンし、ＭＩＨが要求を再駆動する処理に入ったことを示す。ステップ４１０はＭＩＨに復帰し、ＭＩＨはステップ４１１で要求に対する総時間を、エラー記録としてシステム・エラー・ログに記録した後、キューに待機中の要求を再始動する。
【０１１０】
総累積時間がＭＩＨＳＴＯタイムアウト・インタバルを超過しなかった場合、ステップ４１５が実行され、エラー回復動作をリセットし、Ｉ／Ｏ要求を再発行のために再度キューに待機し、ＭＩＨプロセスに復帰する。
【０１１１】
ステップ４０３が、装置がロング・ビジー状態でないことを見い出し、ステップ４０４が、活動状態のチャネル・プログラムを見い出す場合、ステップ４０５がチャネル・プログラムを走査し、それが任意のロング・コマンドを含むか否かを判断する。次にＩＢＭ３５９０テープ装置を制御するロング・コマンドの例を示す。
REWIND（巻き戻し）、FORWARD SPACE FILE（スペース・ファイル先送り）、BACKWARD SPACE FILE（スペース・ファイル逆送り）、LOCATE BLOCK（ブロック捜索）、FORMAT（フォーマット）、ERASE（消去）、DATA SECURITY ERASE（データ・セキュリティ消去）、UNLOAD（アンロード）、LOAD（ロード）、MOVE（転送）
【０１１２】
ロング・コマンドがＩ／Ｏ要求のプログラム内で見い出されない場合、ステップ４１２は通常のＭＩＨ回復を要求する。しかしながら、ロング・コマンドがステップ４０６で見い出される場合には、総累積時間がＭＩＨＳＴＯ値と比較される。ステップ４０７は、累積時間がＭＩＨＳＴＯ値を超過するか否かを判断する。超過しない場合、ステップ４１３は、ＭＩＨプロセッサがＭＩＨ装置依存エグジットに復帰する以前に、別のＭＩＨインタバル（ＭＩＨＰＴＯ）を待機すべきことを示す。ＭＩＨプロセッサが別のＭＩＨインタバルの経過を待機している間にチャネル・プログラムが完了する場合、このＩ／Ｏのために、ＭＩＨ装置依存エグジットに再入力することはない。しかしながら、ステップ４０７が総累積時間がＭＩＨＳＴＯを超過しないことを見い出すと、ステップ４１４は総累積時間を０にリセットし、ロング・ビジー・フラグをリセットし、総累積時間をエラー回復記録に保管する。そして、ＭＩＨプロセスに再入力する。
【０１１３】
活動状態のＩ／Ｏ要求が完了するとき、図６または図７に示されるプロセスが、総累積時間を０にリセットし、装置に対する任意のロング・ビジー指示をリセットし、更にＬＢＲＥＤＲＩＶＥフラグをリセットするために使用される。図６は装置依存のセンス終了（ＥＯＳ：End-of-Sence）エグジットを表し、これはＩ／Ｏ要求を完了する装置に対してユニット・チェックも存在するとき、装置終了信号を処理する。このプロセスではセンス・データが読出された後、要求に対する総累積時間を０にリセットするためにステップ４２１が呼び出される。ステップ４２２は、センス信号に関連付けられる"ロング・ビジー"指示の存在をテストする。ステップ４２２がロング・ビジー・センス・データを見い出さない場合、ステップ４２３が装置に対するロング・ビジー指示をリセットし、ＬＢＲＥＤＲＩＶＥフラグをリセットする。ステップ４２２がロング・ビジー・センス・データを見い出した場合、またはステップ４２３の後、ＯＳ内のＭＩＨ操作を制御するＭＩＨルーチンを含むＯＳ内のＩＯＳ（Ｉ／Ｏシステム）ソフトウェアへの復帰が実行される。
【０１１４】
ＭＩＨプロセス内の装置依存トラップ・エグジット・ルーチン（４３０）が、図７に示される。このトラップ制御プロセスは装置が完了し、ユニット・チェック無しに装置終了信号を提供するとき（ステップ４３４）、制御を獲得する。次にステップ４３１が、要求に対する総累積時間を０にリセットし、ステップ４２３が装置に対する任意のロング・ビジー指示をリセットし、ＬＢＲＥＤＲＩＶＥフラグをリセットし、ステップ４３３でＩＯＳに復帰する。
【０１１５】
装置に対して非送信請求割込み（その送信が要求されたものでないことをいう）が発生するとき、図８に示されるステップ４４０で、装置依存非送信請求割込みエグジット・コードに入る。次にステップ４４１で、割込みのステータスが装置状態の変化が発生したことを示す場合、ステップ４２２がロング・ビジー標識をリセットする。
【０１１６】
Ｉ／Ｏ要求がエラーに遭遇するとき、図９に示される装置依存エラー回復プロシジャ（装置ＥＲＰ）４５０が呼び出される。ステップ４５１は、Ｉ／Ｏエラーがロング・ビジー条件により生じたか否かを判断し、そうでない場合、ステップ４５２がＩ／Ｏ操作の再試行を含み得る従来のエラー回復プロセスを実行し、ステップ４７０でＩＯＳに復帰する。しかしながら、ステップ４５１がエラーがロング・ビジー条件によることを見い出すと、ステップ４５３でたとえ装置が準備完了状態でなくても、Ｉ／Ｏ要求が実行される必要があるか否かがチェックされる（ＩＯＳＩＯＮＲＤ）。ＥＲＰを満足するために、Ｉ／Ｏ要求が実行される必要がない場合、ステップ４５４がＩ／Ｏ要求が永久エラーとマークし、ジョブがステップ４７０で通知される。装置が準備完了状態でないときにＩ／Ｏ要求が実行を要求しない場合、ステップ４５５でＬＢＲＥＤＲＩＶＥビットがチェックされ、要求がＭＩＨから再駆動されたか否かを確認する。要求がＭＩＨから再駆動され、まだロング・ビジー状態の場合、装置は永久エラーと見なされる。ステップ４５８及び４５９で、ロング・ビジー標識及びＬＢＲＥＤＲＩＶＥフラグ、更に総累積時間がリセットされる。次にステップ４６０で、装置が強制的にオフラインにされ、全ての新たなＩ／Ｏ要求が永久Ｉ／Ｏエラーにより拒絶されることを示すようにマークされる。最後にステップ４６１で、現Ｉ／Ｏ要求に永久エラーがマークされ、ジョブがステップ４７０で通知される。ステップ４５５でＬＢＲＥＤＲＩＶＥフラグがオンでなかった場合、ステップ４５６が装置をロング・ビジー状態であるものとしてマークする。従って、ステップ４５７による失敗チャネル・プログラムの再試行がＩＯＳの内部にキュー待機されて、ロング・ビジーが取り下げられるのを待機し（図８）、上述のように、総ロング・ビジー時間がＭＩＨによりモニタされる。
【０１１７】
以上から、本発明の趣旨から逸脱すること無しに、様々な変更が可能であることが理解されよう。従って、本明細書の記述は本発明の一実施例として取り上げられただけであり、本発明の範囲を制限するものではない。
【０１１８】
まとめとして、本発明の構成に関して以下の事項を開示する。
【０１１９】
（１）  入出力制御ユニットをホスト・システムに接続するために入出力制御ユニット内に配置された複数のホスト・システム・インタフェース・アダプタと協動する入出力制御ユニット内のサポート制御であって、前記ホスト・システムが入出力要求を前記制御ユニットに送信し、そしてタイムアウトの検出により、前記制御ユニットに接続された要求入出力装置が要求入出力操作の実行に失敗した時を判断するものにおいて、前記制御ユニットが、
入出力操作のために、前記入出力装置のいずれかの前記インタフェース・アダプタへの接続を制御するために、前記制御ユニットに接続された入出力装置に夫々関連付けられた複数の装置ロック・ビットと、
ビジー・ビット、前記インタフェース・アダプタの各々に関連付けられたしきい値タイマ及び前記タイマと協動して、しきい値タイムアウトの発生を判断するための記憶されたしきい値タイムアウト値と、
前記インタフェース・アダプタにより受信された現入出力要求により要求された前記入出力装置に関連付けられた使前記ロック・ビットのうち使用可能な１つをロック状態にセットしようとする、前記インタフェース・アダプタの各々のためのビット・テスト制御であって、前記現入出力要求が、同時に前記関連付けられた入出力装置の使用を獲得しようとしている、前記インタフェース・アダプタのうちの任意の他のものにより受信された現入出力要求と前記ロック状態を競合し得る、前記ビット・テスト制御と、
前記関連付けられた入出力装置を使用する現入出力要求のために前記関連付けられたロック・ビットが前記ロック状態にセットされている間に、待機中の入出力要求が前記インタフェース・アダプタにより受信されたとき、前記関連付けられたビジー・ビットをビジー状態にセットする、前記インタフェース・アダプタに関連付けられたビジー・ビット制御と、
前記関連付けられたロック・ビットが前記ロック状態にセットされたとき、前記インタフェース・アダプタに関連付けられた前記タイマをリセットし、及び開始するタイマ開始制御と、
前記ロック状態が前記ロック・ビットに対して存在する間に、関連付けられたタイマが前記しきい値タイムアウトを超過するとき、各前記インタフェース・アダプタに関連付けられた前記制御ユニット内において、前記インタフェース・アダプタへのロング・ビジー信号を生成するロング・ビジー制御であって、前記ロング・ビジー制御が前記ロング・ビジー信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送する、前記ロング・ビジー制御と、
前記しきい値タイムアウトの超過後に、前記装置ロックがアンロック状態にセットされるとき、ロング・ビジー解除信号を生成するための、各前記ロック・ビットに関連付けられた操作完了制御であって、前記操作完了制御が、前記ロング・ビジー解除信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送する、前記操作完了制御と、
を含む、入出力制御ユニット。
（２）  前記ロック状態が前記ロック・ビットに対して存在し、前記関連付けられたタイマが前記しきい値タイムアウトを超過しない間に、前記関連付けられた入出力装置に対する別の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、前記インタフェース・アダプタへの正規ビジー信号を生成するための、各前記インタフェース・アダプタに関連付けられた前記制御ユニット内の正規ビジー制御と、
前記しきい値タイムアウトの超過以前の前記現入出力要求の完了時に、前記装置ロックがアンロック状態にリセットされるとき、正規ビジー解除信号を生成するための、各前記ロック・ビットに関連付けられた操作完了制御であって、前記操作完了制御が、前記ビジー解除信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送し、前記入出力装置が別の前記入出力要求に対して使用可能であることを示す、前記操作完了制御と、
を含む、（１）記載の入出力制御ユニット。
（３）  前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタ制御が前記インタフェース・アダプタへの前記ロング・ビジー信号を表す信号及びステータス情報を生成し、前記ロング・ビジー信号に応答して前記インタフェース・アダプタが、前記入出力装置が使用不能であることを外部ソフトウェアに伝達し、前記外部ソフトウェアに未着割込みハンドラ・タイムアウトを延長するように助言し、前記関連付けられた入出力装置が故障していないときに、前記入出力装置による前記現入出力要求の処理における操作故障を示し得る誤ったタイムアウト検出を防止するようにし、
前記しきい値タイムアウトの超過後、前記ロック・ビットが前記ロック状態に維持され、前記入出力装置が前記現入出力要求に対する操作を継続する、
（１）記載の入出力制御ユニット。
（４）  前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタ制御が前記インタフェース・アダプタへの前記ロング・ビジー信号を表す割込み信号及びステータス情報を生成し、前記インタフェース・アダプタが前記待機中の入出力要求を前記インタフェース・アダプタに送信した外部ソフトウェアに、ロング・ビジー割込み信号を伝達することを可能にし、前記外部ソフトウェアに前記制御ユニットがもはや前記待機中の入出力要求を処理する責任を負わないことを知らせ、前記外部ソフトウェアが前記待機中の入出力要求に対して任意の未着割込みハンドラ・タイムアウト操作を停止することを可能にし、前記要求入出力装置が将来使用可能になるとき、前記入出力要求が再度前記制御ユニットに提供されるようにし、
前記ロック・ビット及び前記関連付けられた入出力装置が前記インタフェース・アダプタにおいて、前記現入出力要求に対して操作を継続する、
（１）記載の入出力制御ユニット。
（５）  前記関連付けられた入出力装置が前記しきい値タイムアウトの後、前記現入出力要求に対する操作を成功裡に完了し、前記制御ユニットに前記関連付けられたロック・ビットを使用可能状態にリセットするように信号で知らせ、
前記制御ユニットが装置終了割込み信号及びステータス情報を生成し、前記インタフェース・アダプタが前記関連付けられた入出力装置の使用可能性を外部ソフトウェアに伝達することを可能にし、次の前記入出力要求が前記制御ユニットに提供されて、前記関連付けられたロック・ビットの前記ロック状態を競合し得ることを助言する、
（２）記載の入出力制御ユニット。
（６）  前記関連付けられた入出力装置が前記しきい値タイムアウトの後、前記現入出力要求に対する操作を不成功裡に完了し、外部ソフトウェアに完了割込みを送信することに失敗し、前記外部ソフトウェアが前記未着割込みハンドラ内で前記延長されたタイムアウトを超過し、前記関連付けられた入出力装置による前記現入出力要求に対する操作の失敗を示す、
（２）記載の入出力制御ユニット。
（７）  前記割込み信号及びステータス情報が前記インタフェース・アダプタ制御から伝達された後、前記関連付けられたタイマにより操作を終了する、
（４）記載の入出力制御ユニット。
（８）  前記インタフェース・アダプタ制御の各々が、前記しきい値タイムアウトの超過後、前記しきい値タイムアウト値を第２のしきい値タイムアウト値により置換することにより、前記制御ユニット内で前記関連付けられたタイマによる時限操作を継続し、前記第２のしきい値タイムアウトが外部ソフトウェアに、該ソフトウェア内の前記未着割込みハンドラ・タイムアウトを前記ロング・ビジー・タイムアウトに延長するように伝達し、前記タイムアウト延長の細分性の増加により、前記現入出力要求に対する入出力装置故障の誤った検出を回避し、
前記関連付けられたロック・ビットがそのロック状態を継続し、前記関連付けられた入出力装置が前記現入出力要求に対して操作を継続する間に、前記第２のしきい値タイムアウトを超過する時、前記インタフェース・アダプタ制御が割込み信号及びステータス情報を生成し、前記外部ソフトウェアに前記ロング・ビジー信号を延長する必要性を伝達する、
（１）記載の入出力制御ユニット。
（９）  複数のホスト・システムによる入出力装置故障検出をサポートする入出力制御ユニット内の方法であって、前記複数のホスト・システムが前記制御ユニット内の入出力インタフェース・アダプタに接続され、前記制御ユニットが前記ホスト・システムから入出力要求を受信するものにおいて、前記方法が前記制御ユニットから前記ホスト・システムに前記ホスト・システム内で未着割込みタイムアウト検出をサポートする情報を伝達し、前記ホスト・システムが前記制御ユニットに接続される要求入出力装置による操作故障を誤って示すことを防止するものにおいて、
複数のロック・ビットを前記制御ユニットに接続されるそれぞれの前記入出力装置に関連付けるステップであって、前記ロック・ビットが入出力操作に対応して、前記入出力装置の前記インタフェース・アダプタへの接続を制御する、前記関連付けステップと、
各前記インタフェース・アダプタに、ビジー・ビット、しきい値タイマ及び前記タイマと協動して、しきい値タイムアウトの発生を判断するための記憶されたしきい値タイムアウト値を構成するステップと、
前記複数のインタフェース・アダプタが、前記入出力装置の使用を同時に獲得しようとする現入出力要求に対して前記ロック・ビットの状態をロック状態にセットしようとする競合状態において、前記インタフェース・アダプタにより受信される前記現入出力要求により要求される前記入出力装置に関連付けられた前記ロック・ビットの状態を条件付きでテストするステップと、
前記関連付けられた入出力装置を使用する前記現入出力要求に対して前記関連付けられたロック・ビットが前記ロック状態にセットされている間に、待機中の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、前記関連付けられたビジー・ビットをビジー状態にセットするステップと、
前記テストされたロック・ビットが前記ロック状態にセットされているとき、前記インタフェース・アダプタに関連付けられた前記タイマをリセットし、及び開始するステップと、
前記ロック状態が前記ロック・ビットに対して存在する間に、前記タイマが前記しきい値タイムアウトを超過するとき、各前記インタフェース・アダプタに対してロング・ビジー信号を生成し、及び前記ロング・ビジー信号を前記インタフェース・アダプタから前記制御ユニットの外部に転送し、前記入出力装置が前記ロック状態を獲得している現入出力要求に対してビジー状態であることを伝達するステップと、
前記しきい値タイムアウトの超過後に、前記装置ロックがアンロック状態にセットされるとき、ロング・ビジー解除信号を前記インタフェース・アダプタから出力し、前記入出力装置が要求入出力操作を完了したことを示すステップと、
を含む、方法。
（１０）  前記ロック状態が前記ロック・ビットに対して存在し、前記関連付けられたタイマが前記しきい値タイムアウトを超過しない間に、前記関連付けられた入出力装置に対する別の前記入出力要求が前記インタフェース・アダプタにより受信されるとき、正規ビジー信号を前記インタフェース・アダプタに提供するステップと、
前記しきい値タイムアウトの超過以前の前記現入出力要求の完了時に、正規ビジー解除信号を生成し、前記ロック・ビットをアンロック状態にリセットし、前記ビジー解除信号を前記インタフェース・アダプタから外部システムに転送し、前記入出力装置が別の前記入出力要求に対して使用可能であることを示すステップと、
を含む、（９）記載の方法。
（１１）  前記ロック状態が存在する間に前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタにより、前記ロング・ビジー信号を表すロング・ビジー信号及びステータス情報を生成するステップであって、前記ロング・ビジー信号に応答して、前記インタフェース・アダプタが前記入出力装置が使用不能であることを前記ホスト・システムに伝達し、前記ホスト・システムに未着割込みハンドラにおけるタイムアウトを延長するように助言し、前記関連付けられた入出力装置が故障していないときに前記入出力装置による前記現入出力要求の処理における操作故障を誤って示し得る、前記ホスト・システムによる誤ったタイムアウト検出を防止するステップと、
前記しきい値タイムアウトの超過後、前記ロック状態及び前記現入出力要求に対する前記入出力装置操作を継続するステップと、
を含む、（９）記載の方法。
（１２）  前記しきい値タイムアウトを超過するとき、前記インタフェース・アダプタに対して前記ロング・ビジー割込み信号及びステータス情報を生成するステップであって、前記インタフェース・アダプタが前記ロング・ビジー割込み信号を前記待機中の入出力要求を前記インタフェース・アダプタに送信した前記制御ユニットの外部の前記ホスト・システムに伝達することを可能にし、前記ホスト・システムに前記制御ユニットがもはや前記待機中の入出力要求を処理せず、前記ホスト・システムが前記待機中の入出力要求に対して未着割込みハンドラ・タイムアウト操作を停止すべきであり、前記要求入出力装置が将来使用可能になるとき、前記入出力要求を再度前記制御ユニットに提供すべきことを助言する、前記生成ステップと、
前記ロック・ビットに対する前記ロック状態、及び前記インタフェース・アダプタに関連付けられた前記現入出力要求に対する前記関連付けられた入出力装置の操作を継続するステップと、
を含む、（９）記載の方法。
（１３）  前記しきい値タイムアウトの後、前記関連付けられた入出力装置により前記現入出力要求に対する操作を成功裡に完了し、前記制御ユニットに前記関連付けられたロック・ビットを使用可能状態にリセットするように信号で知らせるステップと、
装置終了割込み信号及びステータス情報を提供するステップであって、前記インタフェース・アダプタが前記関連付けられた入出力装置の使用可能性を前記ホスト・システムに伝達することを可能にし、前記入出力装置に対する次の前記入出力要求が再度前記制御ユニットに提供され、前記関連付けられたロック・ビットの前記ロック状態を競合し得ることを助言する、前記提供ステップと、
を含む、（１０）記載の方法。
（１４）  前記しきい値タイムアウトの後、前記関連付けられた入出力装置により前記現入出力要求に対する操作を不成功裡に完了するステップであって、
２次タイムアウト操作が２次タイムアウト値を超過し、前記未着割込みハンドラ内において、前記関連付けられた入出力装置による前記現入出力要求に対する操作の失敗を示すまで、前記ホスト・システムが前記２次タイムアウト操作を継続する、前記不成功の完了ステップを含む、
（１０）記載の方法。
（１５）  前記割込み信号及びステータス情報が前記インタフェース・アダプタ制御から伝達された後、前記関連付けられたタイマにより操作を終了する、
（１２）記載の方法。
（１６）  前記しきい値タイムアウトの超過後、前記しきい値タイムアウト値を第２のしきい値タイムアウト値により置換することにより、前記関連付けられたタイマにより前記インタフェース・アダプタに対して時限操作を継続するステップであって、
前記第２のしきい値タイムアウトにより前記インタフェース・アダプタが前記ホスト・システムに、前記ホスト・システム内の前記未着割込みハンドラ・タイムアウトを前記ロング・ビジー・タイムアウトに延長するように伝達し、前記タイムアウト延長の細分性の増加により、前記現入出力要求に対する入出力装置故障の誤った検出を回避する、前記継続ステップと、
前記関連付けられたロック・ビットがそのロック状態を継続し、前記関連付けられた入出力装置が前記現入出力要求に対して操作を継続する間に、前記第２のしきい値タイムアウトを超過する時、割込み信号及びステータス情報を生成し、前記インタフェース・アダプタから前記ホスト・システムに前記ロング・ビジー信号の延長の必要性を伝達する、前記生成ステップと、
を含む、（９）記載の方法。
（１７）  １つ以上のホスト・オペレーティング・システム（ＯＳ）と協動する入出力制御ユニット内のサポート制御であって、前記オペレーション・システムが前記制御ユニットに接続される入出力装置による操作を要求する入出力要求を前記制御ユニットに送信するものにおいて、前記制御ユニットが、
前記オペレーション・システムからの前記入出力要求に関連付けられた入出力プログラムに対して現在前記入出力装置により実行されている入出力コマンドを示す命令コード信号と、
前記命令コード信号をテストし、前記コマンドがロング・コマンドか否かを判断するコマンド検出器であって、と、
前記コマンド検出器は前記コマンドが前記ロング・コマンドと判断するとき、ロング・ビジー割込み信号を生成する割込み発生器と、
を含み、
前記ロング・ビジー割込み信号をプロセッサに送信して、前記ロング・ビジー割込み信号を、前記入出力要求を発行した前記オペレーション・システムに伝達し、前記オペレーション・システムがロング・コマンドが見出されない場合に使用される１次未着割込みハンドラ（ＭＩＨ）タイムアウト期間の終了以前に、前記１次ＭＩＨタイムアウト期間をロング・コマンドが見出された場合に使用される２次ＭＩＨタイムアウト期間に延長することを可能にし、前記１次ＭＩＨタイムアウト期間がタイムアウトにより終了し、潜在入出力装置操作故障を誤って示すことを防止する、入出力制御ユニット。
【図面の簡単な説明】
【図１】各装置に対する初期未着割込みインタバルを確立する、システム初期化及び可変コマンド装置処理の制御フローを示す流れ図である。
【図２】装置依存ＭＩＨインタバルの検索を含む、装置確認及び初期化の制御フローを示す流れ図である。
【図３】ＭＩＨ初期化処理の制御フローを示す流れ図である。
【図４】ＭＩＨ初期化処理の制御フローを示す流れ図である。
【図５】ＭＩＨタイムアウト条件の検出を含む、ロング・ビジー条件に対する装置依存ＭＩＨ処理のためのソフトウェア処理における制御フローを示す流れ図である。
【図６】ＭＩＨタイムアウト条件の検出を含む、ロング・ビジー条件に対する装置依存ＭＩＨ処理のためのソフトウェア処理における制御フローを示す流れ図である。
【図７】ＭＩＨタイムアウト条件の検出を含む、ロング・ビジー条件に対する装置依存ＭＩＨ処理のためのソフトウェア処理における制御フローを示す流れ図である。
【図８】ＭＩＨタイムアウト条件の検出を含む、ロング・ビジー条件に対する装置依存ＭＩＨ処理のためのソフトウェア処理における制御フローを示す流れ図である。
【図９】ＭＩＨタイムアウト条件の検出を含む、ロング・ビジー条件に対する装置依存ＭＩＨ処理のためのソフトウェア処理における制御フローを示す流れ図である。
【図１０】ロング・ビジー条件をサポートする制御ユニット及びそれらの装置の制御フローを示す流れ図である。
【図１１】ロング・ビジー条件をサポートする制御ユニット及びそれらの装置の制御フローを示す流れ図である。
【図１２】ロング・ビジー条件をサポートする制御ユニット及びそれらの装置の制御フローを示す流れ図である。
【図１３】ロング・ビジー条件をサポートする制御ユニット及びそれらの装置の制御フローを示す流れ図である。
【図１４】ロング・ビジー条件をサポートする制御ユニット及びそれらの装置の制御フローを示す流れ図である。
【図１５】オペレーティング・システムが、装置の１次ＭＩＨタイムアウト・インタバル及び２次ＭＩＨタイムアウト・インタバルを含む自己記述データを獲得する様子を示す流れ図である。
【図１６】オペレーティング・システムが、装置の１次ＭＩＨタイムアウト・インタバル及び２次ＭＩＨタイムアウト・インタバルを含む自己記述データを獲得する様子を示す流れ図である。
【図１７】オペレーティング・システムが、装置の１次ＭＩＨタイムアウト・インタバル及び２次ＭＩＨタイムアウト・インタバルを含む自己記述データを獲得する様子を示す流れ図である。
【符号の説明】
１１２  構成データ・テーブル
４３０  装置依存トラップ・エグジット・ルーチン５１０  ホスト
４５０  装置依存エラー回復プロシジャ（装置ＥＲＰ）５１１  中央処理ユニット（ＣＰＵ）
５１２  チャネル・サブシステム
５１３  チャネル・パス
５２０  Ｉ／Ｏサブシステム
５２１  制御ユニット
５２２  共用メモリ
５２３  "装置ｎロック・データ"
５２４  チャネル・アダプタ
５３０  Ｉ／Ｏ装置
５３１  装置パス
５３０  選択装置
６０２  装置２次ＭＩＨタイムアウト値
６０３  装置１次ＭＩＨタイムアウト値
【図１】
0003726931.tif 000002
【図２】
0003726931.tif 000003
【図３】
0003726931.tif 000004
【図４】
0003726931.tif 000005
【図５】
0003726931.tif 000006
【図６】
0003726931.tif 000007
【図７】
0003726931.tif 000008
【図８】
0003726931.tif 000009
【図９】
0003726931.tif 000010
【図１０】
0003726931.tif 000011
【図１１】
0003726931.tif 000012
【図１２】
0003726931.tif 000013
【図１３】
0003726931.tif 000014
【図１４】
0003726931.tif 000015
【図１５】
0003726931.tif 000016
【図１６】
0003726931.tif 000017
【図１７】
0003726931.tif 000018