Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

File accesses often incur repeated reading of the same volume sectors. On a FAT volume, these may be sectors in the root directory, the area of the file allocation table (FAT) from which clusters are being allocated or data from important (often-read) files. A cache wedged between the system driver and volume layers (as shown in Figure 7-8) will eliminate many unnecessary device accesses. Sector data is stored upon first read or write. Further reads return the cached data; further writes update the cache entry and, possibly, the data on the volume (depending on the cache mode).

A cache is defined by three parameters: size, sector type allocation and mode. The size of the cache is the number of sectors that will fit into it at any time. Every sector is classified according to its type, either management, directory or file; the sector type allocation determines the percentage of the cache that will be devoted to each type. The mode determines when cache entries are created (i.e., when sectors are cached) and what happens upon write.

Cache Mode

Description

Cache Mode #define

Read cache

Sectors cached upon read; never cached upon write.

FS_VOL_CACHE_MODE_RD

Write-through cache

Sectors cached upon read and write; data on volume always updated upon write.

FS_VOL_CACHE_MODE_WR_THROUGH

Write-back cache

Sectors cached upon read and write; data on volume never updated upon write.

FS_VOL_CACHE_MODE_WR_BACK

Table 7-3 Cache types

  • No labels