JP2967687B2 - Advance buffer flush system - Google Patents

Advance buffer flush system

Info

Publication number
JP2967687B2
JP2967687B2 JP6040667A JP4066794A JP2967687B2 JP 2967687 B2 JP2967687 B2 JP 2967687B2 JP 6040667 A JP6040667 A JP 6040667A JP 4066794 A JP4066794 A JP 4066794A JP 2967687 B2 JP2967687 B2 JP 2967687B2
Authority
JP
Japan
Prior art keywords
buffer
input
output
disk device
device management
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
Application number
JP6040667A
Other languages
Japanese (ja)
Other versions
JPH07248883A (en
Inventor
寿 酒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP6040667A priority Critical patent/JP2967687B2/en
Publication of JPH07248883A publication Critical patent/JPH07248883A/en
Application granted granted Critical
Publication of JP2967687B2 publication Critical patent/JP2967687B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明はシステム共通の入出力バ
ッファを有し、利用者プログラムの入出力要求と非同期
にディスク装置への書き込みを行う入出力システムにお
ける、事前バッファフラッシュシステムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a pre-buffer flush system in an input / output system having an input / output buffer common to systems and writing data to a disk device asynchronously with an input / output request of a user program.

【0002】[0002]

【従来の技術】システム共通の入出力バッファを有し、
利用者プログラムの入出力要求と非同期にディスク装置
へ利用者データの書き込みを行う入出力システムにおい
て、従来の非同期出力処理(遅延出力処理)は、「UNI
X 4.3BSDの設計と実装、中村他共訳、丸善株式
会社、平成4年7月20日第3刷発行」の「7.5バッ
ファ管理、pp.217−222」に述べられているよ
うに、以下のように実装されていた。
2. Description of the Related Art An input / output buffer common to systems is provided.
In an input / output system that writes user data to a disk device asynchronously with an input / output request of a user program, a conventional asynchronous output process (delayed output process) is called “UNI.
As described in "7.5 Buffer Management, pp. 217-222" of X4.3BSD Design and Implementation, Nakamura et al., Translator, Maruzen Co., Ltd., issued the third printing on July 20, 1992. Was implemented as follows.

【0003】非同期出力要求(遅延出力要求)が行われ
ると従来の入出力システムにおいては、確保した入出力
バッファに対して書き込みデータをコピーし出力要求は
完了し、入出力バッファ上のデータのディスク装置への
反映は以下のいずれかの条件を満たすときに行われる。
When an asynchronous output request (delayed output request) is made, in the conventional input / output system, the write data is copied to the secured input / output buffer, the output request is completed, and the disk of the data on the input / output buffer is completed. The reflection to the device is performed when any of the following conditions is satisfied.

【0004】・システムの入出力バッファがフルの状態
で入出力バッファの要求が行われた場合 ・該当ファイルのクローズが行われた場合 ・一定時間毎の強制掃き出し(sync処理)
When a request for an input / output buffer is made when the input / output buffer of the system is full. When a file is closed. Forcible sweeping at regular time intervals (sync processing).

【発明が解決しようとする課題】しかしながら、この従
来の技術においては、書き込み処理が通常時には行われ
ず、一方、条件が満たされた場合には集中的に発生する
傾向があり、入出力負荷の高いシステムにおいては入出
力待ちが発生するなど、ディスク装置の有効利用ができ
ないという問題点があった。
However, in this conventional technique, the writing process is not performed normally, but tends to occur intensively when the conditions are satisfied, and the input / output load is high. In the system, there is a problem that the disk device cannot be effectively used, such as occurrence of an input / output wait.

【0005】本発明の目的は、利用者プログラムによる
利用者データのディスク装置への書き込み処理効率を高
めることにある。
An object of the present invention is to increase the efficiency of processing for writing user data to a disk device by a user program.

【0006】本発明の他の目的は、複数の利用者プログ
ラムにより利用者データを書き込まれるディスク装置の
入出力負荷を分散することにある。
Another object of the present invention is to distribute the input / output load of a disk device in which user data is written by a plurality of user programs.

【0007】さらに本発明の他の目的は、利用者プログ
ラムによるディスク装置からのデータの読み出し処理効
率を高めることにある。
It is another object of the present invention to improve the efficiency of reading data from a disk device by a user program.

【0008】[0008]

【課題を解決するための手段】本発明の第1の事前バッ
ファフラッシュシステムは、利用者プログラムに含まれ
る利用者データと、この利用者プログラムの指示により
利用者データが書き込まれるディスク装置との間に、複
数の入出力バッファを含むバッファテーブルを備え、利
用者プログラムの入出力要求と非同期に、このディスク
装置へ利用者データの書き込みを行う入出力システムに
おける事前バッファフラッシュシステムであり、前記バ
ッファテーブル内の入出力バッファの使用状況の情報を
格納する装置管理テーブルと、前記利用者プログラムか
らの前記ディスク装置への利用者データの書き込み要求
に応じて、この利用者データを前記バッファテーブル内
の入出力バッファへ書き込み、装置管理テーブル内の入
出力バッファ群の使用状況の情報を更新する入出力要求
インターフェースと、前記利用者プログラムにより前記
バッファテーブル内の入出力バッファに格納された利用
者データを前記ディスク装置に書き込み、装置管理テー
ブル内の入出力バッファ群の使用状況の情報を更新する
装置管理プログラムとから構成されている。
According to a first pre-buffer flush system of the present invention, user data included in a user program and a disk device to which the user data is written in accordance with an instruction of the user program. A buffer table including a plurality of input / output buffers, wherein the buffer table is a pre-buffer flush system in an input / output system that writes user data to the disk device asynchronously with an input / output request of a user program. A device management table for storing information on the use status of the input / output buffers in the disk device; and, in response to a request from the user program for writing user data to the disk device, the user data in the buffer table. Write to the output buffer, and check the I / O buffer group in the device management table. An input / output request interface for updating usage status information, and user data stored in the input / output buffer in the buffer table written by the user program to the disk device, and an input / output buffer group in the device management table. And a device management program for updating usage information.

【0009】本発明の第2の事前バッファフラッシュシ
ステムは、第1の事前バッファフラッシュシステムにお
いて、前記ディスク装置に対する書き込み処理要求中の
入出力バッファを示す情報の列である変更バッファキュ
ーと前記ディスク装置に対する書き込み処理の終了して
いる入出力バッファを示す情報の列である書き込み済み
バッファキューとを含む前記ディスク装置毎の装置管理
エントリと再利用可能な入出力バッファを示す情報の列
である空きバッファキューとを格納する前記装置管理テ
ーブルと、利用者プログラムからの前記ディスク装置へ
の利用者データの書き込み要求に応じて、前記ディスク
装置に対応する前記装置管理エントリの前記変更バッフ
ァキュー上に書き込み先と同じディスク装置内ブロック
を示す入出力バッファがある場合には利用者データをこ
の入出力バッファにコピーして書き込み処理を終了し、
また前記ディスク装置に対応する前記装置管理エントリ
の前記書き込み済みバッファキュー上に書き込み先と同
じディスク装置内ブロックを示す入出力バッファがある
場合には利用者データをこの入出力バッファにコピーし
てこの入出力バッファを前記装置管理エントリ内の前記
変更バッファキューにリンクして書き込み処理を終了
し、さらに前記ディスク装置に対応する前記装置管理エ
ントリの前記書き込み済みバッファキュー上または前記
変更バッファキュー上のいずれにも書き込み先と同じデ
ィスク装置内ブロックを示す入出力バッファがない場合
には前記空きバッファキューから入出力バッファを取り
出し利用者データをこの入出力バッファにコピーし前記
装置管理エントリ内の前記変更バッファキューにリンク
して書き込み処理を終了する前記入出力要求インターフ
ェースと、前記ディスク装置対応に動作し、前記ディス
ク装置に対応する前記装置管理エントリ内の前記変更バ
ッファキューにリンクされている入出力バッファがある
場合には先頭の入出力バッファを取り出し、この入出力
バッファに対するディスク装置に対する書き込み処理を
行い、書き込み処理完了時にこの入出力バッファを前記
書き込み済みバッファキューにリンクすることを順次繰
り返す前記装置管理プログラムとを含む。
A second pre-buffer flush system according to the present invention is the first pre-buffer flush system according to the first pre-buffer flush system, wherein a change buffer queue which is a column of information indicating an input / output buffer during a write processing request to the disk device; A device management entry for each of the disk devices, including a written buffer queue which is a column of information indicating input / output buffers for which write processing has been completed, and a free buffer which is a column of information indicating reusable input / output buffers. A device management table for storing a queue and writing of the device management entry corresponding to the disk device on the change buffer queue in response to a request for writing user data to the disk device from a user program I / O buffer indicating the same block in the disk unit Copy the user data in the output buffer if there is § terminates the writing process,
When there is an input / output buffer indicating the same block in the disk device as the write destination in the written buffer queue of the device management entry corresponding to the disk device, the user data is copied to the input / output buffer and An input / output buffer is linked to the change buffer queue in the device management entry to end the write processing, and furthermore, any of the device management entry corresponding to the disk device on the written buffer queue or on the change buffer queue. If there is no input / output buffer indicating the same block in the disk device as the write destination, the input / output buffer is taken out from the empty buffer queue and user data is copied to this input / output buffer, and the change buffer in the device management entry is changed. Link to the queue and write The I / O request interface to be completed and the first I / O buffer if there is an I / O buffer linked to the change buffer queue in the device management entry corresponding to the disk device that operates corresponding to the disk device. A device management program for retrieving a buffer, writing the input / output buffer to a disk device, and sequentially linking the input / output buffer to the written buffer queue when the writing process is completed.

【0010】本発明の第3の事前バッファフラッシュシ
ステムは、第2の事前バッファフラッシュシステムにお
いて、利用者プログラムからの前記ディスク装置からの
データの読み出し要求に応じて、前記ディスク装置に対
応する前記装置管理エントリの前記書き込み済みバッフ
ァキュー上に該当する入出力バッファがリンクされてい
る場合にはこの入出力バッファのデータを利用者プログ
ラムに転送し、読み出し処理を終了する前記入出力要求
インターフェースを含む。
A third pre-buffer flush system according to the present invention is the second pre-buffer flush system according to the second pre-buffer flush system, wherein the device corresponding to the disk device is responsive to a data read request from the disk device from a user program. When a corresponding input / output buffer is linked to the written buffer queue of the management entry, the input / output buffer transfers the data of the input / output buffer to the user program and includes the input / output request interface for terminating the reading process.

【0011】[0011]

【実施例】以下、本発明の一実施例について、図を参照
しながら詳細に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS One embodiment of the present invention will be described below in detail with reference to the drawings.

【0012】図1を参照すると、本発明の第1の実施例
である事前バッファフラッシュシステムは、入出力の対
象である利用者データ2を含む利用者プログラム1と、
この利用者データ2を入出力する複数のディスク装置7
と、利用者プログラム1の要求に従い入出力処理を行う
入出力システム8とから構成される。
Referring to FIG. 1, a pre-buffer flush system according to a first embodiment of the present invention comprises: a user program 1 including user data 2 to be input / output;
A plurality of disk devices 7 for inputting / outputting the user data 2
And an input / output system 8 that performs input / output processing in accordance with a request from the user program 1.

【0013】入出力システム8は、ディスク装置7と利
用者データ2間のデータ転送の中間バッファとして用い
られる複数の入出力バッファ31を含むバッファテーブ
ル3と、利用者プログラム1が書き込み要求を出したと
き、利用者データ2から入出力バッファ31へのデータ
転送を行うプログラムである入出力要求プログラム(以
下、入出力要求インターフェースとする)4と、バッフ
ァテーブル3の制御のために利用される装置管理テーブ
ル5と、ディスク装置7毎に対応し、入出力バッファ3
1のディスク装置7への入出力の制御を行う装置管理プ
ログラム6とを含む。
The input / output system 8 has a buffer table 3 including a plurality of input / output buffers 31 used as intermediate buffers for data transfer between the disk device 7 and the user data 2, and the user program 1 has issued a write request. At this time, an input / output request program (hereinafter, referred to as an input / output request interface) 4 which is a program for transferring data from the user data 2 to the input / output buffer 31 and a device management used for controlling the buffer table 3 The table 5 corresponds to each disk unit 7, and the input / output buffer 3
A device management program 6 for controlling input / output to / from one disk device 7.

【0014】装置管理テーブル5は、各ディスク装置7
に対応した装置管理エントリ51と書き込みまたは読み
出し処理が終了した入出力バッファ31をリンクする空
きバッファキュー52を含む。
The device management table 5 stores information on each disk device 7
And a free buffer queue 52 linking the device management entry 51 corresponding to the I / O buffer 31 and the input / output buffer 31 for which the write or read processing has been completed.

【0015】装置管理エントリ51は、ディスク装置7
毎に存在し、該当ディスク装置7が書き込みまたは読み
出し処理中の場合はオン、停止中の場合はオフとなる動
作状態フラグ53と、該当ディスク装置7へ書き込むべ
きデータを保持している入出力バッファ31をリンクす
る変更バッファキュー54と、ディスク装置7へ読み出
し処理を行う入出力バッファ31をリンクする入力待ち
バッファキュー55と、該当ディスク装置7への書き込
みまたは読み出し処理が終了した入出力バッファ31を
リンクする書き込み済みバッファキュー56と、該当デ
ィスク装置7が書き込みまたし読み出し処理中の場合、
現在書き込みまたは読み出し処理を行っている入出力バ
ッファ31のブロック番号を格納し、ディスク装置7が
書き込みまたは読み出し処理を行っていない場合は−1
を格納する入出力処理中ブロック番号57を含む。
The device management entry 51 contains the disk device 7
An operation state flag 53 that is present for each disk device and is turned on when the corresponding disk device 7 is in the process of writing or reading, and turned off when the disk device 7 is stopped, and an input / output buffer that holds data to be written to the relevant disk device 7. 31, an input buffer queue 55 linking the input / output buffer 31 that performs read processing to the disk device 7, and an input / output buffer 31 that has completed writing or reading processing to the disk device 7. When the written buffer queue 56 to be linked and the corresponding disk device 7 are in the process of writing or reading,
The block number of the input / output buffer 31 that is currently performing the writing or reading process is stored. If the disk device 7 is not performing the writing or reading process, -1 is stored.
Is stored in the input / output processing block number 57.

【0016】図2を参照すると、入出力バッファ31
は、入出力処理先のブロック番号を示す入出力ブロック
番号34と、空きバッファキュー52、変更バッファキ
ュー54、入力待ちバッファキュー55、および書き込
み済みバッファキュー56へのリンク先アドレスを格納
するバッファキューリンク先アドレス35からなるバッ
ファヘッダ32と、データ部33を含む。
Referring to FIG. 2, the input / output buffer 31
Is a buffer queue storing an input / output block number 34 indicating a block number of an input / output processing destination, and a link destination address to an empty buffer queue 52, a change buffer queue 54, an input waiting buffer queue 55, and a written buffer queue 56. A buffer header 32 including a link destination address 35 and a data section 33 are included.

【0017】次に本発明の第1の実施例である事前バッ
ファフラッシュシステムについて、図1〜図5を参照し
て説明する。
Next, a pre-buffer flush system according to a first embodiment of the present invention will be described with reference to FIGS.

【0018】利用者プログラム1から利用者データ2の
書き込み要求を受けた入出力要求インターフェース4
は、まず利用者プログラム1の入出力要求から利用者デ
ータ2を書き込むべきディスク装置7と該ディスク装置
7内の出力ブロック番号を得る(ステップ41)。
An input / output request interface 4 receiving a write request for user data 2 from the user program 1
First, the disk device 7 to which the user data 2 is to be written and the output block number in the disk device 7 are obtained from the input / output request of the user program 1 (step 41).

【0019】次に入出力要求インターフェース4は、該
ディスク装置7を管理している装置管理エントリ51の
入出力処理中ブロック番号57とステップ41で得た出
力ブロック番号とを比較し(ステップ42)、ブロック
番号が同じであれば、入出力バッファ31に対する入出
力処理の完了を待ち合わせる(ステップ43)。
Next, the I / O request interface 4 compares the I / O processing block number 57 of the device management entry 51 managing the disk device 7 with the output block number obtained in step 41 (step 42). If the block numbers are the same, the process waits for completion of the input / output processing for the input / output buffer 31 (step 43).

【0020】入出力要求インターフェース4は、ステッ
プ42でブロック番号が同じではないと判定した場合、
該ディスク装置7を管理している装置管理エントリ51
の入力待ちバッファキュー55にリンクされている入出
力バッファ31に、バッファヘッダ32の入出力ブロッ
ク番号34とステップ41で得た出力ブロック番号と同
じブロック番号のものがあるか否かを判定し(ステップ
44)、ブロック番号が同じものがある場合には、入出
力バッファ31に対する読み出しの完了を待ち合わせる
(ステップ45)。
If the input / output request interface 4 determines in step 42 that the block numbers are not the same,
Device management entry 51 managing the disk device 7
It is determined whether or not the input / output buffer 31 linked to the input waiting buffer queue 55 has the same block number as the input / output block number 34 of the buffer header 32 and the output block number obtained in step 41 ( Step 44) If there is a block having the same block number, the process waits for completion of reading from the input / output buffer 31 (step 45).

【0021】入出力要求インターフェース4は、ステッ
プ44でブロック番号が同じではないと判定した場合、
該ディスク装置7を管理している装置管理エントリ51
の変更バッファキュー54にリンクされている入出力バ
ッファ31に、バッファヘッダ32の入出力ブロック番
号34がステップ41で得た出力ブロック番号と同じブ
ロック番号のものがあるか否かを判定し(ステップ4
6)、ブロック番号が同じものがある場合には、利用者
データ2を該入出力バッファ31のデータ部33に転送
し、書き込み処理を終了する(ステップ47)。
If the input / output request interface 4 determines in step 44 that the block numbers are not the same,
Device management entry 51 managing the disk device 7
It is determined whether or not the input / output buffer 31 linked to the change buffer queue 54 has the same input / output block number as the output block number obtained in step 41 in the buffer header 32 (step 4
6) If there is a block with the same block number, the user data 2 is transferred to the data section 33 of the input / output buffer 31, and the writing process ends (step 47).

【0022】入出力要求インターフェース4は、ステッ
プ46でブロック番号が同じものがないと判定した場
合、該ディスク装置7を管理している装置管理エントリ
51の書き込み済みバッファキュー56にリンクされて
いる入出力バッファ31に、バッファヘッダ32内の入
出力ブロック番号34がステップ41で得た出力ブロッ
ク番号と同じブロック番号のものがあるか否かを判定し
(ステップ48)、ブロック番号が同じものがある場合
には、利用者データ2を該入出力バッファ31のデータ
部33に転送し(ステップ49)、該入出力バッファ3
1を書き込み済みバッファキュー56と空きバッファキ
ュー52から取り出し、該装置管理エントリ51内の変
更バッファキュー54にリンクする(ステップ4A)。
さらに該装置管理エントリ51内の動作状態フラグ53
がオフか否かを判定し(ステップ4B)、オフならば該
ディスク装置7対応の装置管理プログラム6に対して起
動要求を行い書き込み処理を終了し(ステップ4C)、
オンであるならば書き込み処理を終了する(ステップ4
D)。
If the input / output request interface 4 determines in step 46 that there is no block with the same block number, the input / output request interface 4 linked to the written buffer queue 56 of the device management entry 51 managing the disk device 7. It is determined whether or not the output buffer 31 has an input / output block number 34 in the buffer header 32 that is the same as the output block number obtained in step 41 (step 48). In this case, the user data 2 is transferred to the data section 33 of the input / output buffer 31 (step 49).
1 is retrieved from the written buffer queue 56 and the empty buffer queue 52, and is linked to the change buffer queue 54 in the device management entry 51 (step 4A).
Further, the operation state flag 53 in the device management entry 51
Is determined to be off (step 4B). If it is off, a start request is issued to the device management program 6 corresponding to the disk device 7, and the writing process is terminated (step 4C).
If it is on, the writing process is terminated (step 4
D).

【0023】入出力要求インターフェース4は、ステッ
プ48でブロック番号が同じものがないと判定した場
合、空きバッファキュー52に入出力バッファ31がリ
ンクされているか否かを判定し(ステップ4E)、リン
クされていれば先頭から1個の入出力バッファ31を取
り出す(ステップ4F)。ステップ4Eにおいて空きバ
ッファキュー52に入出力バッファ31がリンクされて
いない場合、入出力バッファ31がリンクされるまで待
ち合わせを行う(ステップ4G)。
If the input / output request interface 4 determines in step 48 that there is no block having the same block number, the input / output request interface 4 determines whether or not the input / output buffer 31 is linked to the empty buffer queue 52 (step 4E). If so, one input / output buffer 31 is taken out from the head (step 4F). If the input / output buffer 31 is not linked to the empty buffer queue 52 in step 4E, the process waits until the input / output buffer 31 is linked (step 4G).

【0024】入出力要求インターフェース4は、ステッ
プ4Fにおいて取り出した入出力バッファ31をリンク
されている書き込み済みバッファキュー56から外し
(ステップ4H)、該入出力バッファ31のデータ部3
3に対して利用者データ2を転送し(ステップ4I)、
バッファヘッダ32に入出力ブロック番号34を設定し
(ステップ4J)、該入出力バッファ31を該装置管理
エントリ51内の変更バッファキュー54にリンクする
(ステップ4K)。さらに該装置管理エントリ51内の
動作状態フラグ53がオフか否かを判定し(ステップ4
L)、オフならば該ディスク装置7対応の装置管理プロ
グラム6に対して起動要求を行い書き込み処理を終了し
(ステップ4M)、オンであるならば書き込み処理を終
了する(ステップ4N)。
The input / output request interface 4 removes the input / output buffer 31 taken out in step 4F from the linked buffer queue 56 (step 4H), and the data section 3 of the input / output buffer 31
The user data 2 is transferred to 3 (step 4I),
The input / output block number 34 is set in the buffer header 32 (step 4J), and the input / output buffer 31 is linked to the change buffer queue 54 in the device management entry 51 (step 4K). Further, it is determined whether or not the operation state flag 53 in the device management entry 51 is off (step 4).
L) If it is off, a start request is issued to the device management program 6 corresponding to the disk device 7, and the writing process is terminated (step 4M). If it is on, the writing process is terminated (step 4N).

