Chapitre 3 Systèmes de gestion de fichiers

Documents pareils
Cours de Système : Gestion de Fichiers

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

GESTION DES FICHIERS C/UNIX

Le système de gestion des fichiers, les entrées/sorties.

Programmation impérative

TP3 : Manipulation et implantation de systèmes de fichiers 1

Chapitre 3 : Système de gestion de fichiers

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Cours 6 : Tubes anonymes et nommés

SYSTÈME DE GESTION DE FICHIERS

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Système de Gestion de Fichiers

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

Programmation C. Apprendre à développer des programmes simples dans le langage C

Introduction aux Systèmes et aux Réseaux

Programmation système de commandes en C

Programmation système I Les entrées/sorties

Gestion des fichiers. Telecom-ParisTech BCI Informatique

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Les processus. Système L3, /39

Plan global. Programmation système II. Socket du domaine UNIX. Plan. Socket UNIX, Terminaux, Async IO, Mémoire, ELF.

Chapitre 3. Sécurité des Objets

TD séances n 3 et n 4 Répertoires et Fichiers sous Unix

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Table des matières Hakim Benameurlaine 1

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Le Network File System de Sun (NFS)

Introduction au Système d Exploitation Unix/Linux

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

TP 4 de familiarisation avec Unix

TP 1 Prise en main de l environnement Unix

Exécutif temps réel Pierre-Yves Duval (cppm)

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

La gestion des dossiers sous Windows Vista, W7, W8.

Les Boitiers de Vote Electroniques (Clickers)

Réparer un disque dur passé en RAW

1.1 L EXPLORATEUR WINDOWS

TP1 - Prise en main de l environnement Unix.

Chapitre 10 Arithmétique réelle

Cours Programmation Système

Introduction à la Programmation Parallèle: MPI

Réparer un disque dur passé en RAW

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

L'organisation du système de fichier NTFS est encore plus complexe, fonctionnant un peu à la façon d'une base de données.

Premiers pas en Linux

Encryptions, compression et partitionnement des données

C.M. 1 & 2 : Prise en main de Linux

Mise à jour : February 4, / 93

Personnes ressources Tice. Académie de Rouen

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

Licence Sciences et Technologies Examen janvier 2010

LES SYSTÈMES DE FICHIERS

La mémoire. Un ordinateur. L'octet. Le bit

ASR3. Partie 4 Le système de fichier. Arnaud Clérentin, IUT d Amiens, département Informatique

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Partie 7 : Gestion de la mémoire

TP1 : Initiation à l algorithmique (1 séance)

La Comptabilité UNIX System V Acctcom

Le langage C. Séance n 4

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre

Gestion des fichiers sur micro-ordinateur

Compression de Données - Algorithme de Huffman Document de Conception

LA mémoire principale est le lieu où se trouvent les programmes et les

Mac OS X en entreprise

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Programmation système en C/C++

Architecture d un système d exploitation

Outils pour la pratique

Playing with ptrace() for fun and profit

Fonctions De Base D un Système D Exploitation. I- introduction : II- Gestion des processus :

Les fichiers. Chapitre 4

Systèmes de fichiers répartis

Utilisation et création de la clé USB OSCAR

Organiser le disque dur Dossiers Fichiers

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Boîtier disque dur SATA 3,5 pouces Fonction économie d énergie

Stockage du fichier dans une table mysql:

SRAL Saint Raphaël. Maison des associations 213, rue de la Soleillette Saint Raphaël. : : dromain.jean-pierre@neuf.

Conventions d écriture et outils de mise au point

Description de SQL SERVER. historique

Structure fonctionnelle d un SGBD

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Architecture des ordinateurs

Logiciel de base. Première année ENSIMAG

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

OCLOUD BACKUP GUIDE DE REFERENCE POUR ANDROID

Installation Windows 2000 Server

Introduction...3. Objectif...3. Manipulations...3. La Sauvegarde...4. Les différents types...4. Planification...4. Les outils...5

Qu'est-ce qu'un processus: Définitions

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

Gestion répartie de données - 1

Protéger ses données dans le cloud

Aide-Mémoire unix. 9 février 2009

Janvier Entretien de l ordinateur

Créer et partager des fichiers

Transcription:

Chapitre 3 Systèmes de gestion de fichiers Jean Privat Université du Québec à Montréal INF3172 Principes des systèmes d exploitation Automne 2011 Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 1 / 1

Plan Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 2 / 1

Plan Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 3 / 1

