JP2012098931A - Information processor, information processing method and program - Google Patents

Information processor, information processing method and program Download PDF

Info

Publication number
JP2012098931A
JP2012098931A JP2010246398A JP2010246398A JP2012098931A JP 2012098931 A JP2012098931 A JP 2012098931A JP 2010246398 A JP2010246398 A JP 2010246398A JP 2010246398 A JP2010246398 A JP 2010246398A JP 2012098931 A JP2012098931 A JP 2012098931A
Authority
JP
Japan
Prior art keywords
cache buffer
data
cache
reused
managed
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.)
Granted
Application number
JP2010246398A
Other languages
Japanese (ja)
Other versions
JP5697403B2 (en
Inventor
Masao Aihara
正男 合原
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2010246398A priority Critical patent/JP5697403B2/en
Publication of JP2012098931A publication Critical patent/JP2012098931A/en
Application granted granted Critical
Publication of JP5697403B2 publication Critical patent/JP5697403B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To effectively utilize a cache buffer as a limited resource by preventing data that has been stored in the cache buffer from being expelled by data having low reusability.SOLUTION: An information processor includes: distribution means for performing distribution such that when it is determined that such possibility that used data may be reused within a predetermined time is equal to or more than a predetermined value, a cache buffer including the used data is managed by first management means, and that when it is determined that such possibility is less than the predetermined value, the cache buffer including the used data is managed by second management means; and selection means for, when a cache buffer for newly reading data is not sufficient, selecting the cache buffer managed by the second management means as a cache buffer for abandoning data.

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。   The present invention relates to an information processing apparatus, an information processing method, and a program.

ファイルシステムは、通常キャッシュバッファと呼ばれる記憶領域を利用する。アプリケーションからのファイル読み込み要求があった場合、CPUは、以下の処理を行う。つまり、CPUは、該当するファイルのデータをハードディスクやメモリカード等の二次記憶装置からセクタ単位でキャッシュバッファに転送し、次に要求されただけのデータをキャッシュバッファからアプリケーションの指定したメモリ領域に転送する。キャッシュバッファの内容はできるだけ保持され、アプリケーションから再び同じデータの読み込み要求があった場合、CPUは、二次記憶装置からの転送を省略し、キャッシュバッファのデータからアプリの指定するメモリ領域に転送する。これによって動作の遅い二次記憶装置へのアクセスを減らすことができ、速度向上に効果的である。
また、アプリケーションからファイルへの書き込み要求があった場合、CPUは、アプリケーションの指定したデータをキャッシュバッファに転送し、次に二次記憶装置に転送する。キャッシュバッファから二次記憶装置への実際のデータ転送は遅らせることができる。二次記憶装置へ転送する前にアプリケーションから同じデータの上書き要求があったときは、CPUは、キャッシュバッファのデータだけを変更し、最後の変更結果のみを二次記憶装置に転送することで二次記憶装置へのアクセスを減らすことができる。
また、ファイルシステムにはファイルにアクセスするために必要なディレクトリエントリ・FAT・inodeといったメタデータが存在する。CPUは、メタデータを読み込んだり書き込んだりするときにも、一度、キャッシュバッファにメタデータを転送し、キャッシュバッファ上のメタデータにアクセスする。
このように、CPUは、キャッシュバッファに一度転送したデータはなるべく捨てずに保持しておき、キャッシュバッファを全て使い切って足りなくなったときに初めて古いデータを捨てる。そして、CPUは、空いたキャッシュバッファの領域を新しいデータの為に使うことで、ファイルアクセスを効率的に実現している。
このときに入れ替えるキャッシュバッファを選択するためによく使われているアルゴリズムがLRUである。LRUは、最後に使われてから最も長い時間が経ったキャッシュバッファを選択する。
The file system normally uses a storage area called a cache buffer. When there is a file read request from the application, the CPU performs the following processing. In other words, the CPU transfers the data of the corresponding file from the secondary storage device such as a hard disk or a memory card to the cache buffer in units of sectors, and the next requested data is transferred from the cache buffer to the memory area specified by the application. Forward. The contents of the cache buffer are retained as much as possible, and when the application requests to read the same data again, the CPU skips the transfer from the secondary storage device and transfers the data from the cache buffer to the memory area specified by the application. . As a result, access to the secondary storage device that operates slowly can be reduced, which is effective in improving the speed.
When there is a write request to the file from the application, the CPU transfers the data designated by the application to the cache buffer, and then transfers it to the secondary storage device. The actual data transfer from the cache buffer to the secondary storage device can be delayed. If there is an overwrite request for the same data from the application before transferring to the secondary storage device, the CPU changes only the data in the cache buffer and transfers only the last change result to the secondary storage device. Access to the next storage device can be reduced.
Further, the file system has metadata such as directory entry, FAT, and inode necessary for accessing the file. When reading or writing metadata, the CPU once transfers the metadata to the cache buffer and accesses the metadata on the cache buffer.
In this way, the CPU retains the data once transferred to the cache buffer as much as possible, and discards old data only when the cache buffer is completely used up. The CPU efficiently implements file access by using the empty cache buffer area for new data.
A commonly used algorithm for selecting a cache buffer to be replaced at this time is LRU. The LRU selects the cache buffer that has the longest time since it was last used.

特開2000−122926号公報JP 2000-122926 A

ディスク全体の空き容量を計測する場合、スペースビットマップやアロケーションビットマップ、ファイルアロケーションテーブル等のディスク領域の割り当て状況を示すメタデータを先頭から末尾まで全部検査して空き領域の数を数える処理が行われる。CPUは、この処理を行うためにディスク領域の割り当て状況を示すメタデータを大量に読み込むが、後に同じメタデータが近い将来利用される可能性は低い。
また、CPUは、ファイルを書き込むためにディスク領域を新たに割り当てる場合も、空き領域を探すためにディスク領域の割り当て状況を示すメタデータを読み込む。しかしながら、空き領域がなかなか見つからない場合は空き領域が見つかるまで大量にメタデータの読み込みが発生する。この場合も、空き領域がなかったメタデータは近い将来再び利用される可能性は低い。
また、ファイルを作成するためにディレクトリの空き領域を探す場合、CPUは、ディレクトリを表すメタデータを先頭から順に参照して空き領域を探す。しかしながら、空き領域がなかなか見つからない場合は大量にメタデータの読み込みが発生する。この場合も空き領域がなかったメタデータは近い将来再び利用される可能性は低い。
このように再利用性の低いメタデータが大量に読み込まれると、それまでキャッシュバッファに入っていた再利用性の高いデータがキャッシュバッファから追い出されてしまい、キャッシュバッファの利用効率が下がる問題があった。
When measuring the free space of the entire disk, a process that counts the number of free areas by inspecting all the metadata indicating the allocation status of the disk area, such as space bitmap, allocation bitmap, and file allocation table, from the beginning to the end. Is called. In order to perform this processing, the CPU reads a large amount of metadata indicating the allocation status of the disk area, but it is unlikely that the same metadata will be used in the near future.
In addition, even when a new disk area is allocated for writing a file, the CPU reads metadata indicating the allocation status of the disk area in order to search for a free area. However, if a free area is not easily found, a large amount of metadata is read until a free area is found. Also in this case, it is unlikely that metadata that has no free space will be used again in the near future.
When searching for a free area in a directory to create a file, the CPU searches for free areas by sequentially referring to metadata representing the directory from the top. However, a large amount of metadata is read when a free area cannot be found easily. Also in this case, it is unlikely that metadata that has no free space will be used again in the near future.
When a large amount of metadata with low reusability is read in this way, data with high reusability that had been in the cache buffer until then is expelled from the cache buffer, which reduces the efficiency of use of the cache buffer. It was.

本発明はこのような問題点に鑑みなされたもので、再利用性の低いデータによってそれまでキャッシュバッファに入っていたデータが追い出されることを防ぎ、限られた資源であるキャッシュバッファを有効に活用することを目的とする。   The present invention has been made in view of such a problem, and prevents data that has been stored in the cache buffer by data with low reusability from being expelled, and effectively uses the cache buffer that is a limited resource. The purpose is to do.

そこで、本発明の情報処理装置は、再利用される可能性が高いキャッシュバッファを管理する第一管理手段と、再利用される可能性が低いキャッシュバッファを管理する第二管理手段と、利用し終わったデータが予め定められた時間内に再利用される可能性が、予め定められた値以上か否かを判断する判断手段と、前記判断手段で、予め定められた値以上であると判断された場合、前記利用し終わったデータが入っているキャッシュバッファを前記第一管理手段で管理させ、予め定められた値未満であると判断された場合、前記利用し終わったデータが入っているキャッシュバッファを前記第二管理手段で管理させるよう振り分ける振り分け手段と、新たにデータを読み込むためのキャッシュバッファが足りないときに、データを破棄するキャッシュバッフとして、前記第二管理手段で管理されているキャッシュバッファを選択する選択手段と、を有する。   Therefore, the information processing apparatus of the present invention uses a first management unit that manages a cache buffer that is likely to be reused, and a second management unit that manages a cache buffer that is less likely to be reused. Judgment means for judging whether or not the possibility that the finished data is reused within a predetermined time is greater than or equal to a predetermined value, and the determination means determines that the possibility is greater than or equal to a predetermined value. If it is determined that the cache buffer containing the data that has been used is managed by the first management means and is determined to be less than a predetermined value, the data that has been used is contained. A distribution unit for distributing the cache buffer to be managed by the second management unit and a key for discarding the data when there are not enough cache buffers for reading data. As Sshubaffu, having a selection means for selecting a cache buffer that is managed by the second management unit.

本発明によれば、再利用性の低いデータによってそれまでキャッシュバッファに入っていた再利用性の高いデータが追い出されることを防ぎ、限られた資源であるキャッシュバッファを有効に活用することができる。   According to the present invention, it is possible to prevent data with high reusability that has been in the cache buffer from being expelled by data with low reusability, and to effectively use the cache buffer that is a limited resource. .

情報処理装置(コンピュータ)1のハードウェア構成の一例を示す図である。2 is a diagram illustrating an example of a hardware configuration of an information processing apparatus (computer) 1. FIG. キャッシュバッファと二つのLRUとを表す概略図である。It is the schematic showing a cache buffer and two LRU. キャッシュバッファ選択処理の一例を示すフローチャートである。It is a flowchart which shows an example of a cache buffer selection process. FATファイルシステムにおいてディレクトリの空き領域を探す手順を示すフローチャートである。It is a flowchart which shows the procedure which searches the vacant area of a directory in a FAT file system. FAT16ファイルシステムにおいてディスク上の全ての空きクラスタを数え上げる手順を示すフローチャートである。It is a flowchart which shows the procedure which counts up all the free clusters on a disk in a FAT16 file system.

以下、本発明の実施形態について図面に基づいて説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

<実施形態1>
図1は、情報処理装置(コンピュータ)1のハードウェア構成の一例を示す図である。図1に示されるように情報処理装置1は、ハードウェア構成として、CPU11を含む。CPU11が、記憶装置13に記憶されているプログラムに基づき処理を行うことによって、ファイルシステムやLRUの機能、又は後述するフローチャートに係る処理が実現される。
CPU11には、バス10を介して、入力装置12、記憶装置13及び表示装置14が接続されている。記憶装置13は、例えば、ROM及びRAM及びハードディスク装置等からなり、上述した各プログラム以外に、プログラムに基づく処理で用いられるデータを記憶する。なお、後述するキャッシュバッファ等は、RAMに実装されているものとする。表示装置14は、情報を表示する例えばディスプレイ等である。入力装置12は、情報を入力する例えば操作キー等である。
なお、入力装置12及び表示装置14は、情報処理装置1の必須の構成要素ではない。
以下では特に言及しない限り、CPU11が処理を実行するものとする。
<Embodiment 1>
FIG. 1 is a diagram illustrating an example of a hardware configuration of an information processing apparatus (computer) 1. As shown in FIG. 1, the information processing apparatus 1 includes a CPU 11 as a hardware configuration. When the CPU 11 performs processing based on a program stored in the storage device 13, the file system, the function of the LRU, or processing according to a flowchart described later is realized.
An input device 12, a storage device 13, and a display device 14 are connected to the CPU 11 via the bus 10. The storage device 13 includes, for example, a ROM, a RAM, a hard disk device, and the like, and stores data used in processing based on the program in addition to the above-described programs. It is assumed that a cache buffer and the like described later are mounted on the RAM. The display device 14 is, for example, a display that displays information. The input device 12 is, for example, an operation key for inputting information.
The input device 12 and the display device 14 are not essential components of the information processing device 1.
In the following description, it is assumed that the CPU 11 executes processing unless otherwise specified.

図2は、キャッシュバッファと二つのLRUとを表す概略図である。
第一LRU101は、近い将来再利用される可能性の高いキャッシュバッファ、つまり、予め定められた時間内に再利用される可能性が、予め定められた値以上のキャッシュバッファ、を管理する。第一LRU101は、第一管理手段の一例である。第二LRU102は、近い将来再利用される可能性の低いキャッシュバッファ、つまり、予め定められた時間内に再利用される可能性が、予め定められた値未満のキャッシュバッファを管理する。第二LRU102は、第二管理手段の一例である。キャッシュバッファ集合103は、キャッシュバッファの集合であり、1セクタ分のキャッシュバッファがB1からB8まで8個存在している。LRUは、それぞれのキャッシュバッファをリンクリストでつなげることで管理している。図2において、LRUにつながれているキャッシュバッファのうち、先頭にあるものが最近利用されたキャッシュバッファであり、末尾のものが最も長い間利用されていないキャッシュバッファである。第一LRUから辿れるリンクリストには近い将来再利用される可能性の高いものだけがつながれており、第二LRUから辿れるリンクリストには近い将来再利用される可能性の低いものだけがつながれている。
B1からB8までの全てのキャッシュバッファに何らかのデータが格納されている状態で、キャッシュバッファには存在しない新しいデータにアクセスする必要が生じた場合について説明する。新しいデータをキャッシュバッファに格納するためには既存のキャッシュバッファのどれかを選択してその内容を新しいデータに置き換える必要がある。
本実施形態では、CPU11は、第二LRUにつながれているキャッシュバッファが一つもないときには第一LRUの末尾のキャッシュバッファを選択するが、そうでないときには第二LRUの末尾にあるキャッシュバッファを選択する。選択されたバッファのそれまでの内容は破棄され、新しいデータで上書きされる。そしてそのキャッシュバッファは、それまで存在していたLRUから取り除かれる。図2(A)の例では、第二LRUの末尾にあるキャッシュバッファB8が選択される。
FIG. 2 is a schematic diagram illustrating a cache buffer and two LRUs.
The first LRU 101 manages a cache buffer that is highly likely to be reused in the near future, that is, a cache buffer that is likely to be reused within a predetermined time and that is equal to or greater than a predetermined value. The first LRU 101 is an example of a first management unit. The second LRU 102 manages a cache buffer that is unlikely to be reused in the near future, that is, a cache buffer that is less likely to be reused within a predetermined time. The second LRU 102 is an example of a second management unit. The cache buffer set 103 is a set of cache buffers, and there are eight cache buffers for one sector from B1 to B8. The LRU manages each cache buffer by connecting them with a linked list. In FIG. 2, among the cache buffers connected to the LRU, the first one is the cache buffer that has been used recently, and the last one that has not been used for the longest time. Only links that are likely to be reused in the near future are linked to the link list traced from the first LRU, and only those that are less likely to be reused in the near future are linked to the linked list traced from the second LRU. Yes.
A case where it is necessary to access new data that does not exist in the cache buffer in a state where some data is stored in all the cache buffers B1 to B8 will be described. In order to store new data in the cache buffer, it is necessary to select one of the existing cache buffers and replace the contents with the new data.
In this embodiment, the CPU 11 selects the cache buffer at the end of the first LRU when there is no cache buffer connected to the second LRU, but otherwise selects the cache buffer at the end of the second LRU. . The previous contents of the selected buffer are discarded and overwritten with new data. The cache buffer is then removed from the previously existing LRU. In the example of FIG. 2A, the cache buffer B8 at the end of the second LRU is selected.

図3は、キャッシュバッファ選択処理の一例を示すフローチャートである。ファイルシステムがキャッシュバッファを必要としたとき、S401からキャッシュバッファ選択手順が開始される。S402では、CPU11は、指定されたセクタのキャッシュバッファが既に存在するかどうかを判断する。同じセクタのキャッシュバッファが存在していた場合(S402においてYes)、CPU11は、S406に移り、そのバッファを選択する。指定されたセクタのキャッシュバッファが存在しない場合(S402においてNo)、CPU11は、S403に移り、第二LRUが空かどうかを判断する。空でない場合(S403においてNo)、CPU11は、S404で第二LRUの末尾のバッファを選択し、S407に移る。第二LRUが空の場合(S403においてYes)、CPU11は、S405で第一LRUの末尾のバッファを選択し、S407に移る。S407では、CPU11は、選択したキャッシュバッファに入っている内容を破棄し、新しいセクタを読み込みキャッシュバッファに格納し、S408に移る。S408では、CPU11は、選択したキャッシュバッファをLRUから取り除く。
次に、このキャッシュバッファB8を利用し終わったときの動きを図2(B)と図2(C)とを参照して説明する。B8を利用し終わった時点で、このデータが近い将来再利用される可能性が高いと判断された場合には、B8は第一LRUの先頭につながれる(図2(C))。一方、このデータが近い将来再利用される可能性が低いと判断された場合には、B8は第二LRUの先頭につながれる(図2(B))。
FIG. 3 is a flowchart illustrating an example of the cache buffer selection process. When the file system needs a cache buffer, a cache buffer selection procedure is started from S401. In S402, the CPU 11 determines whether or not a cache buffer for the designated sector already exists. When a cache buffer of the same sector exists (Yes in S402), the CPU 11 proceeds to S406 and selects the buffer. If there is no cache buffer for the designated sector (No in S402), the CPU 11 proceeds to S403 and determines whether the second LRU is empty. If not empty (No in S403), the CPU 11 selects the last buffer of the second LRU in S404, and proceeds to S407. If the second LRU is empty (Yes in S403), the CPU 11 selects the last buffer of the first LRU in S405, and proceeds to S407. In S407, the CPU 11 discards the contents stored in the selected cache buffer, reads a new sector and stores it in the cache buffer, and proceeds to S408. In S408, the CPU 11 removes the selected cache buffer from the LRU.
Next, the operation when the use of the cache buffer B8 is completed will be described with reference to FIG. 2 (B) and FIG. 2 (C). When it is determined that there is a high possibility that this data will be reused in the near future when B8 is used, B8 is connected to the head of the first LRU (FIG. 2C). On the other hand, if it is determined that there is a low possibility that this data will be reused in the near future, B8 is connected to the head of the second LRU (FIG. 2B).

キャッシュバッファを利用し終わった時点でこのデータが近い将来再利用される可能性を判断する方法について、図4を用いて説明する。図4は、FATファイルシステムにおいてディレクトリの空き領域を探す手順を示すフローチャートである。ファイルやディレクトリを作成する際にS501からディレクトリの空き領域を探す処理が開始される。S502で、CPU11は、セクタ番号を格納する変数sectに対象ディレクトリの先頭セクタ番号を格納する。S503で、CPU11は、変数sectに格納されているセクタ番号のキャッシュバッファを獲得する。S504で、CPU11は、変数pにキャッシュバッファの先頭アドレスを格納する。変数pは、ファイルやディレクトリ一つ分の領域であるディレクトリエントリの先頭アドレスを格納するポインタ変数である。
次にS513で、CPU11は、pが指す領域が空き領域かどうかを調べる。pが指す領域が空き領域であった場合(S513においてYes)、CPU11は、処理をS510に移し、このキャッシュバッファを第一LRUに挿入する。第一LRUに挿入する理由は、この空き領域にファイルやディレクトリが近い将来作成されるはずであり、そのときにこのキャッシュバッファが再利用されるからである。S510の後は、CPU11は、処理をS511に移し、処理を終了する。
A method of determining the possibility that this data will be reused in the near future when the cache buffer is used will be described with reference to FIG. FIG. 4 is a flowchart showing a procedure for searching for an empty area of a directory in the FAT file system. When creating a file or directory, a process for searching for a free area in the directory is started from S501. In S502, the CPU 11 stores the head sector number of the target directory in a variable “sect” that stores the sector number. In S503, the CPU 11 obtains a cache buffer of the sector number stored in the variable “sett”. In S504, the CPU 11 stores the start address of the cache buffer in the variable p. The variable p is a pointer variable for storing the head address of a directory entry that is an area for one file or directory.
In step S513, the CPU 11 checks whether the area pointed to by p is an empty area. If the area pointed to by p is an empty area (Yes in S513), the CPU 11 moves the process to S510 and inserts this cache buffer into the first LRU. The reason for inserting into the first LRU is that a file or directory should be created in this free area in the near future, and this cache buffer is reused at that time. After S510, the CPU 11 moves the process to S511 and ends the process.

S513でpが指す領域が空き領域でなかった場合(S513においてNo)、CPU11は、S505でpを32バイト増加させる。次にS506で、CPU11は、pがセクタの終端かどうかを調べる。セクタの終端ではなかった場合(S506においてNo)、CPU11は、処理をS504に移す。S506でpがセクタの終端であった場合(S506においてYes)、CPU11は、S507でこのキャッシュバッファを第二LRUに挿入する。第二LRUに挿入する理由は、このセクタには空き領域がなかったのでこのキャッシュバッファが近い将来再利用される可能性は少ないからである。
次にS508で、CPU11は、変数sectの示すセクタがディレクトリの終端かどうかを調べる。終端であった場合(S508においてYes)、CPU11は、ディレクトリの最後まで空き領域がなかったということなので、S512でこの処理を終了する。S508でディレクトリの終端でなかった場合(S508においてNo)、CPU11は、当該ディレクトリにおいてsectが指すセクタの論理的に次のセクタ番号をsectに格納して、処理をS503に戻す。
以上の処理により、ディレクトリ内に空き領域を探す処理において、空き領域がなかったキャッシュバッファを第二LRUに挿入し、空き領域を発見したキャッシュバッファを第一LRUに挿入する。このことにより、キャッシュバッファを有効に活用することが可能となる。
If the area pointed to by p in S513 is not an empty area (No in S513), the CPU 11 increases p by 32 bytes in S505. In step S506, the CPU 11 checks whether p is the end of the sector. If it is not the end of the sector (No in S506), the CPU 11 shifts the processing to S504. If p is the end of the sector in S506 (Yes in S506), the CPU 11 inserts the cache buffer into the second LRU in S507. The reason for inserting into the second LRU is that there is no possibility that this cache buffer will be reused in the near future because there is no free space in this sector.
In step S508, the CPU 11 checks whether the sector indicated by the variable “sett” is the end of the directory. If it is the end (Yes in S508), the CPU 11 means that there is no free space up to the end of the directory, and thus ends this processing in S512. If it is not the end of the directory in S508 (No in S508), the CPU 11 stores the logical next sector number of the sector pointed to by sect in the directory in sect, and returns the process to S503.
Through the above processing, in the process of searching for a free area in the directory, a cache buffer that has no free area is inserted into the second LRU, and a cache buffer that has found a free area is inserted into the first LRU. This makes it possible to effectively use the cache buffer.

また、本実施形態は、ディレクトリ中の空き領域を探す例であるが、別な実施形態としてディスク上に新たなデータを書き込むために空きクラスタを探す処理も同様に実現することができる。ディレクトリ中の空き領域を探す処理と違うのは、空きクラスタを探すのにディレクトリではなくFile Allocation Table(FAT)を調べる点である。FATの1エントリ分が空きを示していれば、それに対応するクラスタが空きということである。空きが見つかった場合、CPU11は、そのFATを含むキャッシュバッファを第一LRUに挿入する。その理由は、空きクラスタにはデータがかかれるはずで、その空きを示すFATが書き換えられるからである。また、CPU11は、空きを含まなかったFATを含むキャッシュバッファは、第二LRUに挿入する。その理由は、そのFATは近い将来書き換えられる可能性が低いからである。   Further, although this embodiment is an example of searching for a free area in a directory, as another embodiment, a process of searching for a free cluster in order to write new data on a disk can be similarly realized. The difference from the process of searching for a free area in the directory is that a file allocation table (FAT) is checked instead of a directory to search for a free cluster. If one FAT entry indicates a vacancy, the corresponding cluster is vacant. When a free space is found, the CPU 11 inserts a cache buffer including the FAT into the first LRU. The reason is that data should be applied to the free cluster, and the FAT indicating the free space is rewritten. Further, the CPU 11 inserts the cache buffer including the FAT that does not include the empty space into the second LRU. The reason is that the FAT is unlikely to be rewritten in the near future.

<実施形態2>
次に図5を用いて上述した実施形態とは別の実施形態を説明する。図5は、FAT16ファイルシステムにおいてディスク上の全ての空きクラスタを数え上げる手順を示すフローチャートである。FAT16ファイルシステムでは、一つ一つのクラスタの状態を2バイトのFATエントリで表しており、空きクラスタ数を数え上げるには、全てのFATエントリを先頭から末尾まで2バイトごとに検査して、空きを示すエントリの数を数える。この処理の特徴は、FAT領域の全てのセクタを読み込んで順にアクセスする必要があるが、この処理のために読み込んだキャッシュバッファのどれもがその後の処理において再利用される可能性が低い点である。したがって、本実施形態では、CPU11は、読み込んだ全てのキャッシュバッファを第二LRUに挿入する。これにより、この処理が始まる前の時点で第一LRUに入っているキャッシュバッファの方が有効活用される可能性を高めている。
<Embodiment 2>
Next, an embodiment different from the above-described embodiment will be described with reference to FIG. FIG. 5 is a flowchart showing a procedure for counting all free clusters on the disk in the FAT16 file system. In the FAT16 file system, the status of each cluster is represented by a 2-byte FAT entry, and in order to count the number of free clusters, all FAT entries are inspected every 2 bytes from the beginning to the end, and free space is checked. Count the number of entries shown. The feature of this processing is that all sectors in the FAT area need to be read and accessed sequentially, but it is unlikely that any cache buffer read for this processing will be reused in subsequent processing. is there. Therefore, in this embodiment, the CPU 11 inserts all the read cache buffers into the second LRU. This increases the possibility that the cache buffer contained in the first LRU will be used more effectively before this process starts.

より具体的な手順を、図5を用いて説明する。ファイルシステムが空きクラスタを数え上げる必要がある時にはS601から処理が始められる。S602で、CPU11は、セクタ番号を示す変数sectにFAT領域の先頭セクタ番号を格納し、空きクラスタを数え上げた結果を示す変数cntに0を格納する。次にS603で、CPU11は、sectが示すセクタのキャッシュバッファを獲得する。S604とS605とS606とS607とS608とは、当該キャッシュバッファに入っている1セクタ分のFATが示す空きクラスタを数える部分であるが、本実施形態の本質ではないので説明は省略する。1セクタ分の処理が終わるとS609に到達し、CPU11は、ここで処理の終わったキャッシュバッファを第二LRUに挿入する。その後、S610で、CPU11は、sectがFAT領域の終端かどうかを調べる。終端であった場合(S610においてYes)、CPU11は、S612で処理を終了する。このときcntにはディスク上の空きクラスタの総数が入っている。S610でsectがFAT領域の終端ではなかった場合(S610においてNo)、CPU11は、sectに次のセクタ番号を格納し、処理をS603に戻す。
以上の処理により、キャッシュバッファを有効に活用することができる。
A more specific procedure will be described with reference to FIG. When the file system needs to count free clusters, the process is started from S601. In S602, the CPU 11 stores the leading sector number of the FAT area in the variable “sect” indicating the sector number, and stores “0” in the variable “cnt” indicating the result of counting the free clusters. In step S <b> 603, the CPU 11 acquires a cache buffer for the sector indicated by “sett”. S604, S605, S606, S607, and S608 are the portions that count the empty clusters indicated by the FAT for one sector in the cache buffer, but are not the essence of this embodiment, and thus the description thereof is omitted. When the processing for one sector is completed, the process reaches S609, and the CPU 11 inserts the cache buffer that has been processed here into the second LRU. Thereafter, in S610, the CPU 11 checks whether or not “sett” is the end of the FAT area. If it is the end (Yes in S610), the CPU 11 ends the process in S612. At this time, cnt contains the total number of free clusters on the disk. If sect is not the end of the FAT area in S610 (No in S610), the CPU 11 stores the next sector number in sect and returns the process to S603.
With the above processing, the cache buffer can be used effectively.

<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
<Other embodiments>
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, etc.) of the system or apparatus reads the program. It is a process to be executed.