【0025】ディスク装置7対応に存在する装置管理プ
ログラム6は、入出力要求インターフェース4からの起
動要求を受けると待ち合わせを解き、該ディスク装置7
に対応する該装置管理エントリ51内の動作状態フラグ
53をオンにする(ステップ61)。次に装置管理プロ
グラム6は、該ディスク装置7対応の装置管理エントリ
51内の入力待ちバッファキュー55に未処理の入出力
バッファ31があるか否かを判定し(ステップ62)、
未処理の入出力バッファ31がない場合には、さらに変
更バッファキュー54に入出力バッファ31がリンクさ
れていないかどうかを判定し(ステップ63)、入出力
バッファ31が存在しないならば、該装置管理エントリ
51内の動作状態フラグ53をオフにし(ステップ6
4)、入出力要求インターフェース4からの起動要求を
待ち合わせる(ステップ65)。
When the device management program 6 corresponding to the disk device 7 receives the activation request from the input / output request interface 4, it releases the waiting state and
Then, the operation status flag 53 in the device management entry 51 corresponding to "1" is turned on (step 61). Next, the device management program 6 determines whether there is an unprocessed input / output buffer 31 in the input waiting buffer queue 55 in the device management entry 51 corresponding to the disk device 7 (step 62).
If there is no unprocessed input / output buffer 31, it is further determined whether or not the input / output buffer 31 is linked to the change buffer queue 54 (step 63). The operation state flag 53 in the management entry 51 is turned off (step 6).
4) Wait for an activation request from the input / output request interface 4 (step 65).

