(57)【要約】  記憶メモリスペースを割り当てるための方法が提供される。方法は、現在のサイズのファイルのための記憶メモリの割り当て要求を受け取るステップと、少なくともファイルに関連付けられた特定の属性に基づき、ファイルの現在のサイズとは異なるファイルの将来のサイズを推量するステップと、ファイルの将来のサイズに基づいてファイルの記憶のための記憶メモリスペースの割り当てを引き起こすステップとを含む。
2013509658.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
現在のサイズのファイルのための記憶メモリ割り当ての要求を受け取るステップと、
ファイルに関連付けられた特定の属性に少なくとも基づいて、ファイルの現在のサイズとは異なるファイルの将来のサイズを推量するステップと、
ファイルの将来のサイズに基づいてファイルの記憶のための記憶メモリの割り当てを引き起こすステップとを備え、
方法は、１つ以上のコンピュータ装置によって行われる、方法。
【請求項２】
特定の属性を有する複数のファイルの各ファイルのサイズをモニタリングするステップと、
モニタリングに基づき、複数のファイルに関連付けられたパターンを定めるステップとをさらに備え、
ファイルの将来のサイズは、複数のファイルに関連付けられたパターンに基づいて推量される、請求項１に記載の方法。
【請求項３】
ファイルの将来のサイズを推量するステップは、ファイルに対する予測される変更に基づいて予期されるファイルのサイズの増加を推量するステップを含み、変更は、少なくとも部分的に特定の属性に基づいて推量される、請求項１に記載の方法。
【請求項４】
記憶メモリの割り当ての要求は、ファイルの最初の作成に応答して受け取られる、請求項１に記載の方法。
【請求項５】
記憶メモリの割り当ての要求は、事前に記憶されたバージョンのファイルからのファイルの変更に応答して受け取られる、請求項１に記載の方法。
【請求項６】
特定の属性は、ファイルの種類である、請求項１に記載の方法。
【請求項７】
特定の属性は、
ファイルの以前の使用、
ファイルの種類、
ファイルを所有するアプリケーション、
ファイルの記憶を要求するアプリケーション、
ファイルに関連付けられた優先度、
ファイルに関連付けられた現在のアクセス頻度および予測されるアクセス頻度、
ファイルに関連付けられた環境、
ファイルに関連付けられた予期される継続時間、
ファイルを共有する処理の回数、
ファイルに関連付けられたユーザ、
ファイルの記憶のための空き記憶メモリスペース、
ファイルに記憶された情報、
ファイルの古さ、または
ファイルに対する、１つもしくはそれ以上の他のファイルまたはアプリケーションの関係、のいずれかである、請求項１に記載の方法。
【請求項８】
方法であって、
第一のファイルの記憶メモリ割り当てのための第一の要求を受け取るステップと、
第一の要求の受け取りに応答して、第一のファイルの記憶のための第一の記憶メモリスペースの割り当てを引き起こすステップと、
要求を受け取った時点において第一のファイルと関連付けられた属性に少なくとも基づいて第二の記憶メモリスペースの割り当てまたは第二の記憶メモリスペースの確保を引き起こすステップとを備え、
方法は、１つ以上のコンピュータ装置によって実行される、方法。
【請求項９】
第二の記憶メモリスペースの割り当てまたは第二の記憶メモリスペースの確保を引き起こすステップは、第一の要求の受け取りに応答して行われる、請求項８に記載の方法。
【請求項１０】
第二の記憶メモリスペースの割り当てまたは確保は、第二の記憶メモリスペースへのデータの記憶をもたらす第二の要求を受け取る前に行われる、請求項８に記載の方法。
【請求項１１】
特定の属性を有する複数のファイルの各ファイルについて記憶メモリ割り当てパターンを検出するために、記憶メモリの割り当てをモニタリングするステップをさらに備え、
各ファイルの記憶メモリ割り当てパターンは、
特定の属性を有するファイルを記憶するための記憶メモリ割り当てを行うステップと、
所定の時間間隔で、特定の属性を有するファイルに関連する他のファイルの記憶のための記憶メモリ割り当てを行うステップとを含み、
第二のファイルのための記憶メモリ割り当てのための第二の要求を受け取る前に、第一のファイルに関連する第二のファイルのために第二の記憶メモリスペースの割り当てまたは確保を記憶メモリ割り当てパターンに基づいて行う、請求項８に記載の方法。
【請求項１２】
第一の記憶メモリスペースの割り当てを引き起こすステップおよび第二の記憶メモリスペースの割り当てまたは第二の記憶メモリスペースの確保を引き起こすステップは、第一の記憶メモリスペースと第二の記憶メモリスペースとを含む連続した記憶メモリスペースを特定するステップを有する、請求項８に記載の方法。
【請求項１３】
一連の指示を含むコンピュータ読み取り可能な記憶媒体であって、指示が１つ以上のプロセッサによって実行されると、請求項１から１２のいずれか１項に記載の方法が行われる、コンピュータ読み取り可能な記憶媒体。
【請求項１４】
１つ以上の数のプロセッサを備え、請求項１から１２のいずれかに記載のステップを行うように構成された、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、記憶メモリの割り当てまたは確保に関する。より具体的には、本発明は、ファイルの将来のサイズについての推量に基づいたファイル用の記憶メモリの割り当てまたは確保に関する。
【背景技術】
【０００２】
背景
コンピュータシステムにおけるデータの断片化または空きスペースの断片化は、一般に記憶容量の減少および性能の低下などの非効率を招く。
【０００３】
断片化は、既に記憶されたファイルが変更され、変更されたファイルを同じ記憶メモリアドレスにおいて記憶するための連続した記憶メモリスペースが十分でない場合に起こり得る。この場合、変更されたファイルは断片化され得て、変更されたファイルの一部は異なる場所に記憶され得る。代替的に、変更されたファイルを記憶するために、変更されたファイルの全体を十分な連続した記憶メモリスペースを有する異なる記憶メモリアドレスに移動させなければならない可能性があり、これによって、入力／出力（Ｉ／Ｏ）の非効率が起こる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ファイル自体が断片化されなくとも、関連するファイルを別個に記憶することによっても非効率が起こり得る。例えば、回転プラッタドライブにおいて、概して併せてアクセスされる２つのファイルが異なる２つの記憶メモリスペースに配置されると、２つのファイルの読み取りおよび／または書き込みに際し、一方の記憶メモリスペースから他方の記憶メモリスペースへの読み取り／書き込みヘッドの移動に遅れが生じ得る。
【課題を解決するための手段】
【０００５】
この箇所に記載されているアプローチは、追求することができるアプローチであるが、以前に着想または追求されたアプローチであるとは限らない。したがって、他に示されない限り、この箇所に記載されるいずれのアプローチも、単にこの箇所に含まれるからといって先行技術とみなされるべきではない。
【０００６】
本発明は、添付の図面において、限定としてではなく例として示され、類似の構成要素に対しては同様の参照番号が付与される。
【図面の簡単な説明】
【０００７】
【図１】１つ以上の実施例による、記憶メモリの割り当てのための例示的なシステムを示す図である。
【図２】１つ以上の実施例による、記憶メモリスペースの割り当てをもたらすフロー図である。
【図３】１つ以上の実施例による、記憶メモリスペースの割り当てをもたらすフロー図である。
【図４】１つ以上の実施例の実施に使用され得るコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００８】
詳細な説明
以下の詳細な説明においては、説明を目的として、本発明について十分に理解するための具体的な詳細をいくつか記載する。しかし、本発明はこれらの具体的な詳細がなくとも実施することができることは明らかである。他の例において、本発明が不必要に不明確となることを回避するために、公知の構造および装置はブロック図の形態で示される。
【０００９】
以下では、いくつかの特徴が記載され、これらの特徴はそれぞれ互いに独立して使用することができ、またはこれらの特徴と他の特徴とを組み合わせて使用することもできる。しかし、個々の特徴が上述の問題点に対処しない、または上述の問題のうちの１つしか対処しない場合もある。上述の問題点の一部は、ここに記載される特徴のいずれによっても完全に解決されない場合がある。見出しが付されているが、特定の見出しに関連しながらも、その見出しを有するセクションに見つからない情報は、本明細書中の他の箇所に見つけることができる場合がある。
【００１０】
概略
１つ以上の実施例において、１つのファイルに記憶メモリを割り当てる方法が記載される。本方法においては、ファイルの将来のサイズを推量し、ファイルの現在のサイズの代わりにファイルの将来のサイズに基づいて、ファイルを記憶するための記憶メモリスペースが割り当てられる。ファイルの将来のサイズは、記憶されているファイルの１つ以上の属性を有するファイルに関連付けられたパターンに基づいて、推量される。
【００１１】
１つ以上の数の実施例において、複数のファイルのための記憶メモリを割り当てる方法が記載される。本方法においては、第一のファイルのための記憶メモリ割り当て要求を受け取り、第一のファイルに関連する第二のファイルのための将来の割り当て要求を予測する。第二のファイルのための将来の割り当て要求の予測に基づき、第一のファイルおよび第二の関連するファイルの両方を記憶するための記憶メモリスペースが割り当てられる。第一のファイルおよび第二の関連するファイルに対しては、連続した記憶メモリスペースが割り当てられる。
【００１２】
方法ステップを実行する具体的な構成要素がここに記載されているが、他の実施例においては、これらの具体的な構成要素に代わって、エージェントまたは機構が方法ステップを実行してもよい。本発明は単一のシステムの構成要素に関して記載されているが、本発明は複数のシステムに分散した構成要素を利用して実施することができる。
【００１３】
本発明の実施例は、ここに記載される方法ステップを実行するための手段を有するいかなるシステムをも含む。本発明の実施例は、コンピュータ読み取り可能な媒体とこの媒体に記憶される指示とを含み、指示が実行されると、ここに記載される方法ステップが実行される。
【００１４】
システムアーキテクチャ 
具体的なシステムアーキテクチャがここに記載されるが、本発明の他の実施例は、ファイルの配置に使用することができるいかなるアーキテクチャにも適用することができる。図１は、１つ以上の実施例による、記憶メモリの割り当てのための例示的なシステム（１００）を示す。図１に示されるように、システム（１００）は、記憶メモリ管理エンジン（１０８）と、記憶ドライバ（１１２）と、１つ以上の記憶リポジトリ（１１４）とを含む。ここには示されていないが、システム（１００）は、１つ以上の実施例の実施に使用することができる他の構成要素を含んでもよい。これらの構成要素の各々は、同じ装置、または有線および／もしくは無線セグメントによってネットワーク（例えば、インターネット、イントラネット、エクストラネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）など）で接続された別個の装置、または他の手段によって接続された別個の装置に配置してもよい。本発明の１つ以上の実施例において、システム（１００）は、クライアント−サーバトポロジを使用して実施することができる。システムは、さらに１つ以上のインターフェースを使用して他のマシンからアクセスすることができる。本発明の１つ以上の実施例において、システムは、１人以上のユーザによって、インターネットのようなネットワーク接続を介してアクセスすることができる。システムによって提供される情報および／またはサービスは、ネットワーク接続を介して記憶またはアクセスすることができる。
【００１５】
ファイル属性および環境属性
ファイル（１０４）は、記憶レポジトリ（１１４）に記憶されるいかなるデータをも概して示す。ファイル（１０４）は、システムファイル、アプリケーションファイル、データファイル、および／もしくは他のファイル、または情報の単一の集合体として論理的に考慮されるデータの集合であってもよい。ファイル（１０４）は、仮想記憶メモリスペース（物理的記憶メモリ）への記憶のために受け取られる、仮想システム上のファイルであってもよい。
【００１６】
一実施例において、ファイル（１０４）は、１つ以上の属性に関連付けられる。ファイルに関連付けられる属性は、ファイル属性（１０６）や環境属性（１１０）などを含んでもよい。ファイル属性（１０６）は、概してファイルの特徴を示す。例えば、ファイル（１０４）のファイル属性（１０６）は、ファイルの種類であってもよい。ファイルの種類の例としては、実行可能ファイル、データファイル、画像ファイル、ビデオファイル、テキストファイル、システムファイル、設定ファイル、デベロッパファイル、または他の考えられるファイル種類が含まれる。ファイルに関連付けられたファイルの種類は、例えばビットマップ画像ファイルまたはＪＰＥＧ画像ファイルのような特定の種類でもよく、ファイルに関連付けられたファイルの種類は、画像カテゴリ（ビットマップ画像ファイルおよびＪＰＥＧ画像ファイルを含む）のようなファイルのカテゴリであってもよい。
【００１７】
ファイル属性（１０６）は、ファイルのクラス分類またはカテゴリ分類を含んでもよい。例えば、起動処理において限定的に使用されるファイルを起動ファイルとして分類してもよい。一実施例において、ファイル属性はファイルの作成後に変化する。例えば、ファイルに関連付けられたユーザが変化したり、ファイルの内容が変化してもよい。
【００１８】
ファイル属性（１０６）の他の例としては、ファイルの以前の使用を含んでもよい。ファイルの以前の使用に関する属性は、ファイルを所有／制御する処理、ファイルの記憶またはファイルへのアクセスを要求するアプリケーション、ファイルに関連付けられたアクセス頻度、ファイルを共有したまたは現在共有している処理の回数、ファイルに関連付けられたユーザ、ファイルに含まれる内容もしくは情報、ファイルの古さ、ファイルに関連付けられた他のファイルの数／サイズなどを示しても良い。
【００１９】
一実施例において、ファイル（１０４）は、環境属性（１１０）である属性に関連付けられる。環境属性（１１０）は、ファイルが記憶される環境、アクセスされる環境、変更される環境、実行される環境などに関連付けられた特徴を概して表わす。環境属性（１１０）の例としては、ファイル（１０４）が記憶されている、または記憶される記憶レポジトリ（１１４）の空き記憶メモリスペースが含まれる。環境属性（１１０）の他の例としては、ファイルを管理するオペレーティングシステムであってもよい。環境属性（１１０）は、ファイルにアクセスするコンピュータシステムが配置される世界の地理的領域を含んでもよい。環境属性（１１０）は、使用背景を含んでもよい。例えば、環境属性（１１０）は、教育目的のために学生によって、または専門的目的のために従業員によって、ファイルがアクセスまたは変更されているかどうかなどを示してもよい。環境属性（１１０）は、ファイル（１０４）を管理するコンピュータシステムにアクセスしているユーザの数またはファイル（１０４）を変更する許可を得たユーザの数などを含んでもよい。環境属性（１１０）は、ファイル（１０４）に関連付けられた環境の他の特徴を含んでもよい。
【００２０】
属性パターン
一実施例において、ファイル（１０４）は、１つ以上の共通の属性（例えば、ファイル属性（１０６）や環境属性（１１０）など）に基づいてグループ化される。特定の属性を有するファイル（１０４）のグループに関連付けられた統計値は、属性と関連付けられた属性パターン（１０２）を識別するために使用される。属性パターン（１０２）は、統計値から導き出されたデータを概して含む。属性パターン（１０２）は、統計値に基づいて計算を実行したり、統計値のパターンを検出するなどによって定められたデータを含んでもよい。ファイル（１０４）のグループと関連付けられた全ての統計値、またはファイル（１０４）のグループと関連付けられた統計値の一部を使用してパターンを検出してもよい。例えば、統計値のパターンを検出する前に、異常値またはある組のデータとは実質的に異なるデータポイントを破棄してもよい。
【００２１】
一実施例において、属性パターン（１０２）は、サイズに基づく統計値を参照してもよい。特定の属性を有するファイルのセットの各ファイルのサイズがモニタリングされる。時間またはファイルへのアクセス数に対する特定のファイルのサイズがモニタリングされる。例えば、ファイルのグループ内の各ファイルのサイズが、ファイルの作成時およびファイルへの書き込みアクセスが二度行われた後にモニタリングされる。つぎに、ファイルのセットの各ファイルについて、二度の書き込みアクセス後のファイルのサイズから作成時のファイルのサイズを引くことにより、ファイルのサイズの実際の変化が定められる。各ファイルのファイルサイズのパーセント変化は、ファイルサイズの変化を作成時のファイルサイズで割ることにより定められる。ファイルのセットにおける実際の変化の平均、またはファイルのセットのパーセント変化の平均が定められる。特定の属性を有するファイルのセットに対応する属性パターン（１０２）は、平均変化を示すデータを含んでもよい。例えば、属性パターン（１０２）は、対応するファイルのセットの平均値に基づいた、ファイル作成時からのｘバイトまたはｙパーセントの予期されるサイズ増加を示すデータを含んでもよい。対応するファイルのセットの平均値の代わりに、最頻値または他の統計計算を使用して属性パターン（１０２）を定めてもよい。
【００２２】
一実施例において、ファイルサイズに基づいた属性パターン（１０２）は、サイズ範囲を示すデータを含む。例えば、ファイルのセットのファイルの中でモニタリングされた最も小さいファイルサイズの増加は１０パーセントであるのに対して、ファイルのセットのファイルの中でモニタリングされた最も大きいファイルサイズの増加は２５パーセントであってもよい。この例においては、増加の範囲は１０パーセントから２５パーセントである。予期される増加の属性パターン（１０２）は、ファイルの作成時（または他の特定の時間）から１０パーセントから２５パーセントの範囲であることを規定するデータを含む。
【００２３】
一実施例において、属性パターン（１０２）は、特定の属性を有するファイルのセットの最大のファイルサイズを示すデータを含む。属性パターン（１０２）は、ファイルの作成後にファイルが最大のファイルサイズに達するのに要する平均時間を示すデータを含んでもよい。属性パターン（１０２）は、各ファイルが最大ファイルサイズに達するまでに行われた変更回数の平均を示すデータを含んでもよい。
【００２４】
一実施例において、属性パターン（１０２）は、特定の属性を有するファイルのセット（１０４）の記憶メモリ割り当て要求パターンをいう。例えば、特定の処理によって所有されるファイルを記憶するための第一の記憶メモリ割り当て要求の次に、関連ファイルの記憶のための第二の記憶メモリ割り当て要求が行われる場合、属性パターン（１０２）は、第一の記憶メモリ割り当て要求から所定の時間内に、特定の処理が第二の記憶メモリ割り当て要求を出すことを示すデータを含んでもよい。第二の記憶メモリ割り当て要求は、第一の記憶メモリ割り当て要求の後のいかなる記憶メモリ割り当て要求を指してもよい。属性パターン（１０２）は、所定の処理にあるファイルのために使用される記憶メモリスペースの合計のパターンを指してもよい。属性パターン（１０２）は、処理またはアプリケーションによる初期の記憶メモリ使用を示すデータ、および処理またはアプリケーションによる後続のまたは最大の記憶メモリ使用を示すデータを含んでもよい。他の一実施例において、属性パターン（１０２）は、特定の属性を有するファイルのグループにおいて概して行われるアクションを指してもよい。例えば、属性パターンは、Ｕｎｉｘ（登録商標）オペレーティングシステムが実行されるシステムまたはアプリケーションＸにおいて特定の処理にあるシステムにおいて、特定の起動ファイル上で「作成、アクセス、変更、変更、アクセス」の動作が概して行われることを示すデータを含んでもよい。各動作は、対応するファイルサイズの変化に関連付けられてもよい。
【００２５】
一実施例において、属性パターン（１０２）は、ファイルのセットのファイルアクセス順序を指してもよい。たとえば、ファイルＢ、Ｃ、Ｒ、ＧおよびＥが、この特定の順序で、またはほぼ同時に繰り返しアクセスされる場合、属性パターン（１０２）は、ファイルアクセス順序を示すデータを含んでもよい。この例において、ファイルＢ、Ｃ、Ｒ、Ｇ、およびＥに共通の属性は、共通の所有者処理であること、またはファイルの全てが単に同じアクセス順序の一部であることである。ここに記載した例において、特定の属性（例えば、ファイルの種類）を示したが、本発明の実施例は、ファイルに関連付けられるいかなる属性にも適用することができる。したがって、属性パターン（１０２）は、ファイルに関連付けられるいかなる属性（例えば、ファイル属性（１０６）、環境属性（１１０）など）にも識別されることができる。
【００２６】
一実施例において、複数の属性パターン（１０２）を特定の属性に関連づけてもよく、複数の属性を特定の属性パターン（１０２）に関連付けてもよい。例えば、特定の処理によって所有されるファイルのセット（１０４）は、共有の統計値を識別するためにモニタリングされる。共有の統計値は、（１）ファイルのセットが平均して最初の作成から４０％増加したこと、および（２）特定の処理によって最初に作成されたファイルは短い期間内に消去され、その後に特定の処理によって作成されたファイルは消去されないことを示す。ファイルのセット（１０４）の第一の属性パターン（１０２）は、最初の作成から平均してサイズが４０％増加したことを示すデータを含んでもよい。同じファイルの組の第二の属性パターン（１０２）は、特定の処理の初期化からｘ分以内に特定の処理によって作成されたファイルは一時ファイルであり、処理によってｘ分が経過した後に作成されたファイルは長い期間保持されることを示すデータを含んでもよい。第二の属性パターン（１０２）は、他の処理によって作成されたファイルの第二の組（たとえば、他の属性を有するファイルの第二の組）に適用してもよい。
【００２７】
記憶レポジトリ
記憶レポジトリ（１１４）は、ファイルを記憶することができる記憶場所を有する１つ以上の記憶装置を概して示す。記憶レポジトリ（１１４）は、部分的にシステム（１００）に直接的に接続してもよく、ネットワーク（１１６）または他の適切なインターフェースを介して接続してもよい。記憶レポジトリ（１１４）は、当該技術において知られるいかなる種類の記憶装置を含んでもよい。例えば、記憶レポジトリ（１１４）は、従来の回転プラッタドライブ、半導体ドライブ（ＳＳＤ）、従来の回転プラッタドライブとＳＳＤとのハイブリッド、ストレージエリアネットワーク（ＳＡＮ）のような別個の記憶システム、ネットワーク接続ストレージ（ＮＡＳ）装置、または記憶部として機能するがランダムアクセスメモリ（ＲＡＭ）によって構成されるＲＡＭ装置を含んでもよい。さらに、記憶レポジトリ（１１４）内の各記憶装置は、異なる種類の記憶場所を含んでもよい。例えば、記憶レポジトリ（１１４）内のＳＳＤは、シングルレベルセル（ＳＬＣ）、マルチレベルセル（ＭＬＣ）、またはこれらの組み合わせのような、異なるセルを含んでもよい。これにより、システム（１００）の記憶部のために用意された記憶レポジトリ（１１４）内の記憶場所は、単一の記憶装置、または異なる記憶装置において様々な構成を有する複数の記憶装置に置くことができる、あるいは単一の記憶装置内にも置くことができる。
【００２８】
記憶ドライバ 
一実施例において、記憶ドライバ（１１２）は、記憶メモリ管理エンジン（１０８）から直接的または間接的に受け取る一組の指示に基づいて、記憶レポジトリ（１１４）にファイルを記憶したり、記憶レポジトリ（１１４）内のファイルを検索したりする。例えば、記憶メモリ管理エンジン（１０８）は、ファイル（１０４）およびファイルを記憶するための記憶場所をファイルシステムに提供し、その後、ファイルシステムは記憶ドライバ（１１２）に指示を転送する。記憶ドライバ（１１２）が受け取る指示は、単に記憶装置を特定する。この場合、記憶ドライバ（１１２）は、記憶装置内のどこにファイルを記憶するかを定める。この指示は、記憶装置の領域、記憶装置上の具体的な記憶場所、記憶レポジトリ、または記憶レポジトリ内の場所を特定してもよい。
【００２９】
一実施例において、記憶ドライバ（１１２）は、ファイル（１０４）の将来のサイズの推量（または予測）を得るように構成されている。例えば、記憶ドライバ（１１２）は、ファイル（１０４）の将来のサイズの推量を算出してもよく、または記憶メモリ管理エンジン（１０８）やファイルシステムなどからファイル（１０４）の将来のサイズの推量を取得してもよい。記憶ドライバ（１１２）は、ファイルの将来のサイズに基づいて、どのくらいの記憶スペースを割り当てるかについて定めてもよく、将来のファイルのサイズに基づいて、どのくらいの記憶スペースを割り当てるかについての情報を記憶メモリ管理エンジン（１０８）やファイルシステムなどから取得してもよい。
【００３０】
記憶メモリ管理エンジン 
一実施例において、システム（１００）内の記憶メモリ管理エンジン（１０８）は、属性パターン（１０２）を識別するように構成され得たソフトウェアおよび／またはハードウェアを概して表わす。記憶メモリ管理エンジン（１０８）は、論理的にアプリケーション／オペレーションシステムとファイルシステムとの間、またはファイルシステムと記憶ドライバ（１１２）との間に適用してもよい。記憶メモリ管理エンジン（１０８）は、ファイルシステムのコンポーネントとして適用してもよい。記憶メモリ管理エンジン（１０８）は、１つ以上のサーバで実行されるアプリケーションであってもよく、いくつかの実施例においては、ピアツーピア型アプリケーション、または単一のコンピュータシステム（たとえば、パーソナルコンピュータ、携帯機器、キオスク、車載コンピュータ、または記憶装置を有する他のシステム）に駐在させてもよい。
【００３１】
一実施例において、記憶メモリ管理エンジン（１０８）は、特定の属性（例えば、ファイル属性（１０６）や環境属性（１１０））を有する１つ以上のファイル、または属性の特定の組み合わせをモニタリングし、特定の属性または属性の特定の組み合わせと関連づけられた属性パターン（１０２）を識別するように構成されている。ファイル（１０４）は、記憶メモリ管理エンジン（１０８）がファイル（１０４）の実際のサイズを定期的に確認し、時間の関数として実際のサイズを記録することによってモニタリングされ得る。ファイル（１０４）は、ファイル（１０４）に変更が加えられる度にファイルのサイズを記録することによってモニタリングしてもよい。一実施例において、ファイルのサイズは、ファイル（１０４）がアクセスされた回数の関数としてモニタリングしてもよい。例えば、ファイル（１０４）へのアクセス回数（例えば、５回目のアクセス、９回目のアクセス、１２０回目のアクセスなど）に対するファイルのサイズを示すデータを取得してもよい。一実施例において、実際のファイルのサイズに加え、または実際のファイルのサイズに替えて、ファイルのサイズの変化をモニタリングして記録してもよい。ファイルのサイズの変化は、ファイルサイズのパーセント変化または絶対変化を含んでもよい。ファイルサイズの変化は、以前に記録されたファイルサイズ、またはファイル（１０４）が最初に作られた時の元のファイルのサイズと比較してモニタリングおよび記録してもよい。
【００３２】
一実施例において、記憶メモリ管理エンジン（１０８）は、属性に関連付けられたファイル（１０４）に基づいた属性の属性パターン（１０２）を識別する。例えば、起動処理において特定のアプリケーションによって使用されるログファイル全体の中から共通のパターンを検出する。共通の検出パターンは、各ログファイルが作られ、その後の起動処理の間に変更され、ログファイルのファイルサイズが最初の作成と比して二倍となるようなパターンである。この例において、ログファイルの共通の属性は、特定のアプリケーションとの関連付けである。記憶メモリ管理エンジン（１０８）は、属性と関連付けられた属性パターン（１０２）を識別し、この属性は、起動処理において特定のアプリケーションによって使用されるログファイルのサイズが起動処理の間に最初の作成と比して二倍となったことを示すデータを含む。起動処理において特定の処理によって使用されるログファイルの特定の閾値または割合のパターンを識別することで、パターンを属性パターン（１０２）として識別してもよい。
【００３３】
一実施例において、記憶メモリ管理エンジン（１０８）は、図２を参照して以下に記載するように、ファイル（１０４）の将来のサイズに基づいてファイル（１０４）の記憶のための記憶メモリスペースを割り当てる論理を含む。一実施例において、図３を参照して以下に記載されるように、記憶メモリ管理エンジン（１０８）は、第一のファイルのための記憶メモリ割り当て要求を受け取り、第二のファイルを記憶するための記憶メモリスペースを割り当てまたは確保を行う。ここでは、具体的な構成要素が特定の動作を行うように記載されているが、本発明の実施例は、ここに記載される（または記載されていない）動作を行ういかなる構成要素を含む。
【００３４】
ファイルの将来のサイズに基づいた記憶メモリスペースの割り当て
図２は、本発明の１つ以上の実施例による記憶メモリスペースの割り当てを行うためのフロー図を示す。１つ以上の実施例において、以下に記載される１つ以上のステップは、省略してもよく、または繰り返しで実行、および／または異なる順序で実行してもよい。したがって、図２に示されるステップの具体的な配列は、本発明の範囲を限定するものとして解釈されるべきではない。
【００３５】
一実施例において、現在のサイズのファイルを記憶するための要求を受け取る（ステップ２０２）。ファイルを記憶するための要求は、アプリケーションまたはオペレーティングシステムによってファイルが最初に作られた時にファイルを最初に記憶するためのものであってもよい。ファイルを記憶するための要求は、以前に記憶されたファイルの変更を記憶するためであってもよい。一実施例において、現在のサイズは、これから記憶されるファイルのサイズに対応する。変更されたファイルを記憶するための要求を受け取ると、現在のサイズは、記憶されている変更後のファイルのサイズに対応する。
【００３６】
一実施例において、ファイルに関連づけられた属性パターンが識別される（ステップ２０４）。属性パターンは、まずファイルに関連する１つ以上の数の属性を識別することにより識別してもよい。例えば、ファイルの種類、ファイルを所有する処理／アプリケーション、ファイルが記憶される環境、またはここに記載される他の属性を識別してもよい。つぎに、ファイルの１つ以上の属性に関連付けられた属性パターンが識別される。例えば、属性パターンを識別するために、属性を属性パターンと合致させるテーブルの問い合わせを行ってもよい。一実施例において、ファイルの記憶のための要求を受ける前に属性パターンは知られていなくてもよい。この場合、記憶されているファイルに関連付けられた属性が一度識別されると、同じ属性に関連付けられた他のファイルが識別される。つぎに、他のファイルを解析して属性パターンを定めてもよい。一実施例において、属性パターンは、他の組のファイルの各ファイルの最大のサイズ、または他の組のファイルの各ファイルの最大サイズの平均値または最頻値を含んでもよい。
【００３７】
一実施例において、属性パターンに基づいて、ファイルの将来のサイズが算出（推量）される（ステップ２０６）。ファイルの将来のサイズは、所定回数の変更後のファイルのサイズ、所定時間後のファイルのサイズ、ファイルが増大し得る最大のサイズなどに対応してもよい。例えば、特定の属性に関連付けられたファイルの将来のサイズは、同じ特定の属性に関連付けられた他の組のファイルの各ファイルの最大サイズに基づいて計算してもよい。記憶されているファイルの将来のサイズ（例えば、将来の最大サイズ）は、他のファイルのモニタリングされた最大のサイズの平均値または最頻値に基づいて推量してもよい。ファイルの将来の最大サイズは、他のファイルのモニタリングされた最大サイズのうち最も大きいサイズに基づいて推量してもよい。同様に、所定回数の変更後に記憶されるファイルのサイズは、他のファイルのそれぞれの所定回数の変更後の他のファイルのモニタリングされたサイズに基づいて推量してもよい。記憶されているファイルの所定期間後のサイズは、他のファイルのそれぞれを作成した後の所定期間経過後の他のファイルのモニタリングされたサイズに基づいて推量してもよい。
【００３８】
一実施例において、将来のサイズの計算は、分散を考慮に入れ、計算された値を特定の数量だけ増加させることをさらに含む。例えば、まず他のファイルの最大サイズを平均化して第一の値を得て、その第一の値を特定の割合または特定の数値分増加させることによって計算してもよい。第一の値は、他のファイルに対応する最大値の組の標準偏差に基づいて増加させてもよい。例えば、他のファイルの最大値が小さい範囲内（例えば、小さい標準偏差）にある場合、第一の計算値からの小さい増加率を使用し、記憶されているファイルの推量最大サイズを計算することができる。逆に、他のファイルの最大値が幅広い範囲内（例えば、大きい標準偏差）にある場合、第一の計算値からの大きい増加率を使用して、記憶されているファイルの推量最大サイズを計算してもよい。記憶されているファイルの将来のサイズの計算における増加率または増加値は、同じ属性に関連付けられた他のファイルのサイズの標準偏差に直接的に関連させてもよい。一実施例において、分散値を許容するためのバッファは、空いている記憶メモリスペースに直接的に従属させてもよい。例えば、空いている記憶メモリスペースが大きければ大きいほど、より大きいバッファを使用してもよい。逆に、空いている記憶メモリスペースが小さければ小さいほど、より小さいバッファを使用してもよい。具体的な例では最大サイズが使用されているが、本発明の実施例はファイルの他のサイズ（例えば、特定回数の変更を行った後のサイズや、作成から特定の期間後のサイズ）にも適用することができる。
【００３９】
一実施例において、将来サイズの予測のために、アクセス種類順序を含む属性パターンが使用される。例えば、属性パターンが最初の書き込み後の読み取りのみを含む場合、将来のサイズの推量は、現在のサイズの推量と同じであってもよい。属性パターンが一連の読み取りおよび書き込みの後に続く最初の書き込みを含み、全ての変更を通して最大サイズが元のサイズの２倍となる場合、記憶されているファイルの将来のサイズの推量は元のサイズの２倍であってもよい。一実施例において、記憶されているファイルに対する変更は、アクセス順序内において識別される。例えば、ファイルに対する変更は、属性パターン内の一連の５回の変更のうちの３つめの変更として認識されてもよい。一連の変更における位置に基づいて、将来のサイズを判定してもよい。上述の例において、３回目の変更に続く４回目および５回目の変更後に推測される２つのファイルのサイズのうち、大きい方に基づいて将来のサイズの推量を行ってもよい。
【００４０】
一実施例において、ファイルの記憶のための記憶メモリスペースは、計算された将来のサイズに基づいて割り当てられる（ステップ２０８）。計算された将来のサイズ以上の連続する記憶メモリスペースをファイルの記憶のために割り当ててもよい。一実施例において、計算された将来のサイズの一時ファイルが生成され、連続する記憶メモリスペースに記憶され、その後に記憶メモリに記憶される実際のファイルによって上書きされる。一実施例において、２つのファイル（例えば、記憶される実際のファイルおよび一時的にスペースを満たすファイル）は、連続する記憶メモリスペースに記憶されてもよい。その後、実際のファイルに変更を加えるためにスペースが必要となった場合、一時的にスペースを満たすファイルはサイズが縮小されるか、消去される。一実施例において、ファイルシステムまたは記憶ドライバに対する具体的な指示により、ファイルの記憶には使用されないが将来の推量に基づいて必要となる追加の記憶メモリスペースを確保してもよい。例えば、メタデータは、特定のファイルのサイズの将来的な増大のために特定の記憶メモリスペースが確保される旨を示してもよい。ファイルの現在のサイズと異なるファイルの将来のサイズ（推量または予測）に基づいてファイルの記憶のための記憶メモリスペースの割り当てまたは確保を可能とする他の適切な方法を使用してもよい。一実施例において、ファイルの推量された将来のサイズに基づいて割り当てまたは確保された追加のスペースは、条件付きで保持してもよい。例えば、記憶レポジトリのメモリ容量が小さい場合、確保された記憶メモリスペースまたは不必要に割り当てられた記憶メモリスペースは、ファイルシステムで使用するためにガベージコレクトされ得る。一実施例において、超過して割り当てられたメモリスペースは、新たなメモリ割り当てのために開放され得る。超過して割り当てられたメモリの開放は、拡張されたファイルまたは記憶する必要のある新しいファイルに関連付けられたファイルに対する超過した割り当てメモリの相対的な位置に基づいて行われてもよい。一実施例において、既存の超過したメモリスペースの開放は、開放されたメモリスペースに適合することが可能な新しいファイル、または開放されたメモリスペースに適合することが可能な、以前に記憶されたファイルの拡張に基づいて行ってもよい。
【００４１】
記憶メモリスペースにデータを記憶するための要求を受け取る前の記憶メモリスペースの割り当て
図３は、本発明の１つ以上の実施例による記憶メモリスペースの割り当てを行うためのフロー図である。１つ以上の実施例において、以下に記載されるステップは、省略、また繰り返しで実行、および／または異なる順序で実行してもよい。したがって、図３に示されるステップの具体的な配列は、本発明の範囲を限定するものとして解釈されるべきではない。
【００４２】
一実施例において、現在のサイズの第一のファイルを記憶するための要求が受け取られ（ステップ３０２）、第一のファイルに関連付けられた属性パターンが識別される（ステップ３０４）。ステップ３０２およびステップ３０４は、それぞれ上述のステップ２０２およびステップ２０４に類似する。一実施例において、第一のファイルを記憶するための第一の記憶メモリスペースが割り当てられる（ステップ３０６）。上述のステップ２０８に記載されるように、第一の記憶メモリスペースの割り当ては、第一のファイルの現在のサイズ、または第一のファイルの将来のサイズに基づいて行われてもよい。
【００４３】
一実施例において、第二の記憶メモリスペースは、第一のファイルに関連付けられた属性パターンに基づいて割り当てまたは確保が行われてもよい（ステップ３０８）。第二の記憶メモリスペースの割り当てまたは確保は、第二の記憶メモリスペースにデータを記憶するための命令を受ける前に行ってもよい。第一のファイルを記憶するための第一の記憶メモリスペースの割り当て要求を受け取り、この要求に応じて第二の記憶メモリスペースを割り当てまたは確保してもよい。第二の記憶メモリスペースは、第一の記憶メモリスペースに隣接してもよい。例えば、第一の記憶メモリスペースと第二の記憶メモリスペースとは連続した記憶メモリスペースを形成してもよい。一実施例において、第二の記憶メモリスペースは、第一のファイルの変更版（たとえば、将来において第一のファイルが変更されてサイズが大きくなる場合）を記憶するために割り当てまたは確保されてもよい。
【００４４】
一実施例において、第二の記憶メモリスペースは、第一のファイルに関連する少なくとも１つの他のファイルを記憶するために割り当てまたは確保されてもよい。例えば、属性パターンは、第一のファイルの割り当て要求の次に第一のファイルに関連する第二のファイルのための割り当て要求が概して続くことを示してもよい。第二のファイルは、第一のファイルと同じ属性に関連付けられたファイルであってもよい。例えば、第二のファイルは、第一のファイルに対する処理と同じ処理に所有されてもよい。属性パターンは、第一のファイルのすぐ後に続いて、または第一のファイルとほぼ同じ時間枠において概してアクセスされる第二のファイルが作成されることを示してもよい。第一の記憶メモリスペースに隣接する第二の記憶メモリスペースに第二のファイルを記憶させると、Ｉ／Ｏ速度が速くなり得る（例えば、回転プラッタヘッドの動作が最小限となるため）。したがって、第二の記憶メモリスペースに第二のファイルを記憶させるための要求を受ける前に、特に第二のファイルのために第二の記憶メモリスペースを割り当てまたは確保してもよい。特に第二のファイルのための第二の記憶メモリスペースは、第二のファイルが作成される前に割り当てまたは確保されてもよい。一実施例において、第一のファイルと同じ時間枠においてアクセスされる第二のファイルは、事前に作られ、他の場所に記憶されていてもよい。この場合、第一のファイルに関連する、記憶された第二のファイルは、第一のファイルおよび第二のファイルがほぼ同じ時間枠においてアクセスされることを示す属性パターンに応じて、第一の記憶メモリスペースに隣接する第二の記憶メモリスペースに移動させることができる。第二の記憶メモリスペースの確保は、第二の記憶メモリスペースに第二のファイルが記憶される時に消去または上書きされる第二の記憶メモリスペース内の一時ファイルを記憶することを含んでもよい。第二の記憶メモリスペースの確保は、記憶メモリスペースを第二のファイルのために確保することを（例えば、記憶メモリスペースと関連付けて記憶されるメタデータを介して、）ファイルシステムまたは記憶ドライバに指示することを含んでもよい。第二の記憶メモリスペースの確保は、記憶メモリスペースに対応するテーブルを適用し、確保された記憶メモリスペースが特定の表示（例えば、フラグ）を有するようにしてもよい。一実施例において、第二の記憶メモリスペースの確保には、第二の記憶メモリスペースに一時ファイルまたは場所保持ファイルを記憶することを伴ってもよい。一時ファイルまたは場所保持ファイルは、以前に記憶された第一のファイルに関連する第二のファイルの記憶のために第二のメモリスペースが使用される時に消去または上書きされてもよい。
【００４５】
一実施例において、第一のファイルに関連づけられた第二のファイルを記憶するための記憶メモリの割り当て要求が受け取られる（ステップ３１０）。第二のファイルは、属性パターンに基づいて識別されてもよい。例えば、同じ時間枠内に概してアクセスされる２つの関連するファイルのために２つの記憶メモリを割り当てる要求を行う処理を識別してもよい。第一の要求に応答して、第一のファイルのために第一の記憶メモリスペースが割り当てられ、将来の第二のファイルのために第二の記憶メモリスペースの割り当てまたは確保が行われた後、処理からの要求は追加の記憶メモリ割り当て要求のためにモニタリングされる。記憶メモリ割り当てのための第二の要求が、モニタリングされた処理から受けられると、第二の記憶メモリスペースは、第二の要求に関連付けられたデータ（すなわち、第一のファイルに関連する第二のファイル）を記憶するために使用される（ステップ３１２）。一実施例において、第二のファイルを記憶するための要求は、第二のファイルが第一のファイルと関連し、第一のファイルと併せて記憶されることを示すメタデータを含んでもよい。
【００４６】
ハードウェアの概要
図４は、本発明の実施例が適用されるコンピュータシステム４００を示すブロック図である。コンピュータシステム４００は、情報通信のためのバス４０２または他の通信機構と、バス４０２と結合された情報処理のためのプロセッサ４０４とを含む。コンピュータシステム４００は、ランダムアクセスメモリ（ＲＡＭ）または他の動的記憶装置のようなメインメモリ４０６も含む。メインメモリ４０６は、バス４０２に結合され、情報およびプロセッサ４０４によって実行される指示を記憶する。メインメモリ４０６は、プロセッサ４０４により指示が実行される間、一時的な可変要素または他の中間情報を記憶するために使用されてもよい。コンピュータシステム４００は、バス４０２に結合されたリードオンリメモリ（ＲＯＭ）４０８または他の静的記憶装置を含み、静的情報およびプロセッサ４０４への指示を記憶する。磁気ディスクまたは光ディスクのような記憶装置４１０が設けられ、バス４０２に結合されて、情報および指示を記憶する。
【００４７】
コンピュータシステム４００は、コンピュータのユーザに情報を表示するための、陰極線管（ＣＲＴ）のようなディスプレイ４１２にバス４０２を介して結合されてもよい。英数字および他のキーを含む入力装置４０４は、バス４０２に結合され、情報およびコマンド選択の通信をプロセッサ４０４に対して行う。他の種類のユーザ入力装置としては、マウス、トラックボール、またはカーソル方向キーのような、方向情報およびプロセッサ４０４に対するコマンド選択の通信やディスプレイ４１２上でのカーソル動作の制御のカーソル制御４１６がある。この入力装置は、典型的には２つの軸において２つの自由度を有する。２つの軸は、第一の軸（例えば、ｘ）および第二の軸（例えば、ｙ）であり、装置が面における位置を特定することを可能とする。
【００４８】
本発明は、ここに記載される技術を適用するためのコンピュータシステム４００の使用に関する。本発明の一実施例によれば、これらの技術は、メインメモリ４０６に含まれる１つ以上の指示の１つ以上のシーケンスを実行するプロセッサ４０４に応答して、コンピュータシステム４００により実行される。このような指示は、記憶装置４１０のような他の装置読み取り可能媒体からメインメモリ４０６に読み込まれてもよい。メインメモリ４０６に収容される一連の指示を実行することにより、プロセッサ４０４はここに記載される処理ステップを行う。代替的な実施例において、本発明を適用するために、ソフトウェアによる指示と置き換えて、またはソフトウェアによる指示と組み合わせて、配線回路を使用してもよい。本発明の実施例は、配線回路およびソフトウェアの具体的な組み合わせには限定されない。
【００４９】
ここで使用される「装置読み取り可能媒体」の用語は、装置に特定の方法で動作を行わせるデータの提供に関わる媒体を指す。コンピュータシステム４００を使用して実施される一実施例において、様々な装置読み取り可能媒体が、例えば、プロセッサ４０４に実行させる指示の提供に関わる。このような媒体は様々な形態をとり、記憶媒体および伝送媒体を含むが、これらの媒体に限定されない。記憶媒体は、不揮発性媒体および揮発性媒体の両方を含む。不揮発性媒体は、例えば、記憶装置４１０のような光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ４０６のような動的メモリを含む。伝送媒体は、同軸ケーブル、銅線、および光ファイバを含み、バス４０２などの配線も含む。伝送媒体は、電波および赤外線ファイル通信の際に発生する音波または光波の形態をとることも可能である。全てのこのような媒体は、媒体によって運ばれる指示が装置に指示を読み込む物理的機構により検出されるように、有形である必要がある。
【００５０】
装置読み取り可能な媒体の一般的な形態として、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープもしくは他の磁気媒体、ＣＤ−ＲＯＭ、他の光媒体、パンチカード、紙テープ、穴のパターンを有する他の物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、他のメモリチップもしくはカートリッジ、以下に記載する搬送波、または他のコンピュータ読み取り可能媒体がある。
【００５１】
様々な形態の装置読み取り可能媒体が、プロセッサ４０４に実行させるための１つ以上の指示の１つ以上のシーケンスを運ぶことに関わってもよい。例えば、指示は、最初はリモートコンピュータの磁気ディスクによって運ばれてもよい。リモートコンピュータは、その動的メモリに指示を読み込み、モデムを使用して電話回線を介してその指示を送ってもよい。コンピュータシステム４００に備わったモデムは、電話回線によりファイルを受け取ることができ、赤外線送信機を使用してファイルを赤外線信号に変換する。赤外線検出器は赤外線信号により運ばれたファイルを受信することができ、適切な回路によってファイルをバス４０２上に配置することができる。バス４０２は、ファイルをメインメモリ４０６に運び、プロセッサ４０４はメインメモリ４０６から指示を検索して実行する。メインメモリ４０６が受け取る指示は、プロセッサ４０４により実行された後または実行される前に選択的に記憶装置４１０に記憶されてもよい。
【００５２】
コンピュータシステム４００は、バス４０２に結合された通信インターフェース４１８も含む。通信インターフェース４１８は、ローカルネットワーク４２２に接続されたネットワークリンク４２０に結合された双方向ファイル通信を提供する。例えば、通信インターフェース４１８は、総合デジタル通信網（ＩＳＤＮ）またはデジタル加入者回線（ＤＳＬ）の形態の対応する種類の電話回線にファイル通信接続を提供するためのカードまたはモデムであってもよい。他の例として、通信インターフェース４１８は、互換性のあるＬＡＮへのファイル通信接続を提供するローカルエリアネットワーク（ＬＡＮ）カードであってもよい。無線リンクもまた適用することができる。このような適用において、通信インターフェース４１８は、様々な種類の情報を示すデジタルファイルストリームを有する、電気信号、電磁信号、または光信号を送受信する。
【００５３】
ネットワークリンク４２０は、典型的に他のファイル装置に対して１つ以上のネットワークを介してファイル通信を提供する。例えば、ネットワークリンク４２０は、ホストコンピュータ４２４またはインターネットサービスプロバイダ（ＩＳＰ）４２６により運用されるファイル機器に対してネットワーク４２２を介した接続を提供する。ＩＳＰ４２６は、現在では一般的に「インターネット」（４２８）と呼ばれる全世界パケットファイル通信ネットワークを介してファイル通信サービスを同様に提供する。ローカルネットワーク４２２およびインターネット４２８の両方は、デジタルファイルストリームを運ぶ電気信号、電磁信号、または光信号を使用する。様々なネットワークを介する信号、ネットワークリンク４２０上の信号、およびデジタルファイルをコンピュータシステム４００に対して運ぶコミュニケーションインターフェース４１８を介する信号は、情報を運ぶ搬送波の典型的な形態である。
【００５４】
コンピュータシステム４００は、ネットワーク、ネットワークリンク４２０、および通信インターフェース４１８を介してメッセージの送信およびプログラムコードを含むファイルの受信を行うことができる。インターネットの例では、サーバ４３０は、インターネット４２８、ＩＳＰ４２６、ローカルネットワーク４２２、および通信インターフェース４１８を介してアプリケーションプログラムに要求されるコードを送信し得る。
【００５５】
受信されたコードは、そのままプロセッサ４０４によって実行される、および／または後の実行のために記憶装置４１０もしくは他の不揮発性記憶装置に記憶される。この態様により、コンピュータシステム４００は搬送波の形態でアプリケーションコードを取得する。
【００５６】
一実施例において、ここに記載される技術または方法は、いかなるコンピュータ装置においても実行される。コンピュータ装置の例としては、コンピュータシステム、デスクトップ、ラップトップ、モバイル装置、サーバ、キオスク、タブレット、携帯電話、ゲームコンソール、またはここに記載される方法の少なくとも一部を実行するために使用されるハードウェアを含むいかなる他の装置をも含むが、これらに限定されない。
【００５７】
拡張および代替例
上記の明細書では、本発明の実施例について、実現化例ごとに異なり得る数多くの具体的な詳細事項を参照しながら説明してきた。したがって、この発明とは何かを唯一かつ排他的に示すものであり、出願人が発明であると意図するものは、本願から提供される請求項であり、このような請求項が提供される特定の形態にはその後の訂正が含まれる。本明細書においてこのような請求項に含まれる用語について明記した何らかの定義は、請求項に使用される用語の基準となるものである。こうした請求項に明記されていない限定、構成要素、性質、特徴、利点または属性は、このような請求項の範囲をいかなる形でも限定してはならない。明細書および図面はしたがって、限定的な意味ではなく例示的な意味で捉えられるべきものである。
【図１】
2013509658.tif 000003
【図２】
2013509658.tif 000004
【図３】
2013509658.tif 000005
【図４】
2013509658.tif 000006
【手続補正書】
【提出日】平成23年2月24日(2011.2.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
特定の属性を有する複数のファイルの各ファイルのサイズをモニタリングするステップと、
複数のファイルに関連付けられたパターンをモニタリングに基づいて定めるステップと、
特定の属性を有する現在のサイズのファイルのための記憶メモリ割り当ての要求を受け取るステップと、
複数のファイルに関連付けられたパターンに少なくとも基づいて、ファイルの現在のサイズとは異なるファイルの将来のサイズを推量するステップと、
ファイルの将来のサイズに基づいてファイルの記憶のための記憶メモリの割り当てを引き起こすステップとを備え、
方法は、１つ以上のコンピュータ装置によって行われる、方法。
【請求項２】
ファイルの将来のサイズを推量するステップは、ファイルに対する予測される変更に基づいて予期されるファイルのサイズの増加を推量するステップを含み、変更は、少なくとも部分的に特定の属性に基づいて推量される、請求項１に記載の方法。
【請求項３】
記憶メモリの割り当ての要求は、ファイルの最初の作成に応答して受け取られる、請求項１に記載の方法。
【請求項４】
記憶メモリの割り当ての要求は、事前に記憶されたバージョンのファイルからのファイルの変更に応答して受け取られる、請求項１に記載の方法。
【請求項５】
特定の属性は、ファイルの種類である、請求項１に記載の方法。
【請求項６】
特定の属性は、
ファイルの以前の使用、
ファイルの種類、
ファイルを所有するアプリケーション、
ファイルの記憶を要求するアプリケーション、
ファイルに関連付けられた優先度、
ファイルに関連付けられた現在のアクセス頻度および予測されるアクセス頻度、
ファイルに関連付けられた環境、
ファイルに関連付けられた予期される継続時間、
ファイルを共有する処理の回数、
ファイルに関連付けられたユーザ、
ファイルの記憶のための空き記憶メモリスペース、
ファイルに記憶された情報、
ファイルの古さ、または
ファイルに対する、１つもしくはそれ以上の他のファイルまたはアプリケーションの関係、のいずれかである、請求項１に記載の方法。
【請求項７】
方法であって、
第一のファイルの記憶メモリ割り当てのための第一の要求を受け取るステップと、
第一の要求の受け取りに応答して、第一のファイルの記憶のための第一の記憶メモリスペースの割り当てを引き起こすステップと、
要求を受け取った時点において第一のファイルと関連付けられた属性に少なくとも基づいて第二の記憶メモリスペースの割り当てまたは第二の記憶メモリスペースの確保を引き起こすステップとを備え、
第二の記憶メモリスペースは、第一のファイルに関連する第二のファイルを記憶するために割り当てまたは確保され、
方法は、１つ以上のコンピュータ装置によって実行される、方法。
【請求項８】
第二の記憶メモリスペースの割り当てまたは第二の記憶メモリスペースの確保を引き起こすステップは、第一の要求の受け取りに応答して行われる、請求項７に記載の方法。
【請求項９】
第二の記憶メモリスペースの割り当てまたは確保は、第二の記憶メモリスペースへのデータの記憶をもたらす第二の要求を受け取る前に行われる、請求項７に記載の方法。
【請求項１０】
特定の属性を有する複数のファイルの各ファイルについて記憶メモリ割り当てパターンを検出するために、記憶メモリの割り当てをモニタリングするステップをさらに備え、
各ファイルの記憶メモリ割り当てパターンは、
特定の属性を有するファイルを記憶するための記憶メモリ割り当てを行うステップと、
所定の時間間隔で、特定の属性を有するファイルに関連する他のファイルの記憶のための記憶メモリ割り当てを行うステップとを含む、請求項７に記載の方法。
【請求項１１】
第一の記憶メモリスペースの割り当てを引き起こすステップおよび第二の記憶メモリスペースの割り当てまたは第二の記憶メモリスペースの確保を引き起こすステップは、第一の記憶メモリスペースと第二の記憶メモリスペースとを含む連続した記憶メモリスペースを特定するステップを有する、請求項７に記載の方法。
【請求項１２】
一連の指示を含むコンピュータ読み取り可能な記憶媒体であって、指示が１つ以上のプロセッサによって実行されると、請求項１から１１のいずれか１項に記載の方法が行われる、コンピュータ読み取り可能な記憶媒体。
【請求項１３】
１つ以上の数のプロセッサを備え、請求項１から１１のいずれか１項に記載のステップを行うように構成された、装置。
【国際調査報告】
2013509658.tif 000007
2013509658.tif 000008