以上、上述した各実施形態によれば、再利用性の低いデータによってそれまでキャッシュバッファに入っていたデータが追い出されることを防ぎ、限られた資源であるキャッシュバッファを有効に活用することができる。   As described above, according to each of the above-described embodiments, it is possible to prevent data that has been stored in the cache buffer from being expelled by data with low reusability, and to effectively use the cache buffer that is a limited resource. .

以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。   The preferred embodiments of the present invention have been described in detail above, but the present invention is not limited to such specific embodiments, and various modifications can be made within the scope of the gist of the present invention described in the claims.・ Change is possible.

11 CPU
13 記憶装置
11 CPU
13 Storage device

Claims (3)

再利用される可能性が高いキャッシュバッファを管理する第一管理手段と、
再利用される可能性が低いキャッシュバッファを管理する第二管理手段と、
利用し終わったデータが予め定められた時間内に再利用される可能性が、予め定められた値以上か否かを判断する判断手段と、
前記判断手段で、予め定められた値以上であると判断された場合、前記利用し終わったデータが入っているキャッシュバッファを前記第一管理手段で管理させ、予め定められた値未満であると判断された場合、前記利用し終わったデータが入っているキャッシュバッファを前記第二管理手段で管理させるよう振り分ける振り分け手段と、
新たにデータを読み込むためのキャッシュバッファが足りないときに、データを破棄するキャッシュバッファとして、前記第二管理手段で管理されているキャッシュバッファを選択する選択手段と、
を有する情報処理装置。
A first management means for managing cache buffers that are likely to be reused;
A second management means for managing cache buffers that are unlikely to be reused;
A determination means for determining whether or not the possibility that the data that has been used is reused within a predetermined time is greater than or equal to a predetermined value;
When it is determined by the determination means that it is equal to or greater than a predetermined value, the first management means manages the cache buffer containing the data that has been used and is less than a predetermined value. If it is determined, a distribution unit that distributes the cache buffer containing the used data to be managed by the second management unit;
Selection means for selecting a cache buffer managed by the second management means as a cache buffer for discarding data when there is not enough cache buffer for reading data;
An information processing apparatus.
情報処理装置が実行する情報処理方法であって、
再利用される可能性が高いキャッシュバッファを管理する第一管理ステップと、
再利用される可能性が低いキャッシュバッファを管理する第二管理ステップと、
利用し終わったデータが予め定められた時間内に再利用される可能性が、予め定められた値以上か否かを判断する判断ステップと、
前記判断ステップで、予め定められた値以上であると判断された場合、前記利用し終わったデータが入っているキャッシュバッファを前記第一管理ステップで管理させ、予め定められた値未満であると判断された場合、前記利用し終わったデータが入っているキャッシュバッファを前記第二管理ステップで管理させるよう振り分ける振り分けステップと、
新たにデータを読み込むためのキャッシュバッファが足りないときに、データを破棄するキャッシュバッファとして、前記第二管理ステップで管理されているキャッシュバッファを選択する選択ステップと、
を有する情報処理方法。
An information processing method executed by an information processing apparatus,
A first management step for managing cache buffers that are likely to be reused;
A second management step for managing cache buffers that are unlikely to be reused;
A determination step of determining whether or not the possibility that the data that has been used is reused within a predetermined time is greater than or equal to a predetermined value;
If it is determined in the determination step that the value is greater than or equal to a predetermined value, the cache buffer containing the data that has been used is managed in the first management step, and is less than a predetermined value If determined, a distribution step for distributing the cache buffer containing the used data to be managed in the second management step;
A selection step of selecting the cache buffer managed in the second management step as a cache buffer for discarding data when there are not enough cache buffers for reading data;
An information processing method comprising:
コンピュータに、
再利用される可能性が高いキャッシュバッファを管理する第一管理ステップと、
再利用される可能性が低いキャッシュバッファを管理する第二管理ステップと、
利用し終わったデータが予め定められた時間内に再利用される可能性が、予め定められた値以上か否かを判断する判断ステップと、
前記判断ステップで、予め定められた値以上であると判断された場合、前記利用し終わったデータが入っているキャッシュバッファを前記第一管理ステップで管理させ、予め定められた値未満であると判断された場合、前記利用し終わったデータが入っているキャッシュバッファを前記第二管理ステップで管理させるよう振り分ける振り分けステップと、
新たにデータを読み込むためのキャッシュバッファが足りないときに、データを破棄するキャッシュバッファとして、前記第二管理ステップで管理されているキャッシュバッファを選択する選択ステップと、
を実行させるプログラム。
On the computer,
A first management step for managing cache buffers that are likely to be reused;
A second management step for managing cache buffers that are unlikely to be reused;
A determination step of determining whether or not the possibility that the data that has been used is reused within a predetermined time is greater than or equal to a predetermined value;
If it is determined in the determination step that the value is greater than or equal to a predetermined value, the cache buffer containing the data that has been used is managed in the first management step, and is less than a predetermined value If determined, a distribution step for distributing the cache buffer containing the used data to be managed in the second management step;
A selection step of selecting the cache buffer managed in the second management step as a cache buffer for discarding data when there are not enough cache buffers for reading data;
A program that executes
JP2010246398A 2010-11-02 2010-11-02 Information processing apparatus, information processing method, and program Expired - Fee Related JP5697403B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010246398A JP5697403B2 (en) 2010-11-02 2010-11-02 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010246398A JP5697403B2 (en) 2010-11-02 2010-11-02 Information processing apparatus, information processing method, and program

