Plan du chapitre. Systèmes de gestion des fichiers. Définitions. Pourquoi des fichiers. Organisation logique : les fichiers.

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

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

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Système de Gestion de Fichiers

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

Structure fonctionnelle d un SGBD

SYSTÈME DE GESTION DE FICHIERS

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

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Gestion répartie de données - 1

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

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

Conventions d écriture et outils de mise au point

Cours de Système : Gestion de Fichiers

Cours d initiation à la programmation en C++ Johann Cuenin

Partie 7 : Gestion de la mémoire

Chapitre 3 : Système de gestion de fichiers

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

Architecture des ordinateurs

Cours Bases de données

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

Introduction aux SGBDR

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Mise en oeuvre TSM 6.1

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

Présentation du module Base de données spatio-temporelles

Analyse et réalisation d un système de disques répartis à forte disponibilité

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

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

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

Backup. Solution de sauvegarde en ligne pour les professionnels LE PARTENAIRE SECURITE DE VOTRE ENTREPRISE!

Introduction. René J. Chevance

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

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

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

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

Systemes d'exploitation des ordinateurs

Sauvegarde/Restauration

La base de données dans ArtemiS SUITE

Mise en place Active Directory / DHCP / DNS

Guide pour l Installation des Disques Durs SATA et Configuration RAID

Notes de cours : bases de données distribuées et repliquées

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

Optimisations des SGBDR. Étude de cas : MySQL

Differential Synchronization

Introduction à MATLAB R

VNX MCx. Multicore Everything. Livre blanc

Oracle Maximum Availability Architecture

Instructions Mozilla Thunderbird Page 1

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

TP11 - Administration/Tuning

GESTION DE LA MEMOIRE

CESI Bases de données

Exercices sur SQL server 2000

Distinguer entre «Enregistrer» et «Sauvegarder»

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Windows Serveur 2008 R2

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

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

RECOVERY MANAGER G. Mopolo-Moké prof. MBDS UNSA 2005/ 2006

Bacula R - The Network Backup Solution

Du 10 Fév. au 14 Mars 2014

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Installation d un poste i. Partage et Portage & permissions NTFS

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

Windows Server 2008 R2

Principe. Technologies utilisées. 1. Linux et LVM. Les snapshots (instantannés) sous Linux et FreeBSD. Présentation de LVM. Organisation de LVM

Logiciel de base. Première année ENSIMAG

Notion de base de données

Les structures de données. Rajae El Ouazzani

Administration de Parc Informatique TP07 : Installation de Linux Debian

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Gestion des sauvegardes

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

Outils pour la pratique

Licence Sciences et Technologies Examen janvier 2010

EX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse

Programmation impérative

VMware ESX : Installation. Hervé Chaudret RSI - Délégation Centre Poitou-Charentes

Big Data et Graphes : Quelques pistes de recherche

Tutoriel de formation SurveyMonkey

DNS ( DOMAIN NAME SYSTEM)

neobe Backup Tel service de télésauvegarde informatique LE PARTENAIRE SECURITE DE VOTRE ENTREPRISE

Solution de sauvegarde pour flotte nomade

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Configuration du serveur ESX

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Introduction aux services de domaine Active Directory

Sauvegarde et Restauration d un environnement SAS

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

Technologie de déduplication de Barracuda Backup. Livre blanc

AdBackup Laptop. Solution de sauvegarde pour flotte nomade. Société Oodrive

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

JRES 2007 Solution de stockage répartie sur les centres de recherche INRIA, à base de serveurs de fichiers de type «NAS»

Domain Name System. F. Nolot

Backup , l intégration du backup sur disque

Transcription:

Plan du chapitre Systèmes de gestion des fichiers Introduction Organisation logique Fichiers Désignation et catalogues Mise en œuvre des SGF Gestion de l espace libre Descripteurs de fichiers Amélioration des performances Fiabilité du SGF Le SGF de PedagOS Définitions Fichier = unité d information Noms de fichiers et catalogues Système de gestion des fichiers : SGF Pourquoi des fichiers Permanence des informations Stockage d informations de grande taille Partage entre utilisateurs Organisation logique : les fichiers File Structure Structure des fichiers Types, suffixes, attributs Accès aux fichiers Opérations sur les fichiers Three kinds of files byte sequence record sequence tree 1

File Types Désignation des fichiers : catalogues Principe : conserver la correspondance entre un nom de fichier et sa localisation Dans une table appelée catalogue (directory) Catalogue unique, catalogue par utilisateur (a) An executable file (b) An archive Directories Single-Level Directory Systems Two-level Directory Systems A single level directory system contains 4 files owned by 3 different people, A, B, and C Letters indicate owners of the directories and files Désignation des fichiers : catalogues Hierarchical Directory Systems Catalogues hiérarchiques Désignation absolue, relative Catalogue courant. Et.. A hierarchical directory system 2

Path Names Désignation des fichiers : catalogues Liens et partage de fichiers A UNIX directory tree Shared Files (1) Shared Files (2) File system containing a shared file (a) Situation prior to linking (b) After the link is created (c)after the original owner removes the file Mise en Œuvre du SGF Réalisation de base Extensions pour améliorer les performances Allocation d espace disque Contraintes : espace de grande taille, accès à forte latence Allocation contiguë Allocation par blocs de taille fixe Gestion des blocs libres ou occupés, descripteurs 3

Implementing Files (1) Implementing Files (2) (a) Contiguous allocation of disk space for 7 files (b) State of the disk after files D and E have been removed Storing a file as a linked list of disk blocks Implementing Files (3) Représentation des fichiers et des catalogues Un exemple de descripteur : le I-node d Unix Structure des catalogues Linked list allocation using a file allocation table in RAM The UNIX V7 File System Implementing Directories (1) A UNIX i-node (a) A simple directory fixed size entries disk addresses and attributes in directory entry (b) Directory in which each entry just refers to an i-node 4

Rappels The UNIX V7 File System (1) Implantation d un fichier décrite dans un descripteur, l i-node du fichier Les catalogues sont des fichiers spéciaux On trouve à des emplacements connus : La carte des blocs libres L i-node du catalogue racine A UNIX V7 directory entry The UNIX V7 File System (2) The UNIX V7 File System (3) A UNIX i-node The steps in looking up /usr/ast/mbox Résumé Allocation d espace disque par blocs de taille fixe Comment choisir la taille? Fichier = descripteur + ensemble de blocs Catalogue assure une correspondance entre une chaîne de caractères et un descripteur Le programme de la séance Comment améliorer l efficacité Comment assurer la sécurité Pannes Malveillances Étude de cas : un SGF pour PedagOS 5

Amélioration de l efficacité Lenteur relative des disques, forte latence Accès séquentiel domine Plus de lectures que d écriture Beaucoup de petits fichiers à faible durée de vie Utilisation de tampons en mémoire : le cache du disque Transfert systématique d un bloc entier en mémoire Recopie sur disque soit à la fermeture, soit pour libérer un bloc (SOS fiabilité) soit écriture immédiate Algorithme de remplacement de bloc Autres améliorations Idée : limiter les déplacements du bras Partition en cylindres Nombre fixe d I-nodes Bit maps pour emplacements libres Allocation des blocs pour favoriser l accès séquentiel File System Performance I-nodes placed at the start of the disk Disk divided into cylinder groups each with its own blocks and i-nodes Fichiers journalisés «Log structured file systems» La question des lectures est «résolue» via les tampons Il faut améliorer les performances des écritures Solution de principe : faire de grandes écritures séquentielles Fichiers journalisés (suite) La place des blocs et des i-nodes varie à chaque écriture Une table des i-nodes permet l accès aléatoire Récupération de l espace libre : réorganisation de tout le disque 6

Comparaison Performances au niveau des meilleurs systèmes classiques en conditions «dures» Tampons petits Disques occupés à 80 % Sont meilleurs dans les autres cas Facilitent la récupération après panne Fiabilité du SGF Sauvegardes Reconstruction, cohérence des informations Restrictions d accès Sécurité Les sauvegardes Idée : recopier les fichiers sur un autre support jugé plus sûr Disque miroir, disques raid Sur un support «permanent» (CD) Sauvegardes Périodiques Incrémentales Journalisées Redondance des informations Principe : les informations sur disque sont redondantes et permettent de reconstruire des tables détruites Reconstruction de la carte des blocs libres Reconstruction des catalogues et des i- nodes Restrictions d accès Utilisateurs et groupes Listes de contrôle d accès Verrouillage Contrôle «lecteurs-rédacteurs» Sécurité Ordinateur isolé : pas de grave problème Ordinateur connecté à un réseau Authentification des utilisateurs Les mots de passe Carte à puce 7

Les fichiers de PedagOS Structures sur disque Structures de données en mémoire centrale Programmation d appels systèmes fixer position lecture ouverture Organisation du disque : descripteurs et blocs Descripteurs de fichiers Blocs allouables Superbloc Descripteurs de fichiers Accès au disque : cache struct df { nature!; // fichier ou catalogue taille_phy!; //taille physique en octets taille_log!;! // déplacement du dernier caractère écrit blocs [NBLOCS]!; //numéros des blocs bloc_indirect!; //numéro du bloc d indirection simple Table gérée en adressage dispersé pour la recherche rapide Liste LRU pour le remplacement Utilisation via les procédures obtenir_bloc et liberer_bloc i_dfo Structures en mémoire centrale dfo 1 dfo 2 i_tgfo tgfo tdfm dfm copie du df n de df modif copie du df n de df modif struct dfm { Descripteur de fichier en mémoire // copie en mémoire de df nature!; taille_phy!; taille_log!; blocs[nblocs]!; bloc_indirect!; // champs supplémentaires i_df!; cpt!; etat!; // numéro du df sur disque // nombre d utilisateurs du dfm // df intact ou modifié depuis la création du dfm 8

Table des fichiers ouverts Conserve le mode d ouverture et la position de chaque fichier ouvert struct entree_tgfo { cpt!; mode!; position!; // compteur des ouvertures en cours // mode d ouverture // position courante i_tdfm!; // localisation du descripteur de fichier en mémoire Descripteur local à un processus Permet une désignation interne à un processus Utilisée pour les redirections des E/S standards Appel système fixer_position exec_fixer_position(i_dfo,position) { if ((i_dfo < 0) (i_dfo >= MAX_FO_PROC)) return (-1)!; // mauvaise valeur d i_dfo if ( proelu->dfo [i_dfo] < 0) return (-1)!; // fichier non ouvert i_tgfo = proelu->dfo [i_dfo]!; // indice du fichier dans la tgfo dfm= tdfm [tgfo[i_tgfo]->i_tdfm ] ; // pointeur vers le dfm if ((position > dfm->taille_log) (position <0)) return (-3)!; // nouvelle position invalide tgfo[i_tgfo]->position = position!; // nouvelle position dans la tgfo return (0)!; // appel système réussi Appel système de lecture exec_lire(i_dfo,adr_mem,nbcar) { vérifier paramètres récupérer dfm position = (ibloc,depl) adr_disque = logique_physique (dfm,ibloc) obtenir_bloc(adr-disque) copie du bloc vers zone utilisateur libérer_bloc Appel système d ouverture Entrée : nom, mode Sortie : numéro de dfo Effet de bord :mise à jour des tables de fichiers ouverts et de descripteurs en mémoire Recherche dans les catalogues Nom de fichier aaa/bbb/ccc Numéro i_df de descripteur de fichier (catalogue de recherche) Recherche de aaa ds le catalogue i_df, si cette recherche réussit, on obtient un nouvel i_df dans lequel on va rechercher bbb A la fin du nom, on a le descripteur recherché 9

Ouverture (sans détection d erreurs) exec_ouvrir (nom,mode) { indice_df =recherche_arbre(nom,i_df)!; //on va maintenant construire les différentes tables décrivant le fichier i_tgfo = allouer_tgfo()!; // recherche emplacement dans tgfo i_dfo = allouer_dfo(proelu->dfo)!; proelu->dfo[i_dfo] = i_tgfo!; tgfo[i_tgfo]->cpt = 1!; tgfo[i_tgfo]->mode = mode!; tgfo[i_tgfo]->position = 0!; // début du fichier i_tdfm = obtenir_dfm(indice_df)!; //construction du dfm ++tdfm[i_tdfm]->cpt!; // augmentation compteur d utilisation tgfo[i_tgfo]->i_tdfm = i_tdfm!; return(i_dfo)!; Programmation du cache Version 1 : un bloc est écrit sur disque à la récupération (cache «paresseux») Version 2 : vidages anticipés Recherche d un bloc Descripteur de bloc en mémoire Grand nombre de blocs Recherche séquentielle inadaptée Utilisation d une table auxiliaire Adressage dispersé («hash code») struct dbm { cpt ; ad_disque ; ad_mem ; etat ; liens ; //nombre d utilisateurs du bloc // adresse du bloc sur disque // adresse du bloc en mémoire centrale // défini plus loin // chaînage dans une liste LRU 5 Cache paresseux - états des blocs libre 1 allocation d un bloc libre 1 2 fin de chargement d un bloc entransit 3 réallocation d un bloc intact 2 3 4 écriture dans un bloc intact intact 5 réallocation d un bloc modifié 4 modifié Obtenir_bloc (bloc en cache) obtenir_bloc (bd) { dbm = recherche_en_cache (bd) ; if (dbm!= NULL) { // le bloc est dans le cache //ou en cours de transfert if (dbm->etat == entransit) { /* le processus est bloqué et son pid placé dans la liste des processus en attente du bloc */ dbm->cpt++ ; lancer_processus_suivant ; ; dbm->cpt ++ ; chaîner dbm en tête de liste LRU ; 10

Obtenir_bloc (bloc absent) libre 1 dbm = trouve_place_cache ; if (dbm->etat!= libre) oter_htable(dbm->ad_disque) ; /* on retire le bloc récupéré de la table */ enchargement if (dbm->etat == modifié) { vidage = vrai ; copier (dbm, dbm_aux) ; ; 6 2 intact dbm->cpt = 1 ; //mise à jour dbm pour le nouveau bloc 3 dbm->etat = entransit ; dbm->ad_disque = bd ; ajouter_htable (bd,dbm) ; chaîner dbm en tête de liste LRU ; modifié 4 7 if (vidage) lancer_vidage (dbm_aux); // les opérations de vidage 8 envidage lancer_chargement (dbm) ;// et chargement sont bloquantes dbm->etat = intact ; 5 modifiépendantvidage rendre éligibles les processus en attente du bloc ; Cache avec anticipation 1 allocation d un bloc libre 2 fin de chargement 3 écriture dans un bloc intact 4 lancement d un vidage 5 écriture dans un bloc en vidage 6 réallocation d un bloc 7 fin de vidage 8 fin de vidage d un bloc remodifié Vidage anticipé Vidage demandé par un processus spécialisé Le processus «bouche trou» peut être utilisé Si le système est chargé, ce n est pas suffisant Le processus videur est activé périodiquement 11