Browse Prior Art Database

Utilitarian File System

IP.com Disclosure Number: IPCOM000121373D
Original Publication Date: 1991-Aug-01
Included in the Prior Art Database: 2005-Apr-03
Document File: 8 page(s) / 259K

Publishing Venue

IBM

Related People

Low, JD: AUTHOR

Abstract

This article solves the problem of accessing large data files stored under any version of DOS (Disk Operating System). Under the current file system (PC/DOS) allocation is done via a list of chained pointers each representing a 4 kilobyte block. DOS makes no distinction between physically contiguous files and physically fragmented files on the media and does no optimization for files which are opened.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 27% of the total text.

Utilitarian File System

      This article solves the problem of accessing large data
files stored under any version of DOS (Disk Operating System).  Under
the current file system (PC/DOS) allocation is done via a list of
chained pointers each representing a 4 kilobyte block.  DOS makes no
distinction between physically contiguous files and physically
fragmented files on the media and does no optimization for files
which are opened.

      DOS utilizes a mechanism called the File Allocation Table
(FAT).  This structure is essentially a list of chained blocks each
describing the condition of a fixed block size on the disk.  The
mechanism fails under heavy I/O environments to perform optimally due
to excessive seeking on the DASD.  Utilitarian File System (UFS)
would alter the data structure within this table to conform to a more
optimal data structure to reduce seeking of the DASD head. In order
to fully understand this new mechanism we should first observe
PC-DOS's structure and fail points.

      The chained list of pointers used by DOS allows the file system
to note the current status of any block on the DASD.  There are three
conditions these blocks may be in:
     Region allocated
     Region unallocated
     Region defective.

      These conditions are reported via the numeric value found in
the entries in the table.  The entries in the table which are
allocated are represented by the range of values from 002-FFFO.  The
value represents that the block is allocated to some file and also
serves as the pointer to the next logically contiguous block within
the file.  Table I below is a representation of PC DOS file
allocation table.

      Table I represents only a portion of the entire structure but
allows the reader to grasp the means by which DOS is able to
determine the current condition of the DASD. Initial pointers into
the table at the file level are obtained via the directory entry used
by DOS. The directory layout is depicted below in Table II.
DOS Directory Structure

      After obtaining the start cluster from the directory entry, DOS
then proceeds to read into memory the FAT.  It then scans down the
table until it reaches the appropriate starting cluster.  From there
it must chain down through the entries by referencing the value
stored in the cluster indicated by the START CLUSTER field.  The
entry in this cluster is either a pointer to the next logically
attached cluster within the file or it indicated a termination of the
file.

      Let us look at an example to see how this is achieved. The user
requests to open a file called test.dat.  This generates a request to
DOS to read into memory the directory and then begin to scan through
the directory to find the name requested.  The directory search is
performed in a sequential manner.  Let us assume that Table III
represents the directory entry.
TEST.DAT Directory Entry

      According to the data in the directory D...