(57)【特許請求の範囲】
【請求項１】
ネットワークを介してデータを送受信するマルチプロセス構成における通信制御装置において、
前記データを受信し該データをバッファに格納するとともに、該データが格納された該バッファのアドレス情報を付加した該データのＩ／Ｏ処理要求を生成しプール処理ユニットに保存させ、かつ前記データを格納する前記バッファ内の空き容量が予め設定された入力規制値より小さくなったとき前記データの受信を停止させるＩ／Ｏ処理ユニット、
コマンド処理要求とＩ／Ｏ処理要求とをプールするプール処理ユニット、
前記プール処理ユニットにプールされた処理要求を順次取り出し実行し、かつ前記空き容量が予め設定された入力規制解除値より大きくなるとともに前記プールに残された前記コマンド処理要求と前記Ｉ／Ｏ処理要求の和が予め設定された受信再開規制値より小さくなったとき前記Ｉ／Ｏ処理ユニットに前記データの受信を再開させるプロトコル処理ユニット、
を備えたことを特徴とするマルチプロセス構成における通信制御装置。
【請求項２】
ネットワークを介してデータを送受信するマルチプロセス構成における通信制御装置において、
前記データを受信し該データをバッファに格納するとともに、該データが格納された該バッファのアドレス情報を付加した該データのＩ／Ｏ処理要求を生成し保存させ、かつ前記データを格納する前記バッファ内の空き容量が予め設定された入力規制値より小さくなったとき前記データの受信を停止させる手順、
コマンド処理要求と前記Ｉ／Ｏ処理要求とをプールする手順、
前記プールされた処理要求を順次取り出し実行し、かつ前記空き容量が予め設定された入力規制解除値より大きくなるとともに前記プールする手順で残された前記コマンド処理要求と前記Ｉ／Ｏ処理要求の和が予め設定された受信再開規制値より小さくなったとき前記データの受信を再開させる手順、
をコンピュータに実行させることを特徴とするプログラム。
【請求項３】
ネットワークを介してデータを送受信するマルチプロセス構成における通信制御装置において、
前記データを受信し該データをバッファに格納するとともに、該データが格納された該バッファのアドレス情報を付加した該データのＩ／Ｏ処理要求を生成しプール処理ユニットに保存させ、かつ前記データを格納する前記バッファ内の空き容量が予め設定された入力規制値より小さくなったとき前記データの受信を停止させるＩ／Ｏ処理ユニット、
コマンド処理要求を生成し該要求を前記プール処理ユニットに保存させるコマンド処理ユニット、
前記コマンド処理要求と前記Ｉ／Ｏ処理要求とをプールするプール処理ユニット、
前記プール処理ユニットにプールされた処理要求を順次取り出し実行し、かつ前記空き容量が予め設定された入力規制解除値より大きくなるとともに前記プール処理ユニットに残された前記コマンド処理要求と前記Ｉ／Ｏ処理要求の和が予め設定された受信再開規制値より小さくなったとき前記Ｉ／Ｏ処理ユニットに前記データの受信を再開させるプロトコル処理ユニット、
前記データを格納する前記バッファを有し、該バッファの空き容量が、前記入力規制値より小さくなったか否かを監視し、その監視結果を前記Ｉ／Ｏ処理ユニットに送るとともに、該空き容量が、前記入力規制解除値より大きくなったか否かを監視し、その監視結果を前記プロトコル処理ユニットに送るバッファ管理ユニット、
を備えたことを特徴とするマルチプロセス構成における通信制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマルチプロセス構成における通信制御装置およびそのためのプログラムに関する。
【０００２】
【従来の技術】
従来技術によるパケットの送受信を行う通信制御装置は、通常マルチプロセスを処理するコンピュータからなる。この装置のコンピュータが処理するマルチプロセスには、受信したパケットの処理要求を生成しプールに保存させるＩ／Ｏ処理プロセス、入力装置の操作等によるコマンドの処理要求を生成しプールに保存させるコマンド処理プロセスおよびＩ／Ｏ処理プロセスまたはコマンド処理プロセスが生成しプールに保存させた処理要求のプロセスを実行するプロトコル処理プロセス等がある。一般的なＯＳ（オペレーティングシステム）では、コンピュータのＣＰＵがこれらの処理プロセスを受け付け実行する優先順位は、Ｉ／Ｏ処理プロセス、プロトコル処理プロセス、コマンド処理プロセスの順になっている。
【０００３】
しかるに、この装置は、ネットワークに接続されるアダプタを有する。アダプタは、ネットワークに接続されている他のコンピュータとの間でパケットの送受信を行う機能を有する。この装置はまた、パケットを複数個保存可能なバッファを有する。
この装置において、大量のパケットが受信される状況下では、ＣＰＵは高優先順位のＩ／Ｏ処理プロセスを実行することになり、バッファに保存されるパケットが増大し、バッファの空き容量が、入力規制値より小さくなったときアダプタの受信機能は停止し、入力規制解除値より大きくなったときアダプタの受信機能は再開する。また、受信したパケット毎にＩ／Ｏ処理プロセスを実行すると、受信したパケットの処理要求が生成されプールに蓄積される。
【０００４】
【発明が解決しようとする課題】
上記装置において、パケットを格納するバッファの空き容量が入力規制値より小さくなると、アダプタの受信機能は停止する。すると、ＣＰＵは実行すべき高優先順位のＩ／Ｏ処理プロセスがなくなるので、次に優先順位の高いプロトコル処理プロセスを実行開始する。これによりプールに蓄積されたパケットの処理要求が順次実行される。すると、バッファに保存されたパケットが順次開放されバッファ内に空き領域が増えることになる。このプールに蓄積されたパケットの処理要求を実行するプロトコル処理プロセスが完了する前に、該バッファの空き容量が入力規制解除値より大きくなると、プールに蓄積されているプロトコル処理プロセスの処理要求が滞留しているにも関わらず、アダプタの受信機能が再開される。つまり、プロトコル処理プロセスは実行優先度の高いＩ／Ｏ処理プロセスに実行権を奪われ、ＣＰＵはＩ／Ｏ処理プロセスの実行を再開する。
【０００５】
このように、ＣＰＵはＩ／Ｏ処理プロセスとプロトコル処理プロセスを交互に実行することになり、すなわち、パケットの受信の停止／再開が連続的に発生し、滞留中のプロトコル処理プロセスの実行処理能力オーバー状態から脱出できなくなる。このような場合、これらのＩ／Ｏ処理プロセスおよびプロトコル処理プロセスより優先度の低いコマンド処理プロセス、例えば通信機能を停止させる入力コマンド処理も当然実行不能となり、その結果ハングアップ状態になってしまうという問題が生じる。
【０００６】
また、ネットワークストームは、ネットワークに接続された他のコンピュータからこの装置へ第３者が悪意的にパケットを連続送信して来るような場合やこの装置にシステム異常が生じた場合に発生する。このような場合、装置の再起動のため、ネットワークに接続された装置のアダプタを抜き取るか電源を切ることになり、保存したデータが破壊されるなど装置を安定した状態で使用できなくなるという問題が生じる。
【０００７】
それゆえ、本発明は上記問題に鑑み、高優先度処理を連続的に実行しなければならない状況下で、低優先度処理を実行可能とし、低優先度処理の実行権が半永久的に回って来なくなることによりハングアップ状態になることを回避することのできるマルチプロセス構成における通信制御装置およびそのためのプログラムを提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成する本発明のマルチプロセス構成における通信制御装置は、ネットワークを介してデータを送受信するマルチプロセス構成における通信制御装置において、前記データを受信し該データをバッファに格納するとともに、該データが格納された該バッファのアドレス情報を付加した該データのＩ／Ｏ処理要求を生成しプール処理ユニットに保存させ、かつ前記データを格納する前記バッファ内の空き容量が予め設定された入力規制値より小さくなったとき前記データの受信を停止させるＩ／Ｏ処理ユニット、コマンド処理要求とＩ／Ｏ処理要求とをプールするプール処理ユニット、前記プール処理ユニットにプールされた処理要求を順次取り出し実行し、かつ前記空き容量が予め設定された入力規制解除値より大きくなるとともに前記プールに残された前記コマンド処理要求と前記Ｉ／Ｏ処理要求の和が予め設定された受信再開規制値より小さくなったとき前記Ｉ／Ｏ処理ユニットに前記データの受信を再開させるプロトコル処理ユニット、を備えたことを特徴とする。
また、上記目的を達成する本発明のネットワークを介してデータを送受信するマルチプロセス構成における通信制御装置において、前記データを受信し該データをバッファに格納するとともに、該データが格納された該バッファのアドレス情報を付加した該データのＩ／Ｏ処理要求を生成し保存させ、かつ前記データを格納する前記バッファ内の空き容量が予め設定された入力規制値より小さくなったとき前記データの受信を停止させる手順、コマンド処理要求と前記Ｉ／Ｏ処理要求とをプールする手順、前記プールされた処理要求を順次取り出し実行し、かつ前記空き容量が予め設定された入力規制解除値より大きくなるとともに前記プールする手順で残された前記コマンド処理要求と前記Ｉ／Ｏ処理要求の和が予め設定された受信再開規制値より小さくなったとき前記データの受信を再開させる手順、をコンピュータに実行させることを特徴とするプログラム。
【０００９】
上記目的を達成する本発明のマルチプロセス構成における通信制御装置は、ネットワークを介してデータを送受信するマルチプロセス構成における通信制御装置において、前記データを受信し該データをバッファに格納するとともに、該データが格納された該バッファのアドレス情報を付加した該データのＩ／Ｏ処理要求を生成しプール処理ユニットに保存させ、かつ前記データを格納する前記バッファ内の空き容量が予め設定された入力規制値より小さくなったとき前記データの受信を停止させるＩ／Ｏ処理ユニット、コマンド処理要求を生成し該要求を前記プール処理ユニットに保存させるコマンド処理ユニット、前記コマンド処理要求と前記Ｉ／Ｏ処理要求とをプールするプール処理ユニット、前記プール処理ユニットにプールされた処理要求を順次取り出し実行し、かつ前記空き容量が予め設定された入力規制解除値より大きくなるとともに前記プール処理ユニットに残された前記コマンド処理要求と前記Ｉ／Ｏ処理要求の和が予め設定された受信再開規制値より小さくなったとき前記Ｉ／Ｏ処理ユニットに前記データの受信を再開させるプロトコル処理ユニット、前記データを格納する前記バッファを有し、該バッファの空き容量が、前記入力規制値より小さくなったか否かを監視し、その監視結果を前記Ｉ／Ｏ処理ユニットに送るとともに、該空き容量が、前記入力規制解除値より大きくなったか否かを監視し、その監視結果を前記プロトコル処理ユニットに送るバッファ管理ユニット、を備えたことを特徴とする。
【００１０】
【発明の実施の形態】
以下、添付図面を参照して本発明の実施の形態について詳細に説明する。
図１は、本発明による一実施形態のマルチプロセス構成における通信制御装置のブロック構成図である。マルチプロセス構成における通信制御装置１は、ＣＰＵ・メモリからなる処理部１０、キーボードやマウスからなる入力装置２０、ＣＲＴやプリンタからなる出力装置３０、磁気ディスクからなる補助記憶装置４０、および通信のネットワーク５０に接続され、ネットワーク５０に接続された他のコンピュータとの間でパケットを送受信するアダプタ６０を有する。
【００１１】
処理部１０は、Ｉ／Ｏ処理ユニット１１、バッファ管理ユニット１２、プール処理ユニット１３、コマンド処理ユニット１４−１、１４−２、…、１４−ｎ（ｎは３以上の正の整数）、プロトコル処理ユニット１５を有する。
バッファ管理ユニット１２は、固定長のパケットを例えば１００個格納するバッファを有する。そして、バッファの空き容量が、入力規制値（例えば、バッファ全容量の１０パーセント）より小さくなったか否かを監視し、その監視結果をＩ／Ｏ処理ユニット１１に送るとともに、バッファの空き容量が、入力規制解除値（例えば、バッファ全容量の５０パーセント）より大きくなったか否かを監視し、その監視結果をプロトコル処理ユニット１５に送る。ここで、入力規制値と入力規制解除値とは同じ値に設定することもできる。
【００１２】
図２はＩ／Ｏ処理ユニットのプロセス内容を示すフローチャートである。図２に示すＩ／Ｏ処理プロセスはＩ／Ｏ処理ユニット１１により実行される。先ず、ステップＳ１で、Ｉ／Ｏ処理ユニット１１は、パケットを受信する。ステップＳ２で、パケットをバッファ管理ユニット１２内のバッファに格納するとともに、パケットが格納されたバッファのアドレス情報を取得する。ステップＳ３で、パケットが格納されたバッファのアドレス情報を付加したパケットのＩ／Ｏ処理要求を生成しプール処理ユニット１３に保存させる。
【００１３】
ステップＳ４で、バッファ管理ユニット１２からバッファの空き容量が、入力規制値より小さくなったか否かの監視結果を受け、その監視結果がＹＥＳのときＳ５へ進み、その監視結果がＮＯのときステップＳ１に戻る。ステップＳ５で、アダプタ６０によるパケットの受信を停止させ、受信再開の指示を待つ。
コマンド処理ユニット１４−１、１４−２、…、１４−ｎは、キーボード等からの入力操作を受け、インタプリタによりコンピュータ実行可能なコマンド処理プロセスを生成し、コマンド処理プロセスの実行を要求するコマンド処理要求を生成しこれをプール処理ユニット１３に保存させる。このコマンド処理には、ネットワーク５０へのアダプタ６０が、受信状態か停止状態かをＣＲＴに表示せよというコマンド、アダプタ６０の受信を停止せよというコマンド等がある。
【００１４】
図３はプール処理ユニットによる処理要求のキュー管理の具体例を示す図である。プール処理ユニット１３は、コマンド処理ユニット１４−１、１４−２、…、１４−ｎが生成したコマンド処理要求Ａ１、Ａ２、…、ＡｎとＩ／Ｏ処理ユニット１１が生成したパケットのＩ／Ｏ処理要求Ｂ１、Ｂ２、…、Ｂｍとを生成された順にＱに接続してプールする。パケットのＩ／Ｏ処理要求には、パケットが格納されたバッファのアドレス情報がそれぞれ付加される。
【００１５】
図３に示すキュー管理テーブル１００には、コマンド処理要求またはＩ／Ｏ処理要求により作成される制御表２０１を指すポインタのアドレスが格納されている。コマンド処理要求またはＩ／Ｏ処理要求が生成された順に、制御表２０２、２０３、…、２０ｋが作成され、Ｑに接続される。各制御表には、次にＱに接続される制御表のアドレスとコマンド処理要求に対応するプロセスまたはＩ／Ｏ処理要求に対応するパケット情報のバッファアドレスが格納される。
【００１６】
図４はプロトコル処理ユニットのプロセス内容を示すフローチャートである。図４に示すプロトコル処理プロセスは、プロトコル処理ユニット１５により実行される。先ず、ステップＳ１１で、プール処理ユニット１３にプールされた処理要求を順次取り出す。処理要求が、コマンド処理要求の場合は、生成されたコマンド処理プロセスを取り出し、処理要求が、Ｉ／Ｏ処理要求の場合は、バッファ管理部１２に格納されたパケットを読み出す。
【００１７】
ステップＳ１２で、取り出した処理要求のプロセスを実行する。処理要求が、コマンド処理要求の場合は、生成されたコマンド処理プロセスを実行し、処理要求が、Ｉ／Ｏ処理要求の場合は、バッファ管理部１２からプロトコルに従い読み出したパケットをインタプリタでコンピュータ実行可能なＩ／Ｏ処理プロセスに生成し、そのプロセスを実行する。
【００１８】
ステップＳ１３で、バッファ管理ユニット１２からバッファの空き容量が予め設定された入力規制解除値より大きくなったか否かの監視結果を受け、その監視結果がＹＥＳでかつプール処理ユニット１３に残されたコマンド処理要求とＩ／Ｏ処理要求の和が予め設定された受信再開規制値より小さくなったか否かを検出し、その結果がＹＥＳのとき図２のステップＳ１に進み、Ｉ／Ｏ処理ユニット１１にパケットの受信を再開させ、その結果がＮＯのときステップＳ１１に戻る。上記コマンド処理要求とＩ／Ｏ処理要求の和は、図３に示すキュー管理テーブル１００が管理する制御表２０１、２０２、２０３、…、２０ｋの数に等しい。受信再開規制値は、コマンド処理の緊急度、システムのハードウェア環境、特にＣＰＵの処理速度等に応じて適宜設定される。コマンド処理を最も早く更新可能にするには、１に設定することが望ましい。
【００１９】
また、本発明のプログラムは、図２に示すＩ／Ｏ処理ユニットのプロセス内容および図４に示すプロトコル処理ユニットのプロセス内容をコンピュータに実行させるものであり、処理部１０のメモリに格納されＣＰＵにより実行される。
（付記１）  ネットワークを介してデータの送受信を行う優先度の高いＩ／Ｏ処理プロセス、該Ｉ／Ｏ処理プロセスより優先度の低いプロトコル処理プロセスおよびコマンド処理プロセスを有するマルチ構成における通信制御装置において、
前記データを格納するバッファの空き容量が不足になったとき、データの受信を停止し、前記バッファの空き容量が十分に回復し、かつ前記プロトコル処理プロセスに対するコマンド処理およびＩ／Ｏ処理の処理要求数が規制値より小になったとき、受信を再開するＩ／Ｏ処理ユニットを備えたことを特徴とする通信制御装置。
【００２０】
（付記２）  ネットワークを介してデータの送受信を行う優先度の高いＩ／Ｏ処理プロセス、該Ｉ／Ｏ処理プロセスより優先度の低いプロトコル処理プロセスおよびコマンド処理プロセスを有するマルチ構成における通信制御装置において、
前記データを格納するバッファの空き容量が不足になったとき、データの受信を停止し、前記バッファの空き容量が十分に回復し、かつ前記プロトコル処理プロセスに対するコマンド処理およびＩ／Ｏ処理の処理要求数が規制値より小になったとき、受信を再開する手順を、
をコンピュータに実行させることを特徴とするプログラム。
【００２１】
（付記３）  ネットワークを介してデータを送受信するマルチプロセス構成における通信制御装置において、
前記データを受信し該データをバッファに格納するとともに、該データが格納された該バッファのアドレス情報を付加した該データのＩ／Ｏ処理要求を生成しプール処理ユニットに保存させ、かつ前記データを格納する前記バッファ内の空き容量が予め設定された入力規制値より小さくなったとき前記データの受信を停止させるＩ／Ｏ処理ユニット、
コマンド処理要求とＩ／Ｏ処理要求とをプールするプール処理ユニット、
前記プール処理ユニットにプールされた処理要求を順次取り出し実行し、かつ前記空き容量が予め設定された入力規制解除値より大きくなるとともに前記プールに残された処理要求の数が予め設定された受信再開規制値より小さくなったとき前記Ｉ／Ｏ処理ユニットに前記データの受信を再開させるプロトコル処理ユニット、
を備えたことを特徴とするマルチプロセス構成における通信制御装置。
【００２２】
（付記４）  ネットワークを介してデータを送受信するマルチプロセス構成における通信制御装置において、
前記データを受信し該データをバッファに格納するとともに、該データが格納された該バッファのアドレス情報を付加した該データのＩ／Ｏ処理要求を生成し保存させ、かつ前記データを格納する前記バッファ内の空き容量が予め設定された入力規制値より小さくなったとき前記データの受信を停止させ手順、
コマンド処理要求と前記Ｉ／Ｏ処理要求とをプールする手順、
前記プールされた処理要求を順次取り出し実行し、かつ前記空き容量が予め設定された入力規制解除値より大きくなるとともに残された前記コマンド処理要求と前記Ｉ／Ｏ処理要求の和が予め設定された受信再開規制値より小さくなったとき前記データの受信を再開させる手順、
をコンピュータに実行させることを特徴とするプログラム。
【００２３】
（付記５）  ネットワークを介してデータを送受信するマルチプロセス構成における通信制御装置において、
前記データを受信し該データをバッファに格納するとともに、該データが格納された該バッファのアドレス情報を付加した該データのＩ／Ｏ処理要求を生成しプール処理ユニットに保存させ、かつ前記データを格納する前記バッファ内の空き容量が予め設定された入力規制値より小さくなったとき前記データの受信を停止させるＩ／Ｏ処理ユニット、
コマンド処理要求を生成し該要求を前記プール処理ユニットに保存させるコマンド処理ユニット、
前記コマンド処理要求と前記Ｉ／Ｏ処理要求とをプールするプール処理ユニット、
前記プール処理ユニットにプールされた処理要求を順次取り出し実行し、かつ前記空き容量が予め設定された入力規制解除値より大きくなるとともに前記プール処理ユニットに残された前記コマンド処理要求と前記Ｉ／Ｏ処理要求の和が予め設定された受信再開規制値より小さくなったとき前記Ｉ／Ｏ処理ユニットに前記データの受信を再開させるプロトコル処理ユニット、
前記データを格納する前記バッファを有し、該バッファの空き容量が、前記入力規制値より小さくなったか否かを監視し、その監視結果を前記Ｉ／Ｏ処理ユニットに送るとともに、該空き容量が、前記入力規制解除値より大きくなったか否かを監視し、その監視結果を前記プロトコル処理ユニットに送るバッファ管理ユニット、
を備えたことを特徴とするマルチプロセス構成における通信制御装置。
【００２４】
【発明の効果】
以上説明したように、本発明によれば、ネットワークから途切れなくデータが送信されてくるときの受信処理のように優先度の高い処理を連続的に実行し続ける状況下で、これらの処理より優先度の低い処理を実行可能とすることにより、優先度の高い処理から抜け出すことができずハングアップ状態になることを回避するマルチプロセス構成における通信制御装置を提供することができる。
【図面の簡単な説明】
【図１】本発明による一実施形態のマルチプロセス構成における通信制御装置のブロック構成図である。
【図２】Ｉ／Ｏ処理ユニットのプロセス内容を示すフローチャートである。
【図３】プール処理ユニットによる処理要求のキュー管理の具体例を示す図である。
【図４】プロトコル処理ユニットのプロセス内容を示すフローチャートである。
【符号の説明】
１…通信制御装置
１０…処理部（ＣＰＵ、メモリ）
１１…Ｉ／Ｏ処理ユニット
１２…バッファ管理ユニット
１３…プール処理ユニット
１４−１、１４−２、１４−ｎ…コマンド処理ユニット
１５…プロトコル処理ユニット
２０…入力装置
３０…出力装置
４０…補助記憶装置
５０…ネットワーク
６０…アダプタ
【図１】
0004079605.tif 000002
【図２】
0004079605.tif 000003
【図３】
0004079605.tif 000004
【図４】
0004079605.tif 000005