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
