	La place perdue sur disque
	**************************


	Si mon disque dispose de 65536 octets libres, en y copiant un
fichier de 10 octets, il ne me reste pas 65526 octets comme on pourrait
s'y attendre.
	D'ailleurs, si j'essaye de copier plusieurs fichiers dont la somme
est 65536 octets sur un disque avec 65536 octets libres, bien souvent a
ne rentre pas... Ben alors, mystre? Mensonges?

Le cluster
----------

	C'est l'unit d'allocation minimale. Sur une disquette, un cluster
vaut deux secteurs de 512 octets, c'est  dire 1024 octets. Mon petit
fichier de 10 octets occupe donc un cluster  lui tout seul. Pas moyen d'y
mettre un autre fichier dans les 1014 octets restants...
	Manipulation: prenez une disquette et demandez la taille libre
avec "Informations". Mettons 218112 octets. Premire remarque, ce nombre
est toujours un multiple du cluster: 218112 = 213 x 1024. J'efface un
fichier de 1940 octets et je redemande les "Informations", j'obtiens
220160, c'est  dire 215 x 1024! Effacer mon fichier de 1940 octets m'a
en fait libr 2048 octets.
	Je continue sur ma lance: je cre un dossier du nom inventif de
TOTO, l'"Information" me donne 219136 = 214 x 1024. Un dossier consomme un
cluster galement, mme si il est vide!

Allez, la thorie!
------------------

	Sur la masse de fichiers que contient une disquette, certains
rempliront EXACTEMENT leurs clusters, rien de perdu, d'autres
occasionneront une perte de 1 octet, de 2, de 3, etc... jusqu' 1023
octets inutiliss. Un calcul de probabilit montre que la perte moyenne
est de 511.5 octets par fichier. Ceci est valable si le nombre de fichiers
est assez grand et si leurs tailles sont alatoires. Pour simplifier, je
dirai que la perte moyenne vaut un demi-cluster, c'est  dire 512 octets.

Et maintenant, la pratique
--------------------------

	J'ai pris une disquette au hasard, elle contient 22 fichiers et 5
dossiers. La somme des tailles des fichiers est 659016 octets. Prvoyons
la taille relle consomme par cette organisation:

	Les fichiers: 659016
	Les 5 dossiers: 5 x 1024 = 5120
	Perte sur 22 fichiers: 22 x 512 = 11264
	Total prvu: 675400.

	Grce a Diamond Edge, j'obtiens l'information suivante: 674816
octets utiliss. Ben je n'en tais vraiment pas loin! Voyez que la thorie
est pratique.

	L'organisation de cette disquette (en clusters et en dossiers)
nous fait perdre 674816 - 659016 = 15800 octets. En pourcentage, on peut
dire que les donnes augmentent de 2.4% ce qui est trs raisonnable.

Catastrophe sur mon disque dur
------------------------------

	Le principe est exactement le mme, la seule diffrence tient  la
taille des clusters, 8192 sur ma partiton F. Ce qui amne  4096 octets la
perte moyenne par fichier. Je demande les informations sur F et j'obtiens
ceci:
	Octets utiliss: 34,862,135
	Dossiers: 127
	Fichiers: 1761

	Je calcule donc mes prdictions:

	Les fichiers: 34,862,135
	Les dossiers: 127 x 8192 = 1,040,384
	Perte sur 1761 fichiers: 1761 x 4096 = 7,213,056
	Total prvu: 43,115,575

	Encore un petit coup de Diamond Edge et en fait la place occupe
est de 45,686,784! Plus encore que mes prvisions! Ce qui amne cette fois
la perte  10,824,649 octets, c'est  dire que la masse de mes donnes
augmente de 31%. C'est ENORME! C'est la cata! Os court!

Partition pargne
------------------
	Certes, +31% c'est gros, mais il faut dire que le nombre de
fichiers est impressionnant. C'est ma partition de travail (programmation,
courrier Internet, utilitaires, etc...).
	Par contre, la partition G contient uniquement des animations qui
sont de gros fichiers. Sur celle-ci, tout calcul fait, je n'enregistre que
0.6% d'augmentation, ce qui est ridiculement bas.

Gros clusters = grosses pertes
------------------------------
	Mon petit PC,  ct, a un disque dur dont les clusters sont de
16384 octets, ce qui augmente la perte par fichier. Un rapide calcul
m'apprend que les 390.4Mo de donnes occupent en ralit 472.9Mo. En
rsum, ce disque contient 82.5Mo qui ne servent  rien mais que je ne
peux pas utiliser. Les donnes gonflent de 21% sans qu'on n'y puisse
rien...

Comment faire, docteur?
-----------------------
	Certains formateurs de disque dur proposent de rgler la taille
des clusters: si vraiment la place est importante pour vous, rglez-la au
minimum.
	Par ailleurs, si vos partitions sont diffrentes, choisissez
celles avec des petits clusters pour y ranger les myriades de petits
fichiers et celles avec de grands clusters pour les donnes plus
importantes (images True Color, animations, archives).
	Et puis, du ct des programmeurs, il y a peut-tre des efforts 
faire pour ne pas refiler aux utilisateurs un programme tentaculaire avec
20 dossiers et 200 fichiers qui consomme le double de sa taille utile. Par
exemple, si vous programmez un Quizz avec 100 questions, mettez les toutes
dans un seul fichier au lieu de les sparer en 100 gloutons d'octets.

A retenir...
------------

	En regardant le graphique de cette page, vous voyez reprsentes
les occupations des 4 disques de cet article. Le disque G et la disquette
sont bien utiliss car leurs fichiers sont normes par rapport  la taille
d'un cluster, de ce fait, la perte est ngligeable.
	En revanche pour le disque F et pour le PC les fichiers sont en
grande partie proches de la taille du cluster (entre x1 et x10, pas plus).
De ce fait, les pertes sont relativement importantes.
	Partez  la recherche des octets perdus, d'ici l, je vous dis 
la prochaine.

	Guillaume Tello
	gtello@wanadoo.fr


--------------------------------
	A mettre dans un encadr
--------------------------------
	Fonction DFREE, GEMDOS 54
	Elle renvoit dans un buffer de 16 octets 4 valeurs longues
dcrivant l'occupation du disque spcifi (A=1, etc...).
	LONG cl ; clusters_libres
	LONG tc ; total_clusters
	LONG os ; octets_par_secteur
	LONG sc ; secteurs_par_clusters

	Pour obtenir la taille rellement occupe, on applique la formule
suivante:
	to = (tc - cl) * os * sc
	Diamond Edge est plus prcis car il tient compte des clusters
rservs (FAT, Boot) et ne donne que la taille occupe dans les secteurs
de donnes.
	Rsultat qu'on pourra comparer avec la valeur retourne par
l'entre "Informations" du bureau (appelons la ib). Pour avoir le
pourcentage d'augmentation de vos donnes, appliquez cette formule:

	100 * (to - ib) / ib.

--------------------------------
	Fin de l'encadr
--------------------------------