Systèmes d'Exploitation I - TP5
Exercice 1 - Système FastFile Question 1(a) - Taille maximale d'un fichier Pour calculer la taille maximale d'un fichier, il faut additionner toutes les données qui peuvent être pointées par les différentes structures de l'i-node, ainsi que les données directement stockées dans celui-ci.
D'après le document Systèmes d'Exploitation I - TP5
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Systèmes de fichiers, Gestion de disques · PDF · 2 pages
Afficher l'aperçu du document
Exercice 1 - Système FastFile
Question 1(a) - Taille maximale d'un fichier
Pour calculer la taille maximale d'un fichier, il faut additionner toutes les données qui peuvent être pointées par les différentes structures de l'i-node, ainsi que les données directement stockées dans celui-ci.
Données de base :
- Taille d'un secteur (bloc) = 512 octets
- Taille d'un index (pointeur) = 4 octets
- Nombre d'index par bloc = 512 ÷ 4 = 128 index
Calcul de la capacité par niveau d'indirection :
- Données directes dans l'i-node : 436 octets
- Index directs (13 pointeurs) : 13 blocs × 512 octets = 6 656 octets
- Simple indirection (1 pointeur vers une table) : 1 table de 128 index pointant vers 128 blocs de données. 128 × 512 = 65 536 octets
- Double indirection (1 pointeur vers une table à deux niveaux) : 128 tables contenant chacune 128 index. 128 × 128 × 512 = 16 384 × 512 = 8 388 608 octets
- Triple indirection (1 pointeur vers une table à trois niveaux) : 128 × 128 × 128 index. 2 097 152 × 512 = 1 073 741 824 octets
Taille maximale totale : Taille = 436 + 6 656 + 65 536 + 8 388 608 + 1 073 741 824 Taille = 1 082 203 060 octets (soit environ 1,08 Go)
Question 1(b) - Bénéfice de l'inclusion des 436 premiers octets
Oui, il y a deux bénéfices majeurs à inclure les 436 premiers octets directement dans l'i-node :
- Performance (Latence) : Pour les très petits fichiers (≤ 436 octets), le système d'exploitation n'a besoin de lire que l'i-node. Cela économise un accès disque supplémentaire pour aller chercher le bloc de données, ce qui accélère considérablement la lecture.
- Gain d'espace (Fragmentation interne) : Si un fichier ne fait que quelques octets, lui allouer un bloc entier de 512 octets gaspille de l'espace sur le disque (fragmentation interne). Les stocker dans l'i-node économise ce bloc d'allocation.
Exercice 2 - Caractéristiques du disque dur
Question 2(a) - Calcul des capacités du disque
Un plateau possède typiquement 2 faces (dessus et dessous). Le sujet précise "Chaque face d'un plateau", confirmant que nous utilisons les deux faces des 6 plateaux.
- Nombre de faces : 6 plateaux × 2 faces/plateau = 12 faces
- Nombre de cylindres : Un cylindre est l'ensemble des pistes de même rayon sur toutes les faces. Puisqu'il y a 10 pistes par face, il y a 10 cylindres.
- Nombre de pistes total : 12 faces × 10 pistes/face = 120 pistes
- Nombre de secteurs total : 120 pistes × 15 secteurs/piste = 1 800 secteurs
- Nombre de blocs physiques : 1 800 secteurs ÷ 3 secteurs/bloc = 600 blocs physiques
- Taille en octets : 1 800 secteurs × 512 octets/secteur = 921 600 octets
Question 2(b) - Allocation FAT
Dans un système basé sur une table d'allocation de fichiers (FAT), chaque entrée de la table pointe vers un cluster (ou bloc logique d'allocation) et le nombre total d'entrées possibles dicte le nombre maximum de clusters que le système peut adresser.
- Capacité d'adressage de la FAT : Avec une entrée de 24 bits, on peut adresser au maximum 2²⁴ = 16 777 216 clusters.
- Taille du disque : 32 Go. En informatique système, 1 Go est généralement évalué à 2³⁰ octets. Taille = 32 × 2³⁰ = 2⁵ × 2³⁰ = 2³⁵ octets.
- Taille minimale d'un cluster : Taille du disque ÷ Nombre maximum de clusters Taille cluster = 2³⁵ ÷ 2²⁴ = 2¹¹ = 2 048 octets (soit 2 Ko).
Justification : Pour couvrir l'intégralité des 32 Go du disque tout en ne disposant que de 16 777 216 adresses possibles dans la table FAT, chaque unité d'allocation pointée par une adresse doit obligatoirement avoir une taille d'au moins 2 048 octets.
Exercice 3 - Système de fichiers simple
Question 3(a) - Nombre maximum d'entrées par répertoire
Dans ce système, un i-noeud possède :
- 1 pointeur sur un bloc de données direct
- 1 pointeur sur un bloc indirect
Sachant que :
- 1 bloc de données = 1 secteur = 2 entiers
- 1 entrée de répertoire (nom de fichier + i-noeud) = 2 entiers
- 1 bloc de données peut donc contenir exactement 1 entrée de répertoire.
- 1 bloc indirect = 2 entiers = 2 pointeurs vers des blocs de données. Il permet donc d'adresser 2 blocs de données supplémentaires.
Capacité totale = 1 bloc direct + 2 blocs issus de l'indirection = 3 blocs de données. Puisque chaque bloc de données contient 1 entrée, un répertoire peut contenir au maximum 3 entrées.
Question 3(b) - Répertoires stockés sur le disque
Pour analyser le disque, nous devons d'abord lire la Table des I-noeuds. Sachant qu'un i-noeud occupe 2 entiers, on extrait les paires à partir de la suite numérique (indices 0 à 7) :
- I-noeud 0 (racine "/") : Bloc direct = 10, Bloc indirect = 7
- I-noeud 1 : Bloc direct = 8, Bloc indirect = 3
- I-noeud 2 : Bloc direct = 6, Bloc indirect = 99 (nul)
- I-noeud 3 : Bloc direct = 99, Bloc indirect = 99 (nul/vide)
Problème de données manquantes dans l'énoncé :
Pour retracer l'arborescence à partir de la racine (I-noeud 0), nous devons inspecter le contenu de son bloc de données direct, qui est le bloc 10.
Or, la chaîne de données fournie pour les blocs disques (32 96 1 99 99 57 3 1 99 99 99 6) ne contient que 12 valeurs (soit le contenu de 6 blocs, typiquement les blocs 0 à 5 si on suit la numérotation séquentielle). Le contenu du bloc 10 est tronqué ou absent du document source, tout comme les assignations précises des autres blocs (7, 8, 6).
Il est donc explicitement impossible de dresser le tableau des chemins complets sans inventer les données manquantes du bloc 10 et l'alignement exact de la suite numérique.
Structure attendue si les données étaient complètes :
| Le chemin | i-noeud | blocs indirects | blocs de données | contenu (sous-répertoires) |
|---|---|---|---|---|
| / | 0 | 7 | 10, ... | Non déterminable (bloc 10 manquant) |
Question 3(c) - Ajout du répertoire "87"
Pour ajouter un répertoire vide appelé "87" dans "/", voici les modifications algorithmiques à apporter aux structures de données du disque :
- Allocation d'un I-noeud pour "87" :
Rechercher un i-noeud libre. D'après la table, l'i-noeud 3 est inutilisé (
99 99). Nous l'allouons au répertoire "87". - Allocation et initialisation du bloc de données de "87" :
Trouver un bloc disque libre (par exemple le bloc 0). Initialiser ce bloc avec la valeur
99 99pour indiquer que ce répertoire est vide. - Mise à jour de l'I-noeud 3 :
Modifier l'i-noeud 3 pour pointer vers ce nouveau bloc. Sa valeur devient
0, 99(Bloc direct = 0, Bloc indirect = 99). - Mise à jour du répertoire racine "/" (I-noeud 0) :
Il faut ajouter la paire
(87, 3)dans un bloc de données de la racine.- On vérifie le bloc direct de la racine (bloc 10). S'il est vide (valeur
99 99), on le remplace par87, 3. - Si le bloc 10 est déjà occupé, la racine utilise son bloc indirect (bloc 7). On alloue alors un nouveau bloc disque libre (par exemple le bloc 1), on y écrit
87, 3, et on met à jour le bloc indirect 7 pour qu'il pointe vers le bloc 1 (son contenu devient1, 99s'il n'avait qu'un seul pointeur utilisé).
- On vérifie le bloc direct de la racine (bloc 10). S'il est vide (valeur
Méthode
- Analyse des métadonnées (I-nodes) : Tracez toujours un schéma de l'I-node sur un brouillon en calculant méticuleusement la place de l'adressage direct puis chaque niveau d'indirection. La taille maximale d'un fichier est purement cumulative (Directs + Indirection1 + Indirection2...).
- Géométrie des disques : Mémorisez la hiérarchie : Un disque contient des plateaux. Un plateau a 2 faces. Une face contient des pistes (qui forment un cylindre à la verticale). Une piste contient des secteurs. Attention aux unités (Go en puissances de 2 dans ce contexte).
- Reconstitution des Systèmes de Fichiers : Lorsqu'on vous donne un "dump" (vidage) mémoire brut, regroupez les valeurs selon la taille des structures définies dans l'énoncé. Ici, tout marche par paires (2 entiers par secteur). Si l'énoncé est corrompu ou incomplet, identifiez le point de rupture exact (ex: un pointeur vers un bloc inexistant) et documentez-le pour le correcteur au lieu de forcer une solution aléatoire.
Commentaires
Aucun commentaire pour le moment. Posez la première question.