JP2004287601A - Information processor, file managing method, file managing program, and computer-readable recording medium recorded with the program - Google Patents

Information processor, file managing method, file managing program, and computer-readable recording medium recorded with the program Download PDF

Info

Publication number
JP2004287601A
JP2004287601A JP2003076293A JP2003076293A JP2004287601A JP 2004287601 A JP2004287601 A JP 2004287601A JP 2003076293 A JP2003076293 A JP 2003076293A JP 2003076293 A JP2003076293 A JP 2003076293A JP 2004287601 A JP2004287601 A JP 2004287601A
Authority
JP
Japan
Prior art keywords
file
divided
access
index
files
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
Application number
JP2003076293A
Other languages
Japanese (ja)
Other versions
JP2004287601A5 (en
Inventor
Kaoru Tomishige
薫 冨重
Seiichiro Miki
成一郎 三木
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2003076293A priority Critical patent/JP2004287601A/en
Publication of JP2004287601A publication Critical patent/JP2004287601A/en
Publication of JP2004287601A5 publication Critical patent/JP2004287601A5/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide a file managing method for performing high speed access to huge amounts of files and an information processor using this method. <P>SOLUTION: This information processor 1 is provided with a file access executing part 23, a file access execution receiving part 21 and an index managing part 22. A storage device 40 divides one connected FC into a plurality files FD, and stores those divided files FC, and an access executing part 23 performs access to those respective files FD by using a file system 30 for performing sequential file access. A file access instruction receiving part 21 receives access position information where positions to be accessed are specified with positions in the connected file FC and a file access instruction from an application 10. An index managing part 22 specifies the divided files FD including the positions shown by the access position information and the access positions in the divided files DF based on the positions in the connected file FC of those respective files FD and the sizes of those respective files FD, and makes a file access executing part 23 executes access to the divided files FD. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、例えばデータベース等に用いる巨大なファイルへ高速にアクセスするファイル管理方法、情報処理装置、ファイル管理プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体に関するものである。
【0002】
【従来の技術】
従来、シーケンシャルなファイルシステムでは、必要な部分へのデータのアクセスは、ファイルシステムに対しそのデータにアクセスしているデータ位置より必要な部分までのデータをスキップする命令を発行することにより行っていた。よって、前の位置への移動機能を具備しないファイルシステムにおいて、アクセスしているデータ位置より必要な部分が前にある場合には、ファイルアクセス位置をデータの先頭まで移動した後、先頭から必要な部分までのデータをスキップする命令を発行していた。
【0003】
また、データへのアクセス方法の速度の向上は、特許文献1等にあるようにファイルシステムの改良により行われてきた。
【0004】
特許文献1には、項目情報が多くなって管理テーブルを作業ファイルに格納せざるを得なくなったときに、実データへのアクセスをできる限り高速で実現することを目的とした管理テーブルの管理処理装置が記載されている。具体的には、上記管理テーブルの管理処理装置は、項目情報によって特定されるところの実データをアクセスするためのポインタを管理することで、作業ファイルに格納される実データへのアクセスを実現する管理テーブルの管理処理装置において、上記管理テーブルを一定の項目数を単位とした管理ブロックをもって分割して構成するとともに、分割されたこれらの管理ブロックを作業ファイルに格納するよう構成し、データ処理を実行するところのデータ処理装置の主記憶装置に、上記管理ブロックのいずれか1つを展開するための管理ブロック格納領域と、上記各管理ブロックの管理下の有効な項目情報の項目数を格納するための有効項目数格納領域とを設けるよう構成して、実データへのアクセス要求時に、上記有効項目数格納領域に格納される有効項目数に従って求められるその実データを特定する項目情報を管理するところの上記管理ブロックを、作業ファイルから上記管理ブロック格納領域にと展開してなるように管理されてなる。
【0005】
【特許文献1】
特公平6−82334号公報(公告日:平成6(1994)年10月19日)
【0006】
【発明が解決しようとする課題】
従来の多くのファイルシステムでは、その種類によって動作は異なるが、データをスキップする命令に対して、データの最低ファイル管理サイズ(セクタサイズ(例えば512バイト等))ずつスキップする。そのため、セクタサイズが例えば512バイトの場合に、5MBスキップするには、(5MB=5242880バイト)/512=10240のセクタを管理する必要がある。
【0007】
よって、このファイルシステムをパフォーマンスが低い環境で実現した場合、スキップサイズが大きいと、必要な部分にアクセスするのに長い処理時間を要していた。
【0008】
また、前の位置へアクセスすることができないファイルシステムの場合、ファイルの最初から必要な位置までデータをスキップするため、長い処理時間を要していた。
【0009】
また、ファイルシステムの改良によって処理速度を向上しようとする場合、ファイルシステムを新たに構築する必要があるため、既存のオペレーティングシステムに変更を加える必要があり、しかも変更が不可能な場合もあった。
【0010】
本発明は、上記の問題点を解決するためになされたもので、その目的は、巨大なファイルへ高速にアクセスすることができるファイル管理方法、およびそれを用いた情報処理装置を提供することにある。また、本発明の目的には、上記情報処理装置を実現する、ファイル管理プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体を提供することも含まれる。
【0011】
【課題を解決するための手段】
上記の課題を解決するために、本発明の情報処理装置は、1つの結合ファイルを複数の分割ファイルに分割して記憶する記憶装置に対して、シーケンシャルなファイルアクセスを行うファイルシステムを用いて各分割ファイルにアクセスするファイルアクセス実行手段と、アプリケーションから、アクセスすべき位置を上記結合ファイルにおける位置で特定したアクセス位置情報とともに、ファイルアクセス命令を受け取るファイルアクセス命令受取手段と、各分割ファイルの上記結合ファイルにおける位置、および各分割ファイルのサイズに基づいて、上記アクセス位置情報が示す位置を含む分割ファイルおよび当該分割ファイルにおけるアクセス位置を特定し、上記ファイルアクセス実行手段に当該分割ファイルへのアクセスを実行させるインデックス管理手段と、を備えることを特徴としている。
【0012】
また、本発明のファイル管理方法は、1つの結合ファイルを複数の分割ファイルに分割して記憶する記憶装置に用いるファイル管理方法であって、アプリケーションから、アクセスすべき位置を結合ファイルにおける位置で特定したアクセス位置情報とともに、ファイルアクセス命令を受け取るファイルアクセス命令受取ステップと、各分割ファイルの上記結合ファイルにおける位置、および各分割ファイルのサイズに基づいて、上記アクセス位置情報が示す位置を含む分割ファイルおよび当該分割ファイルにおけるアクセス位置を特定する分割ファイル特定ステップと、上記分割ファイル特定ステップで特定された分割ファイルのアクセス位置に、シーケンシャルなファイルアクセスを行うファイルシステムを用いてアクセスするファイルアクセス実行ステップと、を含むことを特徴としている。
【0013】
上記の構成および方法により、ファイル(結合ファイル)をあらかじめ分割しておくことにより、シーケンシャルなファイルアクセスを行うファイルシステムを用いても、ファイルをスキップするサイズは分割されたファイルサイズが最大となる。すなわち、分割ファイルにすることで、アプリケーションが指定したアクセス位置に必要最小限のディスクアクセスでたどり着くことができ、アクセスを高速化することが可能となる。よって、ファイルシステムを高機能化する必要がない。
【0014】
また、アプリケーションから、アクセスすべき位置を結合ファイルにおける位置で特定したアクセス位置情報を受け取り、各分割ファイルの結合ファイルにおける位置および各分割ファイルのサイズ(インデックス情報)に基づいて、アクセスすべき分割ファイルを決定する。なお、インデックス情報は、各分割ファイルFDの結合ファイルでの位置を再現可能な情報であればよく、例えば、分割された順番や、記憶装置上でのブロック数でもよい。
【0015】
よって、アプリケーションに対して単一の結合ファイルにアクセスするのと同じアクセス動作によって分割ファイルへアクセス可能なインターフェイスを実現できる。すなわち、アプリケーションは、分割ファイルを管理する必要がない。
【0016】
したがって、辞書ファイルのような巨大なファイルへ高速にアクセスすることが可能となる。また、アプリケーションが使用するデータファイルの容量が大きくなっても、ファイルシステムおよび/またはアプリケーションのファイルアクセス命令の形式を変更する必要がないため、既存のファイルシステムおよびアプリケーションを利用できる。
【0017】
以上より、上記の構成および方法は、特に、一時に1つのファイルのみにアクセス可能なアプリケーションが、シーケンシャルなファイルアクセスを行うファイルシステムを用いて巨大なファイルへランダムにアクセスする情報処理装置に好適である。
【0018】
さらに、本発明の情報処理装置は、上記インデックス管理手段は、アプリケーションによってアクセスが要求されたデータが、結合ファイルにおいて連続するデータであって、複数の分割ファイルに分散して格納されている場合、上記ファイルアクセス実行手段に、アクセスする分割ファイルを順次切り替えながら当該複数の分割ファイルにアクセスさせるものであることを特徴としている。
【0019】
上記の構成により、さらに、連続するデータが分断されている部分で参照する分割ファイルを切り替えることにより、必要とされる連続するデータが2つ以上の分割ファイルにまたがって存在するときでも、連続したデータとして扱うことができる。よって、複数の分割ファイルに対して、ひとつのファイルであるかのようにアクセスすることができる。
【0020】
さらに、本発明の情報処理装置は、上記インデックス情報を格納したインデックスファイルが、上記分割ファイルを記憶した記憶装置に記憶されていることを特徴としている。
【0021】
上記の構成により、さらに、インデックスファイルを読み込むことでインデックス情報を取得できる。また、インデックスファイルで指定されたファイル名によって、分割ファイルを管理できるため、分割ファイル名を柔軟に設定することが可能となる。また、記憶装置に分割ファイルとともにインデックスファイルが記憶されているため、扱いが簡便である。
【0022】
さらに、本発明の情報処理装置は、上記インデックス管理手段は、アプリケーションからアクセスすべきファイルとして上記インデックスファイルが指定された場合、アクセスすべきファイルを当該インデックスファイルが管理している分割ファイルに変更するものであることを特徴としている。
【0023】
上記の構成により、さらに、アプリケーションは、アクセスすべきファイルとしてインデックスファイルを指定することで、分割ファイルにアクセスできる。すなわち、アプリケーションは、複数の分割ファイルに対して、ひとつのファイルであるかのようにアクセスすることができる。また、インデックスファイルは記憶装置に実際に存在するため、実際には存在しない分割前の結合ファイルを指定するよりも扱いが容易である。
【0024】
さらに、本発明の情報処理装置は、上記結合ファイルを分割して上記複数の分割ファイルを生成するファイル分割手段をさらに備え、上記インデックス管理手段が、各分割ファイルの上記結合ファイルにおける位置、および各分割ファイルのサイズを格納したインデックスファイルを生成して上記記憶装置に記憶するものであり、上記ファイルアクセス実行手段が、各分割ファイルを上記記憶装置に記憶するものであることを特徴としている。
【0025】
上記の構成により、さらに、結合ファイルから分割ファイルを生成し、当該分割ファイルとインデックスファイルとを組にして記憶装置に記憶することができる。すなわち、インデックスファイルを用いて分割ファイルにアクセス可能な状態に記憶装置にファイルを構成できる。
【0026】
さらに、本発明の情報処理装置は、上記インデックス管理手段が管理する上記インデックスファイルに基づき、上記記憶装置に記憶されている複数の分割ファイルを結合して結合ファイルを生成するファイル結合手段を備えることを特徴としている。
【0027】
上記の構成により、さらに、インデックスファイルを用いて分割ファイルにアクセスする機能を備えていない装置においても、分割ファイルと同じ内容の結合ファイルにアクセスすることが可能となる。よって、分割ファイルを結合ファイルとして持ち出すことができるので、他の装置との互換性を維持できる。例えば、高速なオペレーティングシステムにおいてはファイルを分割する必要がないため、ひとつのファイルに戻して利便性を高める一方、互換性を維持することが可能となる。このように、分割ファイルをユーザの操作により元に戻すことができるため、ユーザの動作環境に応じたファイルアクセス方法を設定することが可能となる。
【0028】
また、本発明のファイル管理プログラムは、コンピュータを上記情報処理装置の各手段として機能させるコンピュータ・プログラムである。
【0029】
上記の構成により、コンピュータで上記情報処理装置の各手段を実現することによって、上記情報処理装置を実現することができる。
【0030】
また、本発明のファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体は、上記情報処理装置の各手段をコンピュータに実現させて、上記情報処理装置を動作させるファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0031】
上記の構成により、上記記録媒体から読み出されたファイル管理プログラムによって、上記情報処理装置をコンピュータ上に実現することができる。
【0032】
【発明の実施の形態】
本発明の一実施の形態について図1から図11に基づいて説明すれば、以下のとおりである。
【0033】
図1は、本実施の形態に係る情報処理装置1の構成の概略を示す機能ブロック図である。図1に示すように、情報処理装置1は、アプリケーション10、ファイル管理部20、ファイルシステム30、記憶装置40を少なくとも備えて構成されている。
【0034】
情報処理装置1は、巨大なファイルの任意の位置に頻繁にアクセスする必要のあるアプリケーションを実行する装置、例えば、携帯型の電子辞書装置である。情報処理装置1が電子辞書装置である場合、記憶装置40に記憶された分割ファイルFDは辞書ファイルであり、アプリケーション10は辞書検索を行うアプリケーションソフトウェアである。
【0035】
記憶装置40には、複数の分割ファイルFDと、分割ファイルFDを管理するためのインデックス情報を記述したインデックスファイルFIとが格納されている。
【0036】
ここで、情報処理装置1のオペレーティングシステムは、ファイルシステム30の機能が限定されている。具体的には、ファイルシステム30は、ファイルの先頭から順次アクセスするシーケンシャルなファイルアクセスのみが可能である。すなわち、ファイルシステム30は、前方への移動などのファイルの任意の位置に高速にアクセスするための機能を備えていない。
【0037】
また、アプリケーション10は、一時に1つのファイルのみにアクセス可能であり、同時に複数のファイルへアクセスする機能を備えていない。
【0038】
そして、ファイル管理部20は、このような機能の限定されたアプリケーション10とファイルシステム30との間に設けられたミドルウェアである。すなわち、ファイル管理部20は、アプリケーション10からファイルアクセス命令を受けて、記憶装置40へのファイルアクセスを仲介するインターフェイスとして機能する。具体的には、ファイル管理部20は、アプリケーション10に対して、記憶装置40に複数に分割されて記憶されている分割ファイルFDに、分割されていない1つの結合ファイルFC(記憶装置40に実際には存在しない仮想結合ファイルFCim)へアクセスするファイルアクセス命令を使用してアクセスできる環境を提供する。以下で説明するように、ファイル管理部20は、インデックスファイルFIに基づいて分割ファイルFDへのアクセスを制御する。
【0039】
次に、図2から図4を参照しながら、記憶装置40に記憶するインデックスファイルFIと分割ファイルFDについて説明する。図2は、結合ファイルFC、分割ファイルFD、インデックスファイルFIの具体例を示す説明図である。図3は、インデックスファイルFIのデータ構造を示す説明図である。図4は、インデックスファイルFIの具体例を示す説明図である。
【0040】
図2に示すように、分割ファイルFDは、元々1つである結合ファイルFCを複数に分割したものである。なお、各分割ファイルFDのサイズは任意であり、結合ファイルFCが均等に分割されている必要はない(図4)。
【0041】
図3および図4に示すように、インデックスファイルFIは、分割ファイルFDのファイル名、順番、サイズ等のインデックス情報が分割ファイルFDごとに対応付けられて記述されている。なお、インデックスファイルFIには、ファイルの先頭に、分割ファイル管理インデックスであることを示すヘッダが記述されている。
【0042】
図2に示す具体例では、ファイル”ABCD.DAT”(結合ファイルFC)を任意のサイズで64分割したものが、ファイル”ABCD.000”〜”ABCD.063”(分割ファイルFD(FD1〜64))である。これを分割されたときの順番で管理するのがインデックスファイル”ABCD.IDX”(インデックスファイルFI)である。
【0043】
そして、図4に示すように、インデックスファイル”ABCD.IDX”には、第1行目に、このファイルが分割ファイルFDのインデックス情報を管理するインデックスファイルFIであることを示すバージョン番号などのヘッダが記述されている。2行目以降には、各分割ファイルFD1〜64のファイル名およびファイルサイズが分割された順番に記述されている。なお、インデックスファイルFIは、任意の形式で記述可能であり、例えばテキストで記述されてもよいし、バイナリで記述されてもよい。
【0044】
図1に示すように、ファイル管理部20は、ファイルアクセス命令受取部21、インデックス管理部22、ファイルアクセス実行部23とを備えて構成されている。なお、ファイル分割/結合部24については後述する。
【0045】
ファイルアクセス命令受取部(ファイルアクセス命令受取手段)21は、アプリケーション10から、アクセスすべき位置を結合ファイルFCにおける位置で特定したアクセス位置情報とともに、ファイルアクセス命令を受け取る。
【0046】
インデックス管理部(インデックス管理手段)22は、各分割ファイルFDの結合ファイルFCにおける位置、および各分割ファイルFDのサイズをインデックス情報として管理し、このインデックス情報に基づいて、分割ファイルFDへのアクセスを制御する。インデックス管理部22は、インデックス情報を、記憶装置40からインデックスファイルFIを読み込むことによって取得する。
【0047】
インデックス管理部22は、分割ファイルFDへのアクセスを開始する際、インデックスファイルFIの情報を読みとり、記憶装置40に格納されている各分割ファイルFDとの整合性をチェックする。具体的には、インデックス管理部22は、インデックスファイルFIに記述されている分割ファイルFDがすべて存在するかや、各分割ファイルFDのファイルサイズが記述と合っているかなどをチェックし、問題がなければ正常なアクセスが可能であると判断する。
【0048】
そして、インデックス管理部22は、インデックス情報に基づいて、アクセス位置情報が示す位置を含む分割ファイルFDおよび当該分割ファイルFDにおけるアクセス位置を特定し、ファイルアクセス実行部23に当該分割ファイルFDへのアクセスを実行させる。
【0049】
また、インデックス管理部22は、アプリケーション10によってアクセスが要求されたデータが、結合ファイルFCにおいて連続するデータであって、複数の分割ファイルFDに分散して格納されている場合、ファイルアクセス実行部23に、アクセスする分割ファイルFDを順次切り替えながら当該複数の分割ファイルFDにアクセスさせる。
【0050】
また、インデックス管理部22は、アプリケーション10からアクセスすべきファイルとしてインデックスファイルFIが指定された場合、アクセスすべきファイルを当該インデックスファイルFIが管理している分割ファイルFDに変更する。ファイル管理部20は、読み込んだファイルにインデックスファイルFIのヘッダ(図3、図4)を検出することにより、インデックスファイルFIへのアクセスであると判断する。
【0051】
ファイルアクセス実行部(ファイルアクセス実行手段)23は、1つの結合ファイルFCを複数の分割ファイルFDに分割して記憶する記憶装置40に対して、シーケンシャルなファイルアクセスを行うファイルシステム30を用いて各分割ファイルFDにアクセスする。
【0052】
さらに、図1に示すように、ファイル管理部20は、ファイル分割/結合部24を備えている。なお、図11は、結合ファイルFCと分割ファイルFDとの関係を示す説明図である。
【0053】
第一に、ファイル分割/結合部(ファイル分割手段)24は、結合ファイルFCを分割して複数の分割ファイルFDを生成する。このとき、インデックス管理部22が、各分割ファイルFDの結合ファイルFCにおける位置およびサイズを格納したインデックスファイルFIを生成して記憶装置40に記憶する。また、ファイルアクセス実行部23が、各分割ファイルFDを記憶装置40に記憶する。なお、結合ファイルFCは、例えば、外部記憶装置2からファイル分割/結合部24に供給される。これにより、結合ファイルFCから分割ファイルFDを生成し、当該分割ファイルFDとインデックスファイルFIとを組にして記憶装置40に記憶することができる。すなわち、ファイル管理部20を介して利用可能な状態にファイルを記憶装置40に構成できる。
【0054】
第二に、ファイル分割/結合部(ファイル結合手段)24は、インデックス管理部22が管理するインデックスファイルFIに基づき、記憶装置40に記憶されている複数の分割ファイルFDを結合して結合ファイルFCを生成する。なお、ファイル分割/結合部24が生成した結合ファイルFCは、例えば、外部記憶装置2に格納される。これにより、ファイル管理部20を備えていない装置においても、分割ファイルFCと同じ内容のファイル(結合ファイルFC)にアクセスすることが可能となる。すなわち、分割ファイルFDを結合ファイルFCとして持ち出すことができるので、他の装置との互換性を維持できる。
【0055】
つづいて、図5から図10を参照しながら、ファイル管理部20の処理について説明する。
【0056】
(1)分割ファイルオープン処理
図5は、ファイルのオープン処理を示すフローチャートである。
【0057】
まず、ファイルアクセス命令受取部21が、アプリケーション10よりファイルオープン命令を受け取ると(ファイルアクセス命令受取ステップ)、指定されたオープンするファイルがインデックスファィルFIであるか否かを判断する(SO1)。オープンするファイルがインデックスファイルFIでない場合(SO1でNO)、ファイルアクセス実行部23が通常のファイルオープン処理を行う(SO5)。
【0058】
一方、オープンするファイルがインデックスファイルFIである場合(SO1でYES)、インデックス管理部22がインデックスファイルFIを読み込み、分割ファイルFDのインデックス情報をワークにセットする(SO2)。次に、インデックス管理部22がインデックスファイルFIに記述されている分割ファイルFDの正当性をチェックした後(SO3)、ファイルアクセス実行部23が分割ファイルFDの最初のファイル(分割ファイル−1)FD1をオープンする(SO4;分割ファイル特定ステップ、ファイルアクセス実行ステップ)。以上により、分割ファイルFDへアクセスするための準備が完了する。
【0059】
(2)分割ファイルスキップ処理
図6は、ファイルのスキップ処理を示すフォローチャートである。
【0060】
まず、ファイルアクセス命令受取部21が、アプリケーション10よりファイルスキップ命令を受け取ると(ファイルアクセス命令受取ステップ)、指定されたアクセスするファイルが分割ファイルFDであるかを判断する(SS1)。分割ファイルFDではなく通常のファイルであれば(SS1でNO)、インデックス管理部22は処理を行わず、ファイルアクセス実行部23が通常のファイルスキップ処理を行う(SS9)。
【0061】
一方、アクセスするファイルが分割ファイルFDである場合(SS1でYES)、インデックス管理部22が、与えられたスキップ先へのインデックス情報とオープン時に読み込まれた分割ファイルFD1のインデックス情報とを基に、分割ファイルFDの先頭からスキップ位置までのスキップサイズを計算する(SS2)。次に、インデックス管理部22は、スキップサイズと分割ファイルの最初のファイルFD1のサイズとを比較する(SS3)。そして、スキップサイズが比較したファイルFD1のサイズより大きい場合(SS4でNO)、スキップサイズから比較した分割ファイルFD1のサイズを差し引き、これを新たにスキップサイズとする(SS7)。ステップSS4およびステップSS7を、比較する分割ファイルFD(FD2〜FDn)をインデックスファイルFIに従って変更しながらスキップサイズより小さくなるまで繰り返す。最終的にスキップサイズが比較する分割ファイルFDのサイズより小さくなったとき(SS4でYES)、このときの分割ファイルFDの先頭からスキップサイズ分をスキップした位置が、目的のスキップ位置になる。なお、ステップSS2〜SS4,SS7が分割ファイル特定ステップに相当する。
【0062】
次に、ファイルアクセス実行部23が、現在オープンしているファイルがステップSS4およびステップSS7の繰り返しで求めた分割ファイルFDであるか否かを判断し(SS5)、異なる場合(SS5でNO)、現在のファイルをクローズし、求めた分割ファイルFDをオープンする(SS8)。最後に、ファイルアクセス実行部23は、スキップサイズを基に現在オープンしている分割ファイルFDでスキップ処理を実行する(SS6)。なお、ステップSS6,SS8がファイルアクセス実行ステップに相当する。
【0063】
(3)分割ファイル読み込み処理
図7は、ファイルの読み込み処理を示すフローチャートである。
【0064】
まず、ファイルアクセス命令受取部21が、アプリケーション10よりファイル読み込み命令を受け取ると(ファイルアクセス命令受取ステップ)、指定されたアクセスするファイルが分割ファイルFDであるか否かを判断する(SR1)。アクセスするファイルが分割ファイルFDではなく通常のファイルであれば(SR1でNO)、インデックス管理部22は処理を行わず、ファイルアクセス実行部23が通常のファイル読み込み処理を行う(SR5)。
【0065】
一方、アクセスするファイルが分割ファイルFDである場合(SR1でYES)、ファイルアクセス実行部23が、現在オープンしている分割ファイルFDから必要なサイズ、あるいは、読み込むことができるサイズを読み込む(SR2)。そして、ファイルアクセス実行部23は、必要なサイズ分読み込みが完了していないと判断した場合(SR3でNO)、現在オープンしている分割ファイルをクローズして次の分割ファイルをオープンし(SR4;分割ファイル特定ステップ、ファイルアクセス実行ステップ)、再度ステップSR2を実行する。ファイルアクセス実行部23がステップSR2〜SR4を繰り返し行うことにより、必要なサイズ分読み込むと(SR3でYES)、分割ファイルFDからの読み込みが完了する。
【0066】
(4)分割ファイル書き込み処理
図8および図9は、ファイルへの書き込み処理を示すフローチャートである。
【0067】
まず、図8に示すように、ファイルアクセス命令受取部21が、アプリケーション10よりファイル書き込み命令を受け取ると(ファイルアクセス命令受取ステップ)、指定されたアクセスするファイルが分割ファイルFDであるか否かを判断する(SW1)。アクセスするファイルが分割ファイルではなく通常のファイルであれば(SW1でNO)、インデックス管理部22は処理を行わず、ファイルアクセス実行部23が通常のファイル書き込み処理を行う(SW5)。
【0068】
一方、アクセスするファイルが分割ファイルFDである場合(SW1でYES)、ファイルアクセス実行部23が、現在オープンされているファイルに対して必要なサイズあるいは書き込むことのできるサイズまで書き込む(SW2)。そして、ファイルアクセス実行部23は、必要なサイズ分書き込みが完了したかを判断し(SW3)、書き込みが完了していない場合(SW3でNO)、再度書き込み処理を行うためにクローズオープン処理を実行する(SW4;分割ファイル特定ステップ、ファイルアクセス実行ステップ)。
【0069】
ここで、図9に示すように、上記クローズオープン処理(SW4)では、ファイルアクセス実行部23が、現在オープンされているファイルの次の分割ファイルが存在するかをチェックして(SW41)、存在しなければ(SW41でNO)、現在オープンしているファイルをクローズした後、次に書き込むファイルを新規に作成する(SW43)。このとき、インデックス管理部22は、ファイルを追加したことをワークのインデックスファイルFI(分割ファイル管理ワーク)に設定する(SW44)。一方、現在オープンされているファイルの次のファイルが存在する場合(SW41でYES)、ファイルアクセス実行部23は、現在のファイルをクローズし、次のファイルをオープンする(SW42)。
【0070】
次に、図8に示すように、クローズオープン処理(SW4)の完了後、ステップSW2〜SW4を繰り返し、ファイルアクセス実行部23が必要なサイズ分書き込めば(SW3でYES)、分割ファイルFDへの書き込みが完了する。
【0071】
(5)分割ファイルクローズ処理
図10は、ファイルのクローズ処理を示すフローチャートである。
【0072】
まず、ファイルアクセス命令受取部21が、アプリケーション10よりファイルクローズ命令を受け取ると(ファイルアクセス命令受取ステップ)、クローズするファイルが分割ファイルFDであるか否かを判断する(SC1)。クローズするファイルが分割ファイルFDでない場合(SC1でNO)、インデックス管理部22は処理を行わず、ファイルアクセス実行部23が通常のファイルクローズ処理を行う(SC5)。
【0073】
一方、クローズするファイルが分割ファイルである場合(SC1でYES)、インデックス管理部22が分割ファイルFDへの書き込み処理にてインデックス情報に変更があるかを判断し(SC2)、変更があれば(SC2でYES)、インデックスファイルFIの更新処理を行う(SC3)。最後に、ファイルアクセス実行部23が現在オープンしている分割ファイルFDの通常のクローズ処理を行い、インデックス管理部22がワークの初期化処理を行う(SC4)。
【0074】
以上のように、一時に1つのファイルのみにアクセス可能なアプリケーション10が、シーケンシャルなファイルアクセスを行うファイルシステム30を用いて巨大なファイルへランダムにアクセスする情報処理装置1において、ファイル管理部20は、複数に分割された分割ファイルFDをインデックスファイルFIを用いて管理する。
【0075】
これにより、ファイル管理部20は、辞書ファイルのような巨大なファイルへ高速にアクセスすることを可能とするとともに、アプリケーション10に対して単一ファイルを模擬したアクセスを可能とする。よって、アプリケーション10において分割ファイルFDを管理する必要がなく、また、ファイルシステム30を高機能化する必要もない。したがって、アプリケーション10が使用するデータファイルの容量が大きくなっても、ファイルシステム30および/またはアプリケーション10のファイルアクセス命令の形式を変更する必要がないため、既存のファイルシステム30およびアプリケーション10を利用できる。
【0076】
なお、情報処理装置1すなわちファイル管理部20は、ハードウェアおよびソフトウェアの機能が制限された携帯型の電子辞書装置などに好適であるが、他のアプリケーションにも適用可能である。また、デスクトップコンピュータのような高性能なコンピュータにも適用可能であり、同様の効果が得られる。
【0077】
また、本実施の形態では、アプリケーション10、ファイル管理部20、ファイルシステム30および記憶装置40を1台の情報処理装置1に設けた場合について説明したが、それらをそれぞれ別体の装置に構成し、互いに通信可能に接続してもよい。
【0078】
また、本実施の形態では、ファイル管理部20をアプリケーション10およびファイルシステム30と分離して設けた場合について説明したが、ファイル管理部20はアプリケーション10またはファイルシステム30と一体に設けることもできる。
【0079】
また、本実施の形態では、1つの結合ファイルFCを分割して、記憶装置40に分割ファイルFDとともにインデックスファイルFIを記憶する場合について説明したが、記憶装置40には、複数の結合ファイルFCを分割したそれぞれの分割ファイルFDを記憶してもよい。この場合、結合ファイルFCごとにインデックスファイルFIを作成してもよいし、1つのインデックスファイルFIに複数の結合ファイルFCに対応する分割ファイルFDのインデックス情報を格納してもよい。
【0080】
なお、本実施の形態は本発明の範囲を限定するものではなく、本発明の範囲内で種々の変更が可能であり、例えば、以下のように構成することができる。
【0081】
本発明のファイル管理方法は、ファイルシステムを用いてファイルを管理することが可能な情報処理装置において、記録する1つのファイルを2つ以上のファイルに分割して記録し、ファイルの任意な特定の位置を読むときは、分割され記録されたファイルの順序およびサイズを管理することにより、特定の位置が含まれる分割されたファイルを決定し、分割されたファイル中の特定の部分を求め任意の部分へのアクセスを高速化する方法であってもよい。
【0082】
これにより、ファイルをあらかじめ分割しておくことにより、オペレーティングシステム上で動作するアプリケーションにおいて分割したファイルを管理することができる。また、ファイルを分割することにより、ファイルをスキップするサイズは、分割されたファイルサイズが最大となる。すなわち、分割ファイルにすることで、スキップ先の位置に必要最小限のディスクアクセスでたどり着くことができ、アクセスを高速化することが可能となる。
【0083】
さらに、上記ファイル管理方法は、分割されたファイル名を記述したインデックスファイルを分割されたファイルとともに記録し、ファイルの任意な特定の位置を読むときは、インデックスファイルより分割され記録されたファイルの順序を管理する方法であってもよい。
【0084】
これにより、インデックスファイルで指定されたファイル名で、分割されたファイル名を管理できる。よって、インデックスファイルを用いることにより、分割されたファイル名を柔軟に設定することができる。
【0085】
さらに、上記ファイル管理方法は、インデックスファイルにファイル名とファイルサイズを記述することにより、ファイルの任意な特定の位置を読むときは、インデックスファイルより分割され記録されたファイルの順序およびサイズを管理する方法であってもよい。
【0086】
これにより、インデックスファイルで指定されたファイル名で、分割されたファイル名を管理できる。よって、インデックスファイルを用いることにより、分割されたファイル名を柔軟に設定することができる。
【0087】
さらに、上記ファイル管理方法は、ファイルをオープンする際に指定するファイル名が上記のインデックスファイルであってもよい。
【0088】
これにより、オープンするファイル名がインデックスファイル名である場合は、ひとつのファイルであるかのように分割されたファイルにアクセスすることができる。
【0089】
さらに、上記ファイル管理方法は、必要とされるファイルの任意の特定の位置の連続するデータが、2つ以上ファイルに存在するときは、ファイルのデータが分断されている部分で参照するファイルを切り替えることにより、連続したデータとして扱う方法であってもよい。
【0090】
これにより、分割されたファイルにひとつのファイルであるかのようにアクセスすることができる。
【0091】
さらに、上記ファイル管理方法は、ファイルシステムを用いるアプリケーションのファイル読み出し命令を変更することなく、分割ファイルを扱うことができる方法であってもよい。
【0092】
これにより、上述したファイル管理方法を、オペレーションシステムレベルまたはアプリケーション上の仮想オペレーションシステム上で実施できる。よって、アプリケーションレベルのファイル操作の変更が不要となる。
【0093】
さらに、上記ファイル管理方法は、分割されたファイルをひとつの分割前のファイルに戻すプログラムを実装し、分割されたファイルにアクセスする機能を持たない装置においても、分割前のファイルに戻すプログラムを実行することにより、分割前のファイルにアクセスすることを可能とする方法であってもよい。
【0094】
これにより、分割したファイルをユーザの操作により元に戻すことができるため、ユーザの動作環境に応じたファイルアクセス方法を設定することか可能となる。すなわち、高速なオペレーティングシステムにおいては分割する必要がないため、ひとつのファイルに戻して利便性を高める一方、互換性を維持することが可能となる。
【0095】
また、本発明の情報処理装置は、ファイルシステムがシーケンシャルなファイルアクセスを行う情報処理装置であって、上記のファイル管理方法を行うものであってもよい。
【0096】
最後に、上記情報処理装置1は、具備する機能を実現するプログラムの命令を実行するCPU(central processing unit)、ブートロジックを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データベースを格納する記憶装置(記憶装置40を含む)、キーボードやマウス等の入力機器、モニタ、スピーカ、プリンタ等の出力機器が、内部バスによって接続されて構成されている。また、記憶装置40および外部記憶装置2は、任意の記憶装置であり、例えば、ハードディスク、フロッピィー(登録商標)ディスク、CD−ROM、光ディスク、光磁気ディスク、MDなどのメディア、およびROM/RAMメモリなどが利用できる。
【0097】
そして、本発明の目的は、上述した機能を実現するソフトウェアであるファイル管理プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU、DSP)が記録媒体に記録されているプログラムコードを読み出し実行することによって達成可能である。この場合、記録媒体から読み出されたプログラムコード自体が上述した機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。具体的には、情報処理装置1が備えるファイル管理部20は、情報処理装置1のメモリ(図示せず)に格納された所定のプログラムを、マイクロプロセッサ(図示せず)などが実行することにより実現される。
【0098】
上記プログラムコードを供給するための記録媒体は、システムあるいは装置と分離可能に構成することができる。また、上記記録媒体は、プログラムコードを供給可能であるように固定的に担持する媒体であってもよい。そして、上記記録媒体は、記録したプログラムコードをコンピュータが直接読み取ることができるようにシステムあるいは装置に装着されるものであっても、外部記憶装置としてシステムあるいは装置に接続されたプログラム読み取り装置を介して読み取ることができるように装着されるものであってもよい。
【0099】
例えば、上記記録媒体としては、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
【0100】
また、上記プログラムコードは、コンピュータが記録媒体から読み出して直接実行できるように記録されていてもよいし、記録媒体から主記憶のプログラム記憶領域へ転送された後コンピュータが主記憶から読み出して実行できるように記録されていてもよい。
【0101】
さらに、システムあるいは装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。そして、通信ネットワークとしては、特に限定されず、具体的には、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、具体的には、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
【0102】
なお、プログラムコードを記録媒体から読み出して主記憶に格納するためのプログラム、および、通信ネットワークからプログラムコードをダウンロードするためのプログラムは、コンピュータによって実行可能にあらかじめシステムあるいは装置に格納されているものとする。
【0103】
上述した機能は、コンピュータが読み出した上記プログラムコードを実行することによって実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行うことによっても実現される。
【0104】
さらに、上述した機能は、上記記録媒体から読み出された上記プログラムコードが、コンピュータに装着された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことによっても実現される。
【0105】
【発明の効果】
以上のように、本発明の情報処理装置は、1つの結合ファイルを複数の分割ファイルに分割して記憶する記憶装置に対して、シーケンシャルなファイルアクセスを行うファイルシステムを用いて各分割ファイルにアクセスするファイルアクセス実行手段と、アプリケーションから、アクセスすべき位置を上記結合ファイルにおける位置で特定したアクセス位置情報とともに、ファイルアクセス命令を受け取るファイルアクセス命令受取手段と、各分割ファイルの上記結合ファイルにおける位置、および各分割ファイルのサイズに基づいて、上記アクセス位置情報が示す位置を含む分割ファイルおよび当該分割ファイルにおけるアクセス位置を特定し、上記ファイルアクセス実行手段に当該分割ファイルへのアクセスを実行させるインデックス管理手段と、を備える構成である。
【0106】
また、本発明のファイル管理方法は、1つの結合ファイルを複数の分割ファイルに分割して記憶する記憶装置に用いるファイル管理方法であって、アプリケーションから、アクセスすべき位置を結合ファイルにおける位置で特定したアクセス位置情報とともに、ファイルアクセス命令を受け取るファイルアクセス命令受取ステップと、各分割ファイルの上記結合ファイルにおける位置、および各分割ファイルのサイズに基づいて、上記アクセス位置情報が示す位置を含む分割ファイルおよび当該分割ファイルにおけるアクセス位置を特定する分割ファイル特定ステップと、上記分割ファイル特定ステップで特定された分割ファイルのアクセス位置に、シーケンシャルなファイルアクセスを行うファイルシステムを用いてアクセスするファイルアクセス実行ステップと、を含む方法である。
【0107】
それゆえ、分割ファイルにすることで、アプリケーションが指定したアクセス位置に必要最小限のディスクアクセスでたどり着くことができ、アクセスを高速化することが可能となる。よって、ファイルシステムを高機能化する必要がない。また、アプリケーションに対して単一の結合ファイルにアクセスするのと同じアクセス動作によって分割ファイルへアクセス可能なインターフェイスを実現できる。よって、アプリケーションは、分割ファイルを管理する必要がない。
【0108】
したがって、辞書ファイルのような巨大なファイルへ高速にアクセスすることが可能となるという効果を奏する。また、アプリケーションが使用するデータファイルの容量が大きくなっても、ファイルシステムおよび/またはアプリケーションのファイルアクセス命令の形式を変更する必要がないため、既存のファイルシステムおよびアプリケーションを利用できるという効果を奏する。
【0109】
さらに、本発明の情報処理装置は、上記インデックス管理手段は、アプリケーションによってアクセスが要求されたデータが、結合ファイルにおいて連続するデータであって、複数の分割ファイルに分散して格納されている場合、上記ファイルアクセス実行手段に、アクセスする分割ファイルを順次切り替えながら当該複数の分割ファイルにアクセスさせるものである。
【0110】
それゆえ、さらに、必要とされる連続するデータが2つ以上の分割ファイルにまたがって存在するときでも、連続したデータとして扱うことができる。よって、複数の分割ファイルに対して、ひとつのファイルであるかのようにアクセスすることができるという効果を奏する。
【0111】
さらに、本発明の情報処理装置は、上記インデックス情報を格納したインデックスファイルが、上記分割ファイルを記憶した記憶装置に記憶されている構成である。
【0112】
それゆえ、さらに、インデックスファイルを読み込むことでインデックス情報を取得できるという効果を奏する。また、インデックスファイルで指定されたファイル名によって、分割ファイルを管理できるため、分割ファイル名を柔軟に設定することが可能となるという効果を奏する。また、記憶装置に分割ファイルとともにインデックスファイルが記憶されているため、扱いが簡便であるという効果を奏する。
【0113】
さらに、本発明の情報処理装置は、上記インデックス管理手段は、アプリケーションからアクセスすべきファイルとして上記インデックスファイルが指定された場合、アクセスすべきファイルを当該インデックスファイルが管理している分割ファイルに変更するものである。
【0114】
それゆえ、さらに、アプリケーションは、複数の分割ファイルに対して、ひとつのファイルであるかのようにアクセスすることができるという効果を奏する。また、インデックスファイルは記憶装置に実際に存在するため、実際には存在しない分割前の結合ファイルを指定するよりも扱いが容易であるという効果を奏する。
【0115】
さらに、本発明の情報処理装置は、上記結合ファイルを分割して上記複数の分割ファイルを生成するファイル分割手段をさらに備え、上記インデックス管理手段が、各分割ファイルの上記結合ファイルにおける位置、および各分割ファイルのサイズを格納したインデックスファイルを生成して上記記憶装置に記憶するものであり、上記ファイルアクセス実行手段が、各分割ファイルを上記記憶装置に記憶するものである。
【0116】
それゆえ、さらに、インデックスファイルを用いて分割ファイルにアクセス可能な状態に記憶装置にファイルを構成できるという効果を奏する。
【0117】
さらに、本発明の情報処理装置は、上記インデックス管理手段が管理する上記インデックスファイルに基づき、上記記憶装置に記憶されている複数の分割ファイルを結合して結合ファイルを生成するファイル結合手段を備える構成である。
【0118】
それゆえ、さらに、分割ファイルを結合ファイルとして持ち出すことができるので、他の装置との互換性を維持できるという効果を奏する。
【0119】
また、本発明のファイル管理プログラムは、コンピュータを上記情報処理装置の各手段として機能させるコンピュータ・プログラムである。
【0120】
それゆえ、コンピュータで上記情報処理装置の各手段を実現することによって、上記情報処理装置を実現することができるという効果を奏する。
【0121】
また、本発明のファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体は、上記情報処理装置の各手段をコンピュータに実現させて、上記情報処理装置を動作させるファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0122】
それゆえ、上記記録媒体から読み出されたファイル管理プログラムによって、上記情報処理装置をコンピュータ上に実現することができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施の形態に係る情報処理装置の構成の概略を示す機能ブロック図である。
【図2】図1に示した情報処理装置における結合ファイル、分割ファイル、インデックスファイルの具体例を示す説明図である。
【図3】図1に示した情報処理装置におけるインデックスファイルのデータ構造を示す説明図である。
【図4】図1に示した情報処理装置におけるインデックスファイルの具体例を示す説明図である。
【図5】図1に示した情報処理装置におけるファイルオープン処理を示すフローチャートである。
【図6】図1に示した情報処理装置におけるファイルスキップ処理を示すフローチャートである。
【図7】図1に示した情報処理装置におけるファイル読み込み処理を示すフローチャートである。
【図8】図1に示した情報処理装置におけるファイル書き込み処理を示すフローチャートである。
【図9】図8に示したファイル書き込み処理のクローズオープン処理の詳細を示すフローチャートである。
【図10】図1に示した情報処理装置におけるファイルクローズ処理を示すフローチャートである。
【図11】図1に示した情報処理装置における結合ファイルと分割ファイルとの関係を示す説明図である。
【符号の説明】
1 情報処理装置
10 アプリケーション
21 ファイルアクセス命令受取部(ファイルアクセス命令受取手段)
22 インデックス管理部(インデックス管理手段)
23 ファイルアクセス実行部(ファイルアクセス実行手段)
24 ファイル分割/結合部(ファイル分割手段、ファイル結合手段)
30 ファイルシステム
40 記憶装置
FC 結合ファイル
FD(FD1〜FDn) 分割ファイル
FI インデックスファイル
SO1,SS1,SR1,SW1,SC1 ファイルアクセス命令受取ステップ
SO4,SS2〜SS4,SS7,SR4,SW4 分割ファイル特定ステップ
SO4,SS6,SS8,SR4,SW4 ファイルアクセス実行ステップ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a file management method, an information processing apparatus, a file management program for accessing a huge file used for a database or the like at a high speed, and a computer-readable recording medium recording the program.
[0002]
[Prior art]
Conventionally, in a sequential file system, data access to a necessary portion has been performed by issuing an instruction to the file system to skip data from a data position accessing the data to a required portion. . Therefore, in a file system that does not have the function of moving to the previous position, if a necessary part is located before the accessed data position, the file access position is moved to the beginning of the data, and then the required The instruction to skip the data up to the part was issued.
[0003]
Further, the speed of the data access method has been improved by improving the file system as disclosed in Patent Document 1 and the like.
[0004]
Patent Document 1 discloses a management table management process for realizing access to actual data as fast as possible when item information increases and the management table must be stored in a work file. An apparatus is described. Specifically, the management processing device of the management table implements access to the real data stored in the work file by managing a pointer for accessing the real data specified by the item information. In the management processing device for the management table, the management table is divided into management blocks in units of a fixed number of items, and the divided management blocks are stored in a work file. A management block storage area for expanding any one of the management blocks and the number of items of valid item information managed by each of the management blocks are stored in a main storage device of a data processing device to be executed. And an effective item number storage area for accessing the actual data when an actual data access request is made. The control block where the managing item information identifying the actual data obtained in accordance with the effective item number is stored, formed by managed so to expand the above management block storage area from the working file.
[0005]
[Patent Document 1]
Japanese Patent Publication No. 6-82334 (publication date: October 19, 1994)
[0006]
[Problems to be solved by the invention]
In many conventional file systems, the operation differs depending on the type, but in response to an instruction to skip data, the data is skipped by the minimum file management size (sector size (for example, 512 bytes)) of the data. Therefore, in order to skip 5 MB when the sector size is, for example, 512 bytes, it is necessary to manage (5 MB = 522,880 bytes) / 512 = 10,240 sectors.
[0007]
Therefore, when this file system is implemented in an environment with low performance, if the skip size is large, it takes a long processing time to access necessary parts.
[0008]
In the case of a file system that cannot access the previous position, it takes a long processing time to skip data from the beginning of the file to the required position.
[0009]
In addition, in order to improve the processing speed by improving the file system, it is necessary to construct a new file system, so it is necessary to make a change to the existing operating system, and in some cases, it is impossible to make the change. .
[0010]
The present invention has been made to solve the above problems, and an object of the present invention is to provide a file management method capable of accessing a huge file at a high speed, and an information processing apparatus using the same. is there. Further, an object of the present invention includes providing a file management program for realizing the information processing apparatus and a computer-readable recording medium on which the file management program is recorded.
[0011]
[Means for Solving the Problems]
In order to solve the above problem, an information processing apparatus according to the present invention uses a file system that performs sequential file access to a storage device that divides one combined file into a plurality of divided files and stores the divided files. File access execution means for accessing a divided file; file access command receiving means for receiving a file access command from an application together with access position information specifying a position to be accessed by a position in the connection file; Based on the position in the file and the size of each divided file, the divided file including the position indicated by the access position information and the access position in the divided file are specified, and the file access executing means accesses the divided file. Let It is characterized in that it comprises a index management means.
[0012]
Further, the file management method of the present invention is a file management method used for a storage device that divides one combined file into a plurality of divided files and stores the divided file, wherein an application specifies a location to be accessed by a position in the combined file. A file access command receiving step of receiving a file access command together with the obtained access position information, a position of each divided file in the combined file, and a divided file including a position indicated by the access position information based on the size of each divided file; A divided file specifying step for specifying an access position in the divided file, and a file for accessing the access position of the divided file specified in the divided file specifying step by using a file system for performing sequential file access It is characterized in that it comprises a access execution step.
[0013]
By dividing a file (combined file) in advance by the above configuration and method, even if a file system for performing sequential file access is used, the size of the skipped file is the largest of the divided file size. In other words, by using a divided file, it is possible to reach the access position designated by the application with the minimum necessary disk access, and to speed up the access. Therefore, there is no need to enhance the function of the file system.
[0014]
Also, the application receives access position information in which the position to be accessed is specified by the position in the combined file, based on the position of each divided file in the combined file and the size (index information) of each divided file. To determine. The index information may be information that can reproduce the position of each divided file FD in the combined file, and may be, for example, the order of division or the number of blocks on the storage device.
[0015]
Therefore, it is possible to realize an interface capable of accessing the divided file by the same access operation as accessing the single combined file for the application. That is, the application does not need to manage the divided files.
[0016]
Therefore, it is possible to access a huge file such as a dictionary file at high speed. Further, even if the capacity of the data file used by the application becomes large, it is not necessary to change the format of the file access instruction of the file system and / or the application, so that the existing file system and application can be used.
[0017]
As described above, the above configuration and method are particularly suitable for an information processing apparatus in which an application that can access only one file at a time randomly accesses a huge file using a file system that performs sequential file access. is there.
[0018]
Further, in the information processing apparatus according to the present invention, the index management unit may be configured such that the data requested to be accessed by the application is continuous data in the combined file and is stored in a distributed manner in a plurality of divided files. It is characterized in that the file access executing means accesses the plurality of divided files while sequentially switching the divided files to be accessed.
[0019]
According to the above configuration, furthermore, by switching the divided file to be referred to at a part where the continuous data is divided, even when the required continuous data exists over two or more divided files, the continuous Can be treated as data. Therefore, a plurality of divided files can be accessed as if they were one file.
[0020]
Further, the information processing apparatus according to the present invention is characterized in that the index file storing the index information is stored in a storage device storing the divided file.
[0021]
With the above configuration, index information can be obtained by reading an index file. Further, since the divided files can be managed by the file names specified in the index file, the divided file names can be set flexibly. Further, since the index file is stored in the storage device together with the divided file, the handling is simple.
[0022]
Further, in the information processing apparatus according to the present invention, when the index file is designated as a file to be accessed from an application, the index management unit changes the file to be accessed to a divided file managed by the index file. It is characterized by things.
[0023]
With the above configuration, the application can access the divided file by designating the index file as the file to be accessed. That is, the application can access a plurality of divided files as if they were one file. Also, since the index file actually exists in the storage device, it is easier to handle than specifying a combined file before division that does not actually exist.
[0024]
Furthermore, the information processing apparatus of the present invention further includes a file dividing unit that divides the combined file to generate the plurality of divided files, wherein the index management unit determines a position of each divided file in the combined file; An index file storing the size of the divided file is generated and stored in the storage device, and the file access execution means stores each divided file in the storage device.
[0025]
According to the above configuration, a divided file can be further generated from the combined file, and the divided file and the index file can be stored as a set in the storage device. That is, the file can be configured in the storage device so that the divided file can be accessed using the index file.
[0026]
Furthermore, the information processing apparatus of the present invention includes a file combining unit that combines a plurality of divided files stored in the storage device to generate a combined file based on the index file managed by the index management unit. It is characterized by.
[0027]
According to the above configuration, it is possible to access a combined file having the same contents as the divided file even in an apparatus that does not have a function of accessing the divided file using the index file. Therefore, the divided file can be taken out as a combined file, so that compatibility with other devices can be maintained. For example, in a high-speed operating system, there is no need to divide a file, so that it is possible to return to a single file to enhance convenience, while maintaining compatibility. As described above, since the divided file can be restored by the user's operation, it is possible to set a file access method according to the user's operating environment.
[0028]
Further, a file management program of the present invention is a computer program that causes a computer to function as each unit of the information processing apparatus.
[0029]
With the above configuration, the information processing device can be realized by realizing each unit of the information processing device with a computer.
[0030]
In addition, a computer-readable recording medium storing the file management program of the present invention is a computer-readable recording medium that stores a file management program that causes the computer to realize each unit of the information processing apparatus. It is a recording medium.
[0031]
With the above configuration, the information processing device can be realized on a computer by the file management program read from the recording medium.
[0032]
BEST MODE FOR CARRYING OUT THE INVENTION
One embodiment of the present invention will be described below with reference to FIGS.
[0033]
FIG. 1 is a functional block diagram schematically showing a configuration of an information processing apparatus 1 according to the present embodiment. As shown in FIG. 1, the information processing apparatus 1 includes at least an application 10, a file management unit 20, a file system 30, and a storage device 40.
[0034]
The information processing device 1 is a device that executes an application that needs to frequently access an arbitrary position of a huge file, for example, a portable electronic dictionary device. When the information processing device 1 is an electronic dictionary device, the divided file FD stored in the storage device 40 is a dictionary file, and the application 10 is application software for performing a dictionary search.
[0035]
The storage device 40 stores a plurality of divided files FD and an index file FI in which index information for managing the divided files FD is described.
[0036]
Here, the operating system of the information processing apparatus 1 has a limited function of the file system 30. Specifically, the file system 30 can perform only sequential file access that sequentially accesses from the beginning of the file. That is, the file system 30 does not have a function of accessing an arbitrary position of a file at a high speed, such as moving the file forward.
[0037]
The application 10 can access only one file at a time, and does not have a function to access a plurality of files at the same time.
[0038]
The file management unit 20 is middleware provided between the application 10 having such limited functions and the file system 30. That is, the file management unit 20 functions as an interface that mediates file access to the storage device 40 upon receiving a file access command from the application 10. More specifically, the file management unit 20 sends the application 10 a divided file FD divided and stored in the storage device 40 into a single undivided combined file FC (actually stored in the storage device 40). Provides an environment that can be accessed using a file access instruction for accessing a virtual combination file FCim) that does not exist in the file. As described below, the file management unit 20 controls access to the divided file FD based on the index file FI.
[0039]
Next, the index file FI and the divided file FD stored in the storage device 40 will be described with reference to FIGS. FIG. 2 is an explanatory diagram showing a specific example of the combined file FC, the divided file FD, and the index file FI. FIG. 3 is an explanatory diagram showing the data structure of the index file FI. FIG. 4 is an explanatory diagram showing a specific example of the index file FI.
[0040]
As shown in FIG. 2, the divided file FD is obtained by dividing the originally one combined file FC into a plurality. Note that the size of each divided file FD is arbitrary, and it is not necessary that the combined file FC is equally divided (FIG. 4).
[0041]
As shown in FIGS. 3 and 4, the index file FI describes index information such as the file name, order, and size of the divided files FD in association with each divided file FD. In the index file FI, a header indicating a divided file management index is described at the head of the file.
[0042]
In the specific example shown in FIG. 2, the file "ABCD.DAT" (combined file FC) divided into 64 parts of an arbitrary size is converted into files "ABCD.000" to "ABCD.063" (partitioned files FD (FD1 to FD64). )). The index file "ABCD.IDX" (index file FI) manages the divided files in the order of division.
[0043]
As shown in FIG. 4, a header such as a version number indicating that this file is an index file FI that manages the index information of the divided file FD is included in the first line of the index file “ABCD.IDX”. Is described. In the second and subsequent lines, the file names and file sizes of the divided files FD1 to FD64 are described in the order of division. Note that the index file FI can be described in any format, and may be described in, for example, text or binary.
[0044]
As shown in FIG. 1, the file management unit 20 includes a file access command receiving unit 21, an index management unit 22, and a file access execution unit 23. The file division / combination unit 24 will be described later.
[0045]
The file access command receiving unit (file access command receiving means) 21 receives a file access command from the application 10 together with access position information specifying a position to be accessed by a position in the combined file FC.
[0046]
The index management unit (index management means) 22 manages the position of each divided file FD in the combined file FC and the size of each divided file FD as index information, and based on this index information, controls access to the divided file FD. Control. The index management unit 22 acquires the index information by reading the index file FI from the storage device 40.
[0047]
When starting access to the divided file FD, the index management unit 22 reads information of the index file FI and checks consistency with each divided file FD stored in the storage device 40. Specifically, the index management unit 22 checks whether all the divided files FD described in the index file FI exist, whether the file size of each divided file FD matches the description, and the like. Normal access is possible.
[0048]
Then, the index management unit 22 specifies the divided file FD including the position indicated by the access position information and the access position in the divided file FD based on the index information, and gives the file access execution unit 23 an access to the divided file FD. Is executed.
[0049]
Further, when the data requested to be accessed by the application 10 is continuous data in the combined file FC and is stored in a plurality of divided files FD in a distributed manner, the index management unit 22 Then, the user accesses the plurality of divided files FD while sequentially switching the divided files FD to be accessed.
[0050]
When the index file FI is specified as a file to be accessed from the application 10, the index management unit 22 changes the file to be accessed to the divided file FD managed by the index file FI. The file management unit 20 determines that the access is to the index file FI by detecting the header (FIGS. 3 and 4) of the index file FI in the read file.
[0051]
The file access execution unit (file access execution unit) 23 uses a file system 30 that performs sequential file access to a storage device 40 that divides one combined file FC into a plurality of divided files FD and stores the divided files. Access the divided file FD.
[0052]
Further, as shown in FIG. 1, the file management unit 20 includes a file division / combination unit 24. FIG. 11 is an explanatory diagram showing the relationship between the combined file FC and the divided file FD.
[0053]
First, the file dividing / combining unit (file dividing unit) 24 divides the combined file FC to generate a plurality of divided files FD. At this time, the index management unit 22 generates an index file FI that stores the position and size of each divided file FD in the combined file FC and stores the index file FI in the storage device 40. Further, the file access execution unit 23 stores each divided file FD in the storage device 40. The combined file FC is supplied from the external storage device 2 to the file dividing / combining unit 24, for example. Thus, the divided file FD can be generated from the combined file FC, and the divided file FD and the index file FI can be stored in the storage device 40 as a set. That is, the file can be configured in the storage device 40 so as to be usable via the file management unit 20.
[0054]
Second, the file dividing / combining unit (file combining unit) 24 combines a plurality of divided files FD stored in the storage device 40 based on the index file FI managed by the index managing unit 22 to create a combined file FC. Generate The combined file FC generated by the file division / combination unit 24 is stored in, for example, the external storage device 2. As a result, even a device that does not include the file management unit 20 can access a file having the same content as the divided file FC (combined file FC). That is, since the divided file FD can be taken out as the combined file FC, compatibility with other devices can be maintained.
[0055]
Next, the processing of the file management unit 20 will be described with reference to FIGS.
[0056]
(1) Split file open processing
FIG. 5 is a flowchart showing a file open process.
[0057]
First, when the file access command receiving unit 21 receives a file open command from the application 10 (file access command receiving step), it determines whether the specified file to be opened is the index file FI (SO1). If the file to be opened is not the index file FI (NO in SO1), the file access execution unit 23 performs a normal file open process (SO5).
[0058]
On the other hand, if the file to be opened is the index file FI (YES in SO1), the index management unit 22 reads the index file FI and sets the index information of the divided file FD in the work (SO2). Next, after the index management unit 22 checks the validity of the divided file FD described in the index file FI (SO3), the file access execution unit 23 transmits the first file (divided file-1) FD1 of the divided file FD. (SO4; divided file identification step, file access execution step). Thus, the preparation for accessing the divided file FD is completed.
[0059]
(2) Split file skip processing
FIG. 6 is a follow chart showing a file skip process.
[0060]
First, when receiving the file skip command from the application 10 (file access command receiving step), the file access command receiving unit 21 determines whether the specified file to be accessed is the divided file FD (SS1). If the file is not the divided file FD but a normal file (NO in SS1), the index management unit 22 does not perform the processing, and the file access execution unit 23 performs the normal file skip processing (SS9).
[0061]
On the other hand, when the file to be accessed is the divided file FD (YES in SS1), the index management unit 22 determines the index based on the index information for the given skip destination and the index information of the divided file FD1 read at the time of opening. The skip size from the beginning of the divided file FD to the skip position is calculated (SS2). Next, the index management unit 22 compares the skip size with the size of the first file FD1 of the divided file (SS3). If the skip size is larger than the size of the compared file FD1 (NO in SS4), the size of the compared divided file FD1 is subtracted from the skip size, and this is set as a new skip size (SS7). Steps SS4 and SS7 are repeated until the divided files FD (FD2 to FDn) to be compared are smaller than the skip size while being changed according to the index file FI. When the skip size finally becomes smaller than the size of the divided file FD to be compared (YES in SS4), the position skipped by the skip size from the beginning of the divided file FD at this time becomes the target skip position. Steps SS2 to SS4 and SS7 correspond to a divided file specifying step.
[0062]
Next, the file access execution unit 23 determines whether or not the currently opened file is the divided file FD obtained by repeating Step SS4 and Step SS7 (SS5), and if different (NO in SS5), The current file is closed, and the obtained divided file FD is opened (SS8). Finally, the file access execution unit 23 executes a skip process on the currently opened divided file FD based on the skip size (SS6). Steps SS6 and SS8 correspond to a file access execution step.
[0063]
(3) Split file read processing
FIG. 7 is a flowchart showing a file reading process.
[0064]
First, when the file access command receiving unit 21 receives a file read command from the application 10 (file access command receiving step), it determines whether the specified file to be accessed is the divided file FD (SR1). If the file to be accessed is not a divided file FD but a normal file (NO in SR1), the index management unit 22 does not perform the process, and the file access execution unit 23 performs the normal file reading process (SR5).
[0065]
On the other hand, if the file to be accessed is the divided file FD (YES in SR1), the file access execution unit 23 reads a required size or a readable size from the currently opened divided file FD (SR2). . If the file access execution unit 23 determines that reading of the required size has not been completed (NO in SR3), the currently opened divided file is closed and the next divided file is opened (SR4; (A divided file specifying step, a file access executing step), and step SR2 is executed again. When the file access execution unit 23 repeats steps SR2 to SR4 to read the required size (YES in SR3), the reading from the divided file FD is completed.
[0066]
(4) Split file writing process
FIG. 8 and FIG. 9 are flowcharts showing a writing process to a file.
[0067]
First, as shown in FIG. 8, when the file access command receiving unit 21 receives a file write command from the application 10 (file access command receiving step), it is determined whether the specified file to be accessed is the divided file FD. A judgment is made (SW1). If the file to be accessed is not a divided file but a normal file (NO in SW1), the index management unit 22 does not perform any processing, and the file access execution unit 23 performs normal file writing processing (SW5).
[0068]
On the other hand, when the file to be accessed is the divided file FD (YES in SW1), the file access execution unit 23 writes the required size or the writeable size to the currently opened file (SW2). Then, the file access execution unit 23 determines whether the writing for the required size has been completed (SW3), and if the writing has not been completed (NO in SW3), executes the close / open processing to perform the writing processing again. (SW4; divided file identification step, file access execution step).
[0069]
Here, as shown in FIG. 9, in the close / open processing (SW4), the file access execution unit 23 checks whether or not a divided file next to the currently opened file exists (SW41). If not (NO in SW41), the currently open file is closed, and a file to be written next is newly created (SW43). At this time, the index management unit 22 sets the addition of the file to the work index file FI (divided file management work) (SW44). On the other hand, if there is a file next to the currently opened file (YES in SW41), the file access execution unit 23 closes the current file and opens the next file (SW42).
[0070]
Next, as shown in FIG. 8, after the completion of the close / open processing (SW4), steps SW2 to SW4 are repeated, and if the file access execution unit 23 writes the required size (YES in SW3), the file access to the divided file FD is performed. Writing is completed.
[0071]
(5) Split file close processing
FIG. 10 is a flowchart showing a file closing process.
[0072]
First, when receiving the file close command from the application 10 (file access command receiving step), the file access command receiving unit 21 determines whether the file to be closed is the divided file FD (SC1). When the file to be closed is not the divided file FD (NO in SC1), the index management unit 22 does not perform the process, and the file access execution unit 23 performs the normal file close process (SC5).
[0073]
On the other hand, if the file to be closed is a divided file (YES in SC1), the index management unit 22 determines whether there is a change in the index information in the writing process to the divided file FD (SC2). If YES in SC2, the index file FI is updated (SC3). Finally, the file access execution unit 23 performs a normal closing process of the currently opened divided file FD, and the index management unit 22 performs a work initialization process (SC4).
[0074]
As described above, in the information processing apparatus 1 in which the application 10 that can access only one file at a time randomly accesses a huge file using the file system 30 that performs sequential file access, the file management unit 20 , And manages the divided file FD divided into a plurality by using the index file FI.
[0075]
Thus, the file management unit 20 enables high-speed access to a huge file such as a dictionary file, and also enables the application 10 to simulate a single file. Therefore, it is not necessary for the application 10 to manage the divided file FD, and it is not necessary to enhance the function of the file system 30. Therefore, even if the capacity of the data file used by the application 10 becomes large, it is not necessary to change the format of the file access instruction of the file system 30 and / or the application 10, and the existing file system 30 and the application 10 can be used. .
[0076]
The information processing apparatus 1, that is, the file management unit 20 is suitable for a portable electronic dictionary device with limited hardware and software functions, but can be applied to other applications. Further, the present invention can be applied to a high-performance computer such as a desktop computer, and a similar effect can be obtained.
[0077]
Further, in the present embodiment, the case where the application 10, the file management unit 20, the file system 30, and the storage device 40 are provided in one information processing device 1 has been described, but these are configured in separate devices. May be communicably connected to each other.
[0078]
Further, in the present embodiment, the case where the file management unit 20 is provided separately from the application 10 and the file system 30 has been described, but the file management unit 20 may be provided integrally with the application 10 or the file system 30.
[0079]
Further, in the present embodiment, the case where one combined file FC is divided and the index file FI is stored together with the divided file FD in the storage device 40 is described. Each divided file FD may be stored. In this case, the index file FI may be created for each combined file FC, or the index information of the divided files FD corresponding to the plurality of combined files FC may be stored in one index file FI.
[0080]
Note that the present embodiment does not limit the scope of the present invention, and various changes can be made within the scope of the present invention. For example, the present embodiment can be configured as follows.
[0081]
A file management method according to the present invention, in an information processing apparatus capable of managing files using a file system, divides one file to be recorded into two or more files and records the divided files, When reading the position, by controlling the order and size of the divided and recorded files, determine the divided file containing the specific position, find the specific part in the divided file, and select any part It may be a method of speeding up access to.
[0082]
Thus, by dividing the file in advance, it is possible to manage the divided file in an application operating on the operating system. In addition, by dividing a file, the size of the skipped file is the largest of the divided file size. In other words, by making a divided file, it is possible to reach the position of the skip destination with the minimum necessary disk access, and it is possible to speed up the access.
[0083]
Further, the file management method described above records an index file describing the divided file name together with the divided file, and when reading any specific position of the file, the order of the divided and recorded files from the index file is read. May be managed.
[0084]
Thus, the divided file names can be managed by the file names specified in the index file. Therefore, by using the index file, the divided file names can be set flexibly.
[0085]
Further, the file management method described above manages the order and size of the files divided and recorded from the index file when reading any specific position of the file by describing the file name and the file size in the index file. It may be a method.
[0086]
Thus, the divided file names can be managed by the file names specified in the index file. Therefore, by using the index file, the divided file names can be set flexibly.
[0087]
Further, in the file management method, the file name specified when opening the file may be the index file.
[0088]
Thus, when the file name to be opened is the index file name, the divided file can be accessed as if it were one file.
[0089]
Further, in the above file management method, when two or more continuous data at a specific position of a required file exist in two or more files, a file to be referred to is switched in a part where data of the file is divided. Thus, a method of handling as continuous data may be used.
[0090]
Thus, the divided files can be accessed as if they were one file.
[0091]
Further, the file management method may be a method that can handle a divided file without changing a file read command of an application using a file system.
[0092]
Thus, the above-described file management method can be implemented on the operating system level or on the virtual operating system on the application. Therefore, it is not necessary to change the file operation at the application level.
[0093]
Further, the above file management method implements a program for returning a divided file to one file before division, and executes the program for returning to a file before division even in an apparatus having no function of accessing the divided file. By doing so, a method that allows access to the file before division may be used.
[0094]
As a result, the divided file can be restored by the user's operation, so that it is possible to set a file access method according to the user's operating environment. That is, since it is not necessary to divide a high-speed operating system, it is possible to return to one file to enhance the convenience and maintain the compatibility.
[0095]
Further, the information processing apparatus of the present invention may be an information processing apparatus in which a file system performs sequential file access, and may perform the above-described file management method.
[0096]
Lastly, the information processing apparatus 1 includes a CPU (central processing unit) for executing a command of a program for realizing the provided function, a ROM (read only memory) storing boot logic, and a RAM (random access) for expanding the program. memory, a storage device (including the storage device 40) for storing the programs and various databases, input devices such as a keyboard and a mouse, and output devices such as a monitor, a speaker, and a printer are connected by an internal bus. . The storage device 40 and the external storage device 2 are arbitrary storage devices, for example, a hard disk, a floppy (registered trademark) disk, a medium such as a CD-ROM, an optical disk, a magneto-optical disk, an MD, and a ROM / RAM memory. Etc. are available.
[0097]
An object of the present invention is to provide a computer-readable recording medium storing a program code (executable format program, intermediate code program, source program) of a file management program which is software for realizing the above-described functions. And a computer (or CPU, MPU, or DSP) of the system or apparatus reads out and executes the program code recorded on the recording medium. In this case, the program code itself read from the recording medium realizes the above-described function, and the recording medium on which the program code is recorded constitutes the present invention. Specifically, the file management unit 20 included in the information processing device 1 executes a predetermined program stored in a memory (not illustrated) of the information processing device 1 by executing a predetermined program by a microprocessor (not illustrated) or the like. Is achieved.
[0098]
The recording medium for supplying the program code can be configured to be separable from the system or the device. Further, the recording medium may be a medium that fixedly carries the program code so that the program code can be supplied. Even if the recording medium is mounted on a system or an apparatus so that a computer can directly read the recorded program code, the recording medium may be connected to a system or apparatus as an external storage device via a program reading apparatus connected to the system or the apparatus. It may be mounted so that it can be read.
[0099]
For example, the recording medium may be a tape system such as a magnetic tape or a cassette tape, a magnetic disk such as a floppy (registered trademark) disk / hard disk, or a disk including an optical disk such as a CD-ROM / MO / MD / DVD / CD-R. System, a card system such as an IC card (including a memory card) / optical card, or a semiconductor memory system such as a mask ROM / EPROM / EEPROM / flash ROM.
[0100]
Further, the program code may be recorded so that the computer can read out from the recording medium and directly execute the program code, or can be read out from the main storage and executed by the computer after being transferred from the recording medium to the program storage area of the main storage. May be recorded as follows.
[0101]
Further, the system or device may be configured to be connectable to a communication network, and the program code may be supplied via the communication network. The communication network is not particularly limited. Specifically, the Internet, an intranet, an extranet, a LAN, an ISDN, a VAN, a CATV communication network, a virtual private network, a telephone network, and a mobile communication A network, a satellite communication network, etc. can be used. The transmission medium constituting the communication network is not particularly limited. Specifically, even if the transmission medium is a wire such as IEEE 1394, USB, power line carrier, cable TV line, telephone line, or ADSL line, an infrared ray such as IrDA or a remote control is used. , Bluetooth, 802.11 wireless, HDR, mobile phone network, satellite line, digital terrestrial network, and the like.
[0102]
The program for reading the program code from the recording medium and storing the program code in the main memory, and the program for downloading the program code from the communication network are stored in advance in a system or an apparatus so as to be executable by a computer. I do.
[0103]
The above-described functions are realized not only by executing the above-described program code read by the computer, but also executing a part or all of the actual processing by the OS or the like running on the computer based on the instruction of the program code. It is also realized by performing.
[0104]
Further, the above-described function is realized by writing the program code read from the recording medium into a memory provided in a function expansion board mounted on a computer or a function expansion unit connected to the computer, and then executing the program code. Is also realized by a CPU or the like provided in the function expansion board or function expansion unit performing part or all of the actual processing based on the instruction.
[0105]
【The invention's effect】
As described above, the information processing apparatus of the present invention accesses each divided file using a file system that performs sequential file access to a storage device that divides one combined file into a plurality of divided files and stores the divided file. File access execution means, file access instruction receiving means for receiving a file access instruction together with access position information specifying a position to be accessed from the application by the position in the connection file, and a position of each divided file in the connection file. And an index that specifies the divided file including the position indicated by the access position information and the access position in the divided file based on the size of each divided file, and causes the file access execution unit to execute the access to the divided file. A management unit, a configuration equipped with.
[0106]
Further, the file management method of the present invention is a file management method used for a storage device that divides one combined file into a plurality of divided files and stores the divided file, wherein an application specifies a location to be accessed by a position in the combined file. A file access command receiving step of receiving a file access command together with the obtained access position information, a position of each divided file in the combined file, and a divided file including a position indicated by the access position information based on the size of each divided file; A divided file specifying step for specifying an access position in the divided file, and a file for accessing the access position of the divided file specified in the divided file specifying step by using a file system for performing sequential file access And access execution step, the method comprising.
[0107]
Therefore, by using a divided file, it is possible to reach the access position specified by the application with the minimum necessary disk access, and to speed up the access. Therefore, there is no need to enhance the function of the file system. In addition, an interface that can access the divided file can be realized by the same access operation as accessing a single combined file for the application. Therefore, the application does not need to manage the divided files.
[0108]
Therefore, there is an effect that a huge file such as a dictionary file can be accessed at high speed. Further, even if the capacity of the data file used by the application becomes large, there is no need to change the format of the file access command of the file system and / or the application, so that the existing file system and application can be used.
[0109]
Further, in the information processing apparatus according to the present invention, the index management unit may be configured such that the data requested to be accessed by the application is continuous data in the combined file and is stored in a distributed manner in a plurality of divided files. The file access execution means accesses the plurality of divided files while sequentially switching the divided files to be accessed.
[0110]
Therefore, even when required continuous data exists over two or more divided files, it can be handled as continuous data. Therefore, there is an effect that a plurality of divided files can be accessed as if they were one file.
[0111]
Further, the information processing apparatus of the present invention has a configuration in which an index file storing the index information is stored in a storage device storing the divided file.
[0112]
Therefore, it is possible to obtain the index information by reading the index file. Further, since the divided file can be managed by the file name specified in the index file, it is possible to flexibly set the divided file name. Further, since the index file is stored in the storage device together with the divided file, there is an effect that the handling is simple.
[0113]
Further, in the information processing apparatus according to the present invention, when the index file is designated as a file to be accessed from an application, the index management unit changes the file to be accessed to a divided file managed by the index file. Things.
[0114]
Therefore, there is an effect that the application can access a plurality of divided files as if they were one file. In addition, since the index file actually exists in the storage device, there is an effect that the index file is easier to handle than specifying a combined file before division that does not actually exist.
[0115]
Furthermore, the information processing apparatus of the present invention further includes a file dividing unit that divides the combined file to generate the plurality of divided files, wherein the index management unit determines a position of each divided file in the combined file; An index file storing the size of the divided file is generated and stored in the storage device, and the file access execution means stores each divided file in the storage device.
[0116]
Therefore, there is an effect that the file can be configured in the storage device so that the divided file can be accessed using the index file.
[0117]
Further, the information processing apparatus of the present invention includes a file combining unit that combines a plurality of divided files stored in the storage device to generate a combined file based on the index file managed by the index management unit. It is.
[0118]
Therefore, since the divided file can be further taken out as a combined file, it is possible to maintain the compatibility with other devices.
[0119]
Further, a file management program of the present invention is a computer program that causes a computer to function as each unit of the information processing apparatus.
[0120]
Therefore, there is an effect that the information processing apparatus can be realized by realizing each unit of the information processing apparatus by a computer.
[0121]
In addition, a computer-readable recording medium storing the file management program of the present invention is a computer-readable recording medium that stores a file management program that causes the computer to realize each unit of the information processing apparatus. It is a recording medium.
[0122]
Therefore, there is an effect that the information processing apparatus can be realized on a computer by the file management program read from the recording medium.
[Brief description of the drawings]
FIG. 1 is a functional block diagram schematically illustrating a configuration of an information processing apparatus according to an embodiment of the present invention.
FIG. 2 is an explanatory diagram showing a specific example of a combined file, a divided file, and an index file in the information processing apparatus shown in FIG.
FIG. 3 is an explanatory diagram illustrating a data structure of an index file in the information processing apparatus illustrated in FIG. 1;
FIG. 4 is an explanatory diagram showing a specific example of an index file in the information processing device shown in FIG. 1;
FIG. 5 is a flowchart showing a file open process in the information processing apparatus shown in FIG. 1;
FIG. 6 is a flowchart showing a file skip process in the information processing apparatus shown in FIG. 1;
FIG. 7 is a flowchart showing a file reading process in the information processing apparatus shown in FIG. 1;
FIG. 8 is a flowchart illustrating a file writing process in the information processing apparatus illustrated in FIG. 1;
FIG. 9 is a flowchart showing details of a close / open process of the file write process shown in FIG. 8;
FIG. 10 is a flowchart showing a file closing process in the information processing apparatus shown in FIG. 1;
11 is an explanatory diagram illustrating a relationship between a combined file and a divided file in the information processing device illustrated in FIG. 1;
[Explanation of symbols]
1 Information processing device
10 Applications
21 File Access Instruction Receiving Unit (File Access Instruction Receiving Means)
22 Index management unit (index management means)
23 File access execution unit (file access execution means)
24 File division / combination unit (file division means, file combination means)
30 File System
40 storage devices
FC connection file
FD (FD1 to FDn) Split file
FI index file
SO1, SS1, SR1, SW1, SC1 File access command receiving step
SO4, SS2 to SS4, SS7, SR4, SW4 Split file identification step
SO4, SS6, SS8, SR4, SW4 File access execution step

Claims (9)

1つの結合ファイルを複数の分割ファイルに分割して記憶する記憶装置に対して、シーケンシャルなファイルアクセスを行うファイルシステムを用いて各分割ファイルにアクセスするファイルアクセス実行手段と、
アプリケーションから、アクセスすべき位置を上記結合ファイルにおける位置で特定したアクセス位置情報とともに、ファイルアクセス命令を受け取るファイルアクセス命令受取手段と、
各分割ファイルの上記結合ファイルにおける位置、および各分割ファイルのサイズに基づいて、上記アクセス位置情報が示す位置を含む分割ファイルおよび当該分割ファイルにおけるアクセス位置を特定し、上記ファイルアクセス実行手段に当該分割ファイルへのアクセスを実行させるインデックス管理手段と、を備えることを特徴とする情報処理装置。
File access execution means for accessing each divided file by using a file system for performing sequential file access to a storage device which divides one combined file into a plurality of divided files and stores the divided file;
File access command receiving means for receiving a file access command from an application together with access position information specifying a position to be accessed by the position in the combined file;
Based on the position of each divided file in the combined file and the size of each divided file, the divided file including the position indicated by the access position information and the access position in the divided file are specified, and the file access execution means specifies the divided file. An information processing apparatus comprising: index management means for executing access to a file.
上記インデックス管理手段は、アプリケーションによってアクセスが要求されたデータが、結合ファイルにおいて連続するデータであって、複数の分割ファイルに分散して格納されている場合、上記ファイルアクセス実行手段に、アクセスする分割ファイルを順次切り替えながら当該複数の分割ファイルにアクセスさせるものであることを特徴とする請求項1に記載の情報処理装置。When the data requested to be accessed by the application is continuous data in the combined file and is stored in a distributed manner in a plurality of divided files, the index managing means may access the divided file to be accessed by the file access executing means. 2. The information processing apparatus according to claim 1, wherein the plurality of divided files are accessed while the files are sequentially switched. 上記インデックス情報を格納したインデックスファイルが、上記分割ファイルを記憶した記憶装置に記憶されていることを特徴とする請求項1または2に記載の情報処理装置。The information processing apparatus according to claim 1, wherein the index file storing the index information is stored in a storage device storing the divided file. 上記インデックス管理手段は、アプリケーションからアクセスすべきファイルとして上記インデックスファイルが指定された場合、アクセスすべきファイルを当該インデックスファイルが管理している分割ファイルに変更するものであることを特徴とする請求項3に記載の情報処理装置。The said index management means, when the index file is designated as a file to be accessed from an application, changes the file to be accessed to a divided file managed by the index file. 4. The information processing device according to 3. 上記結合ファイルを分割して上記複数の分割ファイルを生成するファイル分割手段をさらに備え、
上記インデックス管理手段が、各分割ファイルの上記結合ファイルにおける位置、および各分割ファイルのサイズを格納したインデックスファイルを生成して上記記憶装置に記憶するものであり、
上記ファイルアクセス実行手段が、各分割ファイルを上記記憶装置に記憶するものであることを特徴とする請求項3に記載の情報処理装置。
File splitting means for splitting the combined file to generate the plurality of split files,
The index management means generates an index file storing a position of each divided file in the combined file and a size of each divided file, and stores the generated index file in the storage device.
4. The information processing apparatus according to claim 3, wherein said file access execution means stores each divided file in said storage device.
上記インデックス管理手段が管理する上記インデックスファイルに基づき、上記記憶装置に記憶されている複数の分割ファイルを結合して結合ファイルを生成するファイル結合手段を備えることを特徴とする請求項3に記載の情報処理装置。4. The apparatus according to claim 3, further comprising file combining means for combining a plurality of divided files stored in the storage device to generate a combined file based on the index file managed by the index managing means. Information processing device. 1つの結合ファイルを複数の分割ファイルに分割して記憶する記憶装置に用いるファイル管理方法であって、
アプリケーションから、アクセスすべき位置を結合ファイルにおける位置で特定したアクセス位置情報とともに、ファイルアクセス命令を受け取るファイルアクセス命令受取ステップと、
各分割ファイルの上記結合ファイルにおける位置、および各分割ファイルのサイズに基づいて、上記アクセス位置情報が示す位置を含む分割ファイルおよび当該分割ファイルにおけるアクセス位置を特定する分割ファイル特定ステップと、
上記分割ファイル特定ステップで特定された分割ファイルのアクセス位置に、シーケンシャルなファイルアクセスを行うファイルシステムを用いてアクセスするファイルアクセス実行ステップと、を含むことを特徴とするファイル管理方法。
A file management method used for a storage device that divides one combined file into a plurality of divided files and stores the divided files,
A file access command receiving step of receiving a file access command from the application together with access position information specifying a position to be accessed by a position in the combined file;
Based on the position of each divided file in the combined file and the size of each divided file, a divided file including a position indicated by the access position information and a divided file specifying step of specifying an access position in the divided file;
A file access execution step of accessing the access position of the divided file specified in the divided file specifying step using a file system for performing sequential file access.
請求項1から6のいずれか1項に記載の情報処理装置を動作させるファイル管理プログラムであって、コンピュータを上記の各手段として機能させるためのファイル管理プログラム。A file management program for operating the information processing apparatus according to claim 1, wherein the program causes a computer to function as each of the above means. 請求項8に記載のファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。A computer-readable recording medium recording the file management program according to claim 8.
JP2003076293A 2003-03-19 2003-03-19 Information processor, file managing method, file managing program, and computer-readable recording medium recorded with the program Pending JP2004287601A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003076293A JP2004287601A (en) 2003-03-19 2003-03-19 Information processor, file managing method, file managing program, and computer-readable recording medium recorded with the program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003076293A JP2004287601A (en) 2003-03-19 2003-03-19 Information processor, file managing method, file managing program, and computer-readable recording medium recorded with the program

Publications (2)

Publication Number Publication Date
JP2004287601A true JP2004287601A (en) 2004-10-14
JP2004287601A5 JP2004287601A5 (en) 2006-05-11

Family

ID=33291386

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003076293A Pending JP2004287601A (en) 2003-03-19 2003-03-19 Information processor, file managing method, file managing program, and computer-readable recording medium recorded with the program

Country Status (1)

Country Link
JP (1) JP2004287601A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338298A (en) * 2005-06-01 2006-12-14 Sharp Corp Divided management method of multi-data and information terminal device using the same
JP2009271739A (en) * 2008-05-08 2009-11-19 Nec Software Chubu Ltd Information processing system, information processing apparatus, transfer program and transfer method
JP2019101561A (en) * 2017-11-29 2019-06-24 富士通株式会社 Information processing apparatus, information processing method, and program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338298A (en) * 2005-06-01 2006-12-14 Sharp Corp Divided management method of multi-data and information terminal device using the same
JP2009271739A (en) * 2008-05-08 2009-11-19 Nec Software Chubu Ltd Information processing system, information processing apparatus, transfer program and transfer method
JP2019101561A (en) * 2017-11-29 2019-06-24 富士通株式会社 Information processing apparatus, information processing method, and program

Similar Documents

Publication Publication Date Title
US8150809B2 (en) File delete method, file open method, storage medium storing file delete program, and storage medium storing file open program
EP1650665B1 (en) File management method and information processing device
JP4406224B2 (en) Image file management method and recording medium therefor
US8065473B2 (en) Method for controlling memory card and method for controlling nonvolatile semiconductor memory
US7831578B2 (en) Apparatus for file system management with virtual file name
US7769920B2 (en) Information processing apparatus, information processing method, and program and recording medium used therewith
JP4434379B2 (en) Information processing apparatus and method, and recording medium
GB2383859A (en) Memory controller managing a file allocation table for a memory card
JP2004272901A (en) Use of virtual target for creating and processing request asking for server free data transfer operation
JP2008107965A (en) Information processing apparatus, information processing method, program, and program recording medium
JP2008527511A (en) Data storage device
JP2002514331A (en) Computer-implemented method for generating a virtual file for sharing information in a physical information file
JP2005122439A (en) Device equipment and format conversion method for recording device of device equipment
JP2005302233A (en) Information memory device, information storing method, and information memory processing program
US20060095660A1 (en) Media storage apparatus, cache segment switching method of media storage apparatus, and media storage system
JP2004287601A (en) Information processor, file managing method, file managing program, and computer-readable recording medium recorded with the program
CN114328417A (en) Case data quick access system
JP4378342B2 (en) Mechanism for applying transformations to multipart files
JP2008287675A (en) Storage interface conversion device, information processing system and computer program
Kim et al. Design and implementation of split/merge operations for efficient multimedia file manipulation
KR102392863B1 (en) Real-time dynamic setting of file system compatibility
JP2008134777A (en) Caching method of file allocation table
JP3297966B2 (en) Data access method
JP2003036192A (en) File management program, computer-readable recording medium having the program recorded therein and file management method
CN113821483A (en) File operation method, medium and electronic device

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060320

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060320

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090309

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090407