JPH0465413B2 - - Google Patents

Info

Publication number
JPH0465413B2
JPH0465413B2 JP58027625A JP2762583A JPH0465413B2 JP H0465413 B2 JPH0465413 B2 JP H0465413B2 JP 58027625 A JP58027625 A JP 58027625A JP 2762583 A JP2762583 A JP 2762583A JP H0465413 B2 JPH0465413 B2 JP H0465413B2
Authority
JP
Japan
Prior art keywords
directory
file
label
update process
storage device
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 - Lifetime
Application number
JP58027625A
Other languages
English (en)
Other versions
JPS59154560A (ja
Inventor
Toshuki Kuwana
Hideki Sato
Tooru Sakaihara
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP58027625A priority Critical patent/JPS59154560A/ja
Publication of JPS59154560A publication Critical patent/JPS59154560A/ja
Publication of JPH0465413B2 publication Critical patent/JPH0465413B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、補助記憶装置を有する電子計算機に
よるフアイル管理方法に係り、特に、フアイル管
理情報破壊時に、フアイル管理情報を修復する方
法に関する。
〔従来技術〕
第1図に、従来のフアイル管理システムの概要
を示す。1は磁気デイスク装置(以下、デイスク
と略す)等のランダムアクセス可能な補助記憶装
置であり、3は41及び42等のフアイルを作成
する領域であるフアイルエリア、2はフアイルを
管理する情報を記憶する領域で、通常デイレクト
リと呼ばれる。51〜57はフアイルを管理する
テーブルで通常フアイルラベルと呼ばれ、フアイ
ルの名称、物理的な位置、編成法、及び、レコー
ド長等のフアイルの属性情報を記憶している。6
はフアイル名称からそのフアイルのフアイルラベ
ルの位置を高速で求めるためのテーブル、7はフ
アイルを作成するエリア3の空き管理を行なうテ
ーブル、8はラベル51〜57の空き管理を行な
うテーブルであり、以下6をラベル・インデツク
ス、7を空きエリア管理テーブル、8を空きラベ
ル管理テーブルと呼ぶ。
フアイル管理システムは、デイレクトリ2を用
いて、補助記憶装置1上のフアイルを一元的に管
理し、フアイルの物理的な所在をユーザプログラ
ムに意識させず、フアイル名称によつて所定のフ
アイルに対する操作を可能とすることを目的とす
るシステムプログラムであり、フアイル管理シス
テムが、フアイルの定義、削除処理等を実行する
場合には、デイレクトリ2内の複数の情報を更新
する必要がある。
一例として、第2図に、フアイル管理システム
がフアイルを定義する処理の手順を示す。201
〜204で、デイレクトリ2内の空きエリア管理
テーブル7、空きラベル管理テーブル8、ラベ
ル・インデツクス6、フアイルラベル51〜57
に対する一連の更新処理が行なわれる。
このように、フアイル管理システムでは、デイ
レクトリ内の複数の管理情報に対して更新処理を
行なうため、次の問題点があつた。
() 複数の管理情報の更新処理の中途におい
て、処理装置、又は補助記憶装置に障害が発生
した場合、デイレクトリ2内のテーブルの情報
の更新処理は中断され、その結果、デイレクト
リ2内の管理情報間の整合性がくずれる。
() ラベル・インデツクスに、Tree構造の
索引機構を用いる等、管理テーブルに複雑な機
構を適用した場合には、各管理テーブルの更新
処理が、複数回の補助記憶装置に対する読み書
きを必要とし、複数回の補助記憶装置への読み
書きの途中で、処理装置、又は補助記憶装置の
障害により、処理中断された場合には、その管
理情報が破壊される。
このようなデイレクトリの障害に対する対策と
して、定期的に、補助記憶装置の全内容をM/T
(Magnetic Tape)等に退避させ、障害時には
M/Tからデイスクに復帰する方法等が考案され
ているが、デイスク装置等の補助記憶装置の他
に、M/T等の別の補助記憶装置が必要なこと、
多量のデータの退避、回復に多大な時間を要する
等の問題があつた。
〔発明の目的〕
本発明の目的は、フアイル管理システムにおい
て、デイレクトリの整合性を高速に回復する方法
を提供するにある。
〔発明の実施例〕
以下、本発明の実施例を、第3図ないし第9図
により説明する。
本発明の全体の構成を第3図に示す。
51〜57はフアイルラベルであり、フアイル
1つに対して、1つ作成され、空きラベルを識別
可能とするため、空きラベルの全フイールドは、
ゼロ(0)となつている。
6はフアイル名からフアイルラベルのアドレス
を高速に求める機能を持つたテーブルであり、
B+−Treeにより構成される。
7は、空きエリア管理BMであり、フアイルエ
リア3を固定長のブロツクに分割し、各ブロツク
がフアイルとして使用中か否かを、1ビツトの情
報で表現して管理し、フアイルエリア3内に、新
たにフアイルを割当てる場合に、空きブロツクの
高速なサーチを可能とするテーブルである。
8は、ラベルBMであり、フアイルラベルが使
用中か否かの情報を1ビツトの情報で表現し、フ
アイル作成時に、未使用フアイルラベルを割り当
てる場合に、未使用フアイルラベルの高速なサー
チを可能とする管理テーブルである。
21は、DSCB1(Data Set Control block
1)と呼ばれる管理テーブルであり、デイレクト
リ内の各管理テーブルの物理アドレス、サイズ、
その他属性等を記憶するテーブルである。
第3図の9は主記憶装置、91は主記憶装置の
システム領域、92はユーザプログラム領域であ
る。
10はフアイル管理システムのプログラムであ
り、11はフアイルの定義処理を行なう
DEFINEプログラム、12はフアイルの削除処
理を行なうDELETEプログラム、13はフアイ
ル使用開始に先立つてフアイルレベルを主記憶に
読み込む機能をもつたOPENプログラム、17は
デイレクトリの不整合な状態を修復するデイレク
トリ回復プログラムである。
14は、フアイル管理プログラムで、デイレク
トリの管理情報更新処理が、同時に複数行なわれ
た場合に、それを計数するフイールドであり、
DRCNTと呼ぶ。
15及び16はユーザプログラムである。
第4図はフアイルラベルの詳細を示す。フアイ
ルラベルは、フアイル一つに対して、一つ作成さ
れ、その中に、フアイル名301、フアイル編成
法を示すフアイル種別302、フアイルを構成す
る物理的に連続した補助記憶領域(これを以下、
エクステントと呼ぶ)の物理アドレス情報(エク
ステントアドレス及びエクステントサイズ303
〜306)、フアイルのレコード長307、フア
イルの所有者308等の属性情報を含む。
先に述べたように、未使用のラベルは上記全フ
イールドをゼロとすることにより、未使用ラベル
か否かの識別を可能としている。
第5図に、DSCB1の詳細を示す。DSCB1
は、フアイルエリアの先頭アドレス401及びサ
イズ402、ラベルを格納するエリアの先頭アド
レス403及びサイズ404、ラベル・インデツ
クスの先頭アドレス405及びサイズ406、ラ
ベルBMの先頭アドレス407及びサイズ40
8、空きエリア管理BMの先頭アドレス409及
びサイズ410、処理中表示子411等から構成
される。処理中表示子は、1ビツトのフイールド
であり、ビツト1は、フアイル管理システムがデ
イレクトリ内のフアイル管理テーブルを更新中で
あることを、ビツト0は、フアイル管理システム
がデイレクトリ内のフアイル管理テーブルを更新
していないことを示す。
このように、フアイルラベルには、他のフアイ
ル管理用のテーブルである、ラベル・インデツク
ス6、空きエリア管理BM7、ラベルBM8の再
構成に必要な情報が記憶されている。
このため、ラベルBM8は次のようにして回復
可能である。フアイルラベルの先頭アドレスを
DSCB1 21から求め、フアイルラベルを順次
読みだし、フアイルラベル上のフアイル名のフイ
ールド301に0が設定されているかをチエツク
し、0ならば未使用、0でなければ使用中である
と判定し、これをラベル最大個数406フイール
ドで指定された個数のフアイルラベルについて繰
り返す。結果を、ラベルBM8に設定すれば良
い。
同じく、空きエリア管理BM7は、フアイルラ
ベルを順次読みだし、フアイルラベル上のエクス
テントアドレス303,305とエクステントサ
イズ304,306を参照することにより、フア
イルエリア3の使用状況を知ることができ、この
結果を反映させることにより、回復可能である。
ラベル・インデツクス6は、フアイルラベルを
順次読みだし、有効なフアイル名である場合に
は、ラベル・インデツクス6に登録、すなわち、
フアイル名と該当フアイルラベルのアドレスを登
録してゆけば、回復可能である。
デイレクトリ2内の情報の破壊の検出法につい
て、以下説明する。
主記憶システム領域上のDRCNT14は、フア
イル管理プログラムにおいて、デイレクトリの管
理テーブル更新処理が同時に複数回行なわれた場
合に、それを計数するフイールドであり、CPU
立ち上げ時に主記憶が初期化された時点では、そ
の値はゼロである。
フアイル管理システムにおいて、デイレクトリ
2内のフアイル管理用のテーブルを更新する場合
には、その処理開始時にDRCNT14に1を加
え、1を加える前のDRCNT14の値が0の場合
にのみ、DSCB1の処理中表示子411に1をセ
ツトする。デイレクトリ内のフアイル管理テーブ
ルの更新処理が終了した時点には、DRCNT14
に−1を加え、加えた後のDRCNT14がゼロの
場合にのみ、DSCB1の処理中表示子411を0
とする。又、管理テーブル更新処理途中で補助記
憶装置1やCPUに障害が発生した場合には
DRCNTに−1を加え、処理を終了する。
このため、デイレクトリ2の更新処理が正常に
終了したならば、DRCNT14が0の場合、必
ず、処理中表示子411は0になつている。な
お、DRCNT14が0でない場合は、デイレクト
リ2の更新処理中の他のタスクが存在することを
意味し、更新処理が正常に進行すれば、いずれ、
DRCNT14、処理中表示子411はともに0と
なる。
もしも、DRCNT14が0で、処理中表示子4
11が1の場合は、デイレクトリ2の更新処理が
正常に終了しなかつたことを意味している。
そこで、DRCNT14が0の時の処理中表示子
411の値により、デイレクトリ2が正常か、異
常かを判定することとする。
この判定法では、複数のタスクがデイレクトリ
2の更新処理を同時に実行していて、1つのタス
クの更新処理で異常が発生した場合に、残りのタ
スクの処理も異常終了するまでは、デイレクトリ
2の異常を検出できないが、更新処理は通常短時
間に完了するので、長時間異常を検出できないこ
とはない。
さらに、残りのタスクの更新処理が正常に終了
してしまつた場合、このタスクが終了時に処理中
表示子411を0クリアしてしまうことも考えら
れるが、次にデイレクトリ2をアクセスする時に
異常が発生する可能性が高く、ここで異常を検出
することができる。
1つのタスクで異常が発生した場合、大半のケ
ースでは残りのタスクも異常終了すると考えられ
る。もし、異常検出が僅かに遅れても問題になる
場合は、デイレクトリ2が異常であることを示す
フラグを設け、デイレクトリ更新中に異常が発生
した場合には、直に、このフラグに表示し、デイ
レクトリ2をアクセスする度に、このフラグを判
定するようにすれば良い。
このようにして、デイレクトリ2の更新処理が
なんらかの障害により中断されることにより発生
するデイレクトリの不整合状態を検出することが
できる。
第6図に、DEFINEプログラムのフローチヤ
ートを示す。
601では、先に述べたように、DRCNT及び
DSCB1の処理中表示子によつて、デイレクトリ
情報が不整合か否かを判定し、不整合の場合に
は、602でフアイルラベルをもとに、デイレク
トリの再構成を行う。DEFINEプログラムでは、
空きエリア管理BMの更新604、ラベルBMの
更新605、ラベル・インデツクスの更新60
6、フアイルラベルの作成607等、複数のデイ
レクトリ更新が行なわれるが、一連の処理604
〜607の前後で、処理中表示子のセツト、リセ
ツトを行なう。
第7図は、DELETEプログラムのフローチヤ
ートを示す。
本プログラムでも、DEFINEプログラムと同
様に、704〜707の一連のデイレクトリの更
新処理の前後で、処理中表示子のセツト、リセツ
トを行なう。
第8図に、OPENプログラムのフローチヤート
を示す。
本プログラムでは、801でデイレクトリが不
整合か否かの判定を行ない、不整合時には、80
2においてデイレクトリの再構成を行ない、続く
803,804において、デイレクトリの管理テ
ーブルを参照、処理すべきフアイルのラベルを主
記憶上に読み込む。
第9図に、デイレクトリの再構成の処理手順を
フローチヤートとして示す。
本プログラムは、フアイル管理システムにおい
て、デイレクトリの不整合を検出した時に、オペ
レータを介して起動されるユーテイリテイ・プロ
グラム、又は、フアイル管理プログラムから直接
接続されるプログラムの双方の形態で実現可能で
あるが、ここでは、フアイル管理システムから直
接接続されるプログラムとして説明を行なう。
901から903では、デイレクトリ2内の管
理テーブルである空きエリア管理BM7、ラベル
BM8、ラベルインデツクス6を空きの状態とす
る。904では、DSCB1 21に記憶されてい
るアドレス情報を用いて、フアイルラベル1を1
つ読みだす。905では、読みだしたフアイルラ
ベル上のフアイル名301より、このラベルが使
用中か否かを判定する。使用中なら、906の処
理へ進む。未使用ならば、904に戻る。906
では、そのフアイルラベルを使用中としてラベル
BM8に表示する。907では、先に述べたよう
にフアイルラベルを参照して、占有しているフア
イルエリアを空きエリア管理MB7に、使用済み
として表示する。908では、フアイルラベルを
参照し、フアイル名とこれに該当するフアイルラ
ベルのアドレスをラベルインデツクス6に登録す
る。909にてDSCB1 21に記憶されている
フアイルラベルの最大数404を参照して、全て
のフアイルラベルの処理を終了したかを判定す
る。未終了なら、904へ戻り、904から90
8の一連の処理を繰り返す。終了なら910に進
み、DSCB1 21上の処理中表示子411をリ
セツトする。このようにして、DSCB1 21と
フアイルラベルの情報から、デイレクトリ2の情
報を整合のとれた状態に戻すことが可能となる。
〔発明の効果〕
本発明によれば、フアイル管理システムが、デ
イレクトリの不整合を検出し、デイレクトリの再
構成を高速に行なうことができる。
【図面の簡単な説明】
第1図は従来のフアイル管理システムの制御方
式を示す図、第2図は従来のフアイル管理システ
ムにおけるフアイル作成手順を示す図、第3図は
本発明のフアイル管理方式の主記憶及び補助記憶
装置上の管理テーブルを示す図、第4図はフアイ
ルラベルの構成図、第5図はDSCB1の構成図、
第6図はDEFINEプログラムのフローチヤート、
第7図はDELETEプログラムのフローチヤート、
第8図はOPENプログラムのフローチヤート、第
9図はデイレクトリ再構成処理のフローチヤート
である。 1……補助記憶装置、3……フアイルエリア、
51〜57……フアイルラベル、9……主記憶装
置。

Claims (1)

  1. 【特許請求の範囲】 1 演算処理装置、揮発性の主記憶装置、不揮発
    性のランダムアクセス可能な補助記憶装置をもつ
    電子計算機システムのフアイル管理方法におい
    て、 フアイルを管理するデイレクトリに、デイレク
    トリ内の各管理テーブルのアドレスおよび大きさ
    を記憶するデイレクトリ管理テーブルと、個々の
    フアイルを管理するフアイルラベルを設け、デイ
    レクトリの更新処理の中断により発生する、デイ
    レクトリ内の補助的なテーブルである補助記憶装
    置の領域の使用状況を管理するテーブル、フアイ
    ルラベルを検索するためのインデツクス、フアイ
    ルラベル領域の空きを管理するテーブルの不整合
    状態を前記デイレクトリ管理テーブルとフアイル
    ラベルの情報に基づいて回復することを特徴とす
    るフアイル管理方法。 2 前記デイレクトリの更新処理の中断の検出
    を、更新処理中を示すフラグを補助記憶装置上を
    設け、更新処理を開始した時に、この旨をフラグ
    に表示し、正常に更新処理が終了した時には、こ
    のフラグを戻し、更新処理が異常終了した時は、
    このフラグをそのままに残すようにし、デイレク
    トリの更新処理が行われていない時に、このフラ
    グが処理中であるとの表示がなされていた時、処
    理中断と判定することにより行う特許請求範囲第
    1項記載のフアイル管理方法。 3 デイレクトリをアクセスするフアイル管理プ
    ログラムにて、前記デイレクトリ更新処理の中断
    の検出処理を行い、中断を検出したときは前記方
    法にてデイレクトリ内の補助的なテーブルを回復
    する特許請求範囲第2項記載のフアイル管理方
    法。
JP58027625A 1983-02-23 1983-02-23 フアイル管理方法 Granted JPS59154560A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58027625A JPS59154560A (ja) 1983-02-23 1983-02-23 フアイル管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58027625A JPS59154560A (ja) 1983-02-23 1983-02-23 フアイル管理方法

Publications (2)

Publication Number Publication Date
JPS59154560A JPS59154560A (ja) 1984-09-03
JPH0465413B2 true JPH0465413B2 (ja) 1992-10-20

Family

ID=12226131

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58027625A Granted JPS59154560A (ja) 1983-02-23 1983-02-23 フアイル管理方法

Country Status (1)

Country Link
JP (1) JPS59154560A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62296250A (ja) * 1986-06-17 1987-12-23 Nec Corp 大容量記憶装置のvtoc検査修復方式
JP3112785B2 (ja) * 1993-09-27 2000-11-27 日本電気株式会社 ファイル管理システム

Also Published As

Publication number Publication date
JPS59154560A (ja) 1984-09-03

Similar Documents

Publication Publication Date Title
US5261088A (en) Managing locality in space reuse in a shadow written B-tree via interior node free space list
KR100622801B1 (ko) 파일 시스템 액세스 방법, 파일 시스템 복원 방법, 컴퓨터 판독 가능 기록 매체 및 데이터 처리 시스템
US6311193B1 (en) Computer system
US4961134A (en) Method for minimizing locking and reading in a segmented storage space
EP1918836B1 (en) Apparatus and method for a hardware-based file system
JP4157858B2 (ja) ストレージ・エリア・ネットワーク(san)ファイル・システムの並列高速バックアップ
US6460054B1 (en) System and method for data storage archive bit update after snapshot backup
JP3410899B2 (ja) 多重ボリューム・データ・セットを回復する方法
US20160283501A1 (en) Posix-compatible file system, method of creating a file list and storage device
JP6156517B2 (ja) 書き込み情報記憶装置、方法、及び、プログラム
PL182609B1 (pl) Sposób realizacji dostępu do danych zapamiętanych w systemie komputerowym
US6192376B1 (en) Method and apparatus for shadowing a hierarchical file system index structure to enable error recovery
CN113568582B (zh) 数据管理方法、装置和存储设备
US11841826B2 (en) Embedded reference counts for file clones
US7895164B1 (en) Efficient checkpoint process
CA2100599C (en) Entity-relation database
JP2006277563A (ja) ファイルを指定日時のバージョンに復帰させるためのバックアップ・システム、バックアップ方法および該方法をコンピュータに実行させるためのプログラム
JPH0465413B2 (ja)
JPS62245348A (ja) データベース更新方法
JP2822869B2 (ja) ライブラリファイル管理装置
JPH0462094B2 (ja)
JPS62297948A (ja) デ−タベ−スの障害回復方式
KR100545654B1 (ko) 시스템 시동 후 디스크에 존재하는 파일의 무결점을감지하는 방법
JPS63118931A (ja) デ−タベ−ス管理方式
JPH01276250A (ja) 光デイスクを用いたフアイル履歴管理方式