Rappel Rôles d un SE Gestion des processus Gestion de l espace mémoire Gestion de l espace disque Gestion des entrées-sorties Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 4 / 1

Gestion de l espace disque Objectifs Gérer l espace, répondre aux demandes d allocation et de libération de l espace Donner à l utilisateur une abstraction cohérente et indépendante du mode de gestion de l espace Notion de base : le fichier La partie du SE qui s occupe des fichiers : Système de gestion de fichiers (SGF) Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 5 / 1

Les fichiers Besoins de l utilisateur (et des logiciels) Contenu défini par l utilisateur Fichiers nommés (plutôt que numérotés) Organisés pour les retrouver facilement Notion de propriétaire et droits d accès Indépendants du matériel Il veut aussi un SGF extensible Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 6 / 1

Hiérarchie de fichiers Sous Unix La racine s appelle / (slash) et elle est unique Sous Windows Plusieurs racines possibles (C :, etc.) Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 7 / 1

Fichiers sous Unix Un principe Unix de base Tout est fichier Fichiers standards Textes, exécutables, code source, images... Contenu décidés par l utilisateur Fichiers spéciaux Répertoires, fichiers physiques (dans /dev), liens symboliques, tubes nommés... Manipulation par des appels systèmes spécifiques Règles au cas par cas Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 8 / 1

Partitions Morceau du système de fichier Chaque partition est indépendante Mait partie d un grand tout Montage et démontage Une partition est montée dans un répertoire Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 9 / 1

Partitions Partition de l espace disque = Système de fichier simple Contient tout le nécessaire pour sa bonne gestion Se compose de deux parties Espace de gestion Espace de donnée Différents types de partition (différents systèmes de fichier) FAT32, NTFS, HFS+, EXT4... Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 10 / 1

Partitions Espace de gestion Table des i-nodes (i-nœuds) : matricule des fichiers Un moyen de connaître les blocs libres Espace de données Contient les contenus des fichiers Utilisation de blocs de taille identique (en général) Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 11 / 1

Plan Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 12 / 1

Table des inodes Une entrée = un fichier numéro d inode type de l inode (fichier standard, répertoire...) propriétaire (uid, gid) droits (utilisateur, groupe, autre) taille du fichier en octets dates (plusieurs sortes) nombre de liens durs pointeurs vers blocs de donnée Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 13 / 1

Nom de fichiers et répertoires Le nom des fichiers n apparaît pas dans la tables des inodes Les donnés d un répertoire contiennent uniquement la liste des fichiers avec leurs numéros d inodes et leurs noms 253.. 146. 540 f i c e l l e 490 repondeur Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 14 / 1

Droits et propriétaires Système utilisateur-groupe-autres Chaque utilisateur et associé à une identité (uid) et à un groupe (gid) Chaque processus lancé par un utilisateur est associé à son uid et son gid Chaque fichier du système possède un utilisateur propriétaire et un groupe propriétaire Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 15 / 1

Droits des fichiers Un triplet de 3 droits (rwx) est assigné à chaque classe de propriétaire (ugo) r (read/lecture) : Le contenu du fichier/répertoire est accessible en lecture w (write/écriture) : Le contenu du fichier/répertoire est accessible en écriture (modifiable) x (execute/exécution) : Le fichier est exécutable. Le répertoire est traversable Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 16 / 1

Exemple Table des inodes i n o d e type d r o i t s prop t a i l l e 2 d rwxr xr x 0 ; 0 2048 795 d rwxr xr x 470;47001 1024 1450 rwxr x 470;47001 125 Contenu répertoires / r e p u s / 2.. 2.. 795. 2. 1450 f i f r e 795 r e p u s Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 17 / 1

Dates (Unix) Trois types de dates mtime : date de dernière modification du fichier ctime : date de dernière modification de l entrée dans la table des inodes atime : date de dernier accès au fichier (lecture) Représentation Stockées en temps Unix Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 18 / 1

Plan Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 19 / 1

Liens durs Définition Des entrées dans un ou plusieurs répertoires (avec possiblement des noms de fichiers distincts) qui référencent un même inode Le champ nombre de liens durs de la table des inodes compte le nombre de références Piège Les liens durs ne sont pas des liens Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 20 / 1

Création de liens durs Commande ln et appel système link() $ ln oldpath newpath int link (const char oldpath, const char newpath) Attention : pas de distinction entre l original et le lien Tous les deux «sont» le même fichier Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 21 / 1

