JPH07175698A - ファイルシステム - Google Patents

ファイルシステム

Info

Publication number
JPH07175698A
JPH07175698A JP31783293A JP31783293A JPH07175698A JP H07175698 A JPH07175698 A JP H07175698A JP 31783293 A JP31783293 A JP 31783293A JP 31783293 A JP31783293 A JP 31783293A JP H07175698 A JPH07175698 A JP H07175698A
Authority
JP
Japan
Prior art keywords
buffer
block
buffer area
area
allocatable
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.)
Withdrawn
Application number
JP31783293A
Other languages
English (en)
Inventor
Takeo Murakami
岳生 村上
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP31783293A priority Critical patent/JPH07175698A/ja
Publication of JPH07175698A publication Critical patent/JPH07175698A/ja
Priority to US09/019,042 priority patent/US5983293A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】スワップ等のシステムデータの入出力を考慮し
てバッファ管理を行うファイルシステムに関し,入出力
の各用途に適したバッファ管理により,入出力性能の向
上を図ることを目的とする。 【構成】ファイル入出力用のバッファ領域18を,システ
ムデータ用,ユーザデータ用というような用途別に複数
の領域に分割し,バッファ管理処理部14により,それぞ
れの領域を独立に管理し,要求されたバッファの獲得お
よび解放を制御する。また,用途別に分割したバッファ
領域18S,18U 毎に,ブロックサイズおよび割り当て可能
ブロック下限値を指定する手段を設け,領域の効率的利
用とバッファ獲得の待ち時間の短縮を可能とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は,スワップ等のシステム
データの入出力を考慮してバッファ管理を行うファイル
システムに関する。
【0002】近年,大規模数値計算や動画像処理等の分
野において扱うデータ量の増大は著しく,またプログラ
ム自体も複雑化し大容量化している。従って,より大容
量のデータを高速に処理することが可能な計算機システ
ムが求められている。一方,高性能なCPUの新規開
発,並列処理技術の成熟等により,計算処理能力の向上
は著しく,また二次記憶,主記憶の大容量化も進んでい
る。しかし,これらに比べて二次記憶のデータ転送速度
の伸びは小さく,システム全体のボトルネックとなって
いる。
【0003】そこで通常,主記憶を二次記憶のバッファ
として利用し,入出力処理の高速化を図ることが行われ
ている。しかし,主記憶容量にも限界があるので,限ら
れたバッファ領域を効率良く管理する必要がある。
【0004】
【従来の技術】従来のシステムにおいては,バッファ領
域全体を固定長のブロックに分割してバッファ管理を行
っていた。バッファ領域はスワップファイル,ダンプ等
のシステムが使用するファイルと,ロードモジュール,
データファイル等のユーザが使用するファイルとが混在
することになる。従って,スワップが行われたり,ダン
プの取得が行われたりすると,バッファ領域がシステム
に占有され,ユーザプログラムが十分なバッファ領域を
確保できず,入出力性能が低下するという問題が生じる
ことがあった。
【0005】また,大容量のデータの入出力を行うジョ
ブが走行し,バッファ領域を占有している際に,スワッ
プを起動すると,システムが十分なバッファを確保でき
ないため,スワップの処理が遅くなることがあるという
問題があった。
【0006】
【発明が解決しようとする課題】以上のように,従来の
バッファ管理方式を採用したシステムにおいては,1つ
のバッファ領域をシステムデータ用とユーザデータ用と
で競合して使用しているので,いずれかのデータがほと
んどのバッファ領域を占有してしまい,他方の入出力性
能が極端に落ちてしまうことがあるという問題があっ
た。
【0007】本発明は,用途別にバッファ領域を分割
し,入出力の性質を考慮したバッファ管理を行うことに
より,入出力性能の向上を図ることを目的とする。
【0008】
【課題を解決するための手段】請求項1記載の発明で
は,例えば図1に示すように,ファイル入出力用のバッ
ファ領域18を用途別に分割する。分割された領域をパ
ーティションという。1つはジョブ(プロセス)がスワ
ップアウトされる際に確保するスワップファイルやダン
プ等のシステムが使用するシステムデータ用バッファ領
域18Sである。もう1つはユーザプログラムが使用す
るユーザデータ用バッファ領域18Uである。バッファ
管理処理部14は,それぞれのバッファ領域を独立して
管理し,要求されたバッファの獲得および解放を制御す
る。なお,システムデータ用バッファ領域18Sまたは
ユーザデータ用バッファ領域18Uをさらに用途別に分
割してもよい。
【0009】請求項2記載の発明では,システムの起動
時にバッファの設定を行う際に,ブロックサイズ指定手
段12によって,用途別に分割したバッファ領域(パー
ティション)毎に,バッファの管理単位であるブロック
サイズを指定できるようにする。バッファ管理処理部1
4は,指定されたブロックサイズによってシステムデー
タ用バッファ領域18Sおよびユーザデータ用バッファ
領域18Uを,それぞれ異なるブロックサイズで管理
し,そのブロックサイズを単位としたバッファの獲得お
よび解放を制御する。
【0010】請求項3記載の発明では,バッファ管理処
理部14は,パーティション毎に割り当て可能なブロッ
クの数を管理している。割り当て可能なブロックとは,
未使用で有効なデータが格納されていないブロック,あ
るいは有効なデータが格納されているがディスク上の内
容と一致しているブロックである。有効なデータが格納
されており,その内容がディスク上に未反映のブロック
(以下,これをダーティブロックという)は割り当て不
可能である。
【0011】バッファ管理処理部14は,ブロック割り
当てを行う際に,割り当て可能ブロック数がある一定値
(割り当て可能ブロック下限値)より少ないかどうかを
調べる。一定値より少なくなっていればリスト中のダー
ティブロックの内容をディスク等の二次記憶装置20に
書き戻し,割り当て可能なブロックの数を増やす。
【0012】請求項4記載の発明では,システムの起動
時にバッファの設定を行う際に,下限値指定手段13に
より,用途別に分割したバッファ領域(パーティショ
ン)毎に,割り当て可能ブロック下限値を指定できるよ
うにする。バッファ管理処理部14が一定値以上の割り
当て可能なブロック数を確保する際には,この指定され
た割り当て可能ブロック下限値を基準とする。
【0013】請求項5記載の発明では,スワップアウト
される実行中ジョブまたはプロセスのコンテキストがス
ワップファイルに書き込まれる。このとき,十分なバッ
ファ領域がスワップファイル用に確保されればデータを
バッファに書き込み,バッファブロックが二次記憶装置
20に対して未書き込みであることを示すダーティフラ
グをセットする。ダーティフラグがセットされたブロッ
クは解放されても割り当て不可能であるが,必要であれ
ば二次記憶装置20への書き戻しにより,いつでも割り
当て可能ブロックに変更することができる。その後,ジ
ョブのスワップインが行われ再びスワップファイルが読
み込まれると,該当バッファブロックのダーティフラグ
をオフにする制御を行う。
【0014】
【作用】請求項1記載の発明では,システム用のデータ
入出力とユーザ用のデータ入出力とが並行して行われる
場合でも,両者のバッファ領域18S,18Uが分割さ
れているため,いずれも一定量のバッファ領域を確保で
きることが保証される。従って,システムデータ用,ユ
ーザデータ用の各バッファ領域18S,18Uを使用し
て,安定した速度で入出力を行うことができる。
【0015】システム用のデータとユーザ用のデータと
は,入出力の性質やデータのサイズが大きく異なるの
で,バッファの利用効率,入出力性能を上げるための最
適なバッファの管理単位も異なる。請求項2記載の発明
では,パーティション毎にブロックサイズの指定が可能
であり,各パーティションのデータ,入出力特性を考慮
してそれぞれ適切なブロックサイズを設定することがで
きる。
【0016】割り当て可能なブロック数がバッファ中に
なくなった際に,新たなバッファ獲得要求が来ると,ダ
ーティなブロックをディスクに書き戻してから割り当て
る必要があり,バッファ獲得の待ち時間が増えてしま
う。請求項3記載の発明では,常に割り当て可能なブロ
ックを一定値以上確保しておくので,バッファ獲得の待
ち時間がなく,入出力性能を向上させることができる。
【0017】また,用途によって入出力のサイズ,アク
セスパターンは異なるため,パーティション毎に割り当
て可能ブロック下限値の最適値は異なる。請求項4記載
の発明では,パーティション毎に異なる割り当て可能ブ
ロック下限値の設定ができるため,各パーティションの
使用特性に適した値をそれぞれ設定することにより,入
出力性能を向上させることができる。
【0018】実行中ジョブまたはプロセスのスワップ制
御において,スワップファイルが一度スワップインで読
み込まれると,再び読み込まれることはない。従って,
スワップインが起こった時点でダーティなブロックがバ
ッファ上に残っていても,その内容をディスク等の二次
記憶装置20へ書き戻す必要はない。請求項5記載の発
明では,この性質を利用してスワップイン時にダーティ
フラグをオフにするので無駄なディスクへの書き戻しを
防ぐことができ,入出力性能を向上させることができ
る。また,バッファに余裕がある場合には,二次記憶装
置20へアクセスすることなく,バッファ上だけでスワ
ップアウト,スワップインが行われるので,高速なスワ
ップ制御が可能である。
【0019】
【実施例】図1は本発明の構成例を示す。図1におい
て,10は中央処理装置(CPU)および主記憶装置
(メモリ)等からなる処理装置,11はファイルへの入
出力を行うファイルシステム,12はパーティション毎
にバッファのブロックサイズを指定するブロックサイズ
指定手段,13はパーティション毎にバッファ領域内に
存在する割り当て可能なブロックの数の下限値を指定す
る下限値指定手段,14はバッファを管理するバッファ
管理処理部であって,バッファ領域初期化処理部15,
バッファブロック獲得処理部16,バッファブロック解
放処理部17などからなるもの,18はシステムデータ
用バッファ領域18Sとユーザデータ用バッファ領域1
8Uのパーティションに分割されたバッファ領域,19
はバッファ領域18の管理情報を保持するバッファ管理
情報部,20はディスク装置等の二次記憶装置を表す。
【0020】バッファ領域初期化処理部15は,パーテ
ィション毎にブロックサイズ指定手段12および下限値
指定手段13で指定されたパラメータに従って,バッフ
ァ領域18の初期化を行い,そのパーティションの管理
情報をバッファ管理情報部19に設定する処理手段であ
る。バッファブロック獲得処理部16は,バッファを使
用する要求元からのバッファの獲得要求に対して,該当
するパーティションからバッファブロックを獲得する処
理手段である。バッファブロック解放処理部17は,獲
得されたバッファの解放要求に対して,そのブロックを
解放する処理手段である。
【0021】図1に示すように,ファイル入出力用のバ
ッファ領域18は,バッファ領域初期化処理部15によ
って初期化され,この初期化時にシステムデータ用バッ
ファ領域18Sおよびユーザデータ用バッファ領域18
U等の複数の用途別の領域に分割可能に構成されてい
る。バッファ管理処理部14は,それぞれの領域を独立
して管理し,バッファブロック獲得処理部16およびバ
ッファブロック解放処理部17によって,要求されたバ
ッファの獲得および解放を制御する。
【0022】図2は,本発明の実施例におけるファイル
システムの構成例説明図である。図2において,図1と
同符号のものは図1に示すものに対応し,30A〜30
Cはファイルへの入出力を行うアプリケーションプログ
ラム等のプログラムA〜C,31はファイルへの入出力
要求を受け取って処理するファイル管理処理部,32は
ファイルが格納されるディスク装置を表す。
【0023】ファイルシステム11は,ファイル管理処
理部31とバッファ管理処理部14とファイル入出力用
のバッファ領域18などから構成されている。ファイル
管理処理部31は,アプリケーションプログラムから入
出力要求を受け取り,プログラム固有のデータ領域,フ
ァイルシステム11のバッファ,ディスク装置32の間
のデータ入出力処理を行う処理モジュールである。
【0024】バッファ管理処理部14は,ファイルシス
テム11で使用するバッファ領域18を管理し,ファイ
ル管理処理部31からの要求により,ブロック単位でバ
ッファの獲得,解放処理を行う処理モジュールである。
バッファ管理処理部14は,バッファ領域初期化処理部
15と,バッファブロック獲得処理部16と,バッファ
ブロック解放処理部17とに分かれている。
【0025】バッファ領域18は,図3(A)に示すよ
うに,用途別に分割して管理される。この例では,バッ
ファ領域18は3つのパーティションに分割され,シス
テムデータ用のバッファ領域としてパーティション1
が,ユーザデータ用のバッファ領域として2つのパーテ
ィション2,3が割り当てられている。
【0026】各パーティションでの獲得,解放の管理単
位となるブロックは,パーティション毎にあらかじめそ
のサイズを指定することができる。システムデータの場
合,スワップやダンプ等のように一般にデータ量の多い
入出力が多くなることから,この例では,システムデー
タ用のパーティション1におけるバッファブロックB1
1〜B13のサイズとして,大きいブロックサイズが設
定されている。一方,ユーザデータ用のパーティション
2では,一般に小さい単位の入出力が多いことから,バ
ッファブロックB21〜B24のサイズが小さくなるよ
うに設定されている。
【0027】また,各パーティションに対して,初期化
時にあらかじめ割り当て可能なブロックの数の下限値を
指定できるようになっている。これらの情報は,図3
(B)に示すように,パーティション管理情報として各
パーティション毎に管理される。このパーティション管
理情報は,図1に示すバッファ管理情報部19に保持さ
れる。
【0028】図4は本発明の実施例におけるバッファブ
ロックの管理情報説明図である。パーティション管理情
報の他に,バッファ領域18をブロック単位に管理する
ためのデータ構造として,各パーティション毎にハッシ
ュキュー,フリーリストを保持している。図4に示す4
0は割り当て可能ブロックおよびディスク書き戻しによ
って割り当て可能ブロックに変更できるブロックを管理
するためのフリーリスト,41はハッシュキューを管理
するためのハッシュテーブル,42は各ブロック対応に
設けられる管理情報であるバッファブロック情報を表
す。
【0029】バッファブロックの管理のために,例えば
図4(A)に示すように,各パーティション毎にハッシ
ュ値0〜Hに対応したキューポインタを持つハッシュテ
ーブル41が設けられ,ハッシュ値毎に有効なデータの
入ったバッファブロック情報42をリストの形で保持す
る。ハッシュ値は,この例では〔ファイルID,ファイ
ル内位置〕をキーとしている。ファイルIDはシステム
内で一意に付与されるファイル識別情報である。ファイ
ル内位置は,そのファイルにおける先頭からのオフセッ
ト(変位)情報である。
【0030】フリーリスト40は,新規のバッファブロ
ックを割り当てる際に横取りする対象となるバッファブ
ロック情報42をリストの形で保持している。個々のバ
ッファブロックに対応して設けられるバッファブロック
情報42は,例えば図4(B)に示すように,そのブロ
ックの内容に対応するファイルIDと,ファイル内位置
の情報が設定されるフィールドを持つ。また,そのブロ
ックのバッファ内アドレス(例えば,パーティション先
頭からのオフセットまたはブロック番号等)のフィール
ドを持つ。他に,ブロックの内容がディスクに未書き込
みであることを示すダーティフラグ,そのブロックの内
容が有効であることを示すデータ有効フラグを持つ。さ
らに,ハッシュキューのチェイニングのためのポインタ
およびフリーリストのチェイニングのためのポインタ等
を持つ。
【0031】次に,本発明によるバッファ管理方式を用
いたスワップ制御について説明する。図5は,本発明の
実施例におけるスワップ制御説明図である。
【0032】スワップは,ジョブが現在使用している記
憶領域を他の領域に退避して,それまで占めていた記憶
領域を他のジョブ等のために明け渡す処理である。本実
施例の場合,図5(A)に示すように,ジョブのコンテ
キスト50をバッファ領域18に獲得したブロックB1
1へスワップアウトし,ブロックB11のダーティフラ
グをオンにする。そして,そのブロックB11のバッフ
ァブロック情報42をフリーリスト40に接続してお
く。スワップインのときには,バッファブロックの獲得
要求によりブロックB11を獲得し,その内容をジョブ
のコンテキスト50として復元する。スワップインをし
たならば,そのブロックB11のダーティフラグをオフ
にする。
【0033】スワップ中のブロックB11の内容は,バ
ッファ領域18の割り当て可能ブロックの数が所定の下
限値より少なくなった場合には,ディスク装置32に書
き戻され,割り当て可能ブロックとして扱われる。スワ
ップインのとき,ブロックB11のデータが有効でない
場合には,新しいブロックB12を獲得して,スワップ
されたコンテキスト50をディスク装置32から読み出
し,そのブロックB12から新たなジョブ領域にコンテ
キスト50を復元する。
【0034】以上のようにすることにより,スワップフ
ァイル51は,バッファ領域18とディスク装置32の
領域とによって実現されることになる。スワップインが
行われたときには,ダーティフラグをオフにするので,
無駄なディスク装置32への書き戻しを防ぐことができ
る。すなわち,バッファ領域18に十分な余裕がある場
合には,スワップアウト/スワップインの際にディスク
装置32へのアクセスは不要となる。
【0035】ダーティフラグがオンになっているブロッ
クをダーティブロックという。ダーティブロックは,デ
ィスク上に内容を反映していないブロックである。図5
(B)に示すフリーリスト40では,バッファブロック
情報42b,42d,…42xを持つブロックがダーテ
ィブロックである。他のブロックは,割り当て可能ブロ
ックであり,この割り当て可能ブロックの数が,パーテ
ィション毎に設定された割り当て可能ブロック下限値よ
り小さくなると,ダーティブロックのディスク装置32
への書き込みが行われ,ダーティフラグがオフにされ
る。これにより,図5(C)に示すように,割り当て可
能ブロックの数が,割り当て可能ブロック下限値以上に
なるように管理される。
【0036】図6は,本発明の実施例におけるスワップ
中のブロックの状態遷移を示す図である。図6(A)に
示す状態で,スワップアウトのためにバッファブロック
が獲得されると,スワップファイル用ブロックが必要個
数確保され,スワップアウトの後,ダーティフラグをオ
ンにして解放される。フリーリスト40につながれるバ
ッファブロック情報42の状態は,図6(B)に示すよ
うになる。スワップインが行われると,スワップファイ
ルとして用いられたブロックのダーティフラグがオフに
戻され,図6(C)に示すような状態に遷移する。
【0037】図7は,本発明の実施例によるバッファ領
域初期化処理フローチャートである。図2に示すバッフ
ァ領域初期化処理部15は,システムの初期化時にファ
イル管理処理部31から呼び出される。引数の入力パラ
メータは,バッファ領域の情報,ブロックサイズ,割り
当て可能ブロック下限値である(図7のステップ7
0)。バッファ領域初期化処理部15は,まずステップ
71により,対象領域を指定されたブロックサイズ単位
で分割する。次にステップ72により,各ブロックにつ
いて,図4(B)に示す内容のバッファブロック情報4
2を初期化し,フリーリスト40に入れる。ステップ7
3では,指定された割り当て可能ブロック下限値を,パ
ーティション管理情報として設定する。ステップ74で
は,全ブロック数を割り当て可能ブロック数として初期
化する。ステップ75では,パーティションIDを割り
当て,そのパーティションIDを呼び出し元のファイル
管理処理部31に返却する(ステップ76)。
【0038】ファイル管理処理部31は,バッファ領域
の用途別にバッファ領域初期化処理部15を呼び出すこ
とにより,ファイルシステム11で使用するバッファ領
域18を複数個に分割し,用途別にパーティションを設
定することができる。
【0039】図8は,本発明の実施例によるバッファブ
ロック獲得処理フローチャートである。図2に示すバッ
ファブロック獲得処理部16は,各プログラム30A〜
30Bのデータ入出力時にファイル管理処理部31から
呼び出される。入力パラメータは,ブロックの獲得対象
となるパーティションを指定するパーティションID,
データ入出力対象のファイルID,ファイル内位置の情
報である(図8のステップ800)。
【0040】バッファブロック獲得処理部16は,まず
ステップ801により,指定されたファイルIDとファ
イル内位置をキーとしたハッシュ値を計算する。次に,
計算したハッシュ値をもとに,ステップ802により,
図4に示す該当パーティションにおけるハッシュテーブ
ル41のエントリを求め,ハッシュキューを探索する。
【0041】ステップ803の判定により,ファイルI
Dおよびファイル内位置が一致する該当バッファブロッ
ク情報42が見つかったならば,ステップ810へ進
み,見つからなかった場合には,次のステップ804へ
進む。
【0042】該当バッファブロック情報42が見つから
なかった場合,ステップ804により,フリーリスト4
0を探索し,最初に見つかった割り当て可能ブロックの
バッファブロック情報42をフリーリスト40から外
す。ステップ805では,古いハッシュキューからこの
ブロックのバッファブロック情報42を外し,ファイル
IDおよびファイル内位置をキーとして計算したハッシ
ュ値に対応する新しいハッシュキューへ入れる。次のス
テップ806で,ファイルIDの設定,ファイル内位置
の設定,データ有効フラグのオフなどのバッファブロッ
ク情報42の初期化を行い,ステップ807で割り当て
可能ブロック数を減らす。
【0043】ステップ808により,割り当て可能ブロ
ック数が割り当て可能ブロック下限値より小さくなった
かどうかを判定し,小さくなければステップ813へ進
む。割り当て可能ブロック下限値より小さければ,ステ
ップ809により,フリーリスト40を探索し,ダーテ
ィフラグがオンになっているブロックの内容をディスク
へ書き戻し,そのブロックを割り当て可能状態にして,
割り当て可能ブロック数を増やす。その後,ステップ8
13へ進む。
【0044】ステップ803の判定で,該当バッファブ
ロック情報42が見つかった場合,ステップ810によ
り,そのバッファブロック情報42がフリーリスト40
中かどうかを判定する。フリーリスト40中であれば,
ステップ811によりそのバッファブロック情報42を
フリーリスト40から外す。
【0045】次に,ステップ812により,そのバッフ
ァブロック情報42におけるデータ有効フラグをオンに
して,ステップ813へ進む。ステップ813では,獲
得したブロックのバッファブロック情報42を出力情報
として,呼び出し元のファイル管理処理部31へ復帰す
る。
【0046】図9は,本発明の実施例によるバッファブ
ロック解放処理フローチャートである。図2に示すバッ
ファブロック解放処理部17は,ファイル管理処理部3
1から呼び出され,獲得したバッファブロックの解放処
理を行う。入力パラメータは,解放するブロックの存在
するパーティションを指定するパーティションID,バ
ッファブロック情報,スワップインフラグである(図9
のステップ90)。スワップインフラグは,スワップイ
ンが行われたバッファブロックを解放する場合にオン,
その他の場合にはオフに設定されるフラグである。
【0047】バッファブロック解放処理部17は,まず
ステップ91により,該当パーティションのフリーリス
ト40に,解放するブロックのバッファブロック情報4
2を入れる。次にステップ92により,スワップインフ
ラグがオンかオフかを判定し,スワップインフラグがオ
ンの場合,すなわちスワップイン時のブロック解放の場
合には,ステップ93によってダーティフラグをオフに
する。
【0048】ステップ94では,ダーティフラグのオン
/オフを判定し,ダーティフラグがオフであれば割り当
て可能ブロック数を増やす。その後,ステップ96で呼
び出し元のファイル管理処理部31へ復帰する。
【0049】図10は,本発明の実施例によるスワップ
処理フローチャートである。図2に示すファイル管理処
理部31または図示省略したスワップ制御の処理手段に
よって,図10(A)に示すスワップアウト処理および
図10(B)に示すスワップイン処理によるジョブのス
ワップ制御が行われる。
【0050】スワップアウトでは,まずステップ101
により,システムデータ用バッファ領域18Sのパーテ
ィションIDと,スワップファイルのファイルIDと,
ファイル内位置とを指定して,バッファブロック獲得処
理部16を呼び出し,スワップファイル用ブロックを獲
得する。次に,ステップ102により,獲得したバッフ
ァブロックにスワップアウトするジョブのコンテキスト
50を書き込み,ステップ103によって,そのブロッ
クのバッファブロック情報42におけるダーティフラグ
をオンにする。
【0051】次に,ステップ104により,スワップイ
ンフラグをオフにし,ステップ105により,パーティ
ションIDとバッファブロック情報とスワップインフラ
グとを引数として,バッファブロック解放処理部17を
呼び出す。バッファブロック解放処理部17から制御が
戻ったならば,ステップ106により,全コンテキスト
50のスワップアウトが終了したかどうかを判定し,未
処理部分があれば,ステップ101へ戻って,次のブロ
ックについて同様に処理を繰り返す。全コンテキスト5
0について終了したならば,スワップアウトの処理を終
了する。
【0052】スワップインでは,まずステップ111に
より,システムデータ用バッファ領域18Sのパーティ
ションIDと,スワップファイルのファイルIDと,ス
ワップイン対象のファイル内位置とを指定して,バッフ
ァブロック獲得処理部16を呼び出す。バッファブロッ
クを獲得したならば,ステップ112により,そのバッ
ファブロック情報42を参照し,データ有効フラグのオ
ン/オフを判定する。データ有効フラグがオンであれ
ば,ステップ114へ進む。
【0053】データ有効フラグがオフであれば,ステッ
プ113により,獲得したブロックにディスク上のスワ
ップファイルから該当コンテキスト50を読み出す。ス
テップ114では,バッファブロックの内容をジョブ領
域へ複写し,コンテキスト50の復元を行う。その後,
ステップ115により,スワップインフラグをオンに
し,ステップ116により,パーティションIDとバッ
ファブロック情報とスワップインフラグとを引数とし
て,バッファブロック解放処理部17を呼び出す。バッ
ファブロック解放処理部17から制御が戻ったならば,
ステップ117により,全コンテキスト50のスワップ
インが終了したかどうかを判定し,未処理部分があれ
ば,ステップ111へ戻って,次のブロックについて同
様に処理を繰り返す。全コンテキスト50について終了
したならば,スワップインの処理を終了する。
【0054】
【発明の効果】以上説明したように,本発明によれば,
各入出力の用途に適合した用途別のバッファ管理を行う
ことが可能となり,システム全体の性能向上に寄与する
ところが大きい。特に,例えば数十台〜数千台というよ
うな多数の処理装置から構成される並列計算機システム
等においては,各処理装置において限られたバッファ領
域を効率よく管理し利用する技術が必要とされ,本発明
によれば,このようなシステムにおいてバッファを利用
した入出力処理の高速化と,バッファ領域の有効利用を
実現することが可能になる。
【図面の簡単な説明】
【図1】本発明の構成例を示す図である。
【図2】本発明の実施例におけるファイルシステムの構
成例説明図である。
【図3】本発明の実施例におけるバッファ領域の分割説
明図である。
【図4】本発明の実施例におけるバッファブロックの管
理情報説明図である。
【図5】本発明の実施例におけるスワップ制御説明図で
ある。
【図6】本発明の実施例におけるスワップ中のブロック
の状態遷移を示す図である。
【図7】本発明の実施例によるバッファ領域初期化処理
フローチャートである。
【図8】本発明の実施例によるバッファブロック獲得処
理フローチャートである。
【図9】本発明の実施例によるバッファブロック解放処
理フローチャートである。
【図10】本発明の実施例によるスワップ処理フローチ
ャートである。
【符号の説明】
10 処理装置 11 ファイルシステム 12 ブロックサイズ指定手段 13 下限値指定手段 14 バッファ管理処理部 15 バッファ領域初期化処理部 16 バッファブロック獲得処理部 17 バッファブロック解放処理部 18 バッファ領域 19 バッファ管理情報部 20 二次記憶装置

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置,主記憶装置および二次記
    憶装置を備えた計算機システムにおけるファイルシステ
    ムにおいて,ファイル入出力用のバッファ領域(18)と,
    そのバッファ領域(18)を,少なくともシステムデータ用
    バッファ領域(18S) およびユーザデータ用バッファ領域
    (18U) の用途を含む複数の用途別の領域に分割し,それ
    ぞれの領域を独立して管理し,要求されたバッファの獲
    得および解放を制御するバッファ管理処理部(14)とを備
    えたことを特徴とするファイルシステム。
  2. 【請求項2】 請求項1記載のファイルシステムにおい
    て,前記用途別に分割したバッファ領域(18S,18U) 毎
    に,バッファの管理単位であるブロックのサイズを指定
    するブロックサイズ指定手段(12)を備え,前記バッファ
    管理処理部(14)は,前記分割したバッファ領域(18S,18
    U) 毎にあらかじめ指定されたブロックサイズによって
    領域を管理し,そのブロックサイズを単位としたバッフ
    ァの獲得および解放を制御するように構成されたことを
    特徴とするファイルシステム。
  3. 【請求項3】 請求項1記載のファイルシステムにおい
    て,前記バッファ管理処理部(14)は,バッファ領域内に
    存在する割り当て可能なブロックの数が所定値を下回る
    と,使用中のブロックを割り当て可能な状態に変更し,
    割り当て可能なブロックの数を所定値以上確保するよう
    に構成されたことを特徴とするファイルシステム。
  4. 【請求項4】 請求項1記載のファイルシステムにおい
    て,前記用途別に分割したバッファ領域(18S,18U) 毎
    に,バッファの管理単位であるブロックについて,それ
    ぞれのバッファ領域内に存在する割り当て可能なブロッ
    クの数の下限値を指定する下限値指定手段(13)を備え,
    前記バッファ管理処理部(14)は,バッファ領域内に存在
    する割り当て可能なブロックの数が前記分割したバッフ
    ァ領域(18S,18U) 毎にあらかじめ指定された割り当て可
    能ブロック下限値を下回ると,使用中のブロックを割り
    当て可能な状態に変更し,割り当て可能なブロックの数
    を割り当て可能ブロック下限値以上確保するように構成
    されたことを特徴とするファイルシステム。
  5. 【請求項5】 中央処理装置,主記憶装置および二次記
    憶装置を備えた計算機システムにおけるファイルシステ
    ムにおいて,ファイル入出力用のバッファ領域(18)と,
    前記バッファ領域(18)からバッファブロックをスワップ
    領域用に獲得してスワップアウトをした際に,そのブロ
    ックを管理する情報に,ブロックの内容が二次記憶装置
    に未書き込みであることを示すダーティ表示を設定して
    そのブロックを解放し,スワップインのためにバッファ
    ブロックを獲得した際には,スワップイン後に前記ダー
    ティ表示を解除してそのブロックを解放するスワップ制
    御手段と,前記バッファ領域(18)を管理し,バッファ領
    域内に存在する割り当て可能なブロックの数があらかじ
    め指定された割り当て可能ブロック下限値を下回った場
    合に,前記ダーティ表示が設定されているブロックの内
    容を二次記憶装置に書き戻すことにより,割り当て可能
    なブロックの数を割り当て可能ブロック下限値以上確保
    するバッファ管理処理部(14)とを備えたことを特徴とす
    るファイルシステム。
