400 likes | 719 Views
Système de gestion fichiers. SGF - Disque. Les couches logiciels. SGF. réponse. requête. Requêtes 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.
E N D
Système de gestion fichiers SGF - Disque
Les couches logiciels SGF réponse requête Requêtes 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 • Interface • Commandes • Requêtes • Fonctionnalités • Fiabilité • Partie cachée • Gestion des données : fichiers • Organisation • Accès
Concepts logiques • Les concepts • 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
clé clé clé Enregistrement structuré • Comment repérer son emplacement physique ? • Plusieurs moyens • Par la clé • Par le rang • Par l’adresse 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 l’emplacement du premier enregistrement • 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 0 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
fichier fichier fichier 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 Volume 3 support
fichier fichier fichier 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
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
. . 9 1 info info .. 1 .. 1 688 125 bin 4 claude 17 dev 57 7 luc 44 prog 5 lib 3 etc 9 usr tmp 8 Exemple de Unix Répertoire racine Bloc 125 i-node 9 i-node 44 /usr /usr/prog Sous-répertoire N° i-node
Allocation de l’espace du disque Allocation statique ou dynamique Répertoire Donnéesdesfichiers 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 • 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