【0026】装置管理プログラム6は、ステップ63に
おいて変更バッファキュー54にリンクされている入出
力バッファ31が存在すると判定した場合には、該入出
力バッファ31からの該ディスク装置7への書き込み処
理を行い(ステップ66)、該ディスク装置7からの終
了通知を待つ(ステップ67)。装置管理プログラム6
は、その後、該ディスク装置7からの書き込みの終了通
知を受けると、該入出力バッファ31を変更バッファキ
ュー54から外し(ステップ68)、該入出力バッファ
31を書き込み済みバッファキュー56と空きバッファ
キュー52にリンクし(ステップ69)、ステップ61
に戻る。
When the device management program 6 determines in step 63 that the input / output buffer 31 linked to the change buffer queue 54 exists, the writing process from the input / output buffer 31 to the disk device 7 is performed. (Step 66), and waits for an end notification from the disk device 7 (Step 67). Device management program 6
Then, upon receiving a write completion notification from the disk device 7, the I / O buffer 31 is removed from the change buffer queue 54 (step 68), and the I / O buffer 31 is written into the written buffer queue 56 and the empty buffer queue 56. Linking to step 52 (step 69), step 61
Return to

【0027】以上により、本発明の第1の実施例である
事前バッファフラッシュシステムの処理が完了する。
Thus, the processing of the pre-buffer flush system according to the first embodiment of the present invention is completed.