Suppression d un fichier Algorithme Supprimer l entrée dans le répertoire; Décrémenter le nombre de liens durs; si nombre de liens durs = 0 alors Supprimer l inode dans la table; Libérer les blocs pointés; fin Commande rm et appel système unlink() $ rm pathname int unlink (const char pathname) Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 22 / 1

Limites de liens durs Forcément sur la même partition Pas de liens durs entre répertoires Pas forcément l effet voulu lors de l écrasement de fichiers Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 23 / 1

Liens symboliques Objectif Résoudre les limitations des liens durs Nouveau type de fichier (L) Contenu : un chemin (relatif ou absolu) Même vers un fichier spécial : répertoire, fichier périphérique, un autre lien symbolique Même vers une autre partition Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 24 / 1

Création de liens symboliques Appel système symlink(), commande ln $ ln s oldpath newpath int symlink(const char oldpath, const char newpath) Comportement Le nombre de liens dur de l orginal reste inchangé Accéder au lien symbolique revient à manipuler le fichier lié (le SE fait le travail automatiquement) Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 25 / 1

Plan Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 26 / 1

Accès à l inode Commandes ls et stat $ ls li monfichier 4965657 rwx 1 p r i v a t p r o f 2975 2007 08 29 17:15 m o n f i c h i e r Appel système stat() et lstat() int stat (const char path, struct stat buf); int lstat (const char path, struct stat buf); Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 27 / 1

Modification de l inode Droits d accès chmod et chmod() Propriétaires chown, chgrp et chown() Dates touch et utime() Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 28 / 1

Manipulation des fichiers Déplacer, renommer Commande mv, appel système rename() Copier Commande cp, pas d appel système Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 29 / 1

Manipulation de fichiers Niveau Unix (norme POSIX, volume 2 du man) creat(), open(), read(), write(), close() Niveau C (norme C89, volume 3 du man) fopen(), fread(), fwrite(), fprintf(), fclose() Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 30 / 1

Répertoires Les répertoires sont des fichiers spéciaux Manipulés de façon spéciale Associent numéro d inode et nom de fichier Fonctions Unix (portables) DIR *opendir(const char *nom) ; struct dirent *readdir(dir *dir) ; int closedir(dir *dir) ; int chdir(const char *path) ; char *getcwd(char *buf, size_t size) ; Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 31 / 1

Descripteurs de fichiers Désignent un fichier ouvert Dans un processus, chaque fichier ouvert manipulé via un descripteur de fichier C est un entier de type int Trois descripteurs par défaut 0 : entrée standard 1 : sortie standard 2 : sortie standard pour les messages d erreur Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 32 / 1

Utilisation des descripteurs Ouverture d un fichier int creat(const char *pathname, int mode) ; retourne le descripteur de fichier (ou -1) Exemple plus long char message = " H e l l o World " ; i n t fd = c r e a t ( " h e l l o ", S_IRWXU ) ; w r i t e ( fd, message, s t r l e n ( message ) ) ; c l o s e ( fd ) ; Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 33 / 1

Masque de création de fichiers Quels droits pour les fichiers crées C est l utilisateur qui choisit? C est le programme qui choisit? C est l administrateur qui choisit? Il y a un moyen de combiner les trois umask, le masque de création de fichiers Chaque processus a un masque Les droits de l umask sont éliminés des fichiers crées Règle de bonne programmation Utiliser les droits les plus larges L umask fera le reste Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 34 / 1

Plan Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 35 / 1

Adressage des fichiers Rappel L espace de donnée est divisé en blocs Les données d un fichier sont réparties entre blocs (la table des inodes en contient l adresse) Pointeurs vers les blocs de donnée Pointeur direct : contient l adresse d un bloc de donnée Pointeur indirect : contient l adresse d un bloc contenant des pointeurs directs Pointeur indirect double : contient l adresse d un bloc contenant des pointeurs indirects Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 36 / 1

Adressage des fichier Exercice Dans la table des inodes Il y a 13 pointeurs de blocs : 10 sont des pointeurs directs 1 est indirect 1 est indirect double 1 est indirect triple Un bloc fait 2k Un pointeur de bloc est représenté sur 32 bits Question Quel est la taille maximale d un fichier? Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 37 / 1

Plan Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 38 / 1

Table des descripteurs Rappel Un processus manipule des descripteurs de fichiers Le SE s occupe de l accès et de la cohérence des fichiers Mise en œuvre Une table des descripteurs par processus Le descripteur est un indice de cette table Le SE s occupe des tables des inodes Le SE gère un tampon pour optimiser les accès Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 39 / 1