JP31783293A 1993-12-17 1993-12-17 ファイルシステム Withdrawn JPH07175698A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP31783293A JPH07175698A (ja) 1993-12-17 1993-12-17 ファイルシステム
US09/019,042 US5983293A (en) 1993-12-17 1998-02-05 File system for dividing buffer areas into different block sizes for system and user data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31783293A JPH07175698A (ja) 1993-12-17 1993-12-17 ファイルシステム

Publications (1)

Publication Number Publication Date
JPH07175698A true JPH07175698A (ja) 1995-07-14

Family

ID=18092551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31783293A Withdrawn JPH07175698A (ja) 1993-12-17 1993-12-17 ファイルシステム

Country Status (2)

Country Link
US (1) US5983293A (ja)
JP (1) JPH07175698A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2005008499A1 (ja) * 2003-07-16 2006-09-07 松下電器産業株式会社 情報記録媒体におけるデータ領域管理方法、及びデータ領域管理方法を用いた情報処理装置
US7272676B2 (en) 2003-05-20 2007-09-18 Seiko Epson Corporation Data transmission controller that restarts data transmission when reconstruction is completed
JP2008065779A (ja) * 2006-09-11 2008-03-21 Sony Corp 情報処理装置および情報処理方法、プログラム、並びに、プログラム格納媒体
JP2013167942A (ja) * 2012-02-14 2013-08-29 Nec Corp 分散ファイルアクセス装置、分散ファイルアクセスシステム、分散ファイルアクセス方法、及び、分散ファイルアクセスプログラム

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815677A (en) * 1996-12-31 1998-09-29 Compaq Computer Corporation Buffer reservation method for a bus bridge system
US6112267A (en) * 1998-05-28 2000-08-29 Digital Equipment Corporation Hierarchical ring buffers for buffering data between processor and I/O device permitting data writes by processor and data reads by I/O device simultaneously directed at different buffers at different levels
US6370619B1 (en) * 1998-06-22 2002-04-09 Oracle Corporation Managing partitioned cache
US6216182B1 (en) * 1998-07-30 2001-04-10 Fore Systems, Inc. Method and apparatus for serving data with adaptable interrupts
US6317415B1 (en) 1998-09-28 2001-11-13 Raytheon Company Method and system for communicating information in a network
US6374314B1 (en) * 1998-09-28 2002-04-16 Raytheon Company Method for managing storage of data by storing buffer pointers of data comprising a sequence of frames in a memory location different from a memory location for pointers of data not comprising a sequence of frames
US6266702B1 (en) 1998-09-28 2001-07-24 Raytheon Company Method and apparatus to insert and extract data from a plurality of slots of data frames by using access table to identify network nodes and their slots for insertion and extraction data
US6381647B1 (en) 1998-09-28 2002-04-30 Raytheon Company Method and system for scheduling network communication
US6330626B1 (en) * 1999-05-05 2001-12-11 Qlogic Corporation Systems and methods for a disk controller memory architecture
US6401149B1 (en) * 1999-05-05 2002-06-04 Qlogic Corporation Methods for context switching within a disk controller
US7222129B2 (en) * 2002-03-29 2007-05-22 Canon Kabushiki Kaisha Database retrieval apparatus, retrieval method, storage medium, and program
US20040066085A1 (en) * 2002-10-05 2004-04-08 Jason Schiers One-piece composite rim
US7406579B2 (en) * 2002-12-17 2008-07-29 International Business Machines Corporation Selectively changeable line width memory
WO2004061675A1 (en) * 2002-12-17 2004-07-22 International Business Machines Corporation Selectively changeable line width memory
US20040131055A1 (en) * 2003-01-06 2004-07-08 Juan-Carlos Calderon Memory management free pointer pool
US7007114B1 (en) 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7219182B2 (en) 2003-03-10 2007-05-15 Marvell International Ltd. Method and system for using an external bus controller in embedded disk controllers
US7870346B2 (en) 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7139150B2 (en) 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US8166217B2 (en) 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
US7757009B2 (en) 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US8032674B2 (en) 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US9201599B2 (en) 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7609468B2 (en) 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7873683B2 (en) * 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
KR100735235B1 (ko) * 2005-10-12 2007-07-03 삼성전자주식회사 지상파 dmb 단말 장치에서 pip 기능을 이용한 이종서비스 제공 방법
US7599972B2 (en) 2006-08-25 2009-10-06 Qnx Software Systems Gmbh & Co. Kg File system having variable logical storage block size
US7908276B2 (en) 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US9304804B2 (en) * 2013-10-14 2016-04-05 Vmware, Inc. Replicating virtual machines across different virtualization platforms
JP6221702B2 (ja) * 2013-12-05 2017-11-01 富士通株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1441816A (en) * 1973-07-18 1976-07-07 Int Computers Ltd Electronic digital data processing systems
US4315312A (en) * 1979-12-19 1982-02-09 Ncr Corporation Cache memory having a variable data block size
JPS61190638A (ja) * 1985-02-20 1986-08-25 Hitachi Ltd 仮想計算機のフアイル制御方式
US4933835A (en) * 1985-02-22 1990-06-12 Intergraph Corporation Apparatus for maintaining consistency of a cache memory with a primary memory
US5095424A (en) * 1986-10-17 1992-03-10 Amdahl Corporation Computer system architecture implementing split instruction and operand cache line-pair-state management
JPH0714164B2 (ja) * 1987-02-19 1995-02-15 富士通株式会社 ヘッダ駆動パケット交換機
US4989134A (en) * 1987-03-20 1991-01-29 Hewlett-Packard Company Method and apparatus for enhancing data storage efficiency
US5237682A (en) * 1987-10-19 1993-08-17 International Business Machines Corporation File management system for a computer
US5077658A (en) * 1987-10-19 1991-12-31 International Business Machines Corporation Data access system for a file access processor
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
GB8829919D0 (en) * 1988-12-22 1989-02-15 Int Computer Limited File system
JP3453757B2 (ja) * 1989-05-29 2003-10-06 株式会社日立製作所 バッファ管理方法
US5247616A (en) * 1989-10-23 1993-09-21 International Business Machines Corporation Computer system having different communications facilities and data transfer processes between different computers
US5493668A (en) * 1990-12-14 1996-02-20 International Business Machines Corporation Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
US5483641A (en) * 1991-12-17 1996-01-09 Dell Usa, L.P. System for scheduling readahead operations if new request is within a proximity of N last read requests wherein N is dependent on independent activities
US5553307A (en) * 1992-04-17 1996-09-03 Hitachi, Ltd. Method and device for transferring noncontiguous blocks in one transfer start by creating bit-map indicating which block is to be transferred
US5381528A (en) * 1992-10-15 1995-01-10 Maxtor Corporation Demand allocation of read/write buffer partitions favoring sequential read cache
JP3445304B2 (ja) * 1993-03-29 2003-09-08 株式会社東芝 ファイル管理装置
US5577226A (en) * 1994-05-06 1996-11-19 Eec Systems, Inc. Method and system for coherently caching I/O devices across a network
US5680573A (en) * 1994-07-12 1997-10-21 Sybase, Inc. Method of buffering data objects in a database
US5581736A (en) * 1994-07-18 1996-12-03 Microsoft Corporation Method and system for dynamically sharing RAM between virtual memory and disk cache

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272676B2 (en) 2003-05-20 2007-09-18 Seiko Epson Corporation Data transmission controller that restarts data transmission when reconstruction is completed
JPWO2005008499A1 (ja) * 2003-07-16 2006-09-07 松下電器産業株式会社 情報記録媒体におけるデータ領域管理方法、及びデータ領域管理方法を用いた情報処理装置
JP4551328B2 (ja) * 2003-07-16 2010-09-29 パナソニック株式会社 情報記録媒体におけるデータ領域管理方法、及びデータ領域管理方法を用いた情報処理装置
US7840749B2 (en) 2003-07-16 2010-11-23 Panasonic Corporation Data area managing method in information recording medium and information processor employing data area managing
US8069306B2 (en) 2003-07-16 2011-11-29 Panasonic Corporation Data area managing method in information recording medium and information processor employing data area managing method
JP2008065779A (ja) * 2006-09-11 2008-03-21 Sony Corp 情報処理装置および情報処理方法、プログラム、並びに、プログラム格納媒体
JP2013167942A (ja) * 2012-02-14 2013-08-29 Nec Corp 分散ファイルアクセス装置、分散ファイルアクセスシステム、分散ファイルアクセス方法、及び、分散ファイルアクセスプログラム