【0028】本発明の第1の実施例である事前バッファ
フラッシュシステムは、利用者プログラムの入出力要求
と非同期に、利用者データをディスク装置へ書き込みを
行うことにより、利用者プログラムによる利用者データ
のディスク装置への書き込み処理効率を高め、さらに複
数の利用者プログラムにより利用者データを書き込まれ
るディスク装置の入出力負荷を分散することができる効
果を有している。
The pre-buffer flush system according to the first embodiment of the present invention writes user data to a disk device asynchronously with an input / output request of the user program, thereby enabling user data to be written by the user program. This has the effect of increasing the efficiency of write processing to the disk device and distributing the input / output load of the disk device in which user data is written by a plurality of user programs.

【0029】本発明の第2の実施例である事前バッファ
フラッシュシステムは、第2の事前バッファフラッシュ
システムにおいて、利用者プログラム1が読み出し要求
を出したとき、入出力バッファ31から利用者データ2
へのデータ転送を行うプログラムである入出力要求イン
ターフェース4を含む。
The pre-buffer flush system according to the second embodiment of the present invention is different from the pre-buffer flush system according to the second pre-buffer flush system in that when the user program 1 issues a read request,
And an input / output request interface 4 which is a program for transferring data to the memory.

【0030】次に本発明の第2の実施例である事前バッ
ファフラッシュシステムについて、図1、図2、および
図6〜図8を参照して説明する。
Next, a pre-buffer flush system according to a second embodiment of the present invention will be described with reference to FIGS. 1, 2, and 6 to 8. FIG.

