Module Systèmes d’exploitation BTS Génie Informatqiue École Normale Supérieure Tétouan Département Informatique Module Systèmes d’exploitation Chapitre 10 Systèmes de fichiers : Structures de systèmes de fichiers Partie II 2008-2009 Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Synopsis Introduction Allocation contiguë sur disque Allocation enchaînée Table d’allocation des fichiers Allocation indexée UNIX BSD: indexé à niveaux Stockage des catalogues Gestion d’espace libre Solution 1: vecteur de bits (solution Macintosh, Windows 2000) Solution 2: Liste liée de mémoire libre (MS-DOS, Windows 9x) Comparaison Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Introduction Structure de fichiers: deux façons de voir un fichier: unité d’allocation espace collection d ’informations reliées Le système de fichiers réside dans la mémoire secondaire: disques, rubans... File control block: structure de données contenant de l ’info sur un fichier Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Introduction La mémoire secondaire est subdivisée en blocs et chaque opération d’E/S s’effectue en unités de blocs Les blocs ruban sont de longueur variable, mais les blocs disque sont de longueur fixe Sur disque, un bloc est constitué d’un multiple de secteurs contiguës (ex: 1, 2, ou 4) la taille d’un secteur est habituellement 512 bytes (octets) Il faut donc insérer les enregistrements dans les blocs et les extraire par la suite Simple lorsque chaque octet est un enregistrement par lui-même Plus complexe lorsque les enregistrements possèdent une structure (ex: « main-frame IBM » ) Les fichiers sont alloués en unité de blocs. Le dernier bloc est donc rarement rempli de données Fragmentation interne Enseigant : AAMMOU Souhaib
Trois méthodes d’allocation de fichiers Module Systèmes d'exploitation BTS Génie Informatqiue Trois méthodes d’allocation de fichiers Allocation contiguë Allocation enchaînée (Organisation par listes chaînées) Allocation indexée (Organisation par I-nœuds) Allocation contiguë ; Organisation par listes chaînées; Organisation par I-nœuds. Enseigant : AAMMOU Souhaib
Allocation contiguë sur disque Module Systèmes d'exploitation BTS Génie Informatqiue Allocation contiguë sur disque L’allocation contiguë consiste à allouer les blocs logiques constituant les fichiers de façon contiguë sur le disque. L’avantage principal de cette approche est la performance des accès. En revanche, la contrainte de contiguïté pénalise fortement l’allocation de nouveaux fichiers, du fait de la fragmentation externe qu’elle engendre; des outils de compactage doivent régulièrement utilisés afin de défragmenter l’espace libre. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Allocation contiguë Chaque fichier occupe un ensemble de blocs contigu sur disque Simple: nous n’avons besoin que d’adresses de début et longueur Supporte tant l’accès séquentiel, que l’accès direct Les fichiers ne peuvent pas grandir Impossible d’ajouter au milieu Exécution périodique d’une compression (compaction) pour récupérer l’espace libre Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Allocation enchaînée Le répertoire contient l’adresse du premier et dernier bloc, possiblement le nombre de blocs Chaque bloc contient un pointeur à l’adresse du prochain bloc: pointeur bloc = Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Allocation enchaînée -1: pointeur nul Enseigant : AAMMOU Souhaib
Allocation enchaînée Table d’allocation des fichiers Module Systèmes d'exploitation BTS Génie Informatqiue Allocation enchaînée Table d’allocation des fichiers A chaque disque, on associe une table appelée table d’allocation des fichiers ou FAT (File Allocation Table). Cette table possède une entrée pour chaque bloc du disque. L’entrée dans le répertoire de chaque fichier donne le numéro du premier bloc du fichier. Cette position dans la FAT contient le numéro du bloc suivant. Le fichier test commençant au bloc 217, l’entrée 217 dans la FAT contient le numéro du bloc suivant de test, soit 618. l’entrée 618 pointe sur la 339 qui contient une fin de fichier (EOF). Ce système est implémenté par exemple par MS-DOS, qui maintient plusieurs copies sur disque de cette table, appelée FAT (File Allocation Table), pour des raisons de fiabilité, ainsi qu’une copie en mémoire centrale pour optimiser les traitements. Enseigant : AAMMOU Souhaib
Allocation enchaînée Table d’allocation des fichiers Module Systèmes d'exploitation BTS Génie Informatqiue Allocation enchaînée Table d’allocation des fichiers Avantages - désavantages Pas de fragmentation externe - allocation de mémoire simple, pas besoin de compression L’accès à l ’intérieur d ’un fichier ne peut être que séquentiel Pas façon de trouver directement le 4ème enregistrement... N’utilise pas la localité car les enregistrements seront dispersés L’intégrité des pointeurs est essentielle Les pointeurs gaspillent un peu d ’espace Les avantages de cette implémentation sont l’accélération des accès aux listes chaînées, et la séparation physique entre les données et les pointeurs, qui facilite le traitement et la sauvegarde des informations de chaînage. En revanche, elle implique le maintien de tables de grande taille, même si peu de blocs sont alloués. À titre d’exemple, un disque de 4 Go découpé en blocs de 4 Ko nécessite 1 million d’indices sur 32 bits (dont 20 utilisés). Le problème vient du fait que les pointeurs de tous les fichiers sont mémorisés dans le désordre dans une seule table. Cela signifie que toute la FAT est nécessaire même s’il n’y a qu’un seul fichiers ouvert. Il vaut donc mieux mémoriser les listes des blocs des différents fichiers dans des endroits différents. C’est ce que fait UNIX. Enseigant : AAMMOU Souhaib
Allocation indexée (semblable à la pagination) Module Systèmes d'exploitation BTS Génie Informatqiue Allocation indexée (semblable à la pagination) Tous les pointeurs sont regroupés dans un tableau (index block) index table Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Allocation indexée -1: pointeur nul Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Allocation indexée À la création d’un fichier, tous les pointeurs dans le tableau sont nil (-1) Chaque fois qu’un nouveau bloc doit être alloué, on trouve de l ’espace disponible et on ajoute un pointeur avec son adresse Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Allocation indexée Pas de fragmentation externe, mais les index prennent de l’espace Permet accès direct (aléatoire) Taille de fichiers limitée par la taille de l’index block Mais nous pouvons avoir plusieurs niveaux d’index: Unix Index block peut utiliser beaucoup de mémmoire. Enseigant : AAMMOU Souhaib
UNIX BSD: indexé à niveaux Module Systèmes d'exploitation BTS Génie Informatqiue UNIX BSD: indexé à niveaux Ce répertoire est en mémoire, tous les autres sont sur disque 12 blocs disque de 4K chaque 1024 blocs de 4K chaque Les premiers blocs d’un fichier sont accessibles directement Si le fichier contient des blocs additionnels, les premiers sont accessibles à travers un niveau d’indices Les suivants sont accessibles à travers 2 niveaux d’indices, etc. Donc le plus loin du début un enregistrement se trouve, le plus indirect est son accès. Permet accès rapide à petits fichiers, et au début de tous les fich. Permet l’accès à des grands fichier avec un petit répertoire en mémoire 1024x1024 blocs de 4K Bloc de 4K contient 1024 pointeurs Enseigant : AAMMOU Souhaib
UNIX BSD: indexé à niveaux Module Systèmes d'exploitation BTS Génie Informatqiue UNIX BSD: indexé à niveaux Le nombre de blocs de chaînage alloués dépend de la taille du fichier, comptée en nombre de blocs : Moins de 10 blocs : dans l’i-nœud lui-même; Moins de 266 blocs : en utilisant un unique bloc d’indirection sur disque (10+256); Moins de 65802 blocs : en utilisant deux niveaux d’indirection sur disque (10 + 256 + 2562); Jusqu’à 16 millions de blocs : en utilisant les trois niveaux d’indirection sur disque (10 + 256 + 2562 + 2563). Ce schéma arborescent est extrêmement puissant, puisqu’au plus de trois accès disques sont nécessaires pour obtenir l’indice de bloc correspondant à une position quelconque dans un fichier. Enseigant : AAMMOU Souhaib
Stockage des catalogues Module Systèmes d'exploitation BTS Génie Informatqiue Stockage des catalogues Lorsque le système d’exploitation doit accéder à un fichier (ordinaire, catalogue, ou autre), il utilise le chemin d’accès qui lui est fourni et parcourt l’arborescence des répertoires, en recherchant à chaque fois l’entrée correspondante du chemin dans le catalogue courant. L’information portée par chaque entrée dépend de la structuration physique du système de fichiers. Sous DOS, chaque entrée contient le numéro du premier bloc du fichier, qui sert de point de départ au chaînage des blocs dans la FAT. Sous Unix, l’entrée contient le numéro de l’i-nœud correspondant au fichier, ce qui permet d’implémenter simplement les liens (hard) au sein du même système de fichiers ( ils sont en revanche impossibles entre deux systèmes de fichiers différents). Les liens symboliques, eux, nécessitent un i-nœud et un bloc pour stocker le chemin destination du lien. Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Gestion d’espace libre Solution 1: vecteur de bits (solution Macintosh, Windows 2000) BITMAP Vecteur de bits (n blocs) Exemple d’un vecteur de bits où les blocs 3, 4, 5, 9, 10, 15, 16 sont occupés: 00011100011000011… L’adresse du premier bloc libre peut être trouvée par un simple calcul … 1 2 n-1 bit[i] = 0 block[i] libre 1 block[i] occupé Enseigant : AAMMOU Souhaib
Module Systèmes d'exploitation BTS Génie Informatqiue Gestion d’espace libre Solution 2: Liste liée de mémoire libre (MS-DOS, Windows 9x) Tous les blocs de mémoire libre sont liés ensemble par des pointeurs Enseigant : AAMMOU Souhaib
Gestion d’espace libre Comparaison Module Systèmes d'exploitation BTS Génie Informatqiue Gestion d’espace libre Comparaison Bitmap: si la bitmap de toute la mémoire secondaire est gardée en mémoire principale, la méthode est rapide mais demande de l’espace de mémoire principale si les bitmaps sont gardées en mémoire secondaire, temps de lecture de mémoire secondaire... Elles pourraient être paginées, p.ex. Liste liée Pour trouver plusieurs blocs de mémoire libre, plus. accès de disque pourraient être demandés Pour augmenter l’efficacité, nous pouvons garder en mémoire centrale l ’adresse du 1er bloc libre Enseigant : AAMMOU Souhaib