Défragmentation (informatique)

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir Défragmentation.

La défragmentation est, en informatique, le processus d'élimination de la fragmentation du système de fichier. Il réorganise physiquement le contenu du disque pour mettre chaque morceau de fichier ensemble et dans l'ordre, dans le but d'augmenter la vitesse de lecture. Il essaye également de créer une grande région d'espace libre pour retarder la fragmentation.

Sommaire

[modifier] But de la défragmentation

[modifier] Généralités sur la défragmentation

Lorsque les fichiers sont très fragmentés (c'est à dire répartis en nombreux petits éléments disséminés sur le disque), la lecture de ces fichiers devient lente parce que les têtes de lecture doivent continuellement se déplacer d'un fragment à l'autre : on peut comparer cela à la lecture d'un livre dont les pages sont rangées entre les autres livres d'une bibliothèque, il faudra bien plus de temps pour le reconstituer que s'il était 'entier'. Il ne faut pas perdre de vue que la vitesse de lecture d'un disque est nettement plus faible que la lecture en mémoire vive RAM et que ce phénomène peut être déterminant pour la vitesse d'exécution des programmes.

La défragmentation consiste donc à déplacer les fragments de fichiers de manière à reconstituer des fichiers homogènes et à créer de grandes zones d'espace libre sur le disque.

Il est conseillé de défragmenter régulièrement les disques, surtout avec les systèmes de fichiers primitifs comme le système FAT.

[modifier] Principe de la lecture physique sur un disque dur et utilité de la défragmentation

Peut-être que les lecteurs non-familiers des processus physiques à la base des ordinateurs aimeraient en savoir plus sur l'utilité de la défragmentation.

Il existe en effet plusieurs type de mémoires pour les ordinateurs :

Si l'on doit faire un peu d'anthropomorphisme, imaginons que l'on demande à l'ordinateur de faire une multiplication complexe. On peut alors imaginer que la mémoire cache représente les étapes logiques de cette multiplication (on multiplie le chiffre des unités par le premier nombre puis on multiplie le chiffre des dizaines par le premier nombre, ... puis on somme toutes ces étapes), la mémoire vive contient alors les résultats intermédiaires de la multiplication (les étapes décrites ci-dessus), et le résultat s'inscrira sur le disque dur, en tant que résultat in fine de ce calcul.

Autrement dit, la mémoire cache est une mémoire logique à court terme, la mémoire vive une mémoire globale à court terme, et la mémoire principale la mémoire à long terme de l'ordinateur.

Ceci étant, que se passe-t-il physiquement sur le disque dur ?

Le disque dur est composé d'un empilement de disques couverts d'une surface magnétisable, empilés les uns sur les autres, et qu'une tête magnétique vient adresser (c'est-à-dire que cette tête magnétique vient lire ou écrire sur les disques magnétiques). On peut tout à fait se rappeler les vieux tournes-disques, le disque vinyle étant maintenant remplacé par un disque magnétique et la tête de saphir étant remplacée par la tête magnétique.

Le disque est conditionné pour recevoir de l'information, i.e. sa surface est fragmentée en petits éléments séparés, appelés blocs, que vient adresser la tête. Lors de l'écriture, rien ne garantit que la tête utilise des blocs physiquement voisins sur la surface du disque aimanté... C'est ce phénomène que l'on appelle fragmentation.

Lors de la lecture de tels blocs fragmentés (qui ont par exemple enregistré l'étape de démarrage d'un programme quelconque), on comprend bien que la tête de lecture va devoir aller chercher au sens propre les divers blocs éparpillés sur la surface du disque. De fait, cette étape nécessitera plus de temps que la lecture du même nombre de blocs s'ils étaient adjacents.

Ainsi, la mise en secteur compact (au sens physique, ou géographique sur la surface du disque) d'informations relatives à une même application fait gagner du temps à la lecture des informations. De plus, lorsque les informations sont regroupées sur le disque, la tête de lecture ne s'épuise pas à aller les chercher n'importe où !

On parle alors de défragmentation pour cette mise en secteur compact de l'information sur un disque dur.

[modifier] Problèmes liés à la défragmentation

La présence de fichiers systèmes inamovibles (ou de fichiers que le défragmenteur ne déplace pas afin de simplifier la tâche), spécialement un fichier swap, peut entraver la défragmentation.

Certains systèmes de fichiers montrent une plus grande susceptibilité à la fragmentation que d'autres, par exemple, un système de fichiers à base de FAT se fragmente assez rapidement. Des systèmes de fichiers plus évolués, comme NTFS ou ext2fs résistent beaucoup plus à la fragmentation. Ces systèmes essayent de garder la fragmentation au dessous d'un certain point de manière à ce que la défragmentation ne soit pas nécessaire. Cette résistance à la fragmentation fonctionne bien tant que le système de fichiers a un espace disque libre suffisamment élevé.

Sur des systèmes sans résistance à la fragmentation, la fragmentation ne va qu'en s'amplifiant lorsque l'on ne s'y intéresse pas, une défragmentation périodique est donc nécessaire pour garder des performances disque de pointe et éviter les accès abusifs dus à une défragmentation moins fréquente.

[modifier] Utilitaires

Les programmes de défragmentation sont souvent inclus dans les utilitaires installés avec le système d'exploitation (bien que Windows NT n'en n'incluait pas). Ils sont accessibles depuis le menu Démarrer -> Programmes -> Accessoires -> Outils systèmes -> Défragmenteur de disque depuis Windows XP.

L'un des utilitaires les plus connus est celui inclus avec MS-DOS 6.x et Windows 9x : Defrag qui était une version allégée de Norton Speed disk. Depuis Windows 2000, il s'agit d'une version allégée de Diskeeper.

Il existe de nombreux autres logiciels de défragmentation, commerciaux ou pas :

Il existe PageDefrag de Mark Russinovich (racheté par Microsoft), qui n'est pas à proprement parler un logiciel de défragmentation, mais qui permet au démarrage du système de défragmenter les fichiers systèmes, autrement "indéfragmentables" car verrouillés par le système. Il ne fonctionne pas actuellement avec Windows Vista.


[modifier] Articles connexes