【0031】利用者プログラム1から利用者データ2の
読み出し要求を受けた入出力要求インターフェース4
は、まず利用者プログラム1の入出力要求から利用者デ
ータ2を読み出すべきディスク装置7と該ディスク装置
7内の入力ブロック番号を得る(ステップ141)。
An input / output request interface 4 receiving a read request for user data 2 from the user program 1
First, the disk device 7 from which the user data 2 is to be read and the input block number in the disk device 7 are obtained from the input / output request of the user program 1 (step 141).

【0032】次に入出力要求インターフェース4は、該
ディスク装置7を管理している装置管理エントリ51の
入出力処理中ブロック番号57とステップ141で得た
入力ブロック番号とを比較し(ステップ142)、ブロ
ック番号が同じであれば、入出力バッファ31に対する
入出力処理の完了を待ち合わせる(ステップ143)。
Next, the I / O request interface 4 compares the I / O processing block number 57 of the device management entry 51 managing the disk device 7 with the input block number obtained in step 141 (step 142). If the block numbers are the same, the process waits for completion of the input / output processing for the input / output buffer 31 (step 143).

【0033】入出力要求インターフェース4は、ステッ
プ142でブロック番号が同じではないと判定した場
合、該ディスク装置7を管理している装置管理エントリ
51の入力待ちバッファキュー55にリンクされている
入出力バッファ31のバッファヘッダ32の入出力ブロ
ック番号34とステップ141で得た入力ブロック番号
とを比較し(ステップ144)、ブロック番号が同じで
あれば、入出力バッファ31に対する読み出しの完了を
待ち合わせる(ステップ145)。
If the input / output request interface 4 determines in step 142 that the block numbers are not the same, the input / output request interface 4 linked to the input wait buffer queue 55 of the device management entry 51 managing the disk device 7. The input / output block number 34 of the buffer header 32 of the buffer 31 is compared with the input block number obtained in step 141 (step 144). If the block numbers are the same, the completion of reading from the input / output buffer 31 is waited for (step 144). 145).

【0034】入出力要求インターフェース4は、ステッ
プ144でブロック番号が同じではないと判定した場
合、該ディスク装置7を管理している装置管理エントリ
51の変更バッファキュー54にリンクされている入出
力バッファ31で、バッファヘッダ32の入出力ブロッ
ク番号34とステップ141で得た入力ブロック番号と
を比較し(ステップ146)、ブロック番号が同じであ
れば、利用者データ2に該入出力バッファ31のデータ
部33を転送し、読み出し処理を終了する(ステップ1
47)。
If the input / output request interface 4 determines in step 144 that the block numbers are not the same, the input / output buffer linked to the change buffer queue 54 of the device management entry 51 that manages the disk device 7 In step 31, the input / output block number 34 of the buffer header 32 is compared with the input block number obtained in step 141 (step 146). Unit 33, and finishes the reading process (step 1).
47).