Tables du SE (globales) Table des inodes en mémoire (TIM) Une entrée par fichier ouvert C est l ensemble des caches de l ensemble des fichiers ouverts du SE Le SE essaye de minimiser les accès disques Il y a un asynchronisme entre les demandes de l utilisateur et les écritures effectives sur le disque. Table des fichiers ouverts (TFO) Une entrée par demande d ouverture de fichiers Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 40 / 1

Contenu des tables Table des descripteurs (TD) pointeur vers la table fichiers ouverts Table fichiers ouverts (TFO) nbre descripteurs (de TD) mode d ouverture (lecture, écriture) position (voir appel système lseek()) pointeur vers la table des inodes en mémoire Table inodes en mémoire (TIM) nombre pointeurs (de TFO) données des fichiers (méta-infos, caches) Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 41 / 1

Ouverture multiple de fichiers Principe Un même fichier peut être manipulé indépendamment par deux processus Exemple Deux processus font un open() d un même fichier Chacun a un descripteur Chaque descripteur pointe vers une entrée de la table des fichiers ouverts Chaque entrée de la table des fichiers ouvert pointe vers le même inode en mémoire Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 42 / 1

Héritage entre processus Lors d un fork() (en plus du reste) La table des descripteurs est dupliquée Les compteurs de la tables des fichiers ouverts sont incrémentés L entrée dans la tables des fichiers ouverts est partagée en particulier le compteur de position Exemple Entrée et sorties standard Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 43 / 1

Duplication de descripteurs Descripteurs synonymes Deux descripteurs d un même processus peuvent pointer une même entrée dans la table des fichiers ouverts Appels systèmes dup() et dup2() Quel est l intérêt? Redéfinir les entrées et sorties standard Communication par tube (pour plus tard) Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 44 / 1

Exemple Redirection de la sortie standard i n t o = c r e a t ( " s o r t i e ", 0 6 6 6 ) ; i f ( o == 1) { p e r r o r ( " I m p o s s i b l e d o u v r i r s o r t i e " ) ; e x i t ( 1 ) ; } c l o s e ( 1 ) ; dup2 ( o, 1 ) ; p r i n t f ( " H e l l o World!\ n" ) ; Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 45 / 1

Fermeture d un fichier Algorithme du close() Le descripteur est libéré; Le compteur dans la TFO est décrémenté; si compteur FO == 0 alors L entrée dans la TFO est libérée; Le compteur dans la TIM est décrémenté; si compteur IM == 0 alors L entrée dans la TIM est synchronisée; L entrée est libérée; fin fin Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 46 / 1

Fin des processus Le SE nettoie Lors de la terminaison d un processus, le SE ferme tous les descripteurs restés ouverts. Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 47 / 1

Pour résumer Lors d un open() Une entrée dans la TFO est crée Le processus obtient un descripteur vers cette entrée Cette entrée pointe vers la TIM Soit vers une nouvelle entrée Soit vers une entrée existante Deux descripteurs peuvent pointer une même entrée dans la TFO Soit par héritage : fork() Soit par duplication de descripteurs : dup() Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 48 / 1

Plan Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 49 / 1

Besoin de fiabilité L important Les données sont la partie essentielle d un système informatique «Système d information» : la valeur est dans les informations, pas dans le système Administrateur système Un des rôle d un administrateur système est de garantir que les données ne sont ni perdues ni corrompues Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 50 / 1

Sauvegarde (backup) Objectifs Récupérer d une catastrophe naturelle Récupérer d une erreur humaine Moyens Dupliquer les données Conserver un historique Stocker le double ailleurs Deux approches Sauvegarde physique vs. sauvegarde logique Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 51 / 1

Cohérence d un SGF Cohérence L incohérence d un système de fichier peut amener à des pertes de données Dans l idéal, la cohérence doit pouvoir être garantie par le SGF En pratique, cet idéal n est pas atteignable besoin de vérifier la cohérence besoin de corriger les incohérences Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 52 / 1

Incohérences d un SGF Quelques exemples Un bloc est à la fois libre et utilisé Le nombre des liens durs est incohérent Deux fichiers occupent un même bloc Les dates indiquent le futur La taille est plus grande que le maximum Un répertoire contient un fichier avec un numéro d inode inexistant Deux problèmes Détecter Corriger Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 53 / 1

Comment vérifier Certaines vérifications prennent du temps parcours nécessaire de l arborescence parcours de la table des inodes et des blocs d indirection Quand faire les vérifications le moins souvent possible quand un risque incohérence est détecté Jean Privat (UQAM) 03 SGF INF3172 Automne 2011 54 / 1