3.13. De HFS à HFS Plus
On s’intéresse ici à la gestion de fichier
de MacOS, et à son évolution récente en 8.1. Voici un
extrait d’un article de la presse de vulgarisation.
Depuis 1986, la structure des disques durs d’Apple
s’appuie sur HFS (Hierarchical File System). Sans entrer dans une
description technique, sachez que ce format découpe un disque en
216 blocs indivisibles de taille égale, dits blocs
d’allocation. Tout fichier qui occupe même partiellement un bloc
d’allocation se l’attribue entièrement, ce qui signifie que
la taille d’un bloc d’allocation représente la taille du plus
petit fichier possible sur un volume donné.
MacOS 8.1 s’appuie sur HFS Plus, où le nombre
de blocs d’allocation d’un volume varie de 216 à
232. La règle du jeu est fixée comme
suit:
Taille du volume
|
taille des blocs
|
jusqu’à 256 Mo compris
|
0,5 Ko
|
plus de 256 jusqu’à 512 Mo
compris
|
1 Ko
|
plus de 512 Mo jusqu’à 1 Go
compris
|
2 Ko
|
plus de 1 Go
|
4 Ko
|
Grâce à HFS Plus, l’utilisateur
économise de la place sur son volume, dans une proportion très
variable selon la taille du disque, la taille et le nombre de fichiers. En
supplément, la barrière des 65536 fichiers sur un volume saute et
varie de 65536 sur un volume de 32 Mo à plus de 1000000 sur un
volume de plus de 1 Go.
A- Expliquer les conséquences et les limites
induites par la contrainte du découpage de HFS en 216 blocs
indivisibles de taille égale de l’espace disque. On étudiera
en particulier le cas d’un disque de 32 Mo et celui d’un disque de
1 Go.
B- Expliquer les avantages et les inconvénients
que vous voyez à la structuration de HFS Plus. On étudiera en
particulier le cas d’un disque de 32 Mo et celui d’un disque de
1 Go.
C- L’article signale que des mesures ont
donné les gains en espace suivants:
Taille volume
|
nombre de fichiers
|
occupation en HFS
|
occupation en HFS+
|
500 Mo
|
6000
|
340 Mo
|
323 Mo
|
1 Go
|
15000
|
983,7 Mo
|
879,8 Mo
|
2 Go
|
22000
|
1,3 Go
|
700 Mo
|
Comment expliquez-vous de telles variations de gains suivant
la taille?
D- Vous faites des mesures sur votre propre
système comportant un disque de 2 Go en HFS, et vous constatez les
résultats suivants:
nombre de fichiers
|
taille réelle
|
espace occupé
|
10000
|
t ≤ 4 Ko
|
320 Mo
|
5000
|
4 < t ≤ 8 Ko
|
160 Mo
|
3000
|
8 < t ≤ 32 Ko, moyenne 20 Ko
|
96 Mo
|
2000
|
32 Ko < t, moyenne 256 Ko
|
512 Mo
|
Quel gain espérez-vous obtenir du passage en HFS Plus
de votre disque?
E- A votre avis peut-on attendre des changements (perte
ou gain) en terme de temps d’accès du changement de structuration.
Solution de l’exercice
3.13
3.13.1. Question A
Nous reprenons ici ce qui a déjà
été dit pour l’exercice précédent. Le limite
de 216 blocs indivisibles implique que, pour un disque de taille T,
le bloc soit au moins de taille T/65536. Cette taille est de 512 octets pour un
disque de 32 Mo et de 16 Ko pour un disque de 1 Go. Ceci a deux
conséquences. D’une part, tout fichier de moins de 16 Ko recevra de
fait 16 Ko sur un disque de 1 Go. Plus généralement, la perte de
place étant de 1/2 quantum par objet (voir §8.4.1), plus le quantum
est grand, plus la perte est grande. D’autre part, quelle que soit la
taille du disque, il y a au plus 65536 blocs, donc au plus 65536 fichiers
contenant au moins 1 bloc, limitant de fait le nombre de fichiers d’un
volume.
3.13.2. Question B
L’utilisation de HFS Plus pallie les deux
inconvénients ci-dessus pour les gros disques et est sans effet sur les
disques de 32 Mo (un bloc ne peut être de taille inférieure au
secteur, qui contient au moins de 512 octets sur les disques actuels). Pour un
disque de 1 Go, la perte d’espace moyenne par objet est divisée par
8 (1 Ko au lieu de 8 Ko) et le nombre de fichiers maximum est multiplié
par 8. Par contre, le nombre d’unités allouables augmentant, la
taille de la représentation de l’espace libre augmente tout comme
la durée d’exécution de l’algorithme
d’allocation.
3.13.3. Question C
Analysons l’évolution de l’espace moyen
occupé par fichier lors du passage de HFS en HFS Plus dans chacun des
trois cas. Il passe de 58 à 55 Ko sur le disque de 500 Mo, de
67,2 à 60 Ko sur celui de 1 Go et de 60,5 à 32,6 Ko
sur celui de 2 Go. Ceci veut dire que dans les deux premiers cas les
fichiers sont plus gros en moyenne que dans le troisième cas, or le gain
est d’autant plus important que les fichiers sont plus petits et le disque
plus gros. Pour le disque de 2 Go, le bloc fait 32 Ko en HFS contre
4 Ko en HFS Plus. Comme dans le troisième cas l’espace moyen
alloué est de 32,6 Ko, cela veut dire qu’il y a beaucoup de
petits fichiers qui bénéficient pleinement d’un espace
alloué plus faible. En fait le gain moyen est de 27,9 Ko par
fichier, c’est-à-dire que presque tous les fichiers
bénéficient pleinement de la réduction de la taille des
blocs. Notons que les blocs ont diminués de 28 Ko, et il est
étonnant d’approcher cette valeur de si prêt, mais
l’article ne donnait aucune information sur la précision des
mesures, ce qui nous conduit alors à être prudent dans nos
conclusions.
3.13.4. Question D
Les 10000 fichiers de taille inférieure à
4 Ko recevront exactement 4 Ko en HFS Plus au lieu de 32 Ko en
HFS. Le gain sera donc de 28 Ko par fichier soit un total de 280 Mo.
Les 5000 fichiers dont la taille est comprise entre 4 et 8 Ko, recevront
8 Ko au lieu de 32 Ko, soit un gain de 24 Ko par fichier et donc
un total de 120 Mo. Les 3000 fichiers de taille comprise entre 8 et
32 Ko ayant une taille moyenne de 20 Ko peuvent permettre un gain
moyen de 12 Ko par fichier, et donc un gain total de 36 Mo. Enfin, les
2000 fichiers de taille supérieure donnaient lieu à une perte
moyenne de 1/2 quantum soit 16 Ko par fichier. Avec HFS Plus, cette perte
sera ramenée à 2 Ko par fichier, ce qui nous laisse
espérer un gain moyen de 14 Ko par fichier, soit un total de 28 Mo.
En rassemblant l’ensemble, on peut donc espérer un gain global de
280 + 120 + 36 + 28 = 464 Mo, sur
un total occupé de 1088 Mo, soit prêt de 43%.
3.13.5. Question E
Le fait d’avoir des blocs plus petits peut
entraîner une certaine dispersion de l’espace alloué aux gros
fichiers et donc une certaine perte de performance quant au temps
d’accès, puisqu’il pourrait y avoir plus de mouvement de
bras. Notons cependant que un quantum plus petit ne veut pas dire
obligatoirement des zones plus petites : cela dépend de
l’état de la capacité de trouver de grands espaces contigus
au moment de l’allocation des zones.