説明

ファイル管理方法及び情報処理装置

情報記録媒体に対してデータの読出、記録を行う情報処理装置に、ファイルシステム制御部を設ける。情報処理装置内のシステムメモリ内にファイルシステム制御情報を構築し、ファイルシステム制御部は個々にファイルシステムで管理されている複数の情報記録媒体を仮想的な1つのファイルシステムに統合して制御する。またファイルシステム制御部は同一名称のファイルが存在した場合に、優先的に使用する情報記録媒体を示す優先順位を管理する。この優先順位はアプリケーションプログラムからの要求に応じて変更できる。これにより、複数の情報記録媒体の統合管理が可能となり、かつ同一名称のファイル全てにアプリケーションがアクセスできる。

【発明の詳細な説明】
【技術分野】
本発明は、ファイルシステムにより個々に管理されている複数の情報記録媒体を統括して管理するファイル管理方法、及びこのファイル管理方法を用いた情報処理装置に関する。
【背景技術】
情報記録媒体として半導体メモリ、磁気ディスク、光ディスク、光磁気ディスクなどがある。従来、このような情報記録媒体の情報記録領域に格納されたデータの管理は、ファイルシステムにより行われている。ファイルシステムでは、情報記録領域を最小アクセス単位であるセクタ、及びセクタの集合であるクラスタに分割して管理し、1つ以上のクラスタをファイルとして管理する。
従来使用されているファイルシステムとして、FATファイルシステムが一例に挙げられる。その詳細は、ISO/IEC9293、“Information Technology−Volume and file structure of disk cartridges for information”、1994年に開示されている。
FATファイルシステムは、パソコンなどの情報機器で一般に用いられているファイルシステムであり、ファイルを構成するデータの物理的な格納位置をFAT(File Allocation Table)と呼ばれるテーブルにより一元管理する。FATファイルシステムによりデータが管理された情報記録媒体は、同一のファイルシステムを解釈する機器間でファイルを共有することができる。このためFATファイルシステムを用いると、複数の機器間でデータを授受することが可能となる。
このようなファイルシステムは、通常、1つの情報記録媒体の管理を目的として構築されている。複数の情報記録媒体が情報処理装置に存在する場合は、個々の情報記録媒体が夫々独立したファイルシステムで管理される。情報処理装置が複数の情報記録媒体を扱う方法として、従来ドライブによる管理方法、あるいはマウントポイントによる管理方法が存在する。
ドライブによる管理方法では、各情報記録媒体に固有のドライブID(例えばCドライブ、Dドライブなど)を割り付け、そのドライブIDを用いてアクセスすべき情報記録媒体を切り替える。またマウントポイントによる管理方法では、主ファイルシステムが管理しているファイル及びディレクトリにより構成される木構造内の特定箇所に、各情報記録媒体の木構造を割り付ける。そして木構造内のアクセス位置を切り替えることで、アクセスすべき情報記録媒体を切り替える。
しかしながらこれらの方法では、ユーザは複数の情報記録媒体を切り替えて使用する必要があり、情報記録媒体の個数が増加するにつれ、ユーザにかかる負担は大きくなる。また、複数の情報記録媒体が自由に情報処理装置から着脱可能である場合、情報処理装置に装着する順番や位置が異なれば、前回装着された時点とは異なるドライブ、アクセス位置に割り付けられることになる。この場合、ユーザが正しく情報記録媒体を特定することが困難となる。
従来、このような問題を解決する方法として、複数の情報記録媒体を統括する統合ファイルシステムを用いて、アプリケーションとのインターフェースを1つにする方法が提案されている。この方法は例えば特開2000−163298号公報に開示されている。この従来の方法では、複数の情報記録媒体を個別のファイルシステムで管理する。そして、各ファイルシステムを統合する統合ファイルシステムをその上位層に設けて、アプリケーションとのインターフェースを1つにする。このようにファイルシステムを2層に分割して管理することで、アプリケーションとのインターフェースを統合し、ユーザにかかる負担を低減する。
しかしながら、上記の従来技術には次のような問題点がある。従来のファイル管理方法は、任意のファイルシステムが構築された情報記録媒体を情報処理装置に付加することで、情報処理装置で扱う記録容量の増加を容易に実現することを目的としている。そのため、複数の情報記録媒体を複数の情報処理装置間で自由に着脱して使用することは想定していない。また複数の情報記録媒体内に同一名称のファイルが存在する場合も想定していない。同一名称のファイルが存在した場合、インターフェースが統一されているため、アプリケーションはどのファイルにアクセスしているか判定することができず、最悪の場合、同一名称のファイル全てがアクセス不能となる可能性があった。
本発明では上記問題点に鑑み、複数の情報記録媒体上に個々にファイルシステムが構築されている場合に、アプリケーションに対し複数の情報記録媒体全体を仮想的に1つのファイルシステムで管理されているように見せると共に、同一名称のファイルが存在する場合にもアプリケーションが各ファイルにアクセスできる方法を実現することを目的とする。
【発明の開示】
本発明の情報処理装置は、情報記録領域に格納されたデータが個々のファイルシステムによりファイルとして管理される情報記録媒体が複数個存在するとき、複数個の情報記録媒体を同時に装着可能にすることを特徴とする。システムメモリ部は複数の情報記録媒体に構築された個々のファイルシステムを認識し、仮想的な1つのファイルシステムに統合して制御するためのファイルシステム制御情報を保持する。ファイルシステム制御部は、複数個の情報記録媒体の使用に関する優先順位を管理すると共に、アプリケーションプログラムからの要求により、ファイルシステム制御情報に含まれるスロット情報及びオープン情報を参照して、情報記録媒体に対して論理的な情報記録領域にファイルアクセスする。
本発明のファイル管理方法は、複数の情報記録媒体内の情報記録領域に夫々格納されたデータを、情報処理装置のファイルシステム制御部とアクセス制御部により管理することを特徴とする。まず情報記録媒体を装着する複数のスロットに対し使用優先順位を設定する。そして、情報記録媒体が複数のスロットのいずれかに装着されたとき、情報記録媒体に記録された管理情報領域のデータ及びデータ領域の一部のデータを参照してスロット情報を作成し、ファイルシステム制御情報の一部を生成する。情報記録媒体から特定のファイルをオープンするとき、ファイルシステム制御部はファイルシステム制御情報に含まれるスロット情報と、ファイルシステム制御情報に含まれる優先順位を参照し、スロットに装着された全ての情報記録媒体にアクセスし、アプリケーションが指定したファイルが存在するか否かを確認する。指定ファイルが存在する場合にはオープン情報を作成し、同一名称のファイルが存在するか否かを示すフラグをファイル情報に登録することにより、ファイルシステム制御情報の残りを生成し、複数の情報記録媒体における個々のファイルシステムを統合した統合ファイルシステムを構築する。情報記録媒体から特定のファイルのデータを読み出すとき、ファイルシステム制御部はアプリケーションのファイルオープン時に取得したファイルハンドルを用いてファイルシステム制御情報のオープン情報を参照し、使用すべきスロット情報を決定する。そして得られたスロット番号をアクセス制御部に通知することにより、アプリケーションに必要なファイルデータを特定の情報記録媒体から読み出す。一方、情報記録媒体に対してファイルのデータを記録するとき、ファイルシステム制御部はアプリケーションのファイルオープン時に取得したファイルハンドルを用いてファイルシステム制御情報を参照し、使用すべきスロット情報を決定する。そして得られたスロット番号をアクセス制御部に通知することにより、アプリケーションにより生じたファイルデータを特定の情報記録媒体に記録すると共に、ファイルシステム制御情報のスロット情報を更新する。
【図面の簡単な説明】
第1図は本発明の実施例における情報処理装置、及び情報記録媒体の構成を示す図である。
第2図はFATファイルシステムの構成を示す図である。
第3図はFATファイルシステムのファイルデータ読み込み例を示す図である。
第4図は本発明の実施例におけるファイルシステム制御情報の構成を示す図である。
第5図は情報処理装置の電源投入処理後におけるファイルシステム制御情報の一例を示す図である。
第6図は情報記録媒体の装着時の処理を示すフローチャートである。
第7図は情報記録媒体の装着処理後におけるファイルシステム制御情報の一例を示す図である。
第8図はファイルオープン処理を示すフローチャートである。
第9図はファイルオープン処理後のファイルシステム制御情報の一例を示す図である。
第10図はファイルリード処理を示すフローチャートである。
第11図はファイルライト処理を示すフローチャートである。
第12図はファイルクローズ処理を示すフローチャートである。
第13図は優先順位変更処理を示すフローチャートである。
第14図は本発明の実施例におけるファイルシステム制御情報のその他の構成を示す図である。
【発明を実施するための最良の形態】
以下、本発明のファイル管理方法について、図面を参照しつつ説明する。第1図は本発明の実施例におけるファイル管理方法が用いられる情報処理装置、及び情報記録媒体の構成図である。第1図において情報処理装置100は、CPU101、システムメモリ102、プログラム格納部103、アクセス制御部104、スロット105A〜105Nを含んで構成される。
システムメモリ102は情報処理装置上で動作するプログラムが使用するメモリである。プログラム格納部103は情報処理装置上で動作するアプリケーションプログラムなどを格納する部分である。アクセス制御部104は情報記録媒体106へのアクセスを制御するものである。本実施例の情報処理装置100は、スロット105A、105B、・・・105Nを備え、複数の情報記録媒体106A、106B、・・・106Nを装着し、これらの情報記録媒体に格納されたデータをアクセスすることができる。
またプログラム格納部103は、アプリケーションプログラム103a(以下、アプリケーションという)と、情報記録媒体106内に構築されたファイルシステムを解釈し、データの管理を行うファイルシステム制御部103bとを含む。
続いて、情報記録媒体106A、106B、・・・106Nの情報記録領域に格納されるファイルシステムの一例として、FATファイルシステムについて説明する。第2図はFATファイルシステムの構成を示す概念図である。FATファイルシステムでは、情報記録領域の先頭に情報記録領域を管理するための管理情報領域200が存在し、引き続いてファイル内のデータなどを格納するデータ領域210が存在する。管理情報領域200は、マスターブートレコード・パーティションテーブル(MBR・PT)201、パーティションブートセクタ(PBS)202、FAT203、FAT204、ルートディレクトリエントリ(RDE)205から構成される。
マスターブートレコード・パーティションテーブル201は、情報記録領域を複数のパーティションと呼ばれる領域に分割して管理するための情報を格納する部分である。パーティションブートセクタ202は、1つのパーティション内の管理情報を格納する部分である。FAT203、204は、ファイルに含まれるデータの物理的な格納位置を示す部分である。ルートディレクトリエントリ205は、ルートディレクトリ直下に存在するファイル、ディレクトリの情報を格納する部分である。また、FATは、ファイルに含まれるデータの物理的な格納位置を示す重要な領域であることから、通常、情報記録媒体内には2つの同じ情報を持つFAT203、204が存在し、二重化されている。
データ領域210は複数のクラスタに分割され管理されており、各クラスタにはファイルのデータが格納されている。多くのデータを格納するファイルなどは、複数のクラスタに跨ってデータを格納しており、各クラスタ間の繋がりは、FAT203、204に格納されたリンク情報により管理されている。
第3図を用いてFATファイルシステムにおけるファイルデータの読み込み例を説明する。ルートディレクトリエントリ205やデータ領域210の一部には、第3図(A)に示すようなファイル名やファイルサイズなどを格納するディレクトリエントリ301が設けられる。ファイルデータの格納先であるデータ領域210はクラスタ単位で管理されており、各クラスタには一意に識別可能なクラスタ番号が付与されている。ファイルデータが格納されているクラスタを特定するために、ディレクトリエントリ301には、ファイルデータの先頭部分が格納されているクラスタの番号、即ち開始クラスタ番号が記録されている。第3図(A)のディレクトリエントリ301の例は、FILE1.TXTという名前を持つファイルのデータが、クラスタ番号10から格納されていることを示している。
複数のクラスタに跨ってデータが格納されているファイルの場合、開始クラスタ番号以降に続くクラスタ番号を特定し、データが格納されているクラスタを辿る必要がある。そのために必要なクラスタのリンク情報はFATに格納されている。第3図(B)にリンク情報を記載したFAT302の例を示す。FAT302には、各クラスタ番号に対応したフィールドが設けられており、それぞれのフィールドには、各クラスタのリンク情報を示すFATエントリが設けられる。FATエントリは、次にリンクされるクラスタのクラスタ番号が格納されている。第3図(B)の例では、クラスタ番号10に対応するFATエントリとして「11」が格納されているため、クラスタ番号10のクラスタは、クラスタ番号11のクラスタにリンクしていることになる。同様にクラスタ番号11に対応するFATエントリには「12」、クラスタ番号12に対応するFATエントリには「13」が格納されており、クラスタ番号10、11、12、13の順でリンクされていることになる。次にクラスタ番号13に対応するFATエントリには「0xFFF」が格納されているが、「0xFFF」はリンクの終端を意味していることから、クラスタ番号10で始まるリンクは、10、11、12、13の4クラスタで終端することになる。また、クラスタ番号14に対応するFATエントリに格納されている「0」は、そのクラスタがファイルに割り当てられておらず、空き領域であることを意味している。
第3図(A)、(B)より、ファイルFILE1.TXTに割り当てられたデータ領域がクラスタ番号10、11、12、13であることが認識される。実際にFILE1.TXTのファイルのデータを読み込む場合には、第3図(C)に示すように、データ領域303のクラスタ番号10、11、12、13のデータを順次読み込む。
このようにFATファイルシステムにより管理されているファイルにアクセスするためには、管理情報領域200の構造を認識し、ルートディレクトリエントリ205及びデータ領域210に格納されているディレクトリエントリを探索し、所望のファイルに関する情報が格納されたディレクトリエントリ301を取得する必要がある。また、FATによりデータ領域のクラスタ間のリンク情報を取得し、ファイル内のデータが格納されているデータ領域上の位置を把握する必要がある。そのため、情報記録媒体106が情報処理装置100に装着された後に、情報処理装置100は管理情報領域200の情報を読み出し、ファイルアクセスに必要な情報をメモリ上に保持する。
続いて、本実施例におけるファイルシステム制御情報について説明する。第4図は本実施例におけるファイルシステム制御情報の構成を示した説明図である。ファイルシステム制御情報400はスロット情報401とオープン情報402とから構成される。スロット情報401は、複数存在する情報記録媒体106内に構築されている個々のファイルシステムを制御するための情報である。オープン情報402はオープンされているファイルの情報である。
スロット情報401は、スロット番号、挿入フラグ、優先順位、システム情報を含む。挿入フラグは各スロットに情報記録媒体が挿入されているかを示すフラグである。優先順位はスロットの使用優先度を示すものである。システム情報は挿入されている情報記録媒体内に構築されているファイルシステムに関する情報である。これらの4つの情報を1組として、情報処理装置内に存在するスロット数だけ情報が保持されている。システム情報403は1つの情報記録媒体内に構築されたファイルシステムをアクセスするために必要な情報である。システム情報403は、媒体ID、領域情報、クラスタサイズ、セクタサイズ、空き領域長、FATメモリ、更新フラグなどから構成される。
媒体IDは媒体の識別に使用するIDである。領域情報はパーティションブートセクタやFAT等の管理情報の配置アドレスとサイズの情報を含む領域である。クラスタサイズ、セクタサイズはファイルシステムがデータ管理の単位として使用しているサイズである。空き領域長は、データ領域中の現在の総空き領域長を示す情報である。FATメモリはFATメモリ上にキャッシュするために使用するメモリである。更新フラグはFATメモリの更新の有無を示すフラグである。
第1図のファイルシステム制御部103bは、これらのシステム情報403を元に、情報記録媒体105内のファイルにアクセスする。スロット情報401には、情報処理装置100に存在するスロット数分のシステム情報403が含まれている。ファイルシステム制御部103bは各情報記録媒体105にアクセスする際に、スロット番号に応じて使用するシステム情報403を切り替える。
オープン情報402は、オープン中のファイルに関する情報であるファイル情報404を、オープンされているファイルの数だけ保持している。ファイル情報404は、アクセス情報、スロット番号、同一ファイル名フラグから構成される。アクセス情報405はファイルのアクセスに必要な情報である。スロット番号はファイルが格納されている情報記録媒体を示す番号である。同一ファイル名フラグは同一ファイル名のファイルが他の情報記録媒体に存在するかを示すフラグである。
さらにアクセス情報405は、ファイル名、ファイルサイズ、ファイルの属性、開始クラスタ番号、更新フラグなどから構成される。開始クラスタ番号はファイルのデータが格納されている領域の開始位置を示す番号である。更新フラグはファイルの更新の有無を示すフラグである。第1図のファイルシステム制御部103bは、これらの情報を元にオープン中のファイルにアクセスする。
本実施例における第1の特徴は、スロット情報401に複数存在するシステム情報403をアプリケーションが個別に認識する必要がなく、あたかも1つのシステム情報により管理されているかのように複数の情報記録媒体を扱うことができる点である。例えば、システム情報403には個々の情報記録媒体105の空き領域長が保持されているが、アプリケーションは情報記録媒体の空き領域長として、ファイルシステム制御部103bによりこれらの空き領域長が合計された値を取得する。このように、ファイルシステム制御部103bは、ファイルシステム制御情報400を用いて複数の情報記録媒体106A〜106Nを統括し、アプリケーションに対しては仮想的に1つの情報記録媒体106が装着されているかのように見せることができる。
本実施例における第2の特徴は、オープン情報402に含まれるファイル情報404に、ファイルが格納されている情報記録媒体105を示すスロット番号と、同一ファイル名の有無を示す同一ファイル名フラグが存在する点である。本実施例では、複数の情報記録媒体上に同一ファイル名のファイルが存在した場合、スロット情報401に格納されている優先順位に従って1つのファイルを選択して使用する。また、各スロットの優先順位はアプリケーションから任意に設定することができ、アプリケーションが所望のファイルを使用することができる。
続いて、本実施例の情報処理装置100において、
(1)電源投入時の処理、
(2)情報記録媒体を装着するときの処理、
(3)ファイルアクセス処理、
(4)優先順位を変更する処理、について以下に順に説明する。
(1):情報処理装置100の電源投入時の処理について、第5図を用いて説明する。情報処理装置100に電源が投入されると、ファイルシステム制御部103bはシステムメモリ102上に存在するファイルシステム制御情報400を初期化し、第5図に示す状態のファイルシステム制御情報400Aにする。スロット情報401Aでは、全てのスロットに対して挿入フラグがOFFに設定される。この場合システム情報403は未格納の状態となる。また、オープン情報402Aもすべて未格納になり、ファイルが1つもオープンされていない状態となる。即ち、情報処理装置100の電源投入時におけるファイルシステム制御情報400の初期状態として、情報記録媒体106が1つも装着されておらず、ファイルが1つもオープンされていない状態に設定される。従ってファイルシステム制御部103bは情報記録媒体106の装着待ちの状態となる。また、各スロットの使用優先度を示す優先順位は、第5図に示すように各スロットに予め割り当てられている初期値に設定される。
(2):情報記録媒体106の装着時の処理について、第6図及び第7図を用いて説明する。情報処理装置100に情報記録媒体106が装着されると、ファイルシステム制御部103bは第7図に示すようなスロット情報401Bの作成を行い、情報記録媒体106へアクセスする準備を行う。情報記録媒体106の装着時における処理方法を示した第6図を用いて処理手順を説明する。第6図(A)は装着時の処理手順を示したフローチャートである。第6図(B)はアプリケーション103a、ファイルシステム制御部103b、アクセス制御部104の関係を示した説明図である。
情報記録媒体106の装着時の処理では、先ず情報記録媒体106が装着されたことを示す信号がファイルシステム制御部103bに伝えられる(S601)。ファイルシステム制御部103bは情報記録媒体106の装着信号を受信すると、受信信号を解釈し、どのスロットに情報記録媒体106が装着されたのか判定する(S602)。次に、S602で判定したスロット番号をアクセス制御部104に通知し、アクセス制御部104は装着された情報記録媒体106からファイルシステムの管理情報の読み込みを行う(S603)この管理情報は第2図の管理情報領域200に記録されている。
アクセス制御部104がファイルシステム制御部103bから読み込み要求を受け取ると、アクセス制御部104が実際のデータの読み込みを行う。このときアクセス制御部104は、ファイルシステム制御部103bからスロット番号、読み込み開始位置、読み込みサイズの情報を受け取り、指定されたスロットに装着されている情報記録媒体106から、指定位置、指定サイズのデータを読み込む。そして、アクセス制御部104はファイルシステム制御部103bに読み込み結果とデータを返す。また、ファイルシステムの管理情報とは、スロット情報401Bの作成に必要な情報であり、FATファイルシステムの場合は第2図に示すようなマスターブートレコード・パーティションテーブル、パーティションブートセクタ、FATである。
次に、取得したファイルシステムの管理情報を元に、スロット情報401Bを作成する(S604)。このような情報記録媒体106の装着時の処理により、ファイルシステム制御情報400Bは第7図に示す状態となる。第7図の例では、スロットAに情報記録媒体106Aが装着された場合を想定しており、スロットAに対するスロット情報の挿入フラグがONに設定され、スロットAに情報記録媒体106Aが装着されていることを示している。また、スロットAのシステム情報403Bとして、S603で読み込んだファイルシステムの管理情報を元に、第7図の右側に示すようなシステム情報CI_A(システム情報403B)が作成される。
最後に、アプリケーション103aに対して記憶容量が増加したことを通知し、処理を終了する(S605)。アプリケーション103aは、複数の情報記録媒体を1つの仮想的な情報記録媒体として認識しているため、情報記録媒体が新たに装着された場合のS605の処理により、仮想的な情報記録媒体の記憶容量が増加したと認識する。
(3−1):ファイルアクセス処理としてのファイルオープン処理について、第8図及び第9図を用いて説明する。アプリケーション103aからファイルオープン要求がファイルシステム制御部103bに出されると、ファイルシステム制御部103bはスロット情報400を用いて、全ての情報記録媒体106にアクセスし、アプリケーションが指定したファイルが存在するか否かを確認する。ファイルが存在した場合、オープン情報402を作成し、同一名称のファイルが複数存在した場合は、同一名称のファイルが存在する旨をアプリケーションに通知する。
ファイルオープンの処理手順について、第8図を用いて具体的に説明する。第8図(A)はファイルオープンの処理手順を示したフローチャートであり、第8図(B)はアプリケーション103a、ファイルシステム制御部103b、アクセス制御部104間の関係を示した概念図である。また第9図はファイルオープン処理におけるファイルシステム制御情報400Cの説明図である。ファイルオープン処理では、最初にアプリケーション103aからファイルシステム制御部103bにファイルオープン要求が出される(S801)。ファイルオープン要求では、アプリケーション103aはファイル名のみをファイルシステム制御部103bに指定し、スロット番号は指定しない。すなわち、アプリケーション103aはスロット番号を意識せずにファイル名のみで情報記録媒体106に格納されたファイルにアクセスする。
ファイルシステム制御部103bはファイルオープン要求を受け取ると、第9図に示すスロット情報401Cを参照し、情報記録媒体106が装着されている全スロットに対するファイル探索処理が完了しているか判定する(S802)。情報処理装置100に情報記録媒体106が1つも装着されていない場合、あるいは全スロットに対するファイル探索処理が完了している場合は、S807の処理に進み、アプリケーション103aに探索処理が完了ことを通知する。S802で探索が完了していない場合、スロット情報401Cの優先順位に従い、未だ探索が完了していないスロットの内で最も優先順位の高いスロットを選択する(S803)。
次に、S803で選択したスロットの番号をアクセス制御部104に指定し、装着された情報記録媒体106からファイルやディレクトリの情報が格納されたディレクトリエントリ(以下、エントリという)の読み込みを行う(S804)。このとき、ファイルシステム制御部103bは、情報記録媒体106からの読み込みに必要な読み込み開始位置、読み込みサイズなどの情報に関して、選択したスロットに対応するスロット情報401Cを基に算出し、アクセス制御部104に通知する。
次に、ファイルシステム制御部103bは、取得したエントリを参照し、アプリケーション103aが指定したファイルに関するエントリが存在するか否かを確認する(S805)。エントリが存在した場合はS806の処理に進む。エントリが存在しなかった場合、その情報記録媒体106に対するファイル探索処理を完了してS802の処理に戻り、他の情報記録媒体106に対するファイル探索処理を継続する。
S805においてアプリケーションが指定したファイルのエントリが存在している場合、ファイルシステム制御部103bは取得したエントリを基にオープン情報402Cを作成する(S806)。本実施例では、優先順位の高い情報記録媒体106から順にファイル探索処理を行い、最初に該当するファイルが発見された際にオープン情報402Cを新規に作成する。通常のファイルシステム管理では、該当するファイルが発見された時点でファイル探索処理を終了し、アプリケーション103aにオープン処理が完了したことを通知する。しかしながら、本実施例では全てのスロットに装着された情報記録媒体106に対してファイル探索処理が完了するまで処理を継続する。このとき、他の情報記録媒体106に同一名称のファイルが存在した場合、先に作成したオープン情報402Cの同一ファイル名フラグの部分に、同一ファイル名が存在する情報記録媒体106のスロット番号を格納する。
第9図の例では、スロットAに存在するFile1.TXTという名称のファイルをオープンしている。同一ファイル名フラグは情報処理装置100に存在する全スロット数と同数のビット幅を持つフィールドからなり、同一名称のファイルが存在する情報記録媒体のスロット番号に対応するビットが立てられる。第9図の例では、スロットA、スロットNに対応するビットが立てられており、スロットAとスロットNにFILE1.TXTという名称のファイルが存在することを示している。
S806の処理を終了すると、その情報記録媒体106に対するファイル探索処理を完了してS802の処理に戻り、他の情報記録媒体106に対するファイル探索処理を継続する。S802の処理において全スロットに対するファイル探索処理が完了した場合、ファイルシステム制御部103bはアプリケーション103aにオープン結果を通知して処理を終了する(S807)。オープン処理が成功した場合は、ファイルシステム制御部103bは以降のファイルアクセスに使用するためのファイルハンドルをアプリケーション103aに返す。また、同一ファイル名が存在していた場合、ファイルシステム制御部103bはファイルハンドルを返すと共に、同一ファイル名が存在していることをアプリケーション103aに通知する。
このように本実施例では、ファイルオープン時にスロット情報401C内の優先順位に従って、全情報記録媒体106に対するファイル探索処理を行う。また、該当ファイルが発見されても処理を継続し、他の情報記録媒体106に同一名称のファイルが存在するか確認する。これにより、ファイルシステム制御部103bは同一名称のファイルが存在した場合に、一意にオープン対象のファイルを決定することが可能であり、かつ同一名称のファイルが存在することを常に把握することができる。
(3−2)ファイルアクセス処理としてファイルリード処理について、第10図を用いて説明する。第10図(A)はファイルリードの処理手順を示したフローチャートである。第10図(B)はアプリケーション103a、ファイルシステム制御部103b、アクセス制御部104間の関係を示した概念図である。
ファイルリード処理では、先ずアプリケーション103aからファイルシステム制御部103bに対してファイルリード要求が出される(S1001)。ファイルリード要求では、アプリケーション103aはファイルオープン時に取得したファイルハンドルをファイルシステム制御部103bに指定する。ファイルシステム制御部103bはファイルリード要求を受け取ると、指定されたファイルハンドルを基にオープン情報402を参照し、使用するスロット情報を決定する(S1002)。
次に、ファイルシステム制御部103bはS1002で決定したスロットの番号をアクセス制御部104に指定し、装着された情報記録媒体106からデータの読み込みを行う(S1003)。このとき、情報記録媒体106からの読み込みに必要な読み込み開始位置、読み込みサイズなどの情報は、決定したスロットに対応するスロット情報401及びオープン情報402を基に算出し、アクセス制御部104に通知する。
次に、ファイルシステム制御部103bはファイルリード処理によりオープン情報の変更が必要な場合、オープン情報を更新する(S1004)。最後に、ファイルシステム制御部103bは情報記録媒体106から読み込んだデータとリード結果をアプリケーション103aに通知し、処理を終了する(S1005)。
(3−3)ファイルアクセス処理としてのファイルライト処理について説明する。第11図(A)はファイルライト処理の流れ図である。第11図(B)はアプリケーション103a、ファイルシステム制御部103b、アクセス制御部104間の関係を示した概念図である。ファイルリード処理と異なる点は、アクセス制御部104からアプリケーション103aにデータが渡るのではなく、アプリケーション103aからアクセス制御部104にデータが渡る点と、S1104においてスロット情報401に含まれるFATなどが更新された際に、スロット情報401が更新される点である。その他の処理はファイルリード処理と同様であり、説明を割愛する。
(3−4)ファイルアクセス処理としてのファイルクローズ処理について説明する。第12図(A)は処理手順を示したフローチャートであり、第12図(B)はアプリケーション103a、ファイルシステム制御部103b、アクセス制御部104間の関係を示した概念図である。ファイルクローズ処理では、最初にアプリケーション103aからファイルシステム制御部103bにファイルクローズ要求が出される(S1201)。ファイルクローズ要求では、アプリケーション103aはファイルオープン時に取得したファイルハンドルをファイルシステム制御部103bに指定する。ファイルシステム制御部103bはファイルクローズ要求を受け取ると、指定されたファイルハンドルを基にオープン情報402を参照し、使用するスロット情報を決定する(S1202)。
次にファイルシステム制御部103bは、S1202で決定したスロット情報401及びオープン情報402を参照し、ファイルシステムの管理情報に関して情報記録媒体106へ書き込みが必要なデータの書き込みを行う(S1203)。このとき、ファイルシステム制御部103bは情報記録媒体106への書き込みに必要な書き込み開始位置、書き込みサイズなどの情報に関して、決定したスロットに対応するスロット情報401及びオープン情報402を基に算出し、アクセス制御部104に通知する。
次にファイルシステム制御部103bは、クローズするファイルのオープン情報402を初期化し、スロット情報の変更が必要な場合はスロット情報401を更新する(S1204)。最後に、クローズ結果をアプリケーション103aに通知し、処理を終了する(S1205)。
(4)次に優先順位変更処理について、第13図を用いて説明する。第13図(A)は処理手順を示したフローチャートであり、第13図(B)はアプリケーション103a、ファイルシステム制御部103b、アクセス制御部104間の関係を示した概念図である。優先順位変更処理では、最初にアプリケーション103aからファイルシステム制御部103bに対して優先順位変更要求が出される(S1301)。優先順位変更要求では、アプリケーション103aは変更後の優先順位に関する情報をファイルシステム制御部103bに指定する。ファイルシステム制御部103bは優先順位変更要求を受け取ると、スロット情報401内に保持された優先順位を更新する(S1302)。最後に、優先順位変更結果をアプリケーション103bに通知し、処理を終了する(S1303)。
優先順位変更処理は、情報処理装置100に電源が投入された後の任意の時点で、アプリケーション103aからの要求に応じて実施され、主にアプリケーション103aが同一名称のファイルに対してアクセス先の情報記録媒体106を切り替える際に使用される。例えば、アプリケーション103aがFile1.TXTという名称のファイルをオープンした際に、ファイルオープン処理の返り値として同一名称のファイルが存在する旨の通知があった場合を想定する。このとき、アプリケーション103aは必要に応じて全ての同一名称のファイルに対する処理を逐次行う。
最初にアプリケーション103aは、ファイルシステム制御部103bから、File1.TXTという名称のファイルが存在する全ての情報記録媒体106のスロット番号を取得する。ここで一例として、スロット番号A、B、Cの3つが取得されたとする。次に、優先順位変更処理を行い、スロット番号Aを第1優先度に設定する。この状態でFile1.TXTに対するオープン、リード、ライト、クローズ処理を行い、アプリケーションが必要とするファイルアクセス処理を行う。
次に、優先順位変更処理を行い、スロット番号Bを第1優先度に設定した上で、先の処理と同様にFile1.TXTに対するファイルアクセス処理を行う。同様にスロットCに対しても優先順位変更処理及びファイルアクセス処理を行い、情報処理装置100に装着されている全情報記録媒体106上のFile1.TXTという名称を持つファイルに対する処理を完了する。こうすると、ファイルシステム制御部103bはアプリケーション103aが任意のファイル名を持つファイルが格納されている全スロット番号を取得する処理、及び現在オープンしているファイルが格納されているスロット番号を取得する処理を行うことができる。
以上のように本実施例では、複数の情報記録媒体106内に構築されているファイルシステムに関する情報をファイルシステム制御部103bにより一括管理する。そのため、アプリケーション103aは複数の情報記録媒体106を個別に認識する必要がなく、あたかも1つの情報記録媒体106が装着されているかのように扱うことができる。また、複数の情報記録媒体106の装着順や位置が変わった場合でも、アプリケーション103aが情報記録媒体106を意識する必要がない。
また、オープンされているファイルに関する情報として、ファイルが格納されている情報記録媒体106のスロット番号と、他の情報記録媒体106上に同一ファイル名が存在するかを示す同一ファイル名フラグとを保持する。そして各スロットの使用順に優先順位を設定することで、必要に応じてアプリケーション103aが同一名称のファイルの中から任意のファイルを選択して使用する。
なお、以上の各実施例で説明したファイルシステム制御情報400の構成は一例であり、ファイルシステム制御に関するその他の情報を保持しても良い。また、本実施例ではA〜Nまでのスロットが情報処理装置100に存在する場合について説明したが、スロット数は1つ以上であれば任意の数で良い。また、各スロットの使用優先度を示す優先順位の初期値は、スロットと1対1に割り当てられた初期値に毎回優先順位を設定しても良い。また、前回に情報処理装置100の電源が遮断された時点の優先順位の値を保存しておき、この値を初期値として設定しても良い。
また、スロット情報401に格納した優先順位は、既存ファイルの読み込み用の優先順位と、ファイル新規作成用の優先順位を個別に設定するような構成にしてもよい。また、優先順位変更要求において、アプリケーション103aが変更後の優先順位を指定する方法は、スロット番号と新しい優先順位の組を、情報処理装置100に存在するスロット数だけ用意して指定する形式としてもよいし、その他の形式でもよい。
また、本実施例では、同一名称のファイルが存在した場合、ファイルオープン時にアプリケーションに通知する例について説明した。しかし、ファイルオープン時には通知せず、任意の時点におけるアプリケーションからの要求に応じて同一名称のファイルの有無を通知してもよい。また、同一ファイル名フラグとして、同一名称のファイルが格納されている情報記録媒体106のスロットに対応してフラグを立てる例について説明した。しかし、単に同一名称のファイルの有無のみを示すフラグを立ててもよい。
また、本実施の形態では、スロットに装着された情報記録媒体が全てFATファイルシステムを使用している場合について説明したが、各情報記録媒体が異なるファイルシステムを使用していても良い。この場合におけるファイルシステム制御情報400Dの構成を図14に示す。図14の例では、スロットAに装着された情報記録媒体がFATファイルシステムを使用しており、スロットNに装着された情報記録媒体がUDFファイルシステムを使用している場合を想定している。
図4と異なる点は、スロット情報401Dの中にファイルシステム種別が追加されている点と、スロットAとスロットNのシステム情報の構成が異なる点とである。ファイルシステム種別が異なる場合、ファイルサイズやファイル名などのファイル管理情報の格納方法が異なるため、ファイルシステム制御部はファイルシステム毎にファイルに対するアクセス手順を変更する必要がある。そのため、各スロットに装着された情報記録媒体が使用しているファイルシステム種別を識別するフラグとして、ファイルシステム種別をスロット情報401D内に追加している。また、システム情報には各ファイルシステムに依存した情報を格納するため、ファイルシステム種別が異なる場合、格納する情報も異なる。そのため、ファイルシステム種別毎に異なる構成のシステム情報をスロット情報401D内に格納している。
例えば、FATファイルシステムのシステム情報403内に存在するFATメモリは、FATファイルシステムの領域管理情報を格納するメモリである。これに対してUDFファイルシステムでは、SpaceBitmapと呼ばれる情報で領域管理を行っているため、FATメモリの代わりにSpaceBitmapメモリがシステム情報403内に存在する。FATメモリからSpeceBitmapメモリへの変更は一例であり、その他の変更を実施しても良い。このように、ファイルシステム制御情報400Dを変形することで、各スロットに装着された情報記録媒体が、異なるファイルシステムを使用している場合においても、本発明を適用することが可能である。
産業上の利用の可能性
本発明に関わるファイル管理方法は、情報処理装置に複数の情報記録媒体が存在するときに、1つのファイルシステムで必要なファイルのデータをアクセスすることができる。このようなファイル管理方法は、同一名称のファイルが複数存在するときに特に好適に機能する。本発明は、多数の音楽ファイルなどが格納された携帯用記録再生機器や、オーディオサーバやビデオサーバに利用できる。また多数のスロットを持つモバイルサーバ、多種類の外部メモリユニットを持つPCなどにも適用することができる。
【図1】

