Système de gestion fichiers SGF - Disque
Les couches logiciels réponse requête SGF Requêtes E/S Système E/S utilisateur Système E/S Traitement - SE Pilote E/S Commandes — SE Interruptions SE Contrôleur E/S matériel Périphérique matériel
Introduction Partie visible du système d ’exploitation Partie cachée Interface Commandes Requêtes Fonctionnalités Fiabilité Partie cachée Gestion des données : fichiers Organisation Accès
Concepts logiques Les concepts Les concepts logiques ont pour but Fichiers Enregistrements Les concepts logiques ont pour but Ranger de manière rationnelle les données sur disque Rendre transparent à l’utilisateur les concepts physiques Gérer les fichiers indépendamment des périphériques Les concepts logiques Gérés par le SGF Le SGF s’appuie sur la gestion des concepts physiques
Construction du concept de « fichier » octet 0100 0011 1 octet = 8 bits 4 3 C 1 caractère ASCII secteur … 1 secteur = 512 octets 512 caractères ASCII fichier 1 fichier = n secteurs
Différents concepts de « fichier » Selon le SGF, le fichier est : Une simple suite d’octets gestion des secteurs Une suite d’enregistrements gestion des enregistrements Une arborescence de blocs gestion des blocs fichier fichier fichier
Les fichiers sur disque Regroupement des informations par entités Informations de l’entité 1 Informations de l’entité 2 Disque Informations de l’entité 3
Noms de fichiers Les fichiers sont repérés sur disque par un nom : FICHIER . C programme source en C FICHIER . PAS programme source en Pascal FICHIER . BIN programme binaire exécutable FICHIER . LIB fichier librairie FICHIER . TXT fichier texte FICHIER . DAT fichier de données Les noms de fichiers respectent une syntaxe Imposée par le SGF Longueur maximale d’un nom (MS-DOS = 8) Jeu de caractères Extension (spécifie la nature du fichier)
Enregistrement Ensemble de données décrivant un objet d’une même entité L’accès aux données d’un fichier se fait en fournissant : Nom de fichier N° d’enregistrement dans ce fichier Alternativement Accès à partir d’un pointeur dans le fichier 1 ligne de programme 1 ligne de texte 1 instruction binaire (codée)
Enregistrement structuré Plusieurs types possibles selon le SGF Enregistrement = bloc = données Enregistrement = bloc = zone de données Zone Chaque zone est une représentation d’un objet de l’entité Clé Donnée identifiant de manière unique chaque entité Clé Nom_article Référence_article
Enregistrement structuré Comment repérer son emplacement physique ? Plusieurs moyens Par la clé Par le rang Par l’adresse clé clé clé 1 2 3 secteur
Longueur de l’enregistrement Longueur fixe Tous les enregistrements sont de même longueur Facilité de gestion Risque de perte de place importante Longueur variable Tous les enregistrements ont leur propre longueur Complexité de gestion Occupation optimisée de l’espace
Gestion des enregistrements Accès en longueur fixe Connaître l’emplacement du premier enregistrement Connaître la longueur Accès en longueur variable Connaître la longueur de chaque enregistrement + long + long + long + long + 1ong l + long 2 + l 3 + long 4 + long 5
Concepts logiques — concepts physiques enregistrement concepts logiques Ceci est un enregistrement d’une ligne de texte saisie au clavier Secteur 21 Secteur 22 Secteur 23 Secteur 24 Secteur 25 Ceci_est_un_enregistrement_d’une_ligne_de_texte_saisie_au_clavier Suite de secteurs concepts physiques
Calcul d’adresse physique Pour chaque enregistrement Connaître la position du 1er enregistrement du fichier Adresse logique: n° de secteur logique, n° bloc Adresse physique: n° face, n° piste, n° secteur Connaître le déplacement pour chaque enregistrement Soit le nombre d’octets Soit un chaînage sur l’enregistrement suivant Chaînage Adresse de l’enregistrement suivant
Le bloc physique Pour un meilleur compromis = Temps d’accès et capacité de stockage Certains SGF organise l’espace du disque en blocs de secteurs Ex : 1 bloc = 2 secteurs de 512 octet (= 1 Ko) Les opérations de lectures et d’écriture du SGF se font bloc par bloc = sect sect sect sect Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5
Gestion des blocs libres Chaînage Des blocs entre eux adresse du bloc suivant Liste chaînée des n° des blocs libres Table des bits des blocs libres 14 56 100111100010000111 2016 566 000110101000110110 258 254 011010010111111100 311 81 000000111111100111 1965 388 000000001111110111 784 3677 1010111100011101011 69 550
Gestion des blocs : Exemple de MS-DOS La FAT : File Allocation Table Table d’allocation des fichiers x 1 x Fichier A 2 EOF 3 6 3 6 9 4 4 EOF 5 6 9 7 mauvais 8 9 4
Gestion des blocs : Exemple de Unix Une table i-node par fichier sur le disque Table d’allocation des fichiers Pointeurs sur les blocs de données Nœud du fichier 10 n° de blocs Pointeurs 1 indirection Pointeurs 2 indirections Pointeurs 3 indirections
Blocage d’enregistrements 1 bloc logique = n enregistrements Lorsque plusieurs enregistrements sont transférés ensembles lors d’un échange, on dit qu’ils sont bloqués Le facteur de blocage est le nombre n d’enregistrement par bloc logique Le facteur de blocage est calculé de manière à occuper au mieux les blocs physiques Enregistrement n Enregistrement n+1 Enregistrement n+2 Bloc logique
Le fichier Un fichier est un regroupement … De tous les enregistrements décrivant le même type d’entité Avantage: rapidité de sélection des enregistrements concernés par un traitement Enregistrement 1 Enregistrement 2 Enregistrement 3 Enregistrement 4 Enregistrement 5 Enregistrement 6 … Enregistrement n-2 Enregistrement n-1 Enregistrement n
Le volume Ensemble des fichiers se trouvant sur un même support Le partionnement permet de créer plusieurs volumes sur une même support Volume 1 Volume 2 volume fichier Volume 3 support
Le répertoire Table sur le support permettant de référencer tous les fichiers existants du volume avec leur nom et leurs caractéristiques principales Stocke pour chaque fichier l’adresse du premier enregistrement répertoire fichier
Composition du répertoire Le répertoire Est une zone disque réservée par le SGF Comprend un certain nombre d’entrées Une entrée Est allouée à chaque fichier du disque répertoire Nom du fichier Type du fichier Taille du fichier Propriétaire Protection Date de création Adresse du 1er enregistrement entrée entrée entrée entrée entrée entrée entrée
Organisation des répertoires Accès = nom du fichier Accès = chemin 1 répertoire Répertoire racine A Sous-répertoire B C f2 D E Ex : f2 f3 Ex : A/B/E/f2
Les fichiers partagés Propriété des fichiers par sous-répertoire Partage d’un même fichier par deux usagers A Jacques Bertrand D E f3 Compteur de liens = 2
Exemple de MS-DOS Chaque fichier occupe 32 octets dans le répertoire Un sous-répertoire occupe une entrée comme un fichier Le répertoire racine a 112 entrées Les autres répertoires ne sont pas limités Nom_fichier ext A H D B taille attribut heure N° 1er bloc date
Exemple de Unix Répertoire racine Bloc 125 i-node 9 i-node 44 /usr 17 57 44 . .. claude luc prog 1 4 7 5 3 9 8 . .. bin dev lib etc usr tmp info 125 info 688 /usr /usr/prog Sous-répertoire N° i-node
Allocation de l’espace du disque Allocation statique ou dynamique Répertoire Données des fichiers Allocation statique ou dynamique
Allocation statique : espace du fichier Les enregistrements d’un même fichier sont contigus FIC_A FIC_C FIC_N Répertoire Pointeur vers 1er emplacement (1Emp) chaque fichier données À la création du fichier : réservation d’un nombre de blocs contigus
Allocation statique : initialisation du SGF Réservation de l ’emplacement du répertoire Les entrées sont initialisées comme étant libres Pointeur vers premier emplacement libre Espace libre Pointeur vers 1er emplacement libre (1EmpL) pour chaque fichier
Allocation statique : création du fichier À la création du fichier : calcul de l’emplacement nécessaire = nb d ’enregistrements * longueur d’un enregistrement Recherche d’un emplacement correspondant Si trouvé création d’une entrée dans le répertoire avec maj du pointeur 1Emp (Sinon erreur) Cet emplacement ne fait plus partie de l’espace libre maj du pointeur 1EmpL FIC_A FIC_C FIC_N
Allocation statique : création d’un enregistrement À la création d’un enregistrement : place disponible dans l’espace réservé au fichier ? Si oui occupation d ’un emplacement dans l ’espace réservé Si non soit allocation d ’un emplacement supplémentaire (débordement) Soit déplacement de l ’ensemble du fichier vers un espace plus grand (réorganisation) FIC_A FIC_C FIC_N débordement
Allocation statique : suppression d’un enregistrement À la suppression d’un enregistrement : aucune récupération d ’espace mais possibilité de récupération de l ’emplacement de l ’enregistrement supprimé : marquage Compteur d’enregistrements Maj dans le répertoire Si = 0 alors aucun enregistrements Si = n > 0 alors n enregistrements FIC_A FIC_C FIC_N
Allocation dynamique : espace du fichier Les enregistrements d’un même fichier sont chaînés entre eux occupation de l’espace au fur et à mesure des créations d’enregistrements FIC_A FIC_C FIC_N
Allocation dynamique : initialisation du SGF Idem allocation statique Réservation de l ’emplacement du répertoire Les entrées sont initialisées comme étant libres Pointeur vers premier emplacement libre Espace libre Pointeur vers 1er emplacement libre (1EmpL) pour chaque fichier
Allocation dynamique : création du fichier À la création du fichier par de réservation préalable d ’un emplacement À la création du 1ere enregistrement Place disponible dans l ’espace libre ? Si oui Occupation d ’un emplacement dans l ’espace libre Maj du pointeur vers 1er emplacement libre Si non Plus de place libre - erreur FIC_A FIC_C FIC_N
Allocation dynamique : création d’un enregistrement Place disponible dans l ’espace libre ? Si oui Occupation d ’un emplacement dans l ’espace libre Maj du pointeur vers 1er emplacement libre Si non Plus de place libre - erreur FIC_A FIC_C FIC_N