【0035】入出力要求インターフェース4は、ステッ
プ146でブロック番号が同じではないと判定した場
合、該ディスク装置7を管理している装置管理エントリ
51の書き込み済みバッファキュー56にリンクされて
いる入出力バッファ31で、バッファヘッダ32の入出
力ブロック番号34とステップ141で得た入力ブロッ
ク番号とを比較し(ステップ148)、ブロック番号が
同じであれば、利用者データ2に該入出力バッファ31
のデータ部33を転送し、読み出し処理を終了する(ス
テップ149)。
If the input / output request interface 4 determines at step 146 that the block numbers are not the same, the input / output request interface 4 linked to the written buffer queue 56 of the device management entry 51 managing the disk device 7. In the buffer 31, the input / output block number 34 of the buffer header 32 is compared with the input block number obtained in step 141 (step 148).
Is transferred, and the reading process is terminated (step 149).

【0036】入出力要求インターフェース4は、ステッ
プ148でブロック番号が同じではないと判定した場
合、空きバッファキュー52に入出力バッファ31がリ
ンクされているか否かを判定し(ステップ14A)、リ
ンクされていれば書き込み済みバッファキュー56の先
頭から1個の入出力バッファ31を取り出す(ステップ
14B)。ステップ14Aにおいて空きバッファキュー
52に入出力バッファ31がリンクされていない場合、
入出力バッファ31がリンクされるまで待ち合わせを行
う(ステップ14C)。
If the input / output request interface 4 determines in step 148 that the block numbers are not the same, the input / output request interface 4 determines whether the input / output buffer 31 is linked to the empty buffer queue 52 (step 14A). If so, one input / output buffer 31 is extracted from the head of the written buffer queue 56 (step 14B). If the input / output buffer 31 is not linked to the empty buffer queue 52 in step 14A,
Wait until the input / output buffer 31 is linked (step 14C).

【0037】入出力要求インターフェース4は、ステッ
プ14Bにおいて取り出した入出力バッファ31のバッ
ファヘッダ32に入出力ブロック番号34を設定し(ス
テップ14D)、該入出力バッファ31を該装置管理エ
ントリ51の入力待ちバッファキュー55にリンクする
(ステップ14E)。
The input / output request interface 4 sets the input / output block number 34 in the buffer header 32 of the input / output buffer 31 extracted in step 14B (step 14D), and stores the input / output buffer 31 in the input of the device management entry 51. Link to the waiting buffer queue 55 (step 14E).

【0038】入出力要求インターフェース4は、該装置
管理エントリ51の動作状態フラグ53がオフか否かを
判定し(ステップ14F)、オフならば該ディスク装置
7対応の装置管理プログラム6に対して該ディスク装置
7を指定して起動要求を行い(ステップ14G)、装置
管理プログラム6による読み出し処理を待ち合わせる
(ステップ14H)。ステップ14Fにおいて動作状態
フラグ53がオンならば、読み出し処理を待ち合わせる
(ステップ14I)。
The input / output request interface 4 determines whether or not the operation status flag 53 of the device management entry 51 is off (step 14F). If it is off, the input / output request interface 4 sends the device management program 6 corresponding to the disk device 7 to the device management program 6. A start request is issued by designating the disk device 7 (step 14G), and the reading process by the device management program 6 is waited for (step 14H). If the operation state flag 53 is on in step 14F, the process waits for a read process (step 14I).

【0039】入出力要求インターフェース4は、該ディ
スク装置7から該入出力バッファ31の読み出しが終了
して装置管理プログラム6から起動され待ち合わせが解
けると、該入出力バッファ31から利用者データ2にデ
ータを転送し(ステップ14J)、該入出力バッファ3
1を該装置管理エントリ51の空きバッファキュー52
にリンクし(ステップ14K)、読み出し処理を終了す
る。
When the reading of the input / output buffer 31 from the disk device 7 is completed and the input / output request interface 4 is started by the device management program 6 and the waiting is released, the input / output request interface 4 transfers the data from the input / output buffer 31 to the user data 2. (Step 14J), and the input / output buffer 3
1 to the empty buffer queue 52 of the device management entry 51
(Step 14K), and terminates the reading process.

【0040】ディスク装置7対応に存在する装置管理プ
ログラム6は、入出力要求インターフェース4からの起
動要求を受けると待ち合わせを解き、該装置管理エント
リ51内の動作状態フラグ53をオンにする(ステップ
61)。次に装置管理プログラム6は、該ディスク装置
7対応の装置管理エントリ51内の入力待ちバッファキ
ュー55に未処理の入出力バッファ31があるか否かを
判定し(ステップ62)、未処理のものがある場合に
は、該ディスク装置7を管理している装置管理エントリ
51の入出力処理中ブロック番号57に該入出力バッフ
ァ31の入出力ブロック番号34を格納し(ステップ6
A)、該入出力バッファ31に対する該ディスク装置7
からのデータの読み出し要求を該ディスク装置7に対し
て行い(ステップ6B)、該ディスク装置7からの終了
通知を待つ(ステップ6C)。
When the device management program 6 corresponding to the disk device 7 receives the activation request from the input / output request interface 4, it releases the waiting state and turns on the operation state flag 53 in the device management entry 51 (step 61). ). Next, the device management program 6 determines whether or not there is an unprocessed input / output buffer 31 in the input waiting buffer queue 55 in the device management entry 51 corresponding to the disk device 7 (step 62). If there is, the input / output block number 34 of the input / output buffer 31 is stored in the input / output processing block number 57 of the device management entry 51 managing the disk device 7 (step 6).
A) The disk device 7 for the input / output buffer 31
A request to read out data from the disk device 7 is made to the disk device 7 (step 6B), and an end notification from the disk device 7 is waited for (step 6C).

