> Roger Turk <[EMAIL PROTECTED]> wrote:
> Barry,
> I have no experience in replacing DOS 6 with DOS 7, but I would like to
offer
> some comments. From what I understand, you want to have your DOS partition
a
> 32 bit partition so that you can have smaller (and more) clusters.
> "Way back when" it was urged that computer users organize their hard drives
> for efficiency. It seems to me that by creating a 32 bit partition, it will
> require the OS to look thru up to 4.29X10^9 entries in the FAT looking for
> files instead of up to 65.5X10^3 entries in a 16 bit FAT partition. While
> hard drives are getting faster, it does not seem to me that the speed
> increase comes anywhere near compensating for the increase in numbers of
> entries that have to be searched.
>
> Roger Turk
> Tucson, Arizona USA
>
Roger -
I think you may not understand how the FAT-xx file system works.
FAT-16 has a File Allocation Table (FAT) of 2^16 entries.
FAT-32 has a File Allocation Table (FAT) of 2^32 entries.
In NEITHER file system does the OS have to search through the FAT.
The OS searches the DIRECTORY, and finds the directory entry for the file.
The directory entry contains (among other things) the _number_ of the
first Allocation Unit (AU) in use by the file.
(As an aside, Allocation Units are sometimes referred to as Clusters.
This is a term that we inherited from CP/M.)
Allocation Units (hereinafter AUs) consist of 1 or more 512-byte Sectors. AU
size (# of sectors per AU) is dependent upon the size of the drive,
and the FAT- in use, FAT-16 or FAT-32. This has been discussed elsewhere.
What is important to realize is that, until the first AU used by a file
is filled up, accessing that file DOES NOT INVOLVE ANY REFERENCES to the
FAT. Only AFTER the first AU is filled does the OS need to allocate more
disk space to the file.
The OS allocates additional space to the file by a very simple method.
When the file was created, the FAT entry corresponding to the number of
the first AU allocated to the file is set to a special bit pattern (flag)
that serves to indicate LAST_ALLOCATED. The OS starts at the file's FAT
entry, and searches for the next entry containing the bit pattern (flag)
AVAILABLE. Once the OS finds an AVAILABLE AU, it copies the number of that
AU to the first FAT entry for the file, and then changes AVAILABLE to
LAST_ALLOCATED. Now there are _2_ AUs allocated to the file, the first AU
pointed to by the Directory Entry, and the second pointed to by the value
in the first AUs entry in the FAT.
The FAT is searched ONLY to find an available entry, and then only when
writing past an existing End-Of-File (extending the file). When reading
a file, the FAT is directly addressed, by an index contained either in
another FAT entry, or in a Directory Entry.
By making more (2^32 vs 2^16) entries available in the File Allocation
Table, FAT-32 makes possible larger partitions, with smaller Allocation
Units, or Clusters. It has NO appreciable effect on access speed.
Dave
____________________________________________________________________
Get free email and a permanent address at http://www.amexmail.com/?A=1