【図2】

【図3】

【図4】

【図5】

【図6】

【図7】

【図8】

【図9】

【図10】

【図11】

【図12】

【図13】

【図14】


【特許請求の範囲】
【請求項1】
情報記録領域に格納されたデータが個々のファイルシステムによりファイルとして管理される情報記録媒体が複数個存在するとき、前記複数個の情報記録媒体を同時に装着可能とする情報処理装置であって、
前記各情報記録媒体を装着するために前記情報処理装置本体に対して設けられた複数のスロットと、
前記複数の情報記録媒体に構築された個々のファイルシステムを認識し、仮想的な1つのファイルシステムに統合して制御するためのファイルシステム制御情報を保持するシステムメモリ部と、
前記複数個の情報記録媒体の使用に関する優先順位を管理すると共に、アプリケーションプログラムからの要求により、前記ファイルシステム制御情報に含まれるスロット情報及びオープン情報を参照して、前記情報記録媒体に対して論理的な情報記録領域にファイルアクセスするファイルシステム制御部と、
前記ファイルシステム制御部から指定された前記スロット及びアドレスにアクセスし、ファイルのデータを取得するアクセス制御部と、を具備する情報処理装置。
【請求項2】
前記ファイルシステム制御部は、
前記情報処理装置の電源が投入されたとき、前記システムメモリ部に存在する前記ファイルシステム制御情報を一旦初期化し、前記アプリケーションプログラムから見て前記情報記録媒体が未装着、及び全てのファイルがオープンされていない状態に初期設定する請求項1記載の情報処理装置。
【請求項3】
前記ファイルシステム制御部は、
前記情報処理装置の電源が投入されたとき、前記スロットの使用優先順位を各スロット毎に予め設定する請求項1記載の情報処理装置。
【請求項4】
前記ファイルシステム制御部は、
前記情報記録媒体が前記複数のスロットのいずれかに装着されたとき、前記情報記録媒体に記録された管理情報領域のデータ及びデータ領域の一部のデータを参照してスロット情報を作成し、前記ファイルシステム制御情報の一部を構築する請求項1記載の情報処理装置。
【請求項5】
前記ファイルシステム制御部は、
前記情報記録媒体から特定のファイルをオープンするとき、前記ファイルシステム制御情報に含まれる前記スロット情報を参照し、前記ファイルシステム制御情報に含まれる前記優先順位に基づいた順番でスロットに装着された全ての情報記録媒体にアクセスし、アプリケーションが指定したファイルが存在するか否かを確認し、最初に指定ファイルを発見した時点でオープン情報を作成し、他の情報記録媒体に同一名称のファイルが存在した場合に、同一名称のファイルが存在するか否かを示すフラグをファイル情報に登録し、前記オープン情報に関連づけられたファイルハンドルを作成する請求項1記載の情報処理装置。
【請求項6】
前記ファイルシステム制御部は、
前記情報記録媒体から特定のファイルのデータを読み出すとき、前記アプリケーションのファイルオープン時に取得したファイルハンドルを用いて前記オープン情報を参照し、使用すべきスロット情報を決定し、得られたスロット番号を前記アクセス制御部に通知することにより、前記アプリケーションに必要なファイルデータを特定の情報記録媒体から読み出す請求項1記載の情報処理装置。
【請求項7】
前記ファイルシステム制御部は、
前記情報記録媒体に対してファイルのデータを記録するとき、前記アプリケーションのファイルオープン時に取得したファイルハンドルを用いて前記オープン情報を参照し、使用すべきスロット情報を決定し、得られたスロット番号を前記アクセス制御部に通知することにより、前記アプリケーションにより生じたファイルデータを特定の情報記録媒体に記録すると共に、前記システムメモリに保持されたファイルシステム制御情報のスロット情報を更新する請求項1記載の情報処理装置。
【請求項8】
前記ファイルシステム制御部は、
前記情報記録媒体から特定のファイルをクローズするとき、前記アプリケーションのファイルオープン時に取得したファイルハンドルを用いて前記オープン情報を参照し、使用中のスロット番号を決定し、得られたスロット番号を前記アクセス制御部に通知することにより、前記特定の情報記録媒体の管理情報領域に管理情報を記録し、ファイルのオープン情報を初期化する請求項1記載の情報処理装置。
【請求項9】
複数の情報記録媒体内の情報記録領域に夫々格納されたデータを、情報処理装置のファイルシステム制御部とアクセス制御部により管理するファイル管理方法であって、
前記情報記録媒体を装着する複数のスロットに対し使用優先順位を設定し、
前記情報記録媒体が前記複数のスロットのいずれかに装着されたとき、前記情報記録媒体に記録された管理情報領域のデータ及びデータ領域の一部のデータを参照してスロット情報を作成し、ファイルシステム制御情報の一部を生成し、
前記情報記録媒体から特定のファイルをオープンするとき、前記ファイルシステム制御部は前記ファイルシステム制御情報に含まれる前記スロット情報と、前記ファイルシステム制御情報に含まれる前記優先順位を参照し、スロットに装着された全ての情報記録媒体にアクセスし、アプリケーションが指定したファイルが存在するか否かを確認し、指定ファイルが存在する場合にはオープン情報を作成し、同一名称のファイルが存在するか否かを示すフラグをファイル情報に登録することにより、前記ファイルシステム制御情報の残りを生成し、前記複数の情報記録媒体における個々のファイルシステムを統合した統合ファイルシステムを構築し、
前記情報記録媒体から特定のファイルのデータを読み出すとき、前記ファイルシステム制御部は前記アプリケーションのファイルオープン時に取得したファイルハンドルを用いて前記ファイルシステム制御情報のオープン情報を参照し、使用すべきスロット情報を決定し、得られたスロット番号を前記アクセス制御部に通知することにより、前記アプリケーションに必要なファイルデータを特定の情報記録媒体から読み出し、
前記情報記録媒体に対してファイルのデータを記録するとき、前記ファイルシステム制御部は前記アプリケーションのファイルオープン時に取得したファイルハンドルを用いて前記ファイルシステム制御情報を参照し、使用すべきスロット情報を決定し、得られたスロット番号を前記アクセス制御部に通知することにより、前記アプリケーションにより生じたファイルデータを特定の情報記録媒体に記録すると共に、前記ファイルシステム制御情報のスロット情報を更新するファイル管理方法。
【請求項10】
前記複数の情報記録媒体は、全て同一種類のファイルシステムにより管理されている請求項9記載のファイル管理方法。
【請求項11】
前記複数の情報記録媒体は、異なる種類のファイルシステムにより管理されている請求項9記載のファイル管理方法。
【請求項12】
前記ファイルシステム制御部は、複数の情報記録媒体上に存在する同一名称のファイルに対し、前記優先順位に基づきアクセスするファイルを一意に特定する請求項9記載のファイル管理方法。
【請求項13】
前記ファイルシステム制御部は、前記複数の情報記録媒体上における同一名称のファイルの有無を確認し、前記アプリケーションプログラムに結果を通知する請求項9項記載のファイル管理方法。
【請求項14】
前記ファイルシステム制御部は、前記複数の情報記録媒体上における同一名称のファイルの有無を確認し、前記アプリケーションプログラムからの任意の時点における要求に応じて結果を通知する請求項9記載のファイル管理方法。

【国際公開番号】WO2005/010757
【国際公開日】平成17年2月3日(2005.2.3)
【発行日】平成18年9月14日(2006.9.14)
【国際特許分類】
【出願番号】特願2005−512010(P2005−512010)
【国際出願番号】PCT/JP2004/010283
【国際出願日】平成16年7月13日(2004.7.13)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】