【0041】装置管理プログラム6は、該ディスク装置
7からのデータの読み出しの終了通知を受けると、該デ
ィスク装置7を管理している装置管理エントリ51の入
出力処理中ブロック番号57を−1にして該入出力バッ
ファ31を処理済みとし(ステップ6D)、完了待ちを
している入出力要求インタフェース4を起動し(ステッ
プ6E)、ステップ61に戻る。
When the device management program 6 receives the notification of the end of reading data from the disk device 7, the device management program 6 sets the I / O processing block number 57 of the device management entry 51 managing the disk device 7 to -1. The input / output buffer 31 is processed (step 6D), the input / output request interface 4 waiting for completion is activated (step 6E), and the process returns to step 61.

【0042】以上により、本発明の第2の実施例である
事前バッファフラッシュシステムの処理が完了する。
Thus, the processing of the pre-buffer flush system according to the second embodiment of the present invention is completed.

【0043】本発明の第2の実施例である事前バッファ
フラッシュシステムは、利用者プログラムによるディス
ク装置からのデータの読み出し処理効率を高めることが
できる効果を有している。
The pre-buffer flush system according to the second embodiment of the present invention has the effect of increasing the efficiency of reading data from a disk device by a user program.

【0044】[0044]

【発明の効果】以上説明したように、本発明は、出力バ
ッファのディスクへの書き込みをディスク装置の稼働率
を高めながら可能なかぎり事前に行うことができ、シス
テムにおける書き込みが必要な出力バッファの数が増加
するのを防ぐことができ、高負荷入出力環境下における
システム全体のスループットを向上させることができる
効果を有している。
As described above, according to the present invention, the output buffer can be written to the disk as much as possible in advance while increasing the operation rate of the disk device. This has the effect of preventing the number from increasing and improving the throughput of the entire system under a high load input / output environment.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1および第2の実施例を示すブロッ
ク図である。
FIG. 1 is a block diagram showing first and second embodiments of the present invention.

【図2】本発明の第1および第2の実施例における入出
力バッファ31の内容を示す図である。
FIG. 2 is a diagram showing contents of an input / output buffer 31 in the first and second embodiments of the present invention.

【図3】本発明の第1の実施例における入出力要求イン
ターフェース4の一部の処理を示す流れ図である。
FIG. 3 is a flowchart showing a partial process of the input / output request interface 4 according to the first embodiment of the present invention.

【図4】本発明の第1の実施例における入出力要求イン
ターフェース4の残りの部分の処理を示す流れ図であ
る。
FIG. 4 is a flowchart showing processing of the remaining portion of the input / output request interface 4 in the first embodiment of the present invention.

【図5】本発明の第1の実施例における装置管理プログ
ラム6の処理を示す流れ図である。
FIG. 5 is a flowchart showing processing of an apparatus management program 6 according to the first embodiment of the present invention.

【図6】本発明の第2の実施例における入出力要求イン
ターフェース4の一部の処理を示す流れ図である。
FIG. 6 is a flowchart showing a partial process of the input / output request interface 4 according to the second embodiment of the present invention.

【図7】本発明の第2の実施例における入出力要求イン
ターフェース4の残りの部分の処理を示す流れ図であ
る。
FIG. 7 is a flowchart showing processing of the remaining part of the input / output request interface 4 in the second embodiment of the present invention.

【図8】本発明の第2の実施例における装置管理プログ
ラム6の処理を示す流れ図である。
FIG. 8 is a flowchart showing processing of an apparatus management program 6 according to a second embodiment of the present invention.

【符号の説明】[Explanation of symbols]

1 利用者プログラム 2 利用者データ 3 バッファテーブル 31 入出力バッファ 32 バッファヘッダ 33 データ部 34 入出力ブロック番号 35 バッファキューリンク先アドレス 4 入出力要求インターフェース 5 装置管理テーブル 51 装置管理エントリ 52 空きバッファキュー 53 動作状態フラグ 54 変更バッファキュー 55 入力待ちバッファキュー 56 書き込み済みバッファキュー 57 入出力処理中ブロック番号 6 装置管理プログラム 7 ディスク装置 71 ブロック 8 入出力システム DESCRIPTION OF SYMBOLS 1 User program 2 User data 3 Buffer table 31 I / O buffer 32 Buffer header 33 Data part 34 I / O block number 35 Buffer queue link destination address 4 I / O request interface 5 Device management table 51 Device management entry 52 Empty buffer queue 53 Operation status flag 54 Change buffer queue 55 Input waiting buffer queue 56 Buffer queue already written 57 I / O processing block number 6 Device management program 7 Disk unit 71 Block 8 I / O system

