HPFS, or High Performance File System, is the preferred file system for OS/2, though it can run on a FAT filesystem is you ask it to. It is an highly optimized file allocation system that, sadly, has seldom been used anywhere else other than OS/2.

The High-Performance part is because the design of HPFS was to prevent potential bottlenecks in data access throughput. In truth, HPFS is an entire disk access topology, not just a file system, though the most important features reside in the filesystem. It uses contiguous sector allocation, intelligent data placement and read-ahead and deferred write caching among other things to decrease data latency.

The largest lag that HPFS tries to overcome is that of track-to-track movement which is by far the largest source of disk latency. Therefore HPFS tries to allocate disk for for single file in as contiguous a fashion as possible -- whenever possible a file is located entirely in one of the disks 8 megabyte "bands". Additionally, to read file names the disk head must travel to the area of the disk where the FAT data is stored; usually this is one of the innermost tracks, and if the data being accessed is on an outer track it can take many milliseconds to access the FAT data and do a full stroke back to the file sector it was working on. HPFS helps with by caching as much of the FAT table as is reasonable and by interspersing the FAT table in the middle of the disk structure so a FAT read will take at most the time of a head half-stroke.

Filenames are 254 double-byte characters, and the file table entry can contain "data" and other specialized information much like modern journaled filesystems. HPFS' unit of allocation is the 512-byte physical unit which helps reduce space wasted by small files.

HPFS was originally designed by Microsoft for IBM, and in NTFS 5 many of the tricks used in it are also be used in Microsofts' own offerings.

Log in or register to write something here or to contact authors.