web-dev-qa-db-fra.com

Différence entre blocs et secteurs

En référence à l'article this , il y a une ligne qui lit:

Parce qu'il y a des limites au nombre de blocs, ou adresses de lecteur, qu'un système d'exploitation peut traiter. En définissant un bloc comme plusieurs secteurs, un système d'exploitation peut fonctionner avec des disques durs plus gros sans augmenter le nombre d'adresses de bloc.

Qu'est-ce que ça veut dire? Qu'entend-on par "le système d'exploitation peut répondre"? Et les mathématiques suivantes ne sont pas claires non plus. Comment 64 * 512 peut-il être inférieur à 64 * 4?

18
SexyBeast

Vois-le de cette façon. Chaque bloc utilisé dans le système de fichiers de votre système d'exploitation pour stocker des données nécessite le stockage d'une certaine quantité de métadonnées avec les données de fichier réelles que vous écrivez. par exemple: horodatages (créés, modifiés), nom de fichier, bits de propriété/autorisation. Pour les fichiers qui s'étendent sur plusieurs blocs, vous devez également stocker les ID de chacun de ces blocs et l'ordre dans lequel ils sont enchaînés, etc.

La détermination de la taille d'un bloc dans un système d'exploitation est un cas de compromis. Chaque fichier doit occuper au moins un bloc, même s'il a une longueur de 0 octet, il y a donc quelque chose à joindre aux métadonnées du fichier. À moins que vous ne puissiez garantir que vos fichiers auront TOUJOURS un multiple de la taille du bloc (par exemple, dans un système d'exploitation de bloc de 4k, tous les fichiers sont de 4k), il y aura un certain gaspillage pour les fichiers qui ne rentrent pas exactement dans ce bloc.

Les petites tailles de bloc sont bonnes lorsque vous devez stocker de nombreux petits fichiers. D'un autre côté, plus de blocs = plus de métadonnées, donc vous finissez par gaspiller une partie de votre système de stockage en surcharge, en suivant l'emplacement de tous les fichiers.

D'un autre côté, les gros blocs signifient moins de métadonnées, mais aussi un gaspillage plus important lorsque vous stockez de petits fichiers. par exemple. un fichier de 1 octet stocké dans un bloc de 4k gaspille 3,99k de ce bloc.

Chacun de ces blocs doit recevoir un numéro d'identification par le système d'exploitation, afin qu'il puisse être identifié de manière unique. Un système d'exploitation qui utilise un champ d'ID 8 bits ne peut suivre que 256 blocs, et donc, par extension, seulement 256 fichiers. Mais si chacun de ces blocs a une taille de 1 mégaoctet, vous pouvez stocker jusqu'à 256 mégaoctets de données.

L'article auquel vous liez a une faille typo/logique: ils signifiaient 512 OCTETS , pas 512k, donc 64 * 512 octets est plus petit que 64 * 4k, aka 64 * 4096 octets. La plupart des disques durs sont livrés avec des tailles de secteur/bloc de 512 octets.

Cependant, comme discuté précédemment, les petits blocs signifient plus de métadonnées. Avec des tailles de disque maintenant dans la plage de 3 téraoctets et plus, avec des blocs de 512 octets, vous deviez disposer d'un stockage de métadonnées pour 3 To/512 octets = 6,44 milliards de blocs. C'est un grand gaspillage d'espace. Alors maintenant, ils expédient des disques avec des blocs 4k, 8 fois plus grands, vous n'avez donc besoin que d'un stockage de métadonnées pour 805 millions de blocs. Le nombre total de fichiers possibles a été réduit d'un facteur 8, mais la quantité réduite de métadonnées signifie que vous pouvez réellement stocker une plus grande quantité de données utilisables.

Soit dit en passant, 6,4 milliards de blocs sont plus importants que ce qui peut être adressé directement par un système 32 bits. 2 ^ 32 a une limite supérieure de ~ 4,2 milliards, de sorte que les anciennes machines 32 bits ne pouvaient pas utiliser l'intégralité d'un lecteur de 3 To. D'où le passage à de plus grandes tailles de bloc. Les boîtiers 32 bits peuvent facilement gérer 805 millions de blocs.

44
Marc B