home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Developer CD v1.2
/
amidev_cd_12.iso
/
reference
/
amiga_mail_vol1
/
dos
/
fastfs
< prev
next >
Wrap
Text File
|
1990-01-26
|
6KB
|
110 lines
(c) Copyright 1989 Commodore-Amiga, Inc. All rights reserved.
The information contained herein is subject to change without notice, and
is provided "as is" without warranty of any kind, either expressed or implied.
The entire risk as to the use of this information is assumed by the user.
FAST FILING SYSTEM
by Steve Beats
The Fast Filing System is a new file system provided for use with any hard
disk that you can connect to your Amiga. The only restriction is that the
hard disk driver must provide the standard set of disk device commands and
present the media in track and sector format. Since Commodore's controller,
the A2090, auto-mounts the default filesystem on the first partition of a
hard disk, it is not possible to use the Fast Filing System here. However,
using a new version of the Mount command, it's possible to make additional
partitions that utilize the Fast Filing System.
Fast Filing System is based on the original filesystem provided by AmigaDOS.
This results in a high level of compatibility that allows application
programs and the standard DOS commands to function under FFS without any
changes required. That is where the similarities end.
FFS has been completely re-written in assembler and many of the algorithms
completely revised to provide much faster response for internal processing.
FFS now spends much more time waiting for I/O or DOS packets instead of
spending all its time figuring out what to do. For a task that runs at a
high priority on a multi-tasking machine this has obvious benefits.
Although there have been many minor re-arrangements of the disk format, the
only major incompatibilty with the old filesystem concerns the data blocks.
Under the old system, data blocks consisted of 24 bytes of header information
followed by 488 bytes of user data. This means the old system has no option
but to read data from the drive one block at a time. Since most hard drives
use DMA to transfer data from the disk to memory, this is an inefficient
method and does not use the hardware to its full potential. FFS addresses
this problem by storing nothing but data in the data blocks. Wherever
possible, data blocks are allocated consecutively which means large reads
and writes can be performed in one operation. Even though the old filesystem
uses this allocation technique, most gains were lost because it had to make
separate I/O requests for each block. In addition, the old filesystem used
cache buffers for both data and header blocks, while FFS only caches headers
and partial data block transfers. Large reads and writes that are multiples
of 512 and positioned at an even address are transferred directly to or from
the user buffer. This is possible because there is no extraneous information
to be stripped from the data. It is worth noting that a pleasant side
effect of the new data format is a 4.9% increase in the amount of data that
can be stored on a given disk - about an extra 50K per Megabyte of storage.
The speed increases are a little difficult to quantify because FFS can read
unfragmented files as fast as the disk can transfer the data and write files
at about 75% of the maximum disk transfer rate. This compares very favorably
with the old file system which lost percentage transfer speed as the speed
of the disk increased. Using a Conner 100Mb SCSI drive and the Commodore
A2090 controller, FFS is 12 times faster then the old filing system on both
read and write operations utilizing a 100KB buffer. ExNext, the DOS function
to scan a directory, is from 5 to 20 times faster, depending on how many
cache buffers have been allocated and how many of the file headers are
in those cache buffers. The disk validator is now resident with FFS and does
not need to be loaded off the disk as in the old filesystem. Validation of
a regular sized hard disk (about 20 Meg) will complete about 40 times faster
and allow accesses to that disk with a performance hit of only 40% as opposed
to around 90% under the old filesystem.
To summarize, FFS is much faster than the old filesystem in all areas. As
the disk transfer speed increases, FFS keeps up and fully utilizes the data
bandwidth of a given controller. Compatibility with most existing software
has been maintained with the exception of programs such as DiskDoctor
which assume the old data block format is in effect.
MOUNTING FFS
============
Mounting FFS is easy. All you need to do is prep your drive with a very small
first partition - I usually use 2 or 3 cylinders. Reboot the machine once
prep is complete and then proceed through the following steps which assume
that you are using an ST506 20 Megabyte drive with the first partition
occupying cyclinders 2 to 3. If you are using a different kind of drive you
will have to adjust the drive parameters to suit.
1. Copy FFS into L:NEWFS
2. Make sure you have the new MOUNT command in C:
3. Edit DEVS:MOUNTLIST and add the following entry:
FFS: Device = hddisk.device
Unit = 1
Flags = 0
Surfaces = 4
BlocksPerTrack = 17
Reserved = 2
Interleave = 0
LowCyl = 4
HighCyl = 612
Buffers = 20
Stacksize = 1000
GlobVec = 1
FileSystem = L:NEWFS
#
4. type 'MOUNT FFS:'
5. type 'FORMAT DRIVE FFS: NAME "FFS IS FANTASTIC"
It's as simple as that. Globvec and filesystem are the extra entries supported
by the new Mount command. GlobVec=1 specifies that this is not a BCPL process
and therefore does not need to have a special BCPL environment set up when
it is first loaded.