(57)【特許請求の範囲】
【請求項１】
第１の記憶手段と、前記第１の記憶手段よりも低速・大容量の第２の記憶手段とを組み合わせた階層構成の記憶装置を用いた階層記憶管理を行う制御手段が、前記第１の記憶手段にディレクトリ構造で記憶されている複数のファイルの中から、前記第２の記憶手段から前記第１の記憶手段に新たに転送するファイルとの置き換えの対象となるファイルの候補リストを作成して、前記候補リスト内のファイルを前記新たに転送するファイルと置き換える方法において、
ディレクトリの優先度を、積極的に同一のディレクトリのファイルを優先するか、積極的にではないが同一のディレクトリのファイルを優先するかのうちのいずれかに設定する操作に従って、前記制御手段が前記ディレクトリの優先度を設定する第１のステップと、
前記制御手段が、前記第１の記憶手段に記憶されている各ファイルについて、最後にアクセスされた日の情報及びファイルサイズの情報を取得する第２のステップと、
前記制御手段が、前記第２のステップで取得した情報に基づき、前記各ファイルについてスコアを算出する第３のステップと、
前記第１のステップで設定したディレクトリの優先度が、積極的に同一のディレクトリのファイルを優先するものである場合には、前記制御手段が、前記候補リストとして、各ディレクトリが前記第３のステップで算出した当該ディレクトリ内のファイルのスコアの大きさの順に並び、且つ、同一のディレクトリの複数のファイルを同一順位または連続する順位に載せた候補リストを作成し、作成した候補リストの順位に従って前記新たに転送するファイルとの置き換えを行う第４のステップと、
前記第１のステップで設定したディレクトリの優先度が、積極的にではないが同一のディレクトリのファイルを優先するものである場合には、前記制御手段が、前記候補リストとして、前記第３のステップで算出したスコアの大きさの順にファイルが並んだ候補リストを作成し、作成した候補リストから置き換えるべき数のファイルを抜き取った後、抜き取ったファイルを同一のディレクトリのファイルが連続するように並べ替えてから前記新たに転送するファイルとの置き換えを行う第５のステップとを含む
ファイルの置き換え方法。
【請求項２】
請求項１に記載のファイルの置き換え方法において、
最後に更新された日と最後にアクセスされた日とのいずれか一方を経過日付条件として設定する操作に従って、前記制御手段が前記経過日付条件を設定するステップをさらに含み、
前記第２のステップでは、前記第１の記憶手段に記憶されている各ファイルについて、前記経過日付条件の情報及びファイルサイズの情報を取得する
ファイルの置き換え方法。
【請求項３】
請求項１に記載のファイルの置き換え方法において、
最後にアクセスされた日からの経過日数に対する掛け率と、ファイルサイズに対する掛け率とのうちの少なくとも一方を設定する操作に従って、前記制御手段が前記掛け率を設定するステップをさらに含み、
前記第３のステップでは、前記最後にアクセスされた日からの経過日数，前記ファイルサイズに前記掛け率を掛けた値に基づき、前記各ファイルについてスコアを算出する
ファイルの置き換え方法。
【請求項４】
第１の記憶手段と、前記第１の記憶手段よりも低速・大容量の第２の記憶手段とを組み合わせた階層構成の記憶装置を用いた階層記憶管理を行い、前記第１の記憶手段にディレクトリ構造で記憶されている複数のファイルの中から、前記第２の記憶手段から前記第１の記憶手段に新たに転送するファイルとの置き換えの対象となるファイルの候補リストを作成して、前記候補リスト内のファイルを前記新たに転送するファイルと置き換える装置において、
ディレクトリの優先度を、積極的に同一のディレクトリのファイルを優先するか、積極的にではないが同一のディレクトリのファイルを優先するかのうちのいずれかに設定する操作を行うための設定手段と、
前記第１の記憶手段に記憶されている各ファイルについて、最後にアクセスされた日の情報及びファイルサイズの情報を取得する取得手段と、
前記取得手段で取得した情報に基づき、前記各ファイルについてスコアを算出する算出手段と、
前記設定手段で設定操作されたディレクトリの優先度が、積極的に同一のディレクトリのファイルを優先するものである場合には、前記候補リストとして、各ディレクトリが前記算出手段で算出した当該ディレクトリ内のファイルのスコアの大きさの順に並び、且つ、同一のディレクトリの複数のファイルを同一順位または連続する順位に載せた候補リストを作成し、作成した候補リストの順位に従って前記新たに転送するファイルとの置き換えを行い、前記設定手段で設定操作されたディレクトリの優先度が、積極的にではないが同一のディレクトリのファイルを優先するものである場合には、前記候補リストとして、前記算出手段で算出したスコアの大きさの順にファイルが並んだ候補リストを作成し、作成した候補リストから置き換えるべき数のファイルを抜き取った後、抜き取ったファイルを同一のディレクトリのファイルが連続するように並べ替えてから前記新たに転送するファイルとの置き換えを行う置き換え手段とを備えた
ファイルの置き換え装置。
【請求項５】
請求項４に記載のファイルの置き換え装置において、
最後に更新された日と最後にアクセスされた日とのいずれか一方を経過日付条件として設定する操作を行うための設定手段をさらに備え、
前記取得手段は、前記第１の記憶手段に記憶されている各ファイルについて、前記経過日付条件の情報及びファイルサイズの情報を取得する
ファイルの置き換え装置。
【請求項６】
請求項４に記載のファイルの置き換え装置において、
最後にアクセスされた日からの経過日数に対する掛け率と、ファイルサイズに対する掛け率とのうちの少なくとも一方を設定する操作を行うための設定手段をさらに備え、
前記算出手段は、前記最後にアクセスされた日からの経過日数，前記ファイルサイズに前記掛け率を掛けた値に基づき、前記各ファイルについてスコアを算出する
ファイルの置き換え装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本願発明は、階層記憶管理方式において高速・小容量の記憶装置から低速・大容量の記憶装置に移動させるファイルの候補リストを作成してファイルを移動させるために適用して好適なファイルの置き換え方法及び装置に関する。
【０００２】
【従来の技術】
コンピュータにおいて、プログラムデータのファイルや処理対象のデータ（テキストデータ，画像データ等）のファイルを蓄えるために使用される記憶装置には、ファイルサイズの増大に伴い一層の大容量化が要求されると共に、コンピュータの処理時間を短縮させるために一層の高速化（アクセス時間の短縮化）が要求されている。
【０００３】
１種類の記憶装置を用いただけでは、こうした大容量化と高速化とを両立させることは現実には不可能である。そのため、一般にコンピュータでは、階層記憶管理方式（Ｈｉｅｒａｒｃｈｙ  Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｍｅｎｔ）が採用されている。
【０００４】
階層記憶管理方式では、高速・小容量の記憶装置（バッファ記憶装置）と低速・大容量の記憶装置（主記憶装置や外部記憶装置）とを組み合わせた階層構成の記憶装置を用いる。そして、コンピュータの処理装置は、階層記憶管理を実現するためのプログラム（Ｈｉｅｒａｒｃｈｙ  Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｍｅｎｔの頭文字をとってＨＳＭソフトウェアとも呼ばれる）を実行することにより、アクセス要求のあったファイルがバッファ記憶装置内に存在するか否かを調べ、存在すればバッファ記憶装置から読み出し、存在しなければ主記憶装置または外部記憶装置からバッファ記憶装置に転送した後、バッファ記憶装置から読み出すという処理を行う。
【０００５】
これにより、一度でもアクセス要求のあったファイルはバッファ記憶装置に蓄えられるので、そのファイルについてはバッファ記憶装置に対してアクセスが行われるようになる。一度アクセス要求のあったファイルは近い将来に再びアクセス要求のある可能性が高いという一般的な性質（アクセスの局所性）があるので、このようにアクセス要求のある可能性が高いファイルがバッファ記憶装置のほうに蓄えられることにより、主記憶装置や外部記憶装置に対するアクセス回数を減少させて、平均のアクセス時間が短縮化される（すなわち大容量化と高速化とが両立する）。
【０００６】
ところで、バッファ記憶装置は小容量なので、主記憶装置や外部記憶装置のほうからファイルを転送し続けるだけでは、空き領域がだんだん小さくなっていき、最後には新たなファイルを転送できなくなってしまう。そのため、ＨＳＭソフトウェアには、既にバッファ記憶装置に蓄えられているファイルのうちの一定量のファイルを、新たに転送するファイルと置き換える（例えば、バッファ記憶装置からこの一定量のファイルを主記憶装置や外部記憶装置に再び移動させた後、バッファ記憶装置に新たなファイルを転送する）ような機能も必要となる。
【０００７】
従来のＨＳＭソフトウェアは、この新たな転送ファイルとの置き換えの対象となるファイルの候補リストの作成（すなわちこの候補とするファイルの選択）を、例えば次のようにして行うものであった。
すなわち、バッファ記憶装置内の各ファイルについて、
（１１）  ファイルの最終アクセス日からの経過日数（日）
（１２）  経過日数の重み
（１３）  ファイルサイズ（キロバイト）
（１４）  ファイルサイズの重み
に基づき、次の式（ａ）によりスコアを算出する。
スコア＝（１１）×（１２）＋（１３）×（１４）  …（ａ）
【０００８】
なお、（１２），（１４）の重みは、例えば、１日＝１キロバイトとしたときの経過日数とファイルサイズとの比を整数として表したものである。また、これらの重みを用いずに（１１）の経過日数及び（１３）のファイルサイズだけを用いてスコアを算出することもある。
そして、各ファイルをこのスコアの大きい順に並び替えることにより、候補リストを作成する。
このようにして候補リストを作成した後、実際に置き換えを行う際には、この候補リストの上位に載っている一定量のファイルを、新たな転送ファイルと置き換える。
【０００９】
このように、最終アクセス日からの経過日数が長いファイルまたはファイルサイズの大きいファイルの順に候補として選択することにより、バッファ記憶装置内のファイルのうち、最近アクセス要求のないファイル（すなわち近い将来に再びアクセス要求のある可能性が低いのでバッファ記憶装置内に蓄えておいてもアクセス時間の短縮化にあまり寄与しないもの）や、占める領域の大きいファイル（すなわち置き換えを行うことによる空き領域の拡大の効果が大きいもの）が、優先して新たな転送ファイルと置き換えられるようになる。
【００１０】
【発明が解決しようとする課題】
しかし、最終アクセス日からの経過日数が短いファイルも、必ずしも常に近い将来に再びアクセス要求があるとは限らない。すなわち、こうしたファイルのうちには、最終更新日（ファイルの内容を最後に更新した日）がかなり古く、たまたまユーザーが最近アクセスしたが、その後しばらくはアクセスする予定がないというものも存在し得る。
【００１１】
しかるに、従来の階層記憶管理方式では、こうしたファイルは、よほどファイルサイズが大きくない限り候補リストの上位に載ることはない。その結果、バッファ記憶装置内に蓄えておいてもアクセス時間の短縮化にあまり寄与しないものであるにもかかわらず、優先して新たな転送ファイルと置き換えられることがなかった。
【００１２】
また、ユーザーは、バッファ記憶装置内のファイルのうち、最終アクセス日からの経過日数が長いファイルよりもファイルサイズの大きいファイルのほうをより優先して新たな転送ファイルと置き換えたいと考える場合もあれば、逆に、ファイルサイズの大きいファイルよりも最終アクセス日からの経過日数が長いファイルのほうをより優先して置き換えたいと考える場合もある。
【００１３】
しかるに、従来の階層記憶管理方式では、前述の式（ａ）のように、最終アクセス日からの経過日数と、ファイルサイズと、この経過日数及びファイルサイズから一義的に求められる重みとだけに基づいてスコアが算出されるので、最終アクセス日からの経過日数が長いファイルとファイルサイズの大きいファイルとのうちのいずれを優先して新たな転送ファイルと置き換えるかを、ユーザーが柔軟に決定する余地がなかった。
【００１４】
また、例えばＩＢＭ互換パーソナルコンピュータにおけるディレクトリのように、一般にパーソナルコンピュータのオペレーティング・システム（ＯＳ）には、ファイルを分類して保管する機能が備わっている。ユーザーは、互いに関連のある複数のファイル（例えば同じのテーマについてのファイルや同じ取引先についてのファイル）を同一のディレクトリのファイルとして保管することが多く、したがって、同一のディレクトリのファイルは、ユーザーが検索を行う際等に同時にアクセス要求される可能性が高い。
また、一般にＯＳには誤って削除されたファイルを復元する機能も備わっているが、例えばＩＢＭ互換パーソナルコンピュータでは、このファイルの復元もディレクトリを単位として行われる。
【００１５】
しかるに、従来の階層記憶管理方式では、バッファ記憶装置に同一のディレクトリのファイルが蓄えられていても、候補リストの作成はそのこととは全く無関係に行われる。
そのため、置き換えを行う際に、このディレクトリのファイルのうち候補リストの上位に載った一部のファイルのみが新たな転送ファイルと置き換えられ、残りのファイルはバッファ記憶装置に蓄えられたままになる場合が多くなる。そのような場合に、このディレクトリのファイルについて検索や復元等を行うと、主記憶装置または外部記憶装置とバッファ記憶装置との両方に対してアクセスしなければならなくなるので、検索や復元等の処理時間が長くかかってしまう。
また、このディレクトリのファイルのうち新たな転送ファイルと置き換えられることになった複数のファイルについても、候補リストでのそれらの順位が連続していないことにより、離ればなれになって置き換えられる（主記憶装置や外部記憶装置に移動させたときその記憶装置内の互いに離れた領域に蓄えられる）場合が多くなる。そのような場合に、このディレクトリのファイルについて検索や復元等を行うと、主記憶装置や外部記憶装置については互いに離れた領域にそれぞれアクセスしなければならなくなるので、やはり検索や復元等の処理時間が長くかかってしまう。
【００１６】
このうち、本願発明の課題は、階層記憶管理方式のコンピュータにおいて、バッファ記憶装置内の同一のディレクトリの複数のファイルをまとめて新たな転送ファイルと置き換えることができるようにすることにある。
【００１７】
【課題を解決するための手段】
この課題を解決するために、本出願人は、請求項１に記載のように、
第１の記憶手段と、前記第１の記憶手段よりも低速・大容量の第２の記憶手段とを組み合わせた階層構成の記憶装置を用いた階層記憶管理を行う制御手段が、前記第１の記憶手段にディレクトリ構造で記憶されている複数のファイルの中から、前記第２の記憶手段から前記第１の記憶手段に新たに転送するファイルとの置き換えの対象となるファイルの候補リストを作成して、前記候補リスト内のファイルを前記新たに転送するファイルと置き換える方法において、
ディレクトリの優先度を、積極的に同一のディレクトリのファイルを優先するか、積極的にではないが同一のディレクトリのファイルを優先するかのうちのいずれかに設定する操作に従って、前記制御手段が前記ディレクトリの優先度を設定する第１のステップと、
前記制御手段が、前記第１の記憶手段に記憶されている各ファイルについて、最後にアクセスされた日の情報及びファイルサイズの情報を取得する第２のステップと、
前記制御手段が、前記第２のステップで取得した情報に基づき、前記各ファイルについてスコアを算出する第３のステップと、
前記第１のステップで設定したディレクトリの優先度が、積極的に同一のディレクトリのファイルを優先するものである場合には、前記制御手段が、前記候補リストとして、各ディレクトリが前記第３のステップで算出した当該ディレクトリ内のファイルのスコアの大きさの順に並び、且つ、同一のディレクトリの複数のファイルを同一順位または連続する順位に載せた候補リストを作成し、作成した候補リストの順位に従って前記新たに転送するファイルとの置き換えを行う第４のステップと、
前記第１のステップで設定したディレクトリの優先度が、積極的にではないが同一のディレクトリのファイルを優先するものである場合には、前記制御手段が、前記候補リストとして、前記第３のステップで算出したスコアの大きさの順にファイルが並んだ候補リストを作成し、作成した候補リストから置き換えるべき数のファイルを抜き取った後、抜き取ったファイルを同一のディレクトリのファイルが連続するように並べ替えてから前記新たに転送するファイルとの置き換えを行う第５のステップとを含んだファイルの置き換え方法を提案する。
【００１８】
このファイルの置き換え方法によれば、ディレクトリの優先度を、積極的に同一のディレクトリのファイルを優先するように設定する操作を行うと、新たな転送ファイルとの置き換えの対象となるファイルの候補リストとして、各ディレクトリが当該ディレクトリ内のファイルのスコア（最後にアクセスされた日の情報及びファイルサイズの情報に基づいて算出したスコア）の大きさの順に並び、且つ、同一のディレクトリの複数のファイルを同一順位または連続する順位に載せた候補リストが作成される。そして、作成した候補リストの順位に従って新たな転送ファイルとの置き換えが行われる。これにより、第１の記憶手段の同一のディレクトリのファイルのうち新たな転送ファイルと置き換えられることになった複数のファイルはまとめて置き換えられる（第２の記憶手段に移動される）ようになり、また、このディレクトリのファイルは、すべてまとめて新たな転送ファイルと置き換えられるか、すべて第１の記憶手段に蓄えられたままになるかのいずれかになる場合が多くなる。
また、ディレクトリの優先度を、積極的にではないが同一のディレクトリのファイルを優先するように設定する操作を行うと、新たな転送ファイルとの置き換えの対象となるファイルの候補リストとして、スコアの大きさの順にファイルが並んだ候補リストが作成される。そして、作成した候補リストから置き換えるべき数のファイルを抜き取った後、抜き取ったファイルを同一のディレクトリのファイルが連続するように並べ替えてから、新たな転送ファイルとの置き換えが行われる。これにより、この抜き取ったファイルの範囲内でのみ、同一のディレクトリのファイルがまとめて置き換えられるようになる。
【００１９】
このように、第１の記憶手段内の同一のディレクトリのファイルのうち新たな転送ファイルと置き換えられることになった複数のファイルは、まとめて置き換えられることにより、第２の記憶手段内の連続した領域に蓄えられることが多くなる。その結果、同一のディレクトリのファイルについて検索や復元等を行うとき、第２の記憶手段については連続した領域にアクセスすれば足りることが多くなるので、その分検索や復元等の処理時間を短縮化できるようになる。
さらに、第１の記憶手段内の同一のディレクトリのファイルが、すべてまとめて新たな転送ファイルと置き換えられるか、すべて第１の記憶手段に蓄えられたままになるかのいずれかになる場合が多くなる結果、同一のディレクトリのファイルについて検索や復元等を行うとき、第２の記憶手段と第１の記憶手段とのいずれか一方に対してのみアクセスすれば足りることが多くなるので、その分検索や復元等の処理時間を短縮化できるようになる。
【００２０】
また、本出願人は、請求項４に記載のように、
第１の記憶手段と、前記第１の記憶手段よりも低速・大容量の第２の記憶手段とを組み合わせた階層構成の記憶装置を用いた階層記憶管理を行い、前記第１の記憶手段にディレクトリ構造で記憶されている複数のファイルの中から、前記第２の記憶手段から前記第１の記憶手段に新たに転送するファイルとの置き換えの対象となるファイルの候補リストを作成して、前記候補リスト内のファイルを前記新たに転送するファイルと置き換える装置において、
ディレクトリの優先度を、積極的に同一のディレクトリのファイルを優先するか、積極的にではないが同一のディレクトリのファイルを優先するかのうちのいずれかに設定する操作を行うための設定手段と、
前記第１の記憶手段に記憶されている各ファイルについて、最後にアクセスされた日の情報及びファイルサイズの情報を取得する取得手段と、
前記取得手段で取得した情報に基づき、前記各ファイルについてスコアを算出する算出手段と、
前記設定手段で設定操作されたディレクトリの優先度が、積極的に同一のディレクトリのファイルを優先するものである場合には、前記候補リストとして、各ディレクトリが前記算出手段で算出した当該ディレクトリ内のファイルのスコアの大きさの順に並び、且つ、同一のディレクトリの複数のファイルを同一順位または連続する順位に載せた候補リストを作成し、作成した候補リストの順位に従って前記新たに転送するファイルとの置き換えを行い、前記設定手段で設定操作されたディレクトリの優先度が、積極的にではないが同一のディレクトリのファイルを優先するものである場合には、前記候補リストとして、前記算出手段で算出したスコアの大きさの順にファイルが並んだ候補リストを作成し、作成した候補リストから置き換えるべき数のファイルを抜き取った後、抜き取ったファイルを同一のディレクトリのファイルが連続するように並べ替えてから前記新たに転送するファイルとの置き換えを行う置き換え手段とを備えたファイルの置き換え装置を提案する。
【００２１】
このファイルの置き換え装置によれば、ユーザーが設定手段で設定を行い、取得手段，算出手段，置き換え手段がそれぞれ情報の取得，スコアの算出，候補リストの作成及びファイルの置き換えを行うことにより、請求項１に記載の方法を実施することができる。これにより、やはり、第１の記憶手段内の同一のディレクトリの複数のファイルをまとめて新たな転送ファイルと置き換えることができるので、同一のディレクトリのファイルについての検索や復元等の処理時間を短縮化できるようになる。
【００３２】
【発明の実施の形態】
以下では、パーソナルコンピュータに本願発明を適用した例について説明する。
図１は、パーソナルコンピュータにおける記憶装置の階層構成例を示す。このパーソナルコンピュータの記憶装置は、高速・小容量のＳＲＡＭから成るバッファ記憶装置１と、それよりも低速・大容量のＤＲＡＭとＲＯＭとから成る主記憶装置２と、それよりもさらに低速・大容量のハードディスクドライブから成る外部記憶装置３とを組み合わせた階層構成となっている。
【００３３】
バッファ記憶装置１は、ＣＰＵ（中央処理装置）４内に実装されている。
外部記憶装置３は、入出力チャネル（ハードディスクコントローラ）５を介してＣＰＵ４と接続されている。外部記憶装置３には、システムソフトウェアの１つとしてＨＳＭソフトウェアが格納されており、パーソナルコンピュータの電源が入ると、ＣＰＵ４がこのＨＳＭソフトウェアを自動的に実行する。
【００３４】
次に、ＣＰＵ４がこのＨＳＭソフトウェアを実行することにより実現される階層記憶管理の一例を、既にバッファ記憶装置に蓄えられている複数のファイルのうちの一部を新たな転送ファイルと置き換えるための処理に重点をおいて説明する。
【００３５】
ＨＳＭソフトウェアが実行されると、最初に、パーソナルコンピュータのディスプレイ（図示略）に、次の項目（１）〜（６）について設定を行うための画面が表示される。ユーザーは、パーソナルコンピュータのキーボードまたはマウス（図示略）を操作することにより、これらの項目について予め設定を行っておく。
（１）経過日付条件
（２）仮想経過日数
（３）仮想サイズ
（４）経過日数の重み
（５）ファイルサイズの重み
（６）ディレクトリの優先度
【００３６】
このうち、項目（１）では、ファイルの最終更新日と最終アクセス日とのいずれか一方を経過日付条件として設定する。例えば、過去に作成したファイルをごくまれに参照することがあるが、参照した後またしばらくはそのファイルを必要としなくなるような場合には、最終更新日のほうを経過日付条件として設定することが望ましい。他方、過去に作成したファイルを１度参照した後続けて何度か参照するような場合には、最終アクセス日のほうを経過日付条件として設定することが望ましい。
【００３７】
また、項目（２）では、（１）の経過日付条件からの経過日数に対する掛け率として任意の値の分数または整数を設定し、項目（３）でも、ファイルサイズに対する掛け率として任意の値の分数または整数を設定する。
バッファ記憶装置１内のファイルのうち、最終更新日または最終アクセス日からの経過日数が長いファイルよりもファイルサイズの大きいファイル（すなわちバッファ記憶装置１内で大きな領域を占めるファイル）のほうを優先して置き換えたい場合には、項目（２）で設定する掛け率よりも、項目（３）で設定する掛け率のほうを大きくすればよい。他方、最終更新日または最終アクセス日からの経過日数が長いファイルのほうを優先して置き換えたい場合には、項目（２）で設定する掛け率のほうを大きくすればよい。
【００３８】
また、項目（４）では、（１）の経過日付条件からの経過日数に前述の式（ａ）のような重みを掛けるか否かを設定し、項目（５）でも、ファイルサイズに前述の式（ａ）のような重みを掛けるか否かを設定する。
【００３９】
また、項目（６）では、積極的に同一のディレクトリのファイルを優先する、積極的にではないが同一のディレクトリのファイルを優先する、ディレクトリを考慮しない、の三者のうちのいずれかに設定する。
バッファ記憶装置１内の同一のディレクトリの複数のファイルをまとめて置き換えたい場合には、積極的に（または積極的にではないが）同一のディレクトリのファイルを優先するように設定すればよい。他方、同一のディレクトリの複数のファイルをまとめて置き換えなくてもよい場合には、ディレクトリを考慮しないように設定すればよい。
【００４０】
なお、これらの項目（１）〜（６）の設定は、バッファ記憶装置１全体について一律に行わせる（すなわちバッファ記憶装置１に転送されるすべてのファイルについて設定内容が一律になる）ようにしてもよい。しかし、バッファ記憶装置１全体について一律に設定を行った後、個々のディレクトリ毎に改めて設定を行える（すなわちバッファ記憶装置１に転送されるファイルのうち所望のディレクトリのファイルについてのみ設定内容を変更できる）ようにしてもよい。
【００４１】
この設定を終えた後、例えば特定のアプリケーションソフトウェアを実行することなどによりファイルがアクセス要求されると、そのファイルがバッファ記憶装置１内にあるか否かを調べ、あればバッファ記憶装置１から読み出し、なければ主記憶装置２または外部記憶装置３からバッファ記憶装置１に転送した後、バッファ記憶装置１から読み出すという処理を行う。この処理を繰り返すことにより、アクセス要求のある可能性が高いファイルがバッファ記憶装置１のほうに蓄えられていくので、主記憶装置２や外部記憶装置３に対するアクセス回数が減少し、平均のアクセス時間が短縮化される。
【００４２】
この処理を繰り返す途中で、例えばバッファ記憶装置１の空き領域が一定以下になると、候補リストの作成要求を発生する。そして、この要求に応じて、図２に示すような処理によって候補リストを作成する。
【００４３】
すなわち、まず図２に「１」として示すように、候補リストの中間ファイルを編集する。
図３はこの中間ファイルの編集の処理過程を示しており、最初にバッファ記憶装置１内のファイルを１つ検索する（処理（Ａ））。続いて、検索されたものがファイルであるかディレクトリであるかを判断する（処理（Ｂ））。
【００４４】
ファイルであれば、直ちに次の処理（Ｃ）に進む。他方、ディレクトリであれば、そのディレクトリについて、ファイルが検索されるまで図３の処理（Ａ）及び（Ｂ）を再帰的に行った後、処理（Ｃ）に進む。
【００４５】
ここで、例えばバッファ記憶装置１に図５に示すようなディレクトリ構造のファイルが蓄えられているとする。この場合には、処理（Ａ）で検索されたものがｂｕｎｓｈｏ１であったときには、これはファイルなので処理（Ｂ）から直ちに処理（Ｃ）に進むことになる。他方、処理（Ａ）で検索されたものがｂｕｎであったときには、これはファイルｂｕｎｓｈｏ１１及びｂｕｎｓｈｏ１２のサブディレクトリなので、ｂｕｎｓｈｏ１１またはｂｕｎｓｈｏ１２が検索されるまで図３の処理（Ａ）及び（Ｂ）を再帰的に行った後、処理（Ｃ）に進むことになる。同様に、処理（Ａ）で検索されたものがｂｕｎ２であったときには、これはファイルｂｕｎｓｈｏ２１，ｂｕｎｓｈｏ２２及びｂｕｎｓｈｏ２３のサブディレクトリなので、ｂｕｎｓｈｏ２１，ｂｕｎｓｈｏ２２またはｂｕｎｓｈｏ２３が検索されるまで図３の処理（Ａ）及び（Ｂ）を再帰的に行った後、処理（Ｃ）に進むことになる。
【００４６】
処理（Ｃ）では、検索したファイルのノード情報を調べることにより、次の（７）及び（８）の情報を取得する。
（７）そのファイルの最終更新日と最終アクセス日とのうち前述の（１）の経過日付条件として設定された日から現在までの経過日数（日）。
（８）ファイルサイズ（キロバイト）
【００４７】
そして、そのファイルについて、前述の項目（２）〜（５）の設定結果に基づき、次の式（ｂ）によりスコアを算出する（処理（Ｄ））。
スコア＝（７）×（２）×（４）＋（８）×（３）×（５）  …（ｂ）
したがって、前述の項目（１）として、ファイルの最終更新日を経過日付条件として設定した場合には、最終更新日からの経過日数が長いファイルほどスコアが大きくなり、他方最終アクセス日を経過日付条件として設定した場合には、最終アクセス日からの経過日数が長いファイルほどスコアが大きくなる。
また、前述の項目（２）で設定した掛け率が大きいほど、最終更新日または最終アクセス日からの経過日数が長いファイルのスコアの増加の度合いが大きくなり、他方項目（３）で設定した掛け率が大きいほど、ファイルサイズの大きいファイルのスコアの増加の度合いが大きくなる。
【００４８】
続いて、算出したスコアとそのファイルの絶対パス名（ルートディレクトリを起点としたすべてのパス名）とを、中間ファイルに書き込んで保存する（例えば主記憶装置２のＤＲＡＭのワーキング領域に書き込む）（処理（Ｅ））。
【００４９】
続いて、バッファ記憶装置１内にまだ検索されていないファイルがあるか否かを判断する（処理（Ｆ）。未検索のファイルがあれば、処理（Ａ）〜（Ｅ）を繰り返す。
そして、バッファ記憶装置１内のすべてのファイルについて処理（Ａ）〜（Ｅ）が行われたことにより未検索のファイルがなくなると、この中間ファイルの編集処理を終了する。これにより、図２に「２」として示すように、バッファ記憶装置１内の各ファイルのスコア及び絶対パス名を内容とする候補リストの中間ファイルが作成される。
【００５０】
前述の図５の例の場合には、この中間ファイルは、図６に示すように、各ファイルｂｕｎｓｈｏ１，ｂｕｎｓｈｏ１１，ｂｕｎｓｈｏ１２，ｂｕｎｓｈｏ２１，ｂｕｎｓｈｏ２２，ｂｕｎｓｈｏ２３のスコアＳ１，Ｓ１１，Ｓ１２，Ｓ２１，Ｓ２２，Ｓ２３と、それらの絶対パス￥ｂｕｎｓｈｏ１，￥ｂｕｎ￥ｂｕｎｓｈｏ１１，￥ｂｕｎ￥ｂｕｎｓｈｏ１２，￥ｂｕｎ２￥ｂｕｎｓｈｏ２１，￥ｂｕｎ２￥ｂｕｎｓｈｏ２２，￥ｂｕｎ２￥ｂｕｎｓｈｏ２３とを内容とするものとなる。
【００５１】
次に、図２に「３」として示すように、中間ファイルをソートする。
図４は、この中間ファイルのソートの処理過程を示している。
前述の項目（６）の設定結果が、積極的に同一のディレクトリのファイルを優先するというものであったときには、中間ファイルを、ディレクトリのパス名を第１キーとしてソート（並べ替え）した後、スコアの大きさを第２キーとしてソートする（処理（Ｇ））ことにより、中間ファイル２を作成する。
【００５２】
前述の図６において、例えばスコアの大小関係がＳ２１＞Ｓ１２＞Ｓ２３＞Ｓ１＞Ｓ２２＞Ｓ１１である場合には、この中間ファイル２は、図７に示すように、第１キーによりファイルｂｕｎｓｈｏ１とファイルｂｕｎｓｈｏ１１及びｂｕｎｓｈｏ１２とファイルｂｕｎｓｈｏ２１，ｂｕｎｓｈｏ２２及びｂｕｎｓｈｏ２３の３通りに分類され、且つ、ファイルｂｕｎｓｈｏ１１及びｂｕｎｓｈｏ１２については、第２キーによりｂｕｎｓｈｏ１２・ｂｕｎｓｈｏ１１の順に並び、ファイルｂｕｎｓｈｏ２１，ｂｕｎｓｈｏ２２及びｂｕｎｓｈｏ２３についても、第２キーによりｂｕｎｓｈｏ２１・ｂｕｎｓｈｏ２３・ｂｕｎｓｈｏ２２の順に並んだものとなる。
【００５３】
続いて、中間ファイル２の中から、各ディレクトリのパスに存在するファイルについてそれぞれスコアが最大のものを抽出し、抽出した各ファイルをスコアの大きい順にソートする（処理（Ｈ））ことにより、中間ファイル３を作成する。前述の図７の例の場合には、この中間ファイル３は、図８に示すように、ファイルｂｕｎｓｈｏ２１・ｂｕｎｓｈｏ１２・ｂｕｎｓｈｏ１の順に並ぶものとなる。
【００５４】
そして、中間ファイル３の上位から順に１つずつファイルを読み、そのファイルとパス名が等しいファイルを中間ファイル２からすべて読み込んで、それらのファイルを同一順位として候補リストに書き出していく（処理（Ｉ））。これにより、図２にも「４」として示すように、候補リストが作成される。
前述の図７の例の場合には、この候補リストは、図９に示すように、第１順位のファイルがｂｕｎｓｈｏ２１，ｂｕｎｓｈｏ２２及びｂｕｎｓｈｏ２３、第２順位のファイルがｂｕｎｓｈｏ１１及びｂｕｎｓｈｏ１２、第３順位のファイルがｂｕｎｓｈｏ１となる。
【００５５】
このように、前述の項目（６）の設定結果が、積極的に同一のディレクトリのファイルを優先するというものであったときには、同一のディレクトリ（ここではサブディレクトリ）の複数のファイルを同一順位に載せた候補リストが作成される。
なお、処理（Ｉ）において、パス名が等しいファイルを同一順位としてではなく連続する順位として候補リストに書き出すことにより、同一のディレクトリの複数のファイルを連続する順位に載せた候補リスト（前述の図７の例の場合にはファイルが第１順位から第６順位にまでｂｕｎｓｈｏ２１・ｂｕｎｓｈｏ２３・ｂｕｎｓｈｏ２２・ｂｕｎｓｈｏ１２・ｂｕｎｓｈｏ１１・ｂｕｎｓｈｏ１の順に並んだ候補リスト）を作成するようにしてもよい。
【００５６】
他方、前述の項目（６）の設定結果が、積極的にではないが同一のディレクトリのファイルを優先するというものや、ディレクトリを考慮しないというものであったときには、中間ファイルをスコアの大きい順にソートする（処理（Ｊ））ことにより、候補リストを作成する。
前述の図６において、例えばスコアの大小関係がＳ２１＞Ｓ１２＞Ｓ２３＞Ｓ１＞Ｓ２２＞Ｓ１１である場合には、この候補リストは、図１０に示すように、ファイルが第１順位から第６順位にまでｂｕｎｓｈｏ２１・ｂｕｎｓｈｏ１２・ｂｕｎｓｈｏ２３・ｂｕｎｓｈｏ１・ｂｕｎｓｈｏ２２・ｂｕｎｓｈｏ１１の順に並んだものとなる。
【００５７】
このようにして候補リストを作成した後、実際に置き換えを行う際には、この候補リストに基づいて、バッファ記憶装置１に蓄えられているファイルのうちの一定量のファイルを、新たな転送ファイルと置き換える（主記憶装置２または外部記憶装置３に移動させる）。
【００５８】
その際、前述の項目（６）の設定結果が、積極的に同一のディレクトリのファイルを優先するというものであったときには、候補リストの順位にそのまま従い、その上位に載っているこの一定量のファイルを、新たな転送ファイルと置き換える。これにより、バッファ記憶装置１内の同一のディレクトリのファイルのうち新たな転送ファイルと置き換えられることになった複数のファイルはまとめて置き換えられる（主記憶装置２または外部記憶装置３に移動される）ようになり、また、このディレクトリのファイルは、すべてまとめて新たな転送ファイルと置き換えられるか、すべてバッファ記憶装置１に蓄えられたままになるかのいずれかになる場合が多くなる。
【００５９】
すなわち、図９の例において、例えば２つのファイルを置き換える場合には、サブディレクトリｂｕｎの３つのファイルのうち２つのファイルｂｕｎｓｈｏ２１及びｂｕｎｓｈｏ２２がまとめて置き換えられる。また、例えば３つのファイルを置き換える場合には、サブディレクトリｂｕｎの３つのファイルｂｕｎｓｈｏ２１，ｂｕｎｓｈｏ２２及びｂｕｎｓｈｏ２３がすべてまとめて置き換えられる。また、例えば５つのファイルを置き換える場合には、サブディレクトリｂｕｎ２の２つのファイルｂｕｎｓｈｏ１２及びｂｕｎｓｈｏ１１もすべてまとめて置き換えられる。
【００６０】
他方、前述の項目（６）の設定結果が、積極的にではないが同一のディレクトリのファイルを優先するというものであったときには、まず、候補リストの上位の（スコアの大きい）ファイルの順にこの一定量のファイルを抜き取る。そして、この抜き取ったファイルを、パス名でソートした後に置き換える。これにより、この抜き取ったファイルの範囲内でのみ、同一のディレクトリのファイルがまとめて置き換えられるようになる。
【００６１】
すなわち、図１０の例において例えば３つのファイルを置き換える場合には、第１順位から第３順位までのファイルｂｕｎｓｈｏ２１，ｂｕｎｓｈｏ１２，ｂｕｎｓｈｏ２３を抜き取り、これらのファイルをｂｕｎｓｈｏ２１・ｂｕｎｓｈｏ２３・ｂｕｎｓｈｏ１２と並び替えた後に置き換える。これにより、サブディレクトリｂｕｎの２つのファイルｂｕｎｓｈｏ２１及びｂｕｎｓｈｏ２２がまとめて置き換えられる。また、例えば５つのファイルを置き換える場合には、第１順位から第５順位までのファイルｂｕｎｓｈｏ２１，ｂｕｎｓｈｏ１２，ｂｕｎｓｈｏ２３，ｂｕｎｓｈｏ１及びｂｕｎｓｈｏ２２を抜き取り、これらのファイルを図１１に示すようにｂｕｎｓｈｏ２１・ｂｕｎｓｈｏ２２・ｂｕｎｓｈｏ２３・ｂｕｎｓｈｏ１２・ｂｕｎｓｈｏ１と並び替えた後に置き換える。これにより、サブディレクトリｂｕｎの３つのファイルｂｕｎｓｈｏ２１，ｂｕｎｓｈｏ２２及びｂｕｎｓｈｏ２３がすべてまとめて置き換えられる。
【００６２】
また、前述の項目（６）の設定結果が、ディレクトリを考慮しないというものであったときには、候補リストの順位にそのまま従い、その上位に載っている（スコアの大きい）この一定量のファイルを、新たな転送ファイルと置き換える。（図１０の例の場合には、ファイルｂｕｎｓｈｏ２１・ｂｕｎｓｈｏ１２・ｂｕｎｓｈｏ２３・ｂｕｎｓｈｏ１・ｂｕｎｓｈｏ２２・ｂｕｎｓｈｏ１１の順に置き換えられる。）
【００６３】
このように、項目（６）の設定結果が、積極的に同一のディレクトリのファイルを優先するというものであったときと、積極的にではないが同一のディレクトリのファイルを優先するというものであったときとでは、一度に置き換えられるファイルの量にもよるが、一般には後者のときのほうが、同一のディレクトリのファイルがまとめて置き換えられる度合いが小さくなる。したがって、項目（６）で積極的に同一のディレクトリのファイルを優先するか積極的にではないが同一のディレクトリのファイルを優先するかのいずれに設定するかは、一度に置き換えられるファイルの量と、同一のディレクトリの複数のファイルをまとめて置き換えたいという要求がどの程度高いかとによって決定すればよい。
【００６４】
以上に説明したように、このパーソナルコンピュータでは、ユーザーが項目（１）でファイルの最終更新日を経過日付条件として設定することにより、バッファ記憶装置１内のファイルのうち、最終更新日が古くたまたま最近アクセスしたがしばらくはアクセスする予定がないファイルを、候補リストの上位に載せることができるので、こうしたファイルを、優先して新たな転送ファイルと置き換えることができるようになる。
【００６５】
また、ユーザーが項目（２）や項目（３）で設定する掛け率を変化させることにより、バッファ記憶装置１内のファイルのうち、最終更新日または最終アクセス日からの経過日数が長いファイルとファイルサイズの大きいファイルとのうちのいずれを優先して新たな転送ファイルと置き換えるかを、ユーザーが柔軟に決定できるようになる。
【００６６】
また、ユーザーが項目（６）で積極的に（または積極的にではないが）同一のディレクトリのファイルを優先するように設定することにより、バッファ記憶装置１内の同一のディレクトリのファイルのうち新たな転送ファイルと置き換えられることになった複数のファイルはまとめて置き換えられるようになり、また、このディレクトリのファイルが、すべてまとめて新たな転送ファイルと置き換えられるか、すべてバッファ記憶装置１に蓄えられたままになるかのいずれかになる場合が多くなる。
【００６７】
これにより、このディレクトリのファイルのうち新たな転送ファイルと置き換えられることになった複数のファイルは、主記憶装置２や外部記憶装置３に移動させたときにその記憶装置内の連続した領域に蓄えられることが多くなる。その結果、このディレクトリのファイルについて検索や復元等を行うとき、主記憶装置２や外部記憶装置３については連続した領域にアクセスすれば足りることが多くなるので、その分検索や復元等の処理時間を短縮化できるようになる。
さらに、このディレクトリのファイルについて検索や復元等を行うとき、主記憶装置２または外部記憶装置３とバッファ記憶装置１とのいずれか一方に対してのみアクセスすれば足りることが多くなるので、その分検索や復元等の処理時間を短縮化できるようになる。
【００６８】
尚、以上の例では、スコアの大きいファイルを候補リストの上位に載せる（したがって優先的に置き換える）ことを前提とした上で、項目（６）の設定により、同一のディレクトリの複数のファイルをまとめて置き換えるようにしている。しかし、これに代えて、あるいはこれに加えて、ユーザーがキーボードまたはマウスを操作することにより特定のディレクトリを指定することに基づき、そのディレクトリの複数のファイルを、スコアの大小にかかわらず候補リストの上位に同順位や連続した順位で載せる（したがって優先的にまとめて置き換える）ようにしてもよい。
【００６９】
また、本願発明は、図１に示したような階層構成の記憶装置を設けて階層記憶管理を行うパーソナルコンピュータに限らず、それ以外の適宜の階層構成の記憶装置を設けて階層記憶管理を行うパーソナルコンピュータ（例えば、バッファ記憶装置と主記憶装置との間に中速のバッファ記憶装置をさらに設けたものや、補助記憶装置の他に半導体記憶素子を用いた拡張記憶装置をさらに設けたもの）や、パーソナルコンピュータ以外のコンピュータ（例えばワークステーション）にも適用できることは明らかである。
【００７０】
また、本願発明は、階層記憶管理以外の場面で、記憶装置に記憶されている複数のファイルの中からファイルを選択するためにも利用することができる。
また、本願発明は、以上の例に限らず、本願発明の要旨を逸脱することなく、その他様々の構成をとりうることはもちろんである。
【００７１】
【発明の効果】
以上のように、本願の請求項１に記載のファイルの置き換え方法や請求項４に記載のファイルの置き換え装置によれば、第１の記憶手段内の同一のディレクトリの複数のファイルをまとめて新たな転送ファイルと置き換えることができるので、同一のディレクトリのファイルについての検索や復元等の処理時間を短縮化できるという効果が得られる。
【図面の簡単な説明】
【図１】パーソナルコンピュータにおける記憶装置の階層構成例を示すブロック図である。
【図２】候補リストの作成の処理過程の一例を示す図である。
【図３】中間ファイルの編集の処理過程の一例を示す図である。
【図４】中間ファイルのソートの処理過程の一例を示す図である。
【図５】バッファ記憶装置１内のファイルのディレクトリ構造の一例を示す図である。
【図６】中間ファイルの一例を示す図である。
【図７】中間ファイル２の一例を示す図である。
【図８】中間ファイル３の一例を示す図である。
【図９】候補リストの一例を示す図である。
【図１０】候補リストの別の一例を示す図である。
【図１１】図１０の候補リストから抜き取ったファイルをソートした例を示す図である。
【符号の説明】
１  バッファ記憶装置、  ２  主記憶装置、  ３  外部記憶装置、  ４  ＣＰＵ、  ５  入出力チャネル
【図１】
0004304746.tif 000002
【図２】
0004304746.tif 000003
【図３】
0004304746.tif 000004
【図４】
0004304746.tif 000005
【図５】
0004304746.tif 000006
【図６】
0004304746.tif 000007
【図７】
0004304746.tif 000008
【図８】
0004304746.tif 000009
【図９】
0004304746.tif 000010
【図１０】
0004304746.tif 000011
【図１１】
0004304746.tif 000012