Publications (2)

Publication Number Publication Date
JP2012098931A true JP2012098931A (en) 2012-05-24
JP5697403B2 JP5697403B2 (en) 2015-04-08

Family

ID=46390764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010246398A Expired - Fee Related JP5697403B2 (en) 2010-11-02 2010-11-02 Information processing apparatus, information processing method, and program

Country Status (1)

Country Link
JP (1) JP5697403B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6455659A (en) * 1987-08-26 1989-03-02 Nec Corp Buffer selection system
JPH05265863A (en) * 1992-01-24 1993-10-15 Fujitsu Ltd Cache mechanism of computer
JP2000089985A (en) * 1999-08-20 2000-03-31 Mitsubishi Electric Corp Method for managing buffer cache of computer
JP2008165573A (en) * 2006-12-28 2008-07-17 Konica Minolta Business Technologies Inc Memory device, cache control method, and cache control program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6455659A (en) * 1987-08-26 1989-03-02 Nec Corp Buffer selection system
JPH05265863A (en) * 1992-01-24 1993-10-15 Fujitsu Ltd Cache mechanism of computer
JP2000089985A (en) * 1999-08-20 2000-03-31 Mitsubishi Electric Corp Method for managing buffer cache of computer
JP2008165573A (en) * 2006-12-28 2008-07-17 Konica Minolta Business Technologies Inc Memory device, cache control method, and cache control program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200900597012; 片上達也ほか2名: 'ファイル操作のシステムコール発行頻度に基づくバッファキャッシュ制御法の提案' コンピュータシステム・シンポジウム論文集 第2009巻 第13号, 20091119, pp.111〜118, 社団法人情報処理学会 *
JPN6014021648; 片上達也ほか2名: 'ファイル操作のシステムコール発行頻度に基づくバッファキャッシュ制御法の提案' コンピュータシステム・シンポジウム論文集 第2009巻 第13号, 20091119, pp.111〜118, 社団法人情報処理学会 *

