Je passais juste en revue la section 5.3 de Operating Systems: Design and Implementation: "Implémentation du système de fichiers", et j'ai un doute sur la gestion des disques en utilisant des listes chaînées (implémentation de tables).Mise en œuvre du système de fichiers minix3
Les auteurs mentionnent que l'utilisation de l'implémentation de table prend 3 octets par entrée de table, ce qui est compréhensible. Cependant, il est également mentionné qu'une optimisation du temps peut être effectuée en utilisant 4 octets par entrée de table.
Comment cette optimisation fonctionne-t-elle?
J'ai examiné les systèmes de fichiers UNIX traditionnels System V (et antérieurs), et la liste des adresses conservées dans l'inode est un tableau de caractères de 40 octets, d'adresses à 3 octets. Lorsque l'inode est lu en mémoire, l'une des premières choses à faire est de l'étendre à un tableau en mémoire de valeurs de 32 bits qui peuvent être utilisées normalement. Dans le contexte d'un E/S, l'expansion est bon marché, et les économies dans l'inode valent la peine. Pas à l'âge de 6TB disques et blocs de 8k, cependant. – dbrower