Claims (2)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 利用者プログラムに含まれる利用者デー
とこの利用者プログラムの指示により利用者データが
書き込まれるディスク装置との間に複数の入出力バッフ
ァを含むバッファテーブルを備え、利用者プログラムの
入出力要求と非同期にこのディスク装置へ利用者データ
の書き込みを行う入出力システムにおける事前バッファ
フラッシュシステムであって、前記ディスク装置に対する書き込み処理要求中の入出力
バッファを示す情報の列である変更バッファキューと前
記ディスク装置に対する書き込み処理の終了している入
出力バッファを示す情報の列である書き込み済みバッフ
ァキューとを含む前記ディスク装置毎の装置管理エント
リと、再利用可能な入出力バッファを示す情報の列であ
る空きバッファキューと を格納する装置管理テーブル
と、 前記利用者プログラムからの前記ディスク装置への利用
者データの書き込み要求に応じて、前記ディスク装置に
対応する前記装置管理エントリの前記変更バッファキュ
ー上に書き込み先と同じディスク装置内ブロックを示す
入出力バッファがある場合には利用者データをこの入出
力バッファにコピーして書き込み処理を終了し、また前
記ディスク装置に対応する前記装置管理エントリの前記
書き込み済みバッファキュー上に書き込み先と同じディ
スク装置内ブロックを示す入出力バッファがある場合に
は利用者データをこの入出力バッファにコピーしてこの
入出力バッファを前記装置管理エントリ内の前記変更バ
ッファキューにリンクして書き込み処理を終了し、さら
に前記ディスク装置に対応する前記装置管理エントリの
前記書き込み済みバッファキュー上または前記変更バッ
ファキュー上のいずれにも書き込み先と同じディスク装
置内ブロックを示す入出力バッファがない場合には前記
空きバッファキューから入出力バッファを取り出し利用
者データをこの入出力バッファにコピーし前記装置管理
エントリ内の前記変更バッファキューにリンクして書き
込み処理を終了する入出力要求インターフェースと、前記ディスク装置対応に動作し、前記ディスク装置に対
応する前記装置管理エントリ内の前記変更バッファキュ
ーにリンクされている入出力バッファがある場合には先
頭の入出力バッファを取り出し、この入出力バッファに
対するディスク装置に対する書き込み処理を行い、書き
込み処理完了時にこの入出力バッファを 前記書き込み済
みバッファキューにリンクすることを順次繰り返す 装置
管理プログラムとを備えたことを特徴とする事前バッフ
ァフラッシュシステム。
[Claim 1, further comprising a buffer table containing input-output buffers of multiple between the user disk device data is written by an instruction of the user program of the user data Toko included in the user program, user program a pre-buffer flush system in the output system for writing user data to the output request and asynchronous Nico disk device, input and output in the write request to said disk device
Change buffer queue and previous, which are columns of information indicating the buffer
When the write process to the disk device has been
A written buffer that is a sequence of information indicating the output buffer
Device management entry for each disk device including
And a column of information indicating reusable I / O buffers.
That a device management table for storing the free buffer queue, in accordance with the user data write request to the disk device from the user program, in the disk device
The change buffer queue of the corresponding device management entry.
Indicates the same block in the disk device as the write destination
If there is an input / output buffer, user data
Copy to the output buffer and finish the write process.
The device management entry corresponding to the disk device
The same directory as the write destination is written in the written buffer queue.
If there is an I / O buffer that indicates a block in the disk device
Copies the user data into this input / output buffer and
The I / O buffer is changed in the device management entry.
Link to the buffer queue, finish the writing process, and
To the device management entry corresponding to the disk device
The written buffer queue or the modified buffer
The same disk drive as the writing destination
If there is no input / output buffer indicating
Retrieve I / O buffer from empty buffer queue and use
User data into this input / output buffer and
Link to the change buffer queue in the entry and write
An input / output request interface for ending the loading process, and operating in response to the disk device,
The change buffer queue in the corresponding device management entry.
If there is an I / O buffer linked to the
Take out the head I / O buffer and put it in this I / O buffer
Write processing to the disk device for
The already writing the input and output buffer during the write process is completed
And a device management program for sequentially repeating linking to a buffer queue .
【請求項2】 前記入出力要求インターフェースが、前
記利用者プログラムからの前記ディスク装置からのデー
タの読み出し要求に応じて、前記ディスク装置に対応す
る前記装置管理エントリの前記書き込み済みバッファキ
ュー上に該当する入出力バッファがリンクされている場
合にはこの入出力バッファのデータを前記利用者プログ
ラムに転送し、読み出し処理を終了することを特徴とす
る請求項1記載の事前バッファフラッシュシステム。
2. An input / output request interface according to claim 1, wherein
Data from the disk device from the user program
Data corresponding to the disk device in response to a data read request.
The written buffer key of the device management entry
If the corresponding I / O buffer is linked on the
In this case, the data in this input / output buffer is
2. The pre-buffer flush system according to claim 1 , wherein the data is transferred to the RAM and the read processing is terminated .
JP6040667A 1994-03-11 1994-03-11 Advance buffer flush system Expired - Fee Related JP2967687B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6040667A JP2967687B2 (en) 1994-03-11 1994-03-11 Advance buffer flush system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6040667A JP2967687B2 (en) 1994-03-11 1994-03-11 Advance buffer flush system

Publications (2)

Publication Number Publication Date
JPH07248883A JPH07248883A (en) 1995-09-26
JP2967687B2 true JP2967687B2 (en) 1999-10-25

Family

ID=12586888

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6040667A Expired - Fee Related JP2967687B2 (en) 1994-03-11 1994-03-11 Advance buffer flush system

Country Status (1)

Country Link
JP (1) JP2967687B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101462053B1 (en) * 2013-10-31 2014-11-17 에스케이 텔레콤주식회사 Apparatus For File Input/Output

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04102118A (en) * 1990-08-22 1992-04-03 Nec Corp Buffer flash mechanism

Also Published As

Publication number Publication date
JPH07248883A (en) 1995-09-26

Similar Documents

Publication Publication Date Title
US6157962A (en) Multipath I/O storage systems with multiipath I/O request mechanisms
JP3598321B2 (en) Buffering data exchanged between buses operating at different frequencies
JP4748610B2 (en) Optimal use of buffer space by the storage controller that writes the retrieved data directly into memory
JP3609841B2 (en) File management device
JP2967687B2 (en) Advance buffer flush system
JP2523715B2 (en) Magnetic disk drive
US7382970B2 (en) Process control manager for audio/video file system
CN113190353B (en) Software implementation method for integrating queue read-write management
JP2006059201A (en) Data transfer system and interface
JPS58169390A (en) Writing for buffer memory
JP3940701B2 (en) Disk array device and cache matching control method applied to the same
JP2856003B2 (en) Asynchronous data input / output method
JP2932568B2 (en) Data communication device
JP3259095B2 (en) Data transfer method
JP2830239B2 (en) Input display control device
JPS6346553A (en) File copying method
JPH0520264A (en) Method for controlling buffer
JPH10320253A (en) Backup system and recording medium
JPS5938865A (en) Input/output control device
JPH10207783A (en) Volume copy system and method therefor, and computer readable recording medium recorded with volume copy program
JP2826780B2 (en) Data transfer method
JPH0346033A (en) Data transfer control method for inter-job
JPS59172186A (en) Cache memory control system
JPH0454657A (en) Data transfer device
JPH07271647A (en) Duplex file system

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990721

LAPS Cancellation because of no payment of annual fees