FAT File System Changes

Changes have also been made to the FAT file system driver under OS/2 Version 2.0, in order to provide improved performance and enhanced support for disk hardware devices:

  • The FAT driver now supports command chaining

    The driver attempts to call the volume manager with a list of all contiguous sector requests required to fulfill an I/O request, thus allowing multiple page-in and page-out requests in a single logical operation.

  • The FAT driver provides faster allocation of free space on the logical drive, using a bitmap to track free clusters on the disk.

    Disk caching is now supported within the FAT driver, and has been removed from the device driver. A cache buffer is provided to support disk caching with the following features:

  • Lazy writing

  • Lazy reading on writes, that is, the ability to write to the cache and flush the cache to disk, but then to read the updated information from the cache rather than requiring a physical disk read operation

  • Asynchronous read-ahead through a multi-purpose asynchronous read thread

  • Large cache size (theoretical maximum of 64MB, although practical limitations will necessitate a smaller cache)

  • The ability to dynamically enable and disable the cache in response to a user command

  • Bad sectors are automatically bypassed on reads.

    There are a number of advantages in performing caching in the FAT driver rather than the device driver; more operating system kernel services are available at this level, and intelligent read-ahead operations can more easily be performed. Lazy writing is also more easily implemented at the file system level than at the device driver level.

    The FAT file system under OS/2 Version 2.0 supports a maximum file size of 2GB. The maximum supported size for a FAT volume is also 2GB.


    [Back: High Performance File System Changes]
    [Next: Disk Volume Considerations]