JPH1074154A - ファイル管理装置 - Google Patents
ファイル管理装置Info
- Publication number
- JPH1074154A JPH1074154A JP8229477A JP22947796A JPH1074154A JP H1074154 A JPH1074154 A JP H1074154A JP 8229477 A JP8229477 A JP 8229477A JP 22947796 A JP22947796 A JP 22947796A JP H1074154 A JPH1074154 A JP H1074154A
- Authority
- JP
- Japan
- Prior art keywords
- file
- file name
- full path
- name
- directory
- 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.)
- Pending
Links
- 238000010586 diagram Methods 0.000 description 6
- 238000007796 conventional method Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000009418 renovation Methods 0.000 description 2
- 235000019227 E-number Nutrition 0.000 description 1
- 239000004243 E-number Substances 0.000 description 1
- 241000718541 Tetragastris balsamifera Species 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】 外的には多層構造を維持しつつも内的にはフ
ラットなファイル管理を行うことにより多層化した場合
のファイルアクセスの効率改善を図る。 【解決手段】 任意の一つのディレクトリに含まれるす
べてのファイル名をフルパス付きで格納するとともにそ
れぞれのファイルの記憶装置内における格納位置の情報
をファイル名に関連付けて格納するテーブルと、入力フ
ァイル名がフルパス付きのときフルパス付きの入力ファ
イル名を用いてテーブルを検索し入力ファイル名の記憶
装置内における格納位置の情報を検索する検索手段とを
備える。ユーザ若しくはプログラムから見える入力ファ
イル名は、階層構造を持つ一般的なファイルシステムと
まったく変わりなく、外的な多層構造を維持でき、しか
も、任意の一つのディレクトリに含まれるすべてのファ
イル名が一つのテーブルで管理されるため、内的にフラ
ットなファイル管理とすることができる。
ラットなファイル管理を行うことにより多層化した場合
のファイルアクセスの効率改善を図る。 【解決手段】 任意の一つのディレクトリに含まれるす
べてのファイル名をフルパス付きで格納するとともにそ
れぞれのファイルの記憶装置内における格納位置の情報
をファイル名に関連付けて格納するテーブルと、入力フ
ァイル名がフルパス付きのときフルパス付きの入力ファ
イル名を用いてテーブルを検索し入力ファイル名の記憶
装置内における格納位置の情報を検索する検索手段とを
備える。ユーザ若しくはプログラムから見える入力ファ
イル名は、階層構造を持つ一般的なファイルシステムと
まったく変わりなく、外的な多層構造を維持でき、しか
も、任意の一つのディレクトリに含まれるすべてのファ
イル名が一つのテーブルで管理されるため、内的にフラ
ットなファイル管理とすることができる。
Description
【0001】
【発明の属する技術分野】本発明は、階層構造の入出力
管理機能(ファイルシステムとも言う)を有するOS
(オペレーティングシステム)に適用できるファイル管
理装置に関する。
管理機能(ファイルシステムとも言う)を有するOS
(オペレーティングシステム)に適用できるファイル管
理装置に関する。
【0002】
【従来の技術】パーソナルコンピュータやワークステー
ションにおけるファイル管理はOSによって行われてお
り、一般に多くのOSでは、多種多様なファイルを種類
や用途ごとに分類して階層的に管理できるようになって
いる。この種のOSの典型例としてUNIXのファイル
管理システムを説明すると、このファイル管理システム
では、ファイル名とその属性(作成日時、更新日時、種
類、アクセス権など)を記入した一覧表へのインデック
スの組からなる表(ディレクトリと言う)を持ち、ディ
レクトリ単位でファイルを管理する。ファイルの種類や
用途に応じた適切な名前のディレクトリを作成すること
により、ファイルの整理や分類を容易化できる。
ションにおけるファイル管理はOSによって行われてお
り、一般に多くのOSでは、多種多様なファイルを種類
や用途ごとに分類して階層的に管理できるようになって
いる。この種のOSの典型例としてUNIXのファイル
管理システムを説明すると、このファイル管理システム
では、ファイル名とその属性(作成日時、更新日時、種
類、アクセス権など)を記入した一覧表へのインデック
スの組からなる表(ディレクトリと言う)を持ち、ディ
レクトリ単位でファイルを管理する。ファイルの種類や
用途に応じた適切な名前のディレクトリを作成すること
により、ファイルの整理や分類を容易化できる。
【0003】ディレクトリは、ファイルシステムを初期
化したときに自動的に作られるルートディレクトリと、
このルートディレクトリの下に任意に作られるサブディ
レクトリとがあり、サブディレクトリを階層化すること
によって、多層のファイルシステムを構築できる。ここ
で、任意のサブディレクトリのファイルを読み出すとき
は、パス名とファイル名を連結した文字列をファイル管
理システムに渡す。パス名とは、ルートディレクトリ
(またはカレントディレクトリ)から該当サブディレク
トリまでのすべてのディレクトリ名を連結した文字列で
あり、特に、ルートディレクトリを含む完全なパス名を
フルパスと言う。
化したときに自動的に作られるルートディレクトリと、
このルートディレクトリの下に任意に作られるサブディ
レクトリとがあり、サブディレクトリを階層化すること
によって、多層のファイルシステムを構築できる。ここ
で、任意のサブディレクトリのファイルを読み出すとき
は、パス名とファイル名を連結した文字列をファイル管
理システムに渡す。パス名とは、ルートディレクトリ
(またはカレントディレクトリ)から該当サブディレク
トリまでのすべてのディレクトリ名を連結した文字列で
あり、特に、ルートディレクトリを含む完全なパス名を
フルパスと言う。
【0004】たとえば、図6に示すファイルシステムの
例では、“first.TXT”という名前のファイル
を“masahiko”という名前のサブディレクトリ
に格納しているが、この“masahiko”はルート
ディレクトリから数えて4階層目のサブディレクトリで
あるから、“first.TXT”のフルパス名は、
“/usr/home/masahiko/”となる。
したがって、“first.TXT”を読み出すときの
ファイルシステムに渡す文字列は、“/usr/hom
e/masahiko/first.TXT”となる。
例では、“first.TXT”という名前のファイル
を“masahiko”という名前のサブディレクトリ
に格納しているが、この“masahiko”はルート
ディレクトリから数えて4階層目のサブディレクトリで
あるから、“first.TXT”のフルパス名は、
“/usr/home/masahiko/”となる。
したがって、“first.TXT”を読み出すときの
ファイルシステムに渡す文字列は、“/usr/hom
e/masahiko/first.TXT”となる。
【0005】なお、パス名の先頭のスラッシュ
(“/”)はルートディレクトリを表わし、それ以外の
スラッシュは、各コンポーネント(“usr”、“ho
me”、“masahiko”)のデリミタすなわち区
切り記号である。ファイル管理システムは、入力された
パス名のルートディレクトリ及び各コンポーネントを手
がかりに各階層のディレクトリを参照し、最終的に、対
象ファイルのファイルシステム内の格納位置情報(UN
IXではinode、MS−OSではFCB)を特定す
る。各々のファイルの格納位置情報は番号によって区別
される。
(“/”)はルートディレクトリを表わし、それ以外の
スラッシュは、各コンポーネント(“usr”、“ho
me”、“masahiko”)のデリミタすなわち区
切り記号である。ファイル管理システムは、入力された
パス名のルートディレクトリ及び各コンポーネントを手
がかりに各階層のディレクトリを参照し、最終的に、対
象ファイルのファイルシステム内の格納位置情報(UN
IXではinode、MS−OSではFCB)を特定す
る。各々のファイルの格納位置情報は番号によって区別
される。
【0006】図6において、楕円の脇に記載した数字は
inode番号を表わしている(ただし、値は便宜
値)。上記の文字列(“/usr/home/masa
hiko/first.TXT”)をファイル管理シス
テムに与えると、ファイル管理システムは、まず、ルー
トディレクトリから“usr”ディレクトリのinod
e番号(“10”)を探し出し、次いで、“usr”デ
ィレクトリから“home”ディレクトリのinode
番号(“123”)を探し出し、次いで、“home”
ディレクトリから“masahiko”ディレクトリの
inode番号(“63”)を探し出し、最後に、“m
asahiko”ディレクトリから対象ファイル(“f
irst.TXT”)のinode番号(“500”)
を探し出すという処理を順次に実行する。
inode番号を表わしている(ただし、値は便宜
値)。上記の文字列(“/usr/home/masa
hiko/first.TXT”)をファイル管理シス
テムに与えると、ファイル管理システムは、まず、ルー
トディレクトリから“usr”ディレクトリのinod
e番号(“10”)を探し出し、次いで、“usr”デ
ィレクトリから“home”ディレクトリのinode
番号(“123”)を探し出し、次いで、“home”
ディレクトリから“masahiko”ディレクトリの
inode番号(“63”)を探し出し、最後に、“m
asahiko”ディレクトリから対象ファイル(“f
irst.TXT”)のinode番号(“500”)
を探し出すという処理を順次に実行する。
【0007】
【発明が解決しようとする課題】しかしながら、かかる
従来のファイル管理装置にあっては、ファイルの種類や
用途に応じた適切な名前のディレクトリを作成すること
により、ファイルの整理や分類を容易化できる点で好都
合であるが、ディレクトリの階層数に比例してディレク
トリの検索回数が増えるため、多層化した場合にファイ
ルアクセスの効率が悪くなるという問題点があった。
従来のファイル管理装置にあっては、ファイルの種類や
用途に応じた適切な名前のディレクトリを作成すること
により、ファイルの整理や分類を容易化できる点で好都
合であるが、ディレクトリの階層数に比例してディレク
トリの検索回数が増えるため、多層化した場合にファイ
ルアクセスの効率が悪くなるという問題点があった。
【0008】そこで、本発明は、外的には多層構造を維
持しつつも内的にはフラットなファイル管理を行うこと
により、多層化した場合のファイルアクセスの効率改善
を図ることを課題とする。
持しつつも内的にはフラットなファイル管理を行うこと
により、多層化した場合のファイルアクセスの効率改善
を図ることを課題とする。
【0009】
【課題を解決するための手段】本発明の上記課題は、任
意の一つのディレクトリに含まれるすべてのファイル名
をフルパス付きで格納するとともにそれぞれのファイル
の記憶装置内における格納位置の情報をファイル名に関
連付けて格納するテーブルと、入力ファイル名がフルパ
ス付きのとき該フルパス付きの入力ファイル名を用いて
前記テーブルを検索し該入力ファイル名の記憶装置内に
おける格納位置の情報を検索する検索手段と、を備える
ことによって達成できる。
意の一つのディレクトリに含まれるすべてのファイル名
をフルパス付きで格納するとともにそれぞれのファイル
の記憶装置内における格納位置の情報をファイル名に関
連付けて格納するテーブルと、入力ファイル名がフルパ
ス付きのとき該フルパス付きの入力ファイル名を用いて
前記テーブルを検索し該入力ファイル名の記憶装置内に
おける格納位置の情報を検索する検索手段と、を備える
ことによって達成できる。
【0010】また、入力ファイル名がフルパス付きでな
いとき該入力ファイル名に前記一つのディレクトリのフ
ルパス名を連結してフルパス付きの入力ファイル名を生
成する生成手段を備えることが望ましい。また、前記テ
ーブルは、検索効率の点でハッシュテーブルであること
が望ましい。これらの手段によれば、ユーザ若しくはプ
ログラムから見える入力ファイル名は、階層構造を持つ
一般的なファイルシステムとまったく変わりなく、外的
な多層構造を維持でき、しかも、任意の一つのディレク
トリに含まれるすべてのファイル名が一つのテーブルで
管理されるため、内的にフラットなファイル管理とする
ことができる。したがって、多層化した場合でも一つの
テーブルを検索すればよいから、ファイルアクセスの効
率を改善できる。
いとき該入力ファイル名に前記一つのディレクトリのフ
ルパス名を連結してフルパス付きの入力ファイル名を生
成する生成手段を備えることが望ましい。また、前記テ
ーブルは、検索効率の点でハッシュテーブルであること
が望ましい。これらの手段によれば、ユーザ若しくはプ
ログラムから見える入力ファイル名は、階層構造を持つ
一般的なファイルシステムとまったく変わりなく、外的
な多層構造を維持でき、しかも、任意の一つのディレク
トリに含まれるすべてのファイル名が一つのテーブルで
管理されるため、内的にフラットなファイル管理とする
ことができる。したがって、多層化した場合でも一つの
テーブルを検索すればよいから、ファイルアクセスの効
率を改善できる。
【0011】
【発明の実施の形態】以下、本発明の実施例を図面に基
づいて説明する。図1〜図3は本発明に係るファイル管
理装置の一実施例を示す図である。なお、本実施例のフ
ァイル管理装置は、パーソナルコンピュータやワークス
テーション等のハードウエアと、そのハードウエア上で
動作するOSやドライバプログラム等のソフトウエアと
の有機的結合によって仮想的に実現されるもので、実体
は存在しない。
づいて説明する。図1〜図3は本発明に係るファイル管
理装置の一実施例を示す図である。なお、本実施例のフ
ァイル管理装置は、パーソナルコンピュータやワークス
テーション等のハードウエアと、そのハードウエア上で
動作するOSやドライバプログラム等のソフトウエアと
の有機的結合によって仮想的に実現されるもので、実体
は存在しない。
【0012】本実施例のファイル管理装置が具備すべき
特徴的な事項は、以下の説明でも明らかになるが、少な
くとも次の三つである。 任意の一つのディレクトリに含まれるすべてのファ
イル名をフルパス付きで格納するとともにそれぞれのフ
ァイルの記憶装置内における格納位置の情報をファイル
名に関連付けて格納するテーブル 入力ファイル名がフルパス付きでないとき、該入力
ファイル名に前記一つのディレクトリのフルパス名を連
結してフルパス付きの入力ファイル名を生成する生成手
段 入力ファイル名がフルパス付きのときは該フルパス
付きの入力ファイル名を用いて、または、入力ファイル
名がフルパス付きでないときは前記生成手段の出力を用
いて前記テーブルを検索し該入力ファイル名の記憶装置
内における格納位置の情報を検索する検索手段 これらの事項は、パーソナルコンピュータやワークステ
ーション等の特長(汎用性や拡張性)を考慮すると、ソ
フトウエアの改修や追加によって実現するのが実際的で
あるが、場合によっては、ハードウエアの改修や追加に
よって実現してもよいことはもちろんである。
特徴的な事項は、以下の説明でも明らかになるが、少な
くとも次の三つである。 任意の一つのディレクトリに含まれるすべてのファ
イル名をフルパス付きで格納するとともにそれぞれのフ
ァイルの記憶装置内における格納位置の情報をファイル
名に関連付けて格納するテーブル 入力ファイル名がフルパス付きでないとき、該入力
ファイル名に前記一つのディレクトリのフルパス名を連
結してフルパス付きの入力ファイル名を生成する生成手
段 入力ファイル名がフルパス付きのときは該フルパス
付きの入力ファイル名を用いて、または、入力ファイル
名がフルパス付きでないときは前記生成手段の出力を用
いて前記テーブルを検索し該入力ファイル名の記憶装置
内における格納位置の情報を検索する検索手段 これらの事項は、パーソナルコンピュータやワークステ
ーション等の特長(汎用性や拡張性)を考慮すると、ソ
フトウエアの改修や追加によって実現するのが実際的で
あるが、場合によっては、ハードウエアの改修や追加に
よって実現してもよいことはもちろんである。
【0013】図1は、上記事項のとを実現するため
のソフトウエアの要部フローチャートである。このフロ
ーチャートにおいて、1は、ユーザによって指定され若
しくはプログラムタスクによって作られたファイル名を
取り込むステップである。このステップで入力されるフ
ァイル名は、(1)パス名を持たないファイル名〔例:
“first.TXT”〕、(2)完全なパス名を持つ
ファイル名〔例:“/usr/home/masahi
ko/first.TXT”〕、(3)不完全なパス名
を持つファイル名………カレントディレクトリを示すコ
ンポーネント(.)や親ディレクトリを示すコンポーネ
ント(..)を含むパス名を持つもの………のいずれか
である。なお、スペルミス等による正しくないファイル
名も存在するが、説明の簡素化のために無視する。
のソフトウエアの要部フローチャートである。このフロ
ーチャートにおいて、1は、ユーザによって指定され若
しくはプログラムタスクによって作られたファイル名を
取り込むステップである。このステップで入力されるフ
ァイル名は、(1)パス名を持たないファイル名〔例:
“first.TXT”〕、(2)完全なパス名を持つ
ファイル名〔例:“/usr/home/masahi
ko/first.TXT”〕、(3)不完全なパス名
を持つファイル名………カレントディレクトリを示すコ
ンポーネント(.)や親ディレクトリを示すコンポーネ
ント(..)を含むパス名を持つもの………のいずれか
である。なお、スペルミス等による正しくないファイル
名も存在するが、説明の簡素化のために無視する。
【0014】2は、入力ファイル名のコンポーネント数
が「1」であるか否かを判定するステップであり、コン
ポーネント数=1の場合は、カレントディレクトリ直下
のファイルを検索することになり、従来どおりのファイ
ルシステムを用いてもファイルアクセスの効率をそれぼ
と低下しないことから、ステップ3で従来どおりの方法
でファイル検索を行うというものである。なお、カレン
トディレクトリ直下のファイル数が多い場合、従来どお
りの手法では効率が悪くなるおそれがあるから、ステッ
プ2にファイル数の判定を加えてもよい。
が「1」であるか否かを判定するステップであり、コン
ポーネント数=1の場合は、カレントディレクトリ直下
のファイルを検索することになり、従来どおりのファイ
ルシステムを用いてもファイルアクセスの効率をそれぼ
と低下しないことから、ステップ3で従来どおりの方法
でファイル検索を行うというものである。なお、カレン
トディレクトリ直下のファイル数が多い場合、従来どお
りの手法では効率が悪くなるおそれがあるから、ステッ
プ2にファイル数の判定を加えてもよい。
【0015】4は、入力されたファイル名がフルパス付
きか否かを判定するステップである。すなわち、完全な
パス名を持つファイル名〔例:“/usr/home/
masahiko/first.TXT”〕であるか否
かを判定するステップである。フルパス付きでない場合
(ステップ4の判定結果がNOの場合)は、入力ファイ
ル名にフルパスを付加してフルパス付きのファイル名を
生成する。5〜7は、そのためのステップである。すな
わち、ステップ5で、入力ファイル名にカレントディレ
クトリのコンポーネント(.)が含まれているか否かを
判定し、含まれている場合には、ステップ6で、そのコ
ンポーネント(.)を取り除き、ステップ7で、カレン
トディレクトリ文字列(便宜的に“/usr/home
/masahiko/”とする)と入力ファイル名(便
宜的に“first.TXT”とする)を連結して、完
全なパス名を持つファイル名(“/usr/home/
masahiko/first.TXT”)を生成す
る。したがって、これらのステップ5〜7は、本実施例
のファイル管理装置の必須の事項の一つである「生成手
段」を具現化したものである。
きか否かを判定するステップである。すなわち、完全な
パス名を持つファイル名〔例:“/usr/home/
masahiko/first.TXT”〕であるか否
かを判定するステップである。フルパス付きでない場合
(ステップ4の判定結果がNOの場合)は、入力ファイ
ル名にフルパスを付加してフルパス付きのファイル名を
生成する。5〜7は、そのためのステップである。すな
わち、ステップ5で、入力ファイル名にカレントディレ
クトリのコンポーネント(.)が含まれているか否かを
判定し、含まれている場合には、ステップ6で、そのコ
ンポーネント(.)を取り除き、ステップ7で、カレン
トディレクトリ文字列(便宜的に“/usr/home
/masahiko/”とする)と入力ファイル名(便
宜的に“first.TXT”とする)を連結して、完
全なパス名を持つファイル名(“/usr/home/
masahiko/first.TXT”)を生成す
る。したがって、これらのステップ5〜7は、本実施例
のファイル管理装置の必須の事項の一つである「生成手
段」を具現化したものである。
【0016】8〜11は、入力されたフルパス付きのフ
ァイル名、または、生成されたフルパス付きのファイル
名に、親ディレクトリのコンポーネント(..)が含ま
れている場合、当該コンポーネントの後ろに続く2文字
で同コンポーネントの文字列を上書きして取り除くステ
ップ(ステップ8、9)、及び、同ファイル名のデリミ
タ(“/”)が連続している場合、単一のデリミタに直
すステップ(ステップ10、11)である。
ァイル名、または、生成されたフルパス付きのファイル
名に、親ディレクトリのコンポーネント(..)が含ま
れている場合、当該コンポーネントの後ろに続く2文字
で同コンポーネントの文字列を上書きして取り除くステ
ップ(ステップ8、9)、及び、同ファイル名のデリミ
タ(“/”)が連続している場合、単一のデリミタに直
すステップ(ステップ10、11)である。
【0017】12〜17は、本実施例のファイル管理装
置の必須の事項の一つである「検索手段」を具現化し
たものであり、ここでは、同装置の必須の事項の一つで
ある「テーブル」をハッシュテーブルとした場合の好
ましい構成を示してある。なお、ハッシュテーブルと
は、サーチの一手法であるハッシュサーチ(hash searc
h)に用いるインデックステーブルに相当するものであ
る。ハッシュサーチでは、実際のキーから作成した疑似
キーをインデックスとし、アクセスはインデックステー
ブルを介して行うため、エントリが多大になっても高速
なダイレクトサーチが可能である。
置の必須の事項の一つである「検索手段」を具現化し
たものであり、ここでは、同装置の必須の事項の一つで
ある「テーブル」をハッシュテーブルとした場合の好
ましい構成を示してある。なお、ハッシュテーブルと
は、サーチの一手法であるハッシュサーチ(hash searc
h)に用いるインデックステーブルに相当するものであ
る。ハッシュサーチでは、実際のキーから作成した疑似
キーをインデックスとし、アクセスはインデックステー
ブルを介して行うため、エントリが多大になっても高速
なダイレクトサーチが可能である。
【0018】12は、ハッシュサーチの疑似キーを発生
するステップである。ここでは、フルパス付きファイル
名の文字列を実際のキーとし、いわゆるハッシュ関数を
使用して実際のキーから疑似キーを発生する。ここで、
Kを実際のキー、Rを疑似キー(ハッシュ値)とする
と、ハッシュ関数は、R=Φ(K)で表わすことができ
る。Kは、フルパス付きファイル名の文字列に固有の値
であれば何でもよい。たとえば、同文字列を構成する各
文字コードの値の積をハッシュテーブルのサイズで割っ
た余りとすると、Rの値がテーブルのサイズに収まるか
ら好ましい。 (以下余白)
するステップである。ここでは、フルパス付きファイル
名の文字列を実際のキーとし、いわゆるハッシュ関数を
使用して実際のキーから疑似キーを発生する。ここで、
Kを実際のキー、Rを疑似キー(ハッシュ値)とする
と、ハッシュ関数は、R=Φ(K)で表わすことができ
る。Kは、フルパス付きファイル名の文字列に固有の値
であれば何でもよい。たとえば、同文字列を構成する各
文字コードの値の積をハッシュテーブルのサイズで割っ
た余りとすると、Rの値がテーブルのサイズに収まるか
ら好ましい。 (以下余白)
【0019】説明の都合上、次の九つのファイル(A〜
I)を考える。 これら九つのファイルのフルパス付きファイル名のハッ
シュ値を、次のとおり仮定する(値はすべて便宜値であ
る)。 (以下余白)
I)を考える。 これら九つのファイルのフルパス付きファイル名のハッ
シュ値を、次のとおり仮定する(値はすべて便宜値であ
る)。 (以下余白)
【0020】 表2において、ファイルC、ファイルG及びファイルI
のハッシュ値が同じ(=32)である。また、ファイル
DとファイルHのハッシュ値も同じ(=49)である。
このことは、ファイルC、G、I(またはファイルD、
H)の文字列をキーとするハッシュ値が同じであること
を意味し、いわゆるハッシュ値の衝突が発生することを
示している。
のハッシュ値が同じ(=32)である。また、ファイル
DとファイルHのハッシュ値も同じ(=49)である。
このことは、ファイルC、G、I(またはファイルD、
H)の文字列をキーとするハッシュ値が同じであること
を意味し、いわゆるハッシュ値の衝突が発生することを
示している。
【0021】図2は、ハッシュテーブル(テーブル)
の概念図である。このテーブルは、特に限定しないが、
0〜166までのレコードを有するテーブルであり、各
レコードはハッシュ値の衝突フラグフィールドとデータ
フィールドとを有している。0〜166のレコード番号
は表2のハッシュ値に対応する。たとえば、“/usr
/home/A”の場合のハッシュ値は「67」である
から、67番のレコードを検索(図1のステップ13)
し、このレコードのハッシュ値の衝突フラグとデータフ
ィールドを読み込む。ここで、67番のレコードの衝突
フラグはリセット状態(“1”以外)であり、この場合
のデータフィールドの値(“1231”)は、“/us
r/home/A”のinode番号そのものを表わし
ている。
の概念図である。このテーブルは、特に限定しないが、
0〜166までのレコードを有するテーブルであり、各
レコードはハッシュ値の衝突フラグフィールドとデータ
フィールドとを有している。0〜166のレコード番号
は表2のハッシュ値に対応する。たとえば、“/usr
/home/A”の場合のハッシュ値は「67」である
から、67番のレコードを検索(図1のステップ13)
し、このレコードのハッシュ値の衝突フラグとデータフ
ィールドを読み込む。ここで、67番のレコードの衝突
フラグはリセット状態(“1”以外)であり、この場合
のデータフィールドの値(“1231”)は、“/us
r/home/A”のinode番号そのものを表わし
ている。
【0022】したがって、一つのテーブルから読み出さ
れたinode番号を用いて、ハードディスク内の“/
usr/home/A”の格納位置を特定(図1のステ
ップ17)でき、外的にはファイル名の階層構造を維持
したまま、内的にフラットなファイル管理を実現でき、
多層化した場合のファイルアクセスの効率改善を図るこ
とができる。
れたinode番号を用いて、ハードディスク内の“/
usr/home/A”の格納位置を特定(図1のステ
ップ17)でき、外的にはファイル名の階層構造を維持
したまま、内的にフラットなファイル管理を実現でき、
多層化した場合のファイルアクセスの効率改善を図るこ
とができる。
【0023】上記のとおり、ファイル名によってはハッ
シュ値が衝突することがある。このハッシュ値の衝突対
策を説明すると、たとえば、“/usr/home/
C”の場合のハッシュ値は「32」であるが、“/us
r/home/G”及び“/usr/home/I”の
ハッシュ値も同じである。図2において、このハッシュ
値(=32)と同番号のレコードの衝突フラグはセット
状態(“1”)にあり、そのデータフィールドの値(便
宜的に“x”)がinode番号でないことを示してい
る。すなわち、衝突フラグがセット状態(“1”)にあ
るレコードのデータフィールドの値(“x”)は、ハッ
シュ値を同一にする“/usr/home/C”、“/
usr/home/G”及び“/usr/home/
I”のそれぞれのinode番号を収めたサブテーブル
の開始アドレスを示す情報である。
シュ値が衝突することがある。このハッシュ値の衝突対
策を説明すると、たとえば、“/usr/home/
C”の場合のハッシュ値は「32」であるが、“/us
r/home/G”及び“/usr/home/I”の
ハッシュ値も同じである。図2において、このハッシュ
値(=32)と同番号のレコードの衝突フラグはセット
状態(“1”)にあり、そのデータフィールドの値(便
宜的に“x”)がinode番号でないことを示してい
る。すなわち、衝突フラグがセット状態(“1”)にあ
るレコードのデータフィールドの値(“x”)は、ハッ
シュ値を同一にする“/usr/home/C”、“/
usr/home/G”及び“/usr/home/
I”のそれぞれのinode番号を収めたサブテーブル
の開始アドレスを示す情報である。
【0024】図3は、サブテーブルの概念図であり、ア
ドレスxに“/usr/home/C”のinode番
号(“6339”)が、また、アドレスx+1に“/u
sr/home/G”のinode番号(“449
3”)が、さらに、アドレスx+2に“/usr/ho
me/I”のinode番号(“777”)が格納され
ている。なお、サブテーブルのラストフラグは、ハッシ
ュ値を同一にするファイルの最後を示すものである
(“1”で最後)。
ドレスxに“/usr/home/C”のinode番
号(“6339”)が、また、アドレスx+1に“/u
sr/home/G”のinode番号(“449
3”)が、さらに、アドレスx+2に“/usr/ho
me/I”のinode番号(“777”)が格納され
ている。なお、サブテーブルのラストフラグは、ハッシ
ュ値を同一にするファイルの最後を示すものである
(“1”で最後)。
【0025】たとえば、“/usr/home/G”を
検索する場合は、まず、ハッシュテーブルの32番のレ
コードから“x”を取り出し、アドレスxから順次にサ
ブテーブルを検索(図1のステップ15)する。ここで
は、サブテーブルのアドレスx+1に“/usr/ho
me/G”が格納されているため、一致が判定(図1の
ステップ16)される。したがって、サブテーブルから
読み出されたinode番号を用いて、ハードディスク
内の“/usr/home/G”の格納位置を特定(図
1のステップ17)でき、外的にはファイル名の階層構
造を維持したまま、内的にフラットなファイル管理を実
現でき、多層化した場合のファイルアクセスの効率改善
を図ることができる。
検索する場合は、まず、ハッシュテーブルの32番のレ
コードから“x”を取り出し、アドレスxから順次にサ
ブテーブルを検索(図1のステップ15)する。ここで
は、サブテーブルのアドレスx+1に“/usr/ho
me/G”が格納されているため、一致が判定(図1の
ステップ16)される。したがって、サブテーブルから
読み出されたinode番号を用いて、ハードディスク
内の“/usr/home/G”の格納位置を特定(図
1のステップ17)でき、外的にはファイル名の階層構
造を維持したまま、内的にフラットなファイル管理を実
現でき、多層化した場合のファイルアクセスの効率改善
を図ることができる。
【0026】なお、以上は、ハッシュ値の衝突が起こり
得るという前提のもとで説明したが、ハッシュ値の衝突
を回避するようにハッシュ関数を定義するなどして衝突
を避ければ、図4に示すように、ハッシュテーブルから
フラグフィールドを取り除くことができる。この場合、
データフィールドの値はすべてinode番号になる。
得るという前提のもとで説明したが、ハッシュ値の衝突
を回避するようにハッシュ関数を定義するなどして衝突
を避ければ、図4に示すように、ハッシュテーブルから
フラグフィールドを取り除くことができる。この場合、
データフィールドの値はすべてinode番号になる。
【0027】または、ファイル数がそれほど大量でなけ
れば、図5に示すような順編成テーブルを採用すること
もできる。このテーブルのレコードは、フルパス付きの
ファイル名を格納する第1のデータフィールドと、その
ファイルのinode番号を格納する第2のデータフィ
ールドとからなり、入力された(または生成手段によっ
て生成された)フルパス付きのファイル名に一致する文
字列を第1のデータフィールドから見つけ出し、そのレ
コードの第2のデータフィールドからinode番号を
取り出すというものである。
れば、図5に示すような順編成テーブルを採用すること
もできる。このテーブルのレコードは、フルパス付きの
ファイル名を格納する第1のデータフィールドと、その
ファイルのinode番号を格納する第2のデータフィ
ールドとからなり、入力された(または生成手段によっ
て生成された)フルパス付きのファイル名に一致する文
字列を第1のデータフィールドから見つけ出し、そのレ
コードの第2のデータフィールドからinode番号を
取り出すというものである。
【0028】
【発明の効果】本発明によれば、外的には多層構造を維
持しつつも内的にはフラットなファイル管理を行うこと
ができる。したがって、多層化した場合のファイルアク
セスの効率改善を図ることができるという格別有利な効
果を奏することができ、特に、大量のファイルを管理す
るパーソナルコンピュータやワークステーション若しく
はデータ処理装置等に用いて好適な技術を提供できる。
持しつつも内的にはフラットなファイル管理を行うこと
ができる。したがって、多層化した場合のファイルアク
セスの効率改善を図ることができるという格別有利な効
果を奏することができ、特に、大量のファイルを管理す
るパーソナルコンピュータやワークステーション若しく
はデータ処理装置等に用いて好適な技術を提供できる。
【図1】一実施例の要部フローチャートである。
【図2】一実施例のハッシュテーブルの概念図である。
【図3】一実施例のサブテーブルの概念図である。
【図4】一実施例のハッシュテーブルの他の概念図であ
る。
る。
【図5】一実施例のハッシュテーブルに代える順編成テ
ーブルの概念図である。
ーブルの概念図である。
【図6】階層構造を持つファイルシステムの概念図であ
る。
る。
【符号の説明】 :テーブル :生成手段 :検索手段
Claims (3)
- 【請求項1】任意の一つのディレクトリに含まれるすべ
てのファイル名をフルパス付きで格納するとともにそれ
ぞれのファイルの記憶装置内における格納位置の情報を
ファイル名に関連付けて格納するテーブルと、 入力ファイル名がフルパス付きのとき該フルパス付きの
入力ファイル名を用いて前記テーブルを検索し該入力フ
ァイル名の記憶装置内における格納位置の情報を検索す
る検索手段と、を備えることを特徴とするファイル管理
装置。 - 【請求項2】任意の一つのディレクトリに含まれるすべ
てのファイル名をフルパス付きで格納するとともにそれ
ぞれのファイルの記憶装置内における格納位置の情報を
ファイル名に関連付けて格納するテーブルと、 入力ファイル名がフルパス付きでないとき該入力ファイ
ル名に前記一つのディレクトリのフルパス名を連結して
フルパス付きの入力ファイル名を生成する生成手段と、 入力ファイル名がフルパス付きのときは該フルパス付き
の入力ファイル名を用いて、または、入力ファイル名が
フルパス付きでないときは前記生成手段の出力を用いて
前記テーブルを検索し該入力ファイル名の記憶装置内に
おける格納位置の情報を検索する検索手段と、を備える
ことを特徴とするファイル管理装置。 - 【請求項3】前記テーブルがハッシュテーブルであるこ
とを特徴とする請求項1または請求項2記載のファイル
管理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8229477A JPH1074154A (ja) | 1996-08-30 | 1996-08-30 | ファイル管理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8229477A JPH1074154A (ja) | 1996-08-30 | 1996-08-30 | ファイル管理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1074154A true JPH1074154A (ja) | 1998-03-17 |
Family
ID=16892795
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8229477A Pending JPH1074154A (ja) | 1996-08-30 | 1996-08-30 | ファイル管理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1074154A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000112750A (ja) * | 1998-10-02 | 2000-04-21 | Hyper Tec:Kk | 情報処理装置 |
| JP2007164597A (ja) * | 2005-12-15 | 2007-06-28 | Hitachi Ltd | ファイル管理装置及び方法並びに記憶システム |
| US7414746B2 (en) | 2000-05-23 | 2008-08-19 | Fujifilm Corporation | Image data communication method |
| JP2010050600A (ja) * | 2008-08-20 | 2010-03-04 | Fujitsu Ltd | 情報検索装置 |
| WO2011111837A1 (ja) | 2010-03-11 | 2011-09-15 | 楽天株式会社 | 情報処理方法、情報処理装置、プログラム及び記録媒体 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04260945A (ja) * | 1991-01-11 | 1992-09-16 | Mitsubishi Electric Corp | ファイル・アクセス装置及びファイル・アクセス方法 |
-
1996
- 1996-08-30 JP JP8229477A patent/JPH1074154A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04260945A (ja) * | 1991-01-11 | 1992-09-16 | Mitsubishi Electric Corp | ファイル・アクセス装置及びファイル・アクセス方法 |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000112750A (ja) * | 1998-10-02 | 2000-04-21 | Hyper Tec:Kk | 情報処理装置 |
| US7414746B2 (en) | 2000-05-23 | 2008-08-19 | Fujifilm Corporation | Image data communication method |
| JP2007164597A (ja) * | 2005-12-15 | 2007-06-28 | Hitachi Ltd | ファイル管理装置及び方法並びに記憶システム |
| US8224880B2 (en) | 2005-12-15 | 2012-07-17 | Hitachi, Ltd. | File management apparatus and method, and storage system |
| JP2010050600A (ja) * | 2008-08-20 | 2010-03-04 | Fujitsu Ltd | 情報検索装置 |
| WO2011111837A1 (ja) | 2010-03-11 | 2011-09-15 | 楽天株式会社 | 情報処理方法、情報処理装置、プログラム及び記録媒体 |
| US8812568B2 (en) | 2010-03-11 | 2014-08-19 | Rakuten, Inc. | Information processing method, information processing device, program, and recording medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7711754B2 (en) | System and method for managing data using static lists | |
| US10678799B2 (en) | Methods and systems for managing data | |
| US5590320A (en) | Computer file directory system | |
| US7412449B2 (en) | File object storage and retrieval using hashing techniques | |
| JP5373846B2 (ja) | リレーショナルシステムにおける階層的に編成された情報にアクセスするための階層的インデックス付け | |
| US7774326B2 (en) | Methods and systems for managing data | |
| TWI358027B (en) | Computer-storage media and method for automaticall | |
| US6330567B1 (en) | Searching system for searching files stored in a hard disk of a personal computer | |
| US6938032B1 (en) | Presentation builder | |
| JPH08115334A (ja) | 検索装置 | |
| US8086638B1 (en) | File handle banking to provide non-disruptive migration of files | |
| JPH1074154A (ja) | ファイル管理装置 | |
| US8126944B2 (en) | Unordered/fuzzy file path | |
| US20080177701A1 (en) | System and method for searching a volume of files | |
| JP3260706B2 (ja) | パーソナルコンピュータのハードディスクに記憶されたファイルを検索する検索システム | |
| KR19980030010A (ko) | 데이터베이스 관리 시스템에서의 테이블에 대한 계층 관리 장치 | |
| CN113282551B (zh) | 数据处理方法、系统及设备 | |
| CN118550882A (zh) | 一种检索文档的索引方法 | |
| JPH0540680A (ja) | フアイル階層管理システム | |
| JPH06110757A (ja) | データ管理方式 |