Also Published As

Publication number Publication date
US5983293A (en) 1999-11-09

Similar Documents

Publication Publication Date Title
JPH07175698A (ja) ファイルシステム
US5159678A (en) Method for efficient non-virtual main memory management
US6681239B1 (en) Computer system having shared address space among multiple virtual address spaces
US20010011338A1 (en) System method and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system
KR960703480A (ko) 데이타 저장 처리 장치(Information memory processor
JPH08129457A (ja) 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置
JPH06250928A (ja) 情報処理装置
US5526519A (en) Memory management technique for efficient execution of procedures in objects
US20060047874A1 (en) Resource management apparatus
US5678024A (en) Method and system for dynamic performance resource management within a computer based system
US20050268031A1 (en) Method for controlling cache memory of storage device
CN111125070A (zh) 一种数据交换方法及平台
JPH1195934A (ja) 情報処理システムの制御方法
JPH0115899B2 (ja)
JPH04219836A (ja) ブロック管理方式
JP3022829B2 (ja) 記憶装置の自動割り当て装置
JPH06266619A (ja) ページ退避/復元装置
JPH0869399A (ja) ファイル管理装置
JP2787107B2 (ja) バッファ制御方式及び装置
JP2539419B2 (ja) 補助記憶装置の選択方法
JPH0667954A (ja) ファイルアクセス方式
JPH02304615A (ja) 並列ディスク制御バッファの割当て方式
JPH07230358A (ja) 多重化ボリューム装置
JPS62160545A (ja) 直接アクセス記憶装置の未使用領域管理方式
Fischler et al. Variable topology random access memory organizations

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010306