Also Published As

Publication number Publication date
JP5697403B2 (en) 2015-04-08

Similar Documents

Publication Publication Date Title
TWI684099B (en) Profiling cache replacement
JP6106028B2 (en) Server and cache control method
CN106294352B (en) A kind of document handling method, device and file system
US9727479B1 (en) Compressing portions of a buffer cache using an LRU queue
US9501419B2 (en) Apparatus, systems, and methods for providing a memory efficient cache
CN110555001B (en) Data processing method, device, terminal and medium
US11314689B2 (en) Method, apparatus, and computer program product for indexing a file
EP2541423B1 (en) Replacement policy for resource container
US9021208B2 (en) Information processing device, memory management method, and computer-readable recording medium
US20140032854A1 (en) Coherence Management Using a Coherent Domain Table
KR20130108298A (en) Card-based management of discardable files
KR20120068454A (en) Apparatus for processing remote page fault and method thereof
KR20110102327A (en) Discardable files
CN107341114B (en) Directory management method, node controller and system
US8484424B2 (en) Storage system, control program and storage system control method
US8566534B1 (en) Low overhead space management for large caches
CN115168259B (en) Data access method, device, equipment and computer readable storage medium
US9934248B2 (en) Computer system and data management method
JP2022188903A (en) Information processing device and method
EP2621143A1 (en) Information processing apparatus, distributed processing system, and distributed processing method
CN112148736A (en) Method, device and storage medium for caching data
CN104978283A (en) Memory access control method and device
US9858204B2 (en) Cache device, cache system, and cache method
JP5697403B2 (en) Information processing apparatus, information processing method, and program
WO2014147840A1 (en) Access control program, disk device, and access control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150210

LAPS Cancellation because of no payment of annual fees