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.

Systèmes d'Exploitation I - TP5

Document source

Systèmes d'Exploitation I - TP5

Systèmes de fichiers, Gestion de disques · PDF · 2 pages

Afficher l'aperçu du document

Consulter le document original →

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 :

  1. Données directes dans l'i-node : 436 octets
  2. Index directs (13 pointeurs) : 13 blocs × 512 octets = 6 656 octets
  3. Simple indirection (1 pointeur vers une table) : 1 table de 128 index pointant vers 128 blocs de données. 128 × 512 = 65 536 octets
  4. 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
  5. 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 :

  1. 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.
  2. 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 :

  1. 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".
  2. 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 99 pour indiquer que ce répertoire est vide.
  3. 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).
  4. 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 par 87, 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 devient 1, 99 s'il n'avait qu'un seul pointeur utilisé).

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.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions