Introduction: – L’espace disque étant limité, nous devrions réutiliser l’espace des fichiers supprimés pour de nouveaux fichiers. Pour garder une trace de l’espace disque libre, le système conserve une liste d’espace libre. La liste d’espace libre enregistre tous les blocs de disques libres qui ne sont pas alloués à un fichier ou à un répertoire. Cette liste d’espace libre peut être implémentée comme suit :
a) Vecteur de bits – La liste d’espace libre est implémentée comme une carte de bits ou un vecteur de bits. Chaque bloc est représenté par un bit. Si le bloc est libre, bit vaut 1, si le bloc est alloué, bit vaut 0.
Le principal avantage de cette approche est sa relative simplicité et son efficacité à trouver le premier bloc libre ou n blocs libres consécutifs sur le disque. Le calcul du numéro de bloc est (Nombre de bits par mot) * (nombre de mots de valeur 0) décalage de 1 premier bit
b) Liste chaînée – Une autre approche de la gestion de l’espace libre consiste à relier tous les blocs de disque libre en gardant un pointeur sur le premier bloc libre dans un emplacement spécial sur le disque et en le mettant en cache en mémoire. Le premier bloc contient un pointeur vers le bloc de disque libre suivant.
c) Regroupement – Une modification de l’approche de liste libre consiste à stocker les adresses de n blocs libres dans le premier bloc libre.
d) Comptage – Une autre approche consiste à tirer parti du fait que plusieurs blocs contigus peuvent être alloués ou libérés simultanément lorsque de l’espace est alloué avec l’algorithme d’allocation contigu ou le clustering.
Efficacité et performances
Les disques ont tendance à représenter un goulot d’étranglement majeur dans les performances du système car ils sont le composant informatique principal le plus lent. Efficacité:- L’utilisation efficace de l’espace disque dépend fortement des algorithmes d’allocation de disque et de répertoire utilisés.
Performances: La plupart des contrôleurs de disque incluent de la mémoire locale pour former un cache intégré suffisamment grand pour stocker des pistes entières à la fois. Une fois la recherche effectuée, la piste est lue dans le cache du disque à partir du secteur situé sous la tête du disque. Le contrôleur de disque transfère ensuite toutes les demandes de secteur au système d’exploitation. Certains systèmes conservent une section distincte de la mémoire principale pour un cache tampon où les blocs sont conservés en supposant qu’ils seront à nouveau utilisés. D’autres systèmes mettent en cache des données de fichier à l’aide d’un cache de page. Le cache de pages utilise des techniques de mémoire virtuelle pour mettre en cache les données de fichiers sous forme de pages plutôt que sous forme de blocs orientés système de fichiers. La mise en cache des données de fichiers à l’aide d’adresses virtuelles est plus efficace que la mise en cache via des blocs de disque physiques en tant qu’interface d’accès avec la mémoire virtuelle plutôt que le système de fichiers. Plusieurs systèmes utilisent la mise en cache de pages pour mettre en cache à la fois les pages de processus et les données de fichiers. Ceci est connu sous le nom de cache tampon unifié.
D’autres problèmes peuvent affecter les performances des E/ S, par exemple si les écritures dans le système de fichiers se produisent de manière synchrone ou asynchrone. Les écritures synchrones se produisent dans l’ordre dans lequel le sous-système de disque les reçoit et les écritures ne sont pas mises en mémoire tampon. Les écritures asynchrones sont effectuées la majorité du temps. Certains systèmes optimisent leur cache de pages en utilisant différents algorithmes de remplacement en fonction du type d’accès au fichier. L’accès séquentiel peut être optimisé par des techniques connues sous le nom de free behind et read ahead. Free behind supprime une page du tampon dès que la page suivante est demandée. Avec read ahead, une page demandée et plusieurs pages suivantes sont lues et mises en cache.