(57)【特許請求の範囲】
【請求項１】
コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、設定されたデータ量となるまで前記メッセージを溜めることによって、前記データ経路を流れる前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、モジュール挿入部を、
備え、
前記データ経路が、前記プロセスからの呼び出しの窓口となる第１のモジュールと、前記プロセスに応じた処理を実行する第２のモジュールと、前記ドライバとを備え、更に、前記第１のモジュール、前記第２のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜めており、
前記モジュール挿入部は、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、
ことを特徴とする情報処理装置。
【請求項２】
前記モジュール挿入部が、前記データ経路に、複数の前記データ量調整モジュールを挿入する、請求項１に記載の情報処理装置。
【請求項３】
コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、設定されたデータ量となるまで前記メッセージを溜めることによって、前記データ経路を流れる前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを、
有し、
前記データ経路が、前記プロセスからの呼び出しの窓口となる第１のモジュールと、前記プロセスに応じた処理を実行する第２のモジュールと、前記ドライバとを備え、更に、前記第１のモジュール、前記第２のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜めており、
前記ステップにおいて、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、
ことを特徴とする情報処理方法。
【請求項４】
コンピュータによって、
前記コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、設定されたデータ量となるまで前記メッセージを溜めることによって、前記データ経路を流れる前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを、
実行させ、
前記データ経路が、前記プロセスからの呼び出しの窓口となる第１のモジュールと、前記プロセスに応じた処理を実行する第２のモジュールと、前記ドライバとを備え、更に、前記第１のモジュール、前記第２のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜めており、
前記ステップにおいて、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、STREAMS機構が実装されたコンピュータに用いられる、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来から、オペレーティングシステムであるUNIXでは、カーネルの機能の一部として、STREAMS機構が利用されている。STREAMS機構は、種々のタイプのデバイスドライバと同様に、データ通信におけるネットワークプロトコルを実施するための事実上の業界標準フレームワークになっている。
【０００３】
また、STREAMS機構において、「ストリーム」とは、アプリケーションプログラムのようなユーザレベルのプロセスとカーネル内のデバイスドライバとの間に提供される双方向性のデータ経路であり、全二重パスを意味する。
【０００４】
ここで、図８を用いてストリームについて説明する。図８は、ストリームを説明するための概念図である。図８に示すように、ストリーム７０は、プログラムモジュールによって構築された、ストリームヘッド７１と、処理モジュール７２と、ドライバ７３とを備えている。
【０００５】
また、各モジュールは、一組のキューを備えていることから、ストリーム７０は、線形に連結された一組のキューの集まりで構成されているといえる。また、一組のキューは、それぞれ、ライトキュー（「WQ」とも表記する。）と、リードキュー（「RQ」とも表記する。）とで構成されている。
【０００６】
そして、ユーザ空間におけるプロセス（図８において図示せず）が出力用のメッセージ７４をストリームヘッド７１に書き込むと、カーネルはそのメッセージを下のライトキューに送る。また、ドライバ７３が入力用のメッセージ７４を受け取ると、カーネルはそのメッセージ７４を上のリードキューに送る。
【０００７】
このようなストリームの基本的概念は、設計者であるRitchie, D.M.により記述された非特許文献１に開示されている。また、現在の標準的となっている概念は、上記基本概念のものより改良がなされている。現在のSTREAMS機構の概念は、例えば、非特許文献２に開示されている。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Ritchie, D.M.著、石田晴久監修、長谷部紀元、清水謙多郎訳、「ストリーム入出力システム」、「UNIX原典」、パーソナルメディア、1986, p.365-379
【非特許文献２】Maurice J. Bach著、坂本文・多田好克・村井純  訳、「UNIXカーネルの設計」、共立出版、1990年、p.291-297
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、このようなSTREAMS機構を実装しているコンピュータでは、ストリーム７０において送受信データ量が多くなりすぎると、フロー制御状態に陥ってしまうことがある。上述の図８の例では、ストリーム７０を構成している各ライトキュー及び各リードキューそれぞれにメッセージ群が溜められている。そして、各ライトキュー及び各リードキューそれぞれにおいて、データ量はキューの高水位値に達し、「QFULL」状態になってしまっている。
【００１０】
そして、このようなフロー制御状態に陥るかどうかは、ドライバ側のデータ処理（ライト側）の処理速度と、アプリケーション側のデータ処理（リード側）の処理速度とに依存している。従って、これらの処理速度によっては、慢性的なフロー制御状態が続いてしまう場合がある。このため、STREAMS機構を実装しているコンピュータでは、この慢性的なフロー制御状態を緩和することが、求められている。
【００１１】
本発明の目的の一例は、上記問題を解消し、STREAMS機構を実装しているコンピュータにおいて、フロー制御状態の緩和を図り得る、情報処理装置、情報処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明の一側面における情報処理装置は、コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、モジュール挿入部を、備えていることを特徴とする。
【００１３】
また、上記目的を達成するため、本発明の一側面における情報処理方法は、コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを有することを特徴とする。
【００１４】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータによって、前記コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを、実行させることを特徴とする。
【発明の効果】
【００１５】
以上のように、本発明によれば、STREAMS機構を実装しているコンピュータシステムにおいて、フロー制御状態の緩和を図ることができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の実施の形態における情報処理装置の構成を示すブロック図である。
【図２】図２は、本実施の形態で挿入されるデータ量調整モジュールの一例を示す図である。
【図３】図３は、発明の実施の形態における情報処理装置の動作を示すフロー図である。
【図４】図４は、データ経路にデータ量調整モジュールが挿入される前後の状態をそれぞれ示す図である。
【図５】図５は、本実施の形態における情報処理装置を実現するプログラムの一例を示す図である。
【図６】図６は、本実施の形態による効果を説明するための図である。
【図７】図７は、本発明の実施の形態における情報処理装置を実現するコンピュータの一例を示すブロック図である。
【図８】図８は、ストリームを説明するための概念図である。
【発明を実施するための形態】
【００１７】
（実施の形態）
以下、本発明の実施の形態における、情報処理装置、情報処理方法、及びプログラムについて、図１〜図８を参照しながら説明する。
【００１８】
［装置構成］
最初に、本実施の形態における情報処理装置の構成について説明する。図１は、本発明の実施の形態における情報処理装置の構成を示すブロック図である。
【００１９】
図１に示すように、本実施の形態における情報処理装置１０は、オペレーティングシステム（ＯＳ）３０が構築されたコンピュータ５０において利用される装置である。具体的には、情報処理装置１０は、ＯＳ３０上で動作するプログラムによって構築されている。本実施の形態では、オペレーティングシステムは、ＵＮＩＸ（登録商標）である。
【００２０】
図１に示すよう、情報処理装置１０は、モジュール挿入部１１を備えている。モジュール挿入部１１は、ＯＳ３０に構築されたデータ経路２０に対して、そこでのメッセージのデータ量を調整するデータ量調整モジュール１２を挿入する。
【００２１】
また、データ経路２０は、アプリケーションプログラム４０が実行するプロセス４１とドライバ２３との間でメッセージを送受信するために用いられる経路である。本実施の形態では、データ経路２０は、ＯＳ３０に実装されたSTREAMS機構が提供する「ストリーム」である。
【００２２】
また、本実施の形態では、データ量調整モジュール１２は、設定されたデータ量となるまでメッセージを溜める機能を有しており、この機能によって、データ経路２０を流れるメッセージのデータ量を調整する。
【００２３】
このように、情報処理装置１０では、データ経路２０である「ストリーム」において、そこを流れるデータ量が調整されることから、従来と異なり、STREAMS機構を実装しているコンピュータ５０において、フロー制御状態の緩和が図られることになる。
【００２４】
また、データ量を調整するデータ量調整モジュール１２は、データ経路２０の一部となることから、ＯＳ３０の機能によってフロー制御状態の緩和が図られている。そして、ＯＳ３０の機能によってフロー制御状態の緩和を図ることは、従来においては不可能である。なお、図１において、６０は、アプリケーションプログラム４０を操作するユーザの端末を示している。
【００２５】
ここで、本実施の形態における情報処理装置１０の構成について更に具体的に説明する。図１に示すように、本実施の形態では、データ経路２０は、プログラムモジュールによって構築された、ストリームヘッド２１と、処理モジュール２２と、ドライバ２３とを備えている。
【００２６】
このうち、ストリームヘッド２１は、アプリケーションプログラム４０が実行するプロセス４１からの呼び出しの窓口として機能するモジュールである。処理モジュール２２は、プロセス４１に応じた処理を実行するモジュールである。ドライバ２３は、印刷機、ネットワーク装置といったデバイスを動作させるためのモジュールである。
【００２７】
また、ストリームヘッド２１、処理モジュール２２、及びドライバ２３は、それぞれ、書込み用のキュー（ライトキュー：WQ）と、読み出し用のキュー（リードキュー：RQ）とを備えている。なお、各キューの動作は、図８の例と同様である。
【００２８】
また、図１に示すように、モジュール挿入部１１は、データ経路２０を構成しているモジュールとモジュールとの間に、データ量調整モジュール１２を挿入する。そして、データ量調整モジュール１２は、書込み用のキューに対応するキュー（図１において「WQ」と表記する。）及び読み出し用のキューに対応するキュー（図１において「RQ」と表記する。）を備えている。データ量調整モジュール１２は、これらの対応するキューそれぞれによって、設定されたデータ量となるまでメッセージを溜めることができる。
【００２９】
［データ量調整モジュールの具体例］
ここで、図２を用いて、データ量調整モジュール１２の具体例について説明する。図２は、本実施の形態で挿入されるデータ量調整モジュールの一例を示す図である。
【００３０】
図２の例では、データ量調整モジュール１２のドライバエントリルーチンのみが示されている。具体的には、write側putプロシジャである「xxx_wput( )」のみが示されている。ここで、接頭辞の「xxx_」は、そのデータ経路２０を構築するモジュールのモジュール名であり、その文字列はそのモジュール名にふさわしいものであれば良く、特に限定されるものではない。なお、上記ドライバエントリルーチンの形式は、「UNIX  System  V  Release4」に準拠しており、以降においても同様である。
【００３１】
また、図２に示すように、「xxx_wput( )」は、処理部分として、高水位値を取得する「GET_HIWATコマンド」と、低水位値を取得する「GET_LOWATコマンド」と、高水位値を取得した値に設定する「SET_HIWATコマンド」と、低水位値を取得した値に設定する「SET_LOWATコマンド」とを有している。これらのコマンドは、システムコールioctl(I_STR)から実行される。
【００３２】
また、「xxx_wput( )」は、メッセージタイプM_FLUSHといった特殊なメッセージを除き、メッセージを自身のライトキューにputq( )する。このため、図２の例では、データ量調整モジュールは、データ量が高水位値に達するまで、ライトキューにメッセージを溜める処理を実行する。
【００３３】
続いて、write側サービスプロシジャである「xxx_wsrv( )」、read側putプロシジャである「xxx_rput( )」、及びread側サービスプロシジャの「xxx_rsrv( )」について説明する。なお、これらの図２における図示は省略する。
【００３４】
まず、write側サービスプロシジャである「xxx_wsrv( )」については、メッセージに対して特に処理（加工）を行わずに、geq( )を実行した後にputnext( )を実行するだけの簡素な実装とすれば良い。
【００３５】
また、read側putプロシジャである「xxx_rput( )」については、メッセージタイプM_FLUSHといった特殊なメッセージを除き、メッセージを自身のリードキューにputq( )する実装とすれば良い。これにより、データ量調整モジュールは、データ量が高水位値に達するまで、リードキューにメッセージを溜める処理を実行する。
【００３６】
そして、read側サービスプロシジャである「xxx_rsrv( )」については、write側サービスプロシジャと同様に、メッセージに対して特に処理（加工）を行わずに、getq( )を実行した後にputnext( )を実行するだけの簡素な実装とすれば良い。
【００３７】
なお、データ量調整モジュールのwrite側及びread側のハイウォータ値及びローウォータ値は、デフォルトの状態で、データ経路２０を構成する他のモジュール及びドライバのハイウォータ値及びローウォータ値に比べて十分大きくなるように、設定しておくのが好ましい。具体的な値は、ドライバ側のデータ処理の処理速度と、アプリケーション側のデータ処理の処理速度とに基づいて適宜設定される。
【００３８】
そして、このように、データ量調整モジュール１２において、それを構成する各キューの高水位値及び低水位値の設定が可能であるため、本実施の形態では、モジュール挿入部１１は、データ量調整モジュール１２に溜めておくことができるメッセージのデータ量を変更することができる。
【００３９】
［装置動作］
次に、本発明の実施の形態における情報処理装置の動作について図３及び図４を用いて説明する。図３は、発明の実施の形態における情報処理装置の動作を示すフロー図である。図４は、データ経路にデータ量調整モジュールが挿入される前後の状態をそれぞれ示す図である。
【００４０】
また、以下の説明においては、適宜図１及び図２を参酌する。更に、本実施の形態では、情報処理装置を動作させることによって、情報処理方法が実施される。よって、本実施の形態における情報処理方法の説明は、以下の情報処理装置１０の動作説明に代える。
【００４１】
図３に示すように、まず、モジュール挿入部１１は、プロセス４１からデータ量調整モジュールの挿入の指示を受け付け（ステップＡ１）、データ経路２０に、データ量調整モジュール１２を挿入する（ステップＡ２）。
【００４２】
具体的には、本実施の形態では、プロセス４１によってシステムコールioctl(I_PUSH)が行なわれると、モジュール挿入部１１は、データ経路２０に、データ量調整モジュールを挿入する。
【００４３】
次に、モジュール挿入部１１は、予め設定されている高水位値を取得し、取得した高水位値を、データ量調整モジュール１２を構成するキューに設定する（ステップＡ３）。続いて、モジュール挿入部１１は、予め設定されている低水位値を取得し、取得した低水位値を、データ量調整モジュール１２を構成するキューに設定する（ステップＡ４）。
【００４４】
ステップＡ１〜Ａ４が実行されると、図４に示すように、データ経路（ストリーム）２０において、データ量調整モジュール１２が挿入される（図４の右側参照）。図４の例では、図１の例と同様に、ストリームヘッド２１の直下に、データ量調整モジュール１２が挿入されている。ステップＡ４の実行後、モジュール挿入部１１における処理は終了する。
【００４５】
なお、図３の例では、データ量調整モジュール１２の挿入のきっかけとして、プロセス４１によるシステムコールioctl(I_PUSH)が用いられているが、本実施の形態は、これに限定される趣旨ではない。
【００４６】
例えば、データ量調整モジュール１２の挿入は、データ量調整モジュールの挿入が必要なドライバ２３として事前に指定されたドライバが、プロセス４１によるautopushコマンドの実行によってオープンされた場合に、それをきっかけに行なわれても良い。
【００４７】
また、データ量調整モジュール１２の挿入は、プロセス４１がstrchgコマンドを用いて、「strchg -h [データ量調整モジュール名] < [ドライバのデバイスファイル名]」を実行した場合に、それをきっかけにして、特定のオープン中のストリームに対して行なわれても良い。
【００４８】
但し、データ量調整モジュール１２の高水位値、低水位値を取得及び設定できるのは、プロセス４１がシステムコールioctl(I_STR)を発行する場合のみである。
【００４９】
［プログラム］
また、本実施の形態におけるプログラムは、コンピュータに、図３に示すステップＡ１〜Ａ４を実行させるプログラムであれば良い。このプログラムをコンピュータ５０にインストールし、実行することによって、本実施の形態における情報処理装置１０と情報処理方法とを実現することができる。この場合、コンピュータのＣＰＵ（Central Processing Unit）は、モジュール挿入部１１として機能し、処理を行なう。更に、本実施の形態では、情報処理装置１０を実現するプログラムは、アプリケーションプログラム４０の一部であっても良い。
【００５０】
ここで、図５を用いて、本実施の形態におけるプログラムの一例について説明する。図５は、本実施の形態における情報処理装置を実現するプログラムの一例を示す図である。図５の例では、プログラムは、アプリケーションプログラム４０において、そのモジュールとして実装されている。
【００５１】
図５の例では、プログラムによって実行される処理の一例として、ストリームドライバのオープン、データ量調整モジュール１２のプッシュ処理、データ量調整モジュール１２の高水位値の取得処理、データ量調整モジュール１２の高水位値の設定処理が示されている。
【００５２】
［実施の形態による効果］
以上のように、本実施の形態によれば、フロー制御状態に陥りやすいストリームに対してデータ量調整モジュール１２を挿入しておくことができるので、ＯＳ側の機能によってフロー制御状態の緩和が図られることになる。この点について図６を用いて説明する。図６は、本実施の形態による効果を説明するための図である。
【００５３】
図６に示すように、データ経路（ストリーム）２０にデータ量調整モジュール１２が挿入されると、メッセージ２４の一部はデータ量調整モジュールに一旦溜められた状態となる。従って、送受信されるデータ量が、図８に示した例と同様であっても、アプリケーション側（図６ではライト側）及びデバイス側（図６ではリード側）の各キューにおいて、QFULL状態が緩和される。
【００５４】
また、本実施の形態では、データ量調整モジュール１２の高水位値及び低水位値を変更することができるので、フロー制御状態が起こりやすいストリームに対して、確実にフロー制御状態を緩和することが可能となる。加えて、本実施の形態では、データ量調整モジュールは、ストリーム毎に挿入できるため、ストリームドライバ単位で、データ量調整モジュールを利用するかどうかを選択することができる。
【００５５】
［変形例］
また、図１〜図６の例では、挿入されているデータ量調整モジュールは、１つであるが、本実施の形態では、データ量調整モジュール１２の数は限定されるものではない。例えば、フロー制御の発生状態が慢性的なストリームに対しては、複数のデータ量調整モジュール１２が挿入されていても良い。
【００５６】
但し、上記の場合、「ioctl(I_STR)」による高水位値及び低水位値についての取得及び設定は、最もストリームヘッド側にあるフロー制御緩和モジュールのみに限られてしまう。
【００５７】
なお、データ量調整モジュール１２は、ストリームモジュールとしてのデータ処理（メッセージの中身のデータの加工）を行わない作りになっている。従って、カーネルパラメータNSTRPUSHにて設定している値（個数）に達するまで、同一ストリームに、データ量調整モジュールを複数挿入する事が可能となっている。
【００５８】
［コンピュータ］
ここで、実施の形態におけるプログラムを実行することによって、情報処理装置１０を実現するコンピュータ５０について図７を用いて説明する。図７は、本発明の実施の形態における情報処理装置を実現するコンピュータの一例を示すブロック図である。
【００５９】
図７に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【００６０】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【００６１】
また、記憶装置１１３の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【００６２】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【００６３】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１５）によって表現することができるが、以下の記載に限定されるものではない。
【００６４】
（付記１）
コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、モジュール挿入部を、
備えていることを特徴とする情報処理装置。
【００６５】
（付記２）
前記データ量調整モジュールが、設定されたデータ量となるまで前記メッセージを溜めることによって、前記データ経路を流れる前記メッセージのデータ量を調整する、付記１に記載の情報処理装置。
【００６６】
（付記３）
前記データ経路が、前記プロセスからの呼び出しの窓口となる第１のモジュールと、前記プロセスに応じた処理を実行する第２のモジュールと、前記ドライバとを備え、更に、前記第１のモジュール、前記第２のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜める、
付記２に記載の情報処理装置。
【００６７】
（付記４）
前記モジュール挿入部が、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、付記２または３に記載の情報処理装置。
【００６８】
（付記５）
前記モジュール挿入部が、前記データ経路に、複数の前記データ量調整モジュールを挿入する、付記１〜４のいずれかに記載の情報処理装置。
【００６９】
（付記６）
コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを、
有することを特徴とする情報処理方法。
【００７０】
（付記７）
前記データ量調整モジュールが、設定されたデータ量となるまで前記メッセージを溜めることによって、前記データ経路を流れる前記メッセージのデータ量を調整する、付記６に記載の情報処理方法。
【００７１】
（付記８）
前記データ経路が、前記プロセスからの呼び出しの窓口となる第１のモジュールと、前記プロセスに応じた処理を実行する第２のモジュールと、前記ドライバとを備え、更に、前記第１のモジュール、前記第２のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜める、
付記７に記載の情報処理方法。
【００７２】
（付記９）
前記モジュール挿入部が、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、付記７または８に記載の情報処理方法。
【００７３】
（付記１０）
前記ステップにおいて、前記データ経路に、複数の前記データ量調整モジュールを挿入する、付記６〜９のいずれかに記載の情報処理方法。
【００７４】
（付記１１）
コンピュータによって、
前記コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを、
実行させるプログラム。
【００７５】
（付記１２）
前記データ量調整モジュールが、設定されたデータ量となるまで前記メッセージを溜めることによって、前記データ経路を流れる前記メッセージのデータ量を調整する、付記１１に記載のプログラム。
【００７６】
（付記１３）
前記データ経路が、前記プロセスからの呼び出しの窓口となる第１のモジュールと、前記プロセスに応じた処理を実行する第２のモジュールと、前記ドライバとを備え、更に、前記第１のモジュール、前記第２のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜める、
付記１２に記載のプログラム。
【００７７】
（付記１４）
前記モジュール挿入部が、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、付記１２または１３に記載のプログラム。
【００７８】
（付記１５）
前記ステップにおいて、前記データ経路に、複数の前記データ量調整モジュールを挿入する、付記１１〜１４のいずれかに記載のプログラム。
【産業上の利用可能性】
【００７９】
以上のように、本発明によれば、STREAMS機構を実装しているコンピュータにおいて、フロー制御状態を緩和できる。本発明は、特に、ＯＳの機能としてストリームを提供するＵＮＩＸが導入されているコンピュータに有用である。
【符号の説明】
【００８０】
１０  情報処理装置
１１  モジュール挿入部
２０  データ経路（ストリーム）
２１  ストリームヘッド
２２  処理モジュール
２３  ドライバ
２４  メッセージ
３０  オペレーティングシステム（ＯＳ）
４０  アプリケーションプログラム
４１  プロセス
５０  コンピュータ
６０  端末
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
0005867120.tif 000002
【図２】
0005867120.tif 000003
【図３】
0005867120.tif 000004
【図４】
0005867120.tif 000005
【図５】
0005867120.tif 000006
【図６】
0005867120.tif 000007
【図７】
0005867120.tif 000008
【図８】
0005867120.tif 000009