Hi Imre, nice explanation, thanks :-).

> Here are the numbers for the data structures used by defrag,
> when calculated for FAT32.

You mean for a worst case FAT32 filesystem with 2^28 (256M)
clusters where the FAT on disk is also 1 GB per copy...

> Cluster movable map: 32 MB (fat size * 1 bit)
> FAT refered map: 32MB (fat size * 1 bit)
> FAT refered table: 1024MB (fat size * 4 byte)
> Dir refered table (take 100000 files):
> (# files * 6 bytes) 0,5 MB
> total: 1088,5 MB (and I though XMS only went to 64MB)

So its dominated by "one FAT32 copy plus small stuff" :-)
Actually XMS2 goes to 64 MB, but on a 286, you can only
have 16 MB. When you use XMS3, you get up to 4 GB, but
the interface of XMS3 uses 32bit registers so if your
software uses XMS3, it no longer runs on 286 or older ;-).

> Cluster movable map: indicates which clusters are movable.

Okay :-). Are many clusters non movable?

> FAT refered map: indicates which clusters are refered to in the FAT

What does that mean?

> FAT refered table: stores the back pointers for the FAT clusters

Interesting. You could probably make a sparse variant of this
by making the default assumption "previous cluster or none
points to this cluster" and only storing the exceptions to
that rule in a hashtable. Whether it is previous or rather
none is easily found out by looking at the FAT.

> DIR refered table: stores the back pointers for the directory
> refered  clusters

Useful and quite small :-)

Eric



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to