|
| |
DETERMINING HARD DISK ALLOCATION
DOS determines disk allocation using the following formula:
D * BPD
TS - RS - ***********
BPS
SPF = ******************************
BPS * SPC
CF + **************
BPC
where:
TS total sectors on disk
RS the number of sectors at the beginning of the disk that
are reserved for the boot record. DOS reserves 1
sector.
D tThe number of directory entries in the root directory.
BPD the number of bytes per directory entry. This is always
32.
BPS the number of bytes per logical sector. Typically 512,
but you can specify a different number with VDISK.
CF the number of FATS per disk. Usually 2. VDISK is 1.
SPF the number of sectors per FAT. Maximum 64.
SPC the number of sectors per allocation unit.
BPC the number of bytes per FAT entry. BPC is 1.5 for 12
bit FATs. 2 for 16 bit FATS.
To calculate the minimum partition size that will force a 16-bit FAT:
CYL = (max clusters * 8)/(HEADS * SPT)
where:
CYL number of cylinders on the disk
max clusters 4092 (maximum for a 12 bit FAT)
HEADS number of heads on the hard disk
SPT sectors per track (normally 17 on MFM)
Notes: * DOS 2.0 uses a "first fit" algorithm when allocating
file space on the hard disk. Each time an application
requests disk space, it will scan from the beginning of
the FAT until it finds a contiguous piece of storage
large enough for the file.
* DOS 3.0 keeps a pointer into the disk space, and begins
its search from the point it last left off. This
pointer is lost when the system is rebooted. This is
called the "next fit" algorithm. It is faster than the
first fit and helps minimise fragmentation.
* In either case, if the FCB function calls are used
instead of the handle function calls, the file will be
broken into pieces starting with the first available
space on the disk. |