JP5867120B2 - Information processing apparatus, information processing method, and program - Google Patents
Information processing apparatus, information processing method, and program Download PDFInfo
- Publication number
- JP5867120B2 JP5867120B2 JP2012019821A JP2012019821A JP5867120B2 JP 5867120 B2 JP5867120 B2 JP 5867120B2 JP 2012019821 A JP2012019821 A JP 2012019821A JP 2012019821 A JP2012019821 A JP 2012019821A JP 5867120 B2 JP5867120 B2 JP 5867120B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- module
- data
- data amount
- driver
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000010365 information processing Effects 0.000 title claims description 48
- 238000003672 processing method Methods 0.000 title claims description 14
- 238000000034 method Methods 0.000 claims description 45
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 33
- 238000003780 insertion Methods 0.000 claims description 20
- 230000037431 insertion Effects 0.000 claims description 20
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000001684 chronic effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、STREAMS機構が実装されたコンピュータに用いられる、情報処理装置、情報処理方法、及びプログラムに関する。 The present invention relates to an information processing apparatus, an information processing method, and a program used for a computer in which a STREAMS mechanism is implemented.
従来から、オペレーティングシステムであるUNIXでは、カーネルの機能の一部として、STREAMS機構が利用されている。STREAMS機構は、種々のタイプのデバイスドライバと同様に、データ通信におけるネットワークプロトコルを実施するための事実上の業界標準フレームワークになっている。 Conventionally, in the UNIX operating system, the STREAMS mechanism has been used as part of the kernel functions. The STREAMS mechanism, as well as various types of device drivers, has become the de facto industry standard framework for implementing network protocols in data communications.
また、STREAMS機構において、「ストリーム」とは、アプリケーションプログラムのようなユーザレベルのプロセスとカーネル内のデバイスドライバとの間に提供される双方向性のデータ経路であり、全二重パスを意味する。 In the STREAMS mechanism, a “stream” is a bidirectional data path provided between a user-level process such as an application program and a device driver in the kernel, and means a full-duplex path. .
ここで、図8を用いてストリームについて説明する。図8は、ストリームを説明するための概念図である。図8に示すように、ストリーム70は、プログラムモジュールによって構築された、ストリームヘッド71と、処理モジュール72と、ドライバ73とを備えている。
Here, the stream will be described with reference to FIG. FIG. 8 is a conceptual diagram for explaining a stream. As shown in FIG. 8, the
また、各モジュールは、一組のキューを備えていることから、ストリーム70は、線形に連結された一組のキューの集まりで構成されているといえる。また、一組のキューは、それぞれ、ライトキュー(「WQ」とも表記する。)と、リードキュー(「RQ」とも表記する。)とで構成されている。
Since each module includes a set of queues, the
そして、ユーザ空間におけるプロセス(図8において図示せず)が出力用のメッセージ74をストリームヘッド71に書き込むと、カーネルはそのメッセージを下のライトキューに送る。また、ドライバ73が入力用のメッセージ74を受け取ると、カーネルはそのメッセージ74を上のリードキューに送る。
When a process in the user space (not shown in FIG. 8) writes an
このようなストリームの基本的概念は、設計者であるRitchie, D.M.により記述された非特許文献1に開示されている。また、現在の標準的となっている概念は、上記基本概念のものより改良がなされている。現在のSTREAMS機構の概念は、例えば、非特許文献2に開示されている。
The basic concept of such a stream is disclosed in Non-Patent Document 1 described by designer Ritchie, D.M. In addition, the current standard concept is improved from that of the basic concept. The concept of the current STREAMS mechanism is disclosed in
ところで、このようなSTREAMS機構を実装しているコンピュータでは、ストリーム70において送受信データ量が多くなりすぎると、フロー制御状態に陥ってしまうことがある。上述の図8の例では、ストリーム70を構成している各ライトキュー及び各リードキューそれぞれにメッセージ群が溜められている。そして、各ライトキュー及び各リードキューそれぞれにおいて、データ量はキューの高水位値に達し、「QFULL」状態になってしまっている。
By the way, in a computer in which such a STREAMS mechanism is mounted, if the amount of transmission / reception data in the
そして、このようなフロー制御状態に陥るかどうかは、ドライバ側のデータ処理(ライト側)の処理速度と、アプリケーション側のデータ処理(リード側)の処理速度とに依存している。従って、これらの処理速度によっては、慢性的なフロー制御状態が続いてしまう場合がある。このため、STREAMS機構を実装しているコンピュータでは、この慢性的なフロー制御状態を緩和することが、求められている。 Whether to fall into such a flow control state depends on the data processing speed on the driver side (write side) and the data processing speed on the application side (read side). Therefore, depending on these processing speeds, a chronic flow control state may continue. For this reason, computers that implement the STREAMS mechanism are required to relax this chronic flow control state.
本発明の目的の一例は、上記問題を解消し、STREAMS機構を実装しているコンピュータにおいて、フロー制御状態の緩和を図り得る、情報処理装置、情報処理方法、及びプログラムを提供することにある。 An object of the present invention is to provide an information processing apparatus, an information processing method, and a program that can alleviate the above-described problems and can relax a flow control state in a computer that implements a STREAMS mechanism.
上記目的を達成するため、本発明の一側面における情報処理装置は、コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、モジュール挿入部を、備えていることを特徴とする。 In order to achieve the above object, an information processing apparatus according to an aspect of the present invention is configured in a computer and transmits / receives a message between a process and a driver, and the message in the data path is compared with the data path. And a module insertion unit for inserting a data amount adjustment module for adjusting the data amount.
また、上記目的を達成するため、本発明の一側面における情報処理方法は、コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを有することを特徴とする。 In order to achieve the above object, an information processing method according to an aspect of the present invention is configured in a computer, and transmits / receives a message between a process and a driver. A data amount adjustment module for adjusting the data amount of the message is inserted.
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータによって、前記コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを、実行させることを特徴とする。 Furthermore, in order to achieve the above object, a program according to one aspect of the present invention is constructed by a computer in the computer, and transmits / receives a message between a process and a driver. The step of inserting a data amount adjustment module for adjusting the data amount of the message is executed.
以上のように、本発明によれば、STREAMS機構を実装しているコンピュータシステムにおいて、フロー制御状態の緩和を図ることができる。 As described above, according to the present invention, the flow control state can be relaxed in the computer system in which the STREAMS mechanism is mounted.
(実施の形態)
以下、本発明の実施の形態における、情報処理装置、情報処理方法、及びプログラムについて、図1〜図8を参照しながら説明する。
(Embodiment)
Hereinafter, an information processing apparatus, an information processing method, and a program according to an embodiment of the present invention will be described with reference to FIGS.
[装置構成]
最初に、本実施の形態における情報処理装置の構成について説明する。図1は、本発明の実施の形態における情報処理装置の構成を示すブロック図である。
[Device configuration]
First, the configuration of the information processing apparatus in the present embodiment will be described. FIG. 1 is a block diagram showing a configuration of an information processing apparatus according to an embodiment of the present invention.
図1に示すように、本実施の形態における情報処理装置10は、オペレーティングシステム(OS)30が構築されたコンピュータ50において利用される装置である。具体的には、情報処理装置10は、OS30上で動作するプログラムによって構築されている。本実施の形態では、オペレーティングシステムは、UNIX(登録商標)である。
As shown in FIG. 1, the
図1に示すよう、情報処理装置10は、モジュール挿入部11を備えている。モジュール挿入部11は、OS30に構築されたデータ経路20に対して、そこでのメッセージのデータ量を調整するデータ量調整モジュール12を挿入する。
As illustrated in FIG. 1, the
また、データ経路20は、アプリケーションプログラム40が実行するプロセス41とドライバ23との間でメッセージを送受信するために用いられる経路である。本実施の形態では、データ経路20は、OS30に実装されたSTREAMS機構が提供する「ストリーム」である。
The
また、本実施の形態では、データ量調整モジュール12は、設定されたデータ量となるまでメッセージを溜める機能を有しており、この機能によって、データ経路20を流れるメッセージのデータ量を調整する。
In this embodiment, the data
このように、情報処理装置10では、データ経路20である「ストリーム」において、そこを流れるデータ量が調整されることから、従来と異なり、STREAMS機構を実装しているコンピュータ50において、フロー制御状態の緩和が図られることになる。
In this way, in the
また、データ量を調整するデータ量調整モジュール12は、データ経路20の一部となることから、OS30の機能によってフロー制御状態の緩和が図られている。そして、OS30の機能によってフロー制御状態の緩和を図ることは、従来においては不可能である。なお、図1において、60は、アプリケーションプログラム40を操作するユーザの端末を示している。
Further, since the data
ここで、本実施の形態における情報処理装置10の構成について更に具体的に説明する。図1に示すように、本実施の形態では、データ経路20は、プログラムモジュールによって構築された、ストリームヘッド21と、処理モジュール22と、ドライバ23とを備えている。
Here, the configuration of the
このうち、ストリームヘッド21は、アプリケーションプログラム40が実行するプロセス41からの呼び出しの窓口として機能するモジュールである。処理モジュール22は、プロセス41に応じた処理を実行するモジュールである。ドライバ23は、印刷機、ネットワーク装置といったデバイスを動作させるためのモジュールである。
Among these, the
また、ストリームヘッド21、処理モジュール22、及びドライバ23は、それぞれ、書込み用のキュー(ライトキュー:WQ)と、読み出し用のキュー(リードキュー:RQ)とを備えている。なお、各キューの動作は、図8の例と同様である。
The
また、図1に示すように、モジュール挿入部11は、データ経路20を構成しているモジュールとモジュールとの間に、データ量調整モジュール12を挿入する。そして、データ量調整モジュール12は、書込み用のキューに対応するキュー(図1において「WQ」と表記する。)及び読み出し用のキューに対応するキュー(図1において「RQ」と表記する。)を備えている。データ量調整モジュール12は、これらの対応するキューそれぞれによって、設定されたデータ量となるまでメッセージを溜めることができる。
Further, as shown in FIG. 1, the
[データ量調整モジュールの具体例]
ここで、図2を用いて、データ量調整モジュール12の具体例について説明する。図2は、本実施の形態で挿入されるデータ量調整モジュールの一例を示す図である。
[Specific example of data volume adjustment module]
Here, a specific example of the data amount
図2の例では、データ量調整モジュール12のドライバエントリルーチンのみが示されている。具体的には、write側putプロシジャである「xxx_wput( )」のみが示されている。ここで、接頭辞の「xxx_」は、そのデータ経路20を構築するモジュールのモジュール名であり、その文字列はそのモジュール名にふさわしいものであれば良く、特に限定されるものではない。なお、上記ドライバエントリルーチンの形式は、「UNIX System V Release4」に準拠しており、以降においても同様である。
In the example of FIG. 2, only the driver entry routine of the data amount
また、図2に示すように、「xxx_wput( )」は、処理部分として、高水位値を取得する「GET_HIWATコマンド」と、低水位値を取得する「GET_LOWATコマンド」と、高水位値を取得した値に設定する「SET_HIWATコマンド」と、低水位値を取得した値に設定する「SET_LOWATコマンド」とを有している。これらのコマンドは、システムコールioctl(I_STR)から実行される。 Further, as shown in FIG. 2, "xxx_wput ()" as the processing part, the "GET_HIWAT Command" to get high water values, obtains a low water value as "GET_LOWAT commands", it was obtained high water value It has a “SET_HIWAT command” that sets the value and a “SET_LOWAT command” that sets the low water level value to the acquired value. These commands are executed from the system call ioctl (I_STR).
また、「xxx_wput( )」は、メッセージタイプM_FLUSHといった特殊なメッセージを除き、メッセージを自身のライトキューにputq( )する。このため、図2の例では、データ量調整モジュールは、データ量が高水位値に達するまで、ライトキューにメッセージを溜める処理を実行する。 “Xxx_wput ()” puts the message into its own write queue except for a special message such as the message type M_FLUSH. Therefore, in the example of FIG. 2, the data amount adjustment module executes a process of storing messages in the write queue until the data amount reaches a high water level value.
続いて、write側サービスプロシジャである「xxx_wsrv( )」、read側putプロシジャである「xxx_rput( )」、及びread側サービスプロシジャの「xxx_rsrv( )」について説明する。なお、これらの図2における図示は省略する。 Next, “xxx_wsrv ()” that is a write-side service procedure, “xxx_rput ()” that is a read-side put procedure, and “xxx_rsrv ()” that is a read-side service procedure will be described. These illustrations in FIG. 2 are omitted.
まず、write側サービスプロシジャである「xxx_wsrv( )」については、メッセージに対して特に処理(加工)を行わずに、geq( )を実行した後にputnext( )を実行するだけの簡素な実装とすれば良い。 First, the write side service procedure “xxx_wsrv ()” can be implemented simply by executing putnext () after executing geq () without performing any processing (processing) on the message. It ’s fine.
また、read側putプロシジャである「xxx_rput( )」については、メッセージタイプM_FLUSHといった特殊なメッセージを除き、メッセージを自身のリードキューにputq( )する実装とすれば良い。これにより、データ量調整モジュールは、データ量が高水位値に達するまで、リードキューにメッセージを溜める処理を実行する。 The read-side put procedure “xxx_rput ()” may be implemented by putting a message into its own read queue except for a special message such as the message type M_FLUSH. Thereby, the data amount adjustment module executes a process of storing messages in the read queue until the data amount reaches the high water level value.
そして、read側サービスプロシジャである「xxx_rsrv( )」については、write側サービスプロシジャと同様に、メッセージに対して特に処理(加工)を行わずに、getq( )を実行した後にputnext( )を実行するだけの簡素な実装とすれば良い。 And for “xxx_rsrv ()” which is a read side service procedure, execute putqt () after executing getq () without performing any special processing (processing) on the message like the write side service procedure. Just a simple implementation to do.
なお、データ量調整モジュールのwrite側及びread側のハイウォータ値及びローウォータ値は、デフォルトの状態で、データ経路20を構成する他のモジュール及びドライバのハイウォータ値及びローウォータ値に比べて十分大きくなるように、設定しておくのが好ましい。具体的な値は、ドライバ側のデータ処理の処理速度と、アプリケーション側のデータ処理の処理速度とに基づいて適宜設定される。
Note that the high water value and low water value on the write side and read side of the data amount adjustment module are sufficient in the default state compared to the high water value and low water value of other modules and drivers constituting the
そして、このように、データ量調整モジュール12において、それを構成する各キューの高水位値及び低水位値の設定が可能であるため、本実施の形態では、モジュール挿入部11は、データ量調整モジュール12に溜めておくことができるメッセージのデータ量を変更することができる。
Since the data amount
[装置動作]
次に、本発明の実施の形態における情報処理装置の動作について図3及び図4を用いて説明する。図3は、発明の実施の形態における情報処理装置の動作を示すフロー図である。図4は、データ経路にデータ量調整モジュールが挿入される前後の状態をそれぞれ示す図である。
[Device operation]
Next, the operation of the information processing apparatus according to the embodiment of the present invention will be described with reference to FIGS. FIG. 3 is a flowchart showing the operation of the information processing apparatus according to the embodiment of the invention. FIG. 4 is a diagram illustrating a state before and after the data amount adjustment module is inserted into the data path.
また、以下の説明においては、適宜図1及び図2を参酌する。更に、本実施の形態では、情報処理装置を動作させることによって、情報処理方法が実施される。よって、本実施の形態における情報処理方法の説明は、以下の情報処理装置10の動作説明に代える。
In the following description, FIGS. 1 and 2 are referred to as appropriate. Furthermore, in this embodiment, the information processing method is performed by operating the information processing apparatus. Therefore, the description of the information processing method in the present embodiment is replaced with the following description of the operation of the
図3に示すように、まず、モジュール挿入部11は、プロセス41からデータ量調整モジュールの挿入の指示を受け付け(ステップA1)、データ経路20に、データ量調整モジュール12を挿入する(ステップA2)。
As shown in FIG. 3, first, the
具体的には、本実施の形態では、プロセス41によってシステムコールioctl(I_PUSH)が行なわれると、モジュール挿入部11は、データ経路20に、データ量調整モジュールを挿入する。
Specifically, in the present embodiment, when the system call ioctl (I_PUSH) is performed by the
次に、モジュール挿入部11は、予め設定されている高水位値を取得し、取得した高水位値を、データ量調整モジュール12を構成するキューに設定する(ステップA3)。続いて、モジュール挿入部11は、予め設定されている低水位値を取得し、取得した低水位値を、データ量調整モジュール12を構成するキューに設定する(ステップA4)。
Next, the
ステップA1〜A4が実行されると、図4に示すように、データ経路(ストリーム)20において、データ量調整モジュール12が挿入される(図4の右側参照)。図4の例では、図1の例と同様に、ストリームヘッド21の直下に、データ量調整モジュール12が挿入されている。ステップA4の実行後、モジュール挿入部11における処理は終了する。
When steps A1 to A4 are executed, the data amount
なお、図3の例では、データ量調整モジュール12の挿入のきっかけとして、プロセス41によるシステムコールioctl(I_PUSH)が用いられているが、本実施の形態は、これに限定される趣旨ではない。
In the example of FIG. 3, the system call ioctl (I_PUSH) by the
例えば、データ量調整モジュール12の挿入は、データ量調整モジュールの挿入が必要なドライバ23として事前に指定されたドライバが、プロセス41によるautopushコマンドの実行によってオープンされた場合に、それをきっかけに行なわれても良い。
For example, the data amount
また、データ量調整モジュール12の挿入は、プロセス41がstrchgコマンドを用いて、「strchg -h [データ量調整モジュール名] < [ドライバのデバイスファイル名]」を実行した場合に、それをきっかけにして、特定のオープン中のストリームに対して行なわれても良い。
The data amount
但し、データ量調整モジュール12の高水位値、低水位値を取得及び設定できるのは、プロセス41がシステムコールioctl(I_STR)を発行する場合のみである。
However, the high water level value and the low water level value of the data amount
[プログラム]
また、本実施の形態におけるプログラムは、コンピュータに、図3に示すステップA1〜A4を実行させるプログラムであれば良い。このプログラムをコンピュータ50にインストールし、実行することによって、本実施の形態における情報処理装置10と情報処理方法とを実現することができる。この場合、コンピュータのCPU(Central Processing Unit)は、モジュール挿入部11として機能し、処理を行なう。更に、本実施の形態では、情報処理装置10を実現するプログラムは、アプリケーションプログラム40の一部であっても良い。
[program]
Moreover, the program in this Embodiment should just be a program which makes a computer perform step A1-A4 shown in FIG. By installing and executing this program in the
ここで、図5を用いて、本実施の形態におけるプログラムの一例について説明する。図5は、本実施の形態における情報処理装置を実現するプログラムの一例を示す図である。図5の例では、プログラムは、アプリケーションプログラム40において、そのモジュールとして実装されている。
Here, an example of a program in the present embodiment will be described with reference to FIG. FIG. 5 is a diagram illustrating an example of a program that implements the information processing apparatus according to the present embodiment. In the example of FIG. 5, the program is implemented as a module in the
図5の例では、プログラムによって実行される処理の一例として、ストリームドライバのオープン、データ量調整モジュール12のプッシュ処理、データ量調整モジュール12の高水位値の取得処理、データ量調整モジュール12の高水位値の設定処理が示されている。
In the example of FIG. 5, as an example of processing executed by the program, opening of the stream driver, push processing of the data amount
[実施の形態による効果]
以上のように、本実施の形態によれば、フロー制御状態に陥りやすいストリームに対してデータ量調整モジュール12を挿入しておくことができるので、OS側の機能によってフロー制御状態の緩和が図られることになる。この点について図6を用いて説明する。図6は、本実施の形態による効果を説明するための図である。
[Effects of the embodiment]
As described above, according to the present embodiment, since the data amount
図6に示すように、データ経路(ストリーム)20にデータ量調整モジュール12が挿入されると、メッセージ24の一部はデータ量調整モジュールに一旦溜められた状態となる。従って、送受信されるデータ量が、図8に示した例と同様であっても、アプリケーション側(図6ではライト側)及びデバイス側(図6ではリード側)の各キューにおいて、QFULL状態が緩和される。
As shown in FIG. 6, when the data
また、本実施の形態では、データ量調整モジュール12の高水位値及び低水位値を変更することができるので、フロー制御状態が起こりやすいストリームに対して、確実にフロー制御状態を緩和することが可能となる。加えて、本実施の形態では、データ量調整モジュールは、ストリーム毎に挿入できるため、ストリームドライバ単位で、データ量調整モジュールを利用するかどうかを選択することができる。
In this embodiment, since the high water level value and the low water level value of the data amount
[変形例]
また、図1〜図6の例では、挿入されているデータ量調整モジュールは、1つであるが、本実施の形態では、データ量調整モジュール12の数は限定されるものではない。例えば、フロー制御の発生状態が慢性的なストリームに対しては、複数のデータ量調整モジュール12が挿入されていても良い。
[Modification]
In the example of FIGS. 1 to 6, only one data amount adjustment module is inserted. However, in the present embodiment, the number of data amount
但し、上記の場合、「ioctl(I_STR)」による高水位値及び低水位値についての取得及び設定は、最もストリームヘッド側にあるフロー制御緩和モジュールのみに限られてしまう。 However, in the above case, acquisition and setting of the high water level value and the low water level value by “ioctl (I_STR)” are limited to only the flow control relaxation module on the most stream head side.
なお、データ量調整モジュール12は、ストリームモジュールとしてのデータ処理(メッセージの中身のデータの加工)を行わない作りになっている。従って、カーネルパラメータNSTRPUSHにて設定している値(個数)に達するまで、同一ストリームに、データ量調整モジュールを複数挿入する事が可能となっている。
The data amount
[コンピュータ]
ここで、実施の形態におけるプログラムを実行することによって、情報処理装置10を実現するコンピュータ50について図7を用いて説明する。図7は、本発明の実施の形態における情報処理装置を実現するコンピュータの一例を示すブロック図である。
[Computer]
Here, a
図7に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
As shown in FIG. 7, the
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
The
また、記憶装置113の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
Specific examples of the
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記憶媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体が挙げられる。
Specific examples of the
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記15)によって表現することができるが、以下の記載に限定されるものではない。 Part or all of the above-described embodiment can be expressed by (Appendix 1) to (Appendix 15) described below, but is not limited to the following description.
(付記1)
コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、モジュール挿入部を、
備えていることを特徴とする情報処理装置。
(Appendix 1)
A module insertion unit configured to insert a data amount adjustment module configured to adjust a data amount of the message in the data path to a data path that is constructed in a computer and transmits and receives a message between the process and the driver; ,
An information processing apparatus comprising the information processing apparatus.
(付記2)
前記データ量調整モジュールが、設定されたデータ量となるまで前記メッセージを溜めることによって、前記データ経路を流れる前記メッセージのデータ量を調整する、付記1に記載の情報処理装置。
(Appendix 2)
The information processing apparatus according to appendix 1, wherein the data amount adjustment module adjusts the data amount of the message flowing through the data path by accumulating the messages until a set data amount is reached.
(付記3)
前記データ経路が、前記プロセスからの呼び出しの窓口となる第1のモジュールと、前記プロセスに応じた処理を実行する第2のモジュールと、前記ドライバとを備え、更に、前記第1のモジュール、前記第2のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜める、
付記2に記載の情報処理装置。
(Appendix 3)
The data path includes a first module that serves as a call window from the process, a second module that executes processing according to the process, and the driver, and further includes the first module, In the case where each of the second module and the driver further includes a write queue and a read queue,
The data amount adjustment module includes a queue corresponding to the write queue and a queue corresponding to the read queue, and stores the message until a set data amount is reached by each of the corresponding queues. ,
The information processing apparatus according to
(付記4)
前記モジュール挿入部が、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、付記2または3に記載の情報処理装置。
(Appendix 4)
The module insertion unit sets the data amount by setting a high water level value and a low water level value of each of the queue corresponding to the write queue and the queue corresponding to the read queue; 3. The information processing apparatus according to 3.
(付記5)
前記モジュール挿入部が、前記データ経路に、複数の前記データ量調整モジュールを挿入する、付記1〜4のいずれかに記載の情報処理装置。
(Appendix 5)
The information processing apparatus according to any one of appendices 1 to 4, wherein the module insertion unit inserts a plurality of the data amount adjustment modules into the data path.
(付記6)
コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを、
有することを特徴とする情報処理方法。
(Appendix 6)
Inserting a data amount adjustment module for adjusting a data amount of the message in the data path into a data path, which is constructed in a computer and transmits / receives a message between a process and a driver;
An information processing method comprising:
(付記7)
前記データ量調整モジュールが、設定されたデータ量となるまで前記メッセージを溜めることによって、前記データ経路を流れる前記メッセージのデータ量を調整する、付記6に記載の情報処理方法。
(Appendix 7)
The information processing method according to appendix 6, wherein the data amount adjustment module adjusts the data amount of the message flowing through the data path by accumulating the messages until the set data amount is reached.
(付記8)
前記データ経路が、前記プロセスからの呼び出しの窓口となる第1のモジュールと、前記プロセスに応じた処理を実行する第2のモジュールと、前記ドライバとを備え、更に、前記第1のモジュール、前記第2のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜める、
付記7に記載の情報処理方法。
(Appendix 8)
The data path includes a first module that serves as a call window from the process, a second module that executes processing according to the process, and the driver, and further includes the first module, In the case where each of the second module and the driver further includes a write queue and a read queue,
The data amount adjustment module includes a queue corresponding to the write queue and a queue corresponding to the read queue, and stores the message until a set data amount is reached by each of the corresponding queues. ,
The information processing method according to attachment 7.
(付記9)
前記モジュール挿入部が、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、付記7または8に記載の情報処理方法。
(Appendix 9)
The module insertion unit sets the data amount by setting a high water level value and a low water level value of each of the queue corresponding to the write queue and the queue corresponding to the read queue, 9. The information processing method according to 8.
(付記10)
前記ステップにおいて、前記データ経路に、複数の前記データ量調整モジュールを挿入する、付記6〜9のいずれかに記載の情報処理方法。
(Appendix 10)
The information processing method according to any one of appendices 6 to 9, wherein in the step, a plurality of the data amount adjustment modules are inserted into the data path.
(付記11)
コンピュータによって、
前記コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、前記データ経路での前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを、
実行させるプログラム。
(Appendix 11)
By computer
Inserting a data amount adjustment module for adjusting a data amount of the message in the data path into a data path, which is constructed in the computer and transmits / receives a message between a process and a driver;
The program to be executed.
(付記12)
前記データ量調整モジュールが、設定されたデータ量となるまで前記メッセージを溜めることによって、前記データ経路を流れる前記メッセージのデータ量を調整する、付記11に記載のプログラム。
(Appendix 12)
The program according to
(付記13)
前記データ経路が、前記プロセスからの呼び出しの窓口となる第1のモジュールと、前記プロセスに応じた処理を実行する第2のモジュールと、前記ドライバとを備え、更に、前記第1のモジュール、前記第2のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜める、
付記12に記載のプログラム。
(Appendix 13)
The data path includes a first module that serves as a call window from the process, a second module that executes processing according to the process, and the driver, and further includes the first module, In the case where each of the second module and the driver further includes a write queue and a read queue,
The data amount adjustment module includes a queue corresponding to the write queue and a queue corresponding to the read queue, and stores the message until a set data amount is reached by each of the corresponding queues. ,
The program according to
(付記14)
前記モジュール挿入部が、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、付記12または13に記載のプログラム。
(Appendix 14)
The module insertion unit sets the data amount by setting a high water level value and a low water level value of each of the queue corresponding to the writing queue and the queue corresponding to the reading queue, 13. The program according to 13.
(付記15)
前記ステップにおいて、前記データ経路に、複数の前記データ量調整モジュールを挿入する、付記11〜14のいずれかに記載のプログラム。
(Appendix 15)
The program according to any one of
以上のように、本発明によれば、STREAMS機構を実装しているコンピュータにおいて、フロー制御状態を緩和できる。本発明は、特に、OSの機能としてストリームを提供するUNIXが導入されているコンピュータに有用である。 As described above, according to the present invention, the flow control state can be relaxed in the computer in which the STREAMS mechanism is mounted. The present invention is particularly useful for a computer in which UNIX that provides a stream as an OS function is installed.
10 情報処理装置
11 モジュール挿入部
20 データ経路(ストリーム)
21 ストリームヘッド
22 処理モジュール
23 ドライバ
24 メッセージ
30 オペレーティングシステム(OS)
40 アプリケーションプログラム
41 プロセス
50 コンピュータ
60 端末
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
10
21
40
112
Claims (4)
備え、
前記データ経路が、前記プロセスからの呼び出しの窓口となる第1のモジュールと、前記プロセスに応じた処理を実行する第2のモジュールと、前記ドライバとを備え、更に、前記第1のモジュール、前記第2のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜めており、
前記モジュール挿入部は、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、
ことを特徴とする情報処理装置。 The amount of data of the message that flows through the data path by storing the message until a set amount of data is established with respect to the data path that is constructed in the computer and transmits and receives messages between the process and the driver Insert the data amount adjustment module to adjust the module insertion part,
Prepared ,
The data path includes a first module that serves as a call window from the process, a second module that executes processing according to the process, and the driver, and further includes the first module, In the case where each of the second module and the driver further includes a write queue and a read queue,
The data amount adjustment module includes a queue corresponding to the write queue and a queue corresponding to the read queue, and stores the message until the set data amount is reached by each of the corresponding queues. And
The module insertion unit sets the data amount by setting a high water level value and a low water level value of a queue corresponding to the queue for writing and a queue corresponding to the queue for reading.
An information processing apparatus characterized by that.
有し、
前記データ経路が、前記プロセスからの呼び出しの窓口となる第1のモジュールと、前記プロセスに応じた処理を実行する第2のモジュールと、前記ドライバとを備え、更に、前記第1のモジュール、前記第2のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜めており、
前記ステップにおいて、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、
ことを特徴とする情報処理方法。 The amount of data of the message that flows through the data path by storing the message until a set amount of data is established with respect to the data path that is constructed in the computer and transmits and receives messages between the process and the driver To adjust the data amount adjustment module, insert the step,
Yes, and
The data path includes a first module that serves as a call window from the process, a second module that executes processing according to the process, and the driver, and further includes the first module, In the case where each of the second module and the driver further includes a write queue and a read queue,
The data amount adjustment module includes a queue corresponding to the write queue and a queue corresponding to the read queue, and stores the message until the set data amount is reached by each of the corresponding queues. And
In the step, the data amount is set by setting a high water level value and a low water level value of the queue corresponding to the write queue and the queue corresponding to the read queue, respectively.
An information processing method characterized by the above.
前記コンピュータに構築され、且つ、プロセスとドライバとの間でメッセージを送受信する、データ経路に対して、設定されたデータ量となるまで前記メッセージを溜めることによって、前記データ経路を流れる前記メッセージのデータ量を調整するデータ量調整モジュールを挿入する、ステップを、
実行させ、
前記データ経路が、前記プロセスからの呼び出しの窓口となる第1のモジュールと、前記プロセスに応じた処理を実行する第2のモジュールと、前記ドライバとを備え、更に、前記第1のモジュール、前記第2のモジュール、及び前記ドライバ、それぞれが、更に、書込み用のキュー及び読み出し用のキューを備えている場合において、
前記データ量調整モジュールが、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューを備え、且つ、前記対応するキューそれぞれによって、設定されたデータ量となるまで前記メッセージを溜めており、
前記ステップにおいて、前記書込み用のキューに対応するキュー及び前記読み出し用のキューに対応するキューそれぞれの高水位値及び低水位値を設定することによって、前記データ量を設定する、
プログラム。 By computer
Data of the message that flows through the data path by storing the messages until the amount of data is set with respect to the data path that is constructed in the computer and transmits and receives messages between the process and the driver. Insert the data amount adjustment module to adjust the amount, step,
To be executed,
The data path includes a first module that serves as a call window from the process, a second module that executes processing according to the process, and the driver, and further includes the first module, In the case where each of the second module and the driver further includes a write queue and a read queue,
The data amount adjustment module includes a queue corresponding to the write queue and a queue corresponding to the read queue, and stores the message until the set data amount is reached by each of the corresponding queues. And
In the step, the data amount is set by setting a high water level value and a low water level value of the queue corresponding to the write queue and the queue corresponding to the read queue, respectively.
program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012019821A JP5867120B2 (en) | 2012-02-01 | 2012-02-01 | Information processing apparatus, information processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012019821A JP5867120B2 (en) | 2012-02-01 | 2012-02-01 | Information processing apparatus, information processing method, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013161108A JP2013161108A (en) | 2013-08-19 |
JP5867120B2 true JP5867120B2 (en) | 2016-02-24 |
Family
ID=49173339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012019821A Expired - Fee Related JP5867120B2 (en) | 2012-02-01 | 2012-02-01 | Information processing apparatus, information processing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5867120B2 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5815707A (en) * | 1995-10-19 | 1998-09-29 | Hewlett-Packard Company | Dynamic function replacement for streams framework |
KR101814221B1 (en) * | 2010-01-21 | 2018-01-02 | 스비랄 인크 | A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations |
-
2012
- 2012-02-01 JP JP2012019821A patent/JP5867120B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013161108A (en) | 2013-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101672067B1 (en) | Buses for pattern-recognition processors | |
US9652388B2 (en) | Method, apparatus and system for performing management component transport protocol (MCTP) communications with a universal serial bus (USB) device | |
US9215174B2 (en) | Oversubscription buffer management | |
US9146873B2 (en) | Adaptive queuing of a cache for a processing element | |
WO2016099819A1 (en) | Shared flow control credits | |
CN110659114A (en) | Techniques for end-to-end quality of service deadline-aware I/O scheduling | |
US8626963B2 (en) | Packet based data transfer system and method for host-slave interface | |
CN106716368B (en) | Network classification for applications | |
US7584307B2 (en) | Direct memory access DMA with positional information and delay time | |
US8429348B2 (en) | Method and mechanism for delaying writing updates to a data cache | |
US20180081852A1 (en) | Optimizing remote direct memory access (rdma) with cache aligned operations | |
US10375168B2 (en) | Throughput in openfabrics environments | |
US10127182B2 (en) | Image forming system executing application occupation of an application and using BiDi schema | |
US9557945B2 (en) | Information processing system, print system, server apparatus, and method for controlling information processing system | |
JP5867120B2 (en) | Information processing apparatus, information processing method, and program | |
US20160085683A1 (en) | Data receiving device and data receiving method | |
US10095640B2 (en) | Multi mode address spaces for PC to device transfer optimization | |
US20240022645A1 (en) | Network Storage Services Implemented via Storage Products and External Software | |
JP2009070012A (en) | Information processor, information processing method, and data transfer unit | |
US11632319B2 (en) | Processing device and moving method | |
CN113377277A (en) | Method, apparatus and computer program product for managing memory | |
CN110799343B (en) | Controlling printer speed based on speed control request | |
US11811870B1 (en) | Methods and systems for dynamically adjusting data chunk sizes copied over a network | |
JP6011727B2 (en) | Data transfer apparatus, data transfer method, and information processing apparatus | |
US10346572B1 (en) | Inclusion and configuration of a transaction converter circuit block within an integrated circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150108 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20150123 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150721 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150811 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151009 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20151208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20151221 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5867120 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |