gestion des fichiers quatrième partie...

15
Situation SGF SGR Annexes Quatrième partie Fichiers 1 / 58 Situation SGF SGR Annexes Contenu de cette partie Gestion des données conservées en mémoire secondaire Fichiers point de vue utilisateur : interface, modèle mise en œuvre : implantation, accès organisation et désignation des fichiers point de vue utilisateur : répertoires, liens mise en œuvre Annexes : points techniques 2 / 58 Situation SGF SGR Annexes Plan 1 Gestion des données rémanentes 2 Gestion des fichiers Interface et modèle Mise en œuvre du système de gestion de fichiers 3 Organisation des fichiers Interface Mise en œuvre du service de gestion de répertoires 4 Annexes Le sous-système d’E/S d’UNIX BSD Système de fichiers standard Linux (FSSTND) Disques physiques Disques RAID Sûreté de fonctionnement Méthodes d’accès 3 / 58 Situation SGF SGR Annexes Gestion des données rémanentes Intérêt de la mémoire secondaire (disques, bandes. . . ) Rémanence (les données peuvent être conservées) Capacité de stockage Aide à l’utilisation des données stockées en mémoire secondaire : Abstraction notion de fichier : modèle simple d’accès aux données stockées Partage et protection des fichiers droits d’accès, contrôle de concurrence Organisation logique des fichiers service de gestion de répertoires (SGR) Autres services Contrôles et services liés au « type », au contenu des fichiers (binaires, textes. . . ) Accélération des accès (index. . . ) Sauvegarde 4 / 58

Upload: others

Post on 04-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Quatrième partie

Fichiers

1 / 58

Situation SGF SGR Annexes

Contenu de cette partie

Gestion des données conservées en mémoire secondaireFichiers

point de vue utilisateur : interface, modèle

mise en œuvre : implantation, accès

organisation et désignation des fichiers

point de vue utilisateur : répertoires, liens

mise en œuvre

Annexes : points techniques

2 / 58

Situation SGF SGR Annexes

Plan

1 Gestion des données rémanentes

2 Gestion des fichiers

Interface et modèle

Mise en œuvre du système de gestion de fichiers

3 Organisation des fichiers

Interface

Mise en œuvre du service de gestion de répertoires

4 Annexes

Le sous-système d’E/S d’UNIX BSD

Système de fichiers standard Linux (FSSTND)

Disques physiques

Disques RAID

Sûreté de fonctionnement

Méthodes d’accès

3 / 58

Situation SGF SGR Annexes

Gestion des données rémanentes

Intérêt de la mémoire secondaire (disques, bandes. . . )

Rémanence (les données peuvent être conservées)

Capacité de stockage

Aide à l’utilisation des données stockées en mémoire secondaire :

Abstraction

notion de fichier : modèle simple d’accès aux données stockées

Partage et protection des fichiers

droits d’accès, contrôle de concurrence

Organisation logique des fichiers

service de gestion de répertoires (SGR)

Autres services

Contrôles et services liés au « type », au contenu des fichiers

(binaires, textes. . . )

Accélération des accès (index. . . )

Sauvegarde

4 / 58

Page 2: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Structure des services de gestion des données rémanentes

Fichiers -3-

DIMA, Systèmes Centralisés (Ph. Mauran)

Structure des services système d’accès et de gestion des données rémanentes

Applications

• liaison (interprétation des noms symboliques) • gestion d'une structure entre fichiers • amélioration de

l'efficacité des accès

• automatisation • sauvegardes •…

• opérations au niveau des fichiers vus comme des tableaux d'octets/d'enregistrements

Pilotes de périphériques

Gestion des fichiers

Gestion des accès logiques

Gestion des répertoires

fonctions d'accès « logiques »/

adresses physiques (blocs)

adresses logiques/ noms internes

Services fichiers

adresses logiques/ noms internes

noms symboliques

Périphériques5 / 58

Situation SGF SGR Annexes

Plan

1 Gestion des données rémanentes

2 Gestion des fichiers

Interface et modèle

Mise en œuvre du système de gestion de fichiers

3 Organisation des fichiers

Interface

Mise en œuvre du service de gestion de répertoires

4 Annexes

Le sous-système d’E/S d’UNIX BSD

Système de fichiers standard Linux (FSSTND)

Disques physiques

Disques RAID

Sûreté de fonctionnement

Méthodes d’accès

6 / 58

Situation SGF SGR Annexes

Gestion des échanges avec les périphériques

Abstraction des E/Spériphériques blocs : disques...

données structurées (regroupées) dans des blocs (souvent de

taille fixe)

chaque bloc est identifié par une adresse

l’accès aux données est déterminé par le numéro du bloc

périphériques caractères : clavier. . .

données non structurées, vues comme des suites (flots) d’octets

l’accès aux données doit suivre l’ordre du flot

CachesBut : optimiser les échanges en conservant dans un tampon

(cache) en mémoire rapide une copie des données échangées

Difficulté : gestion de la cohérence

entre copie en cache et copie sur le périphérique

7 / 58

Situation SGF SGR Annexes

Notion de fichier

Abstraction pour un ensemble de données

conservées indépendamment de l’exécution des applications

(rémanence)

ayant un lien logique (pour l’utilisateur)

différenciées par un identifiant (clé) ou un indice (position)

! fichier , suite

⇢d’octets

d’enregistrements

OpérationsAbstraction : support, implantation, opérations de bas niveau

Métaphore : bande magnétique

créer/détruire (Unix : creat.../unlink...)ouvrir/fermer (Unix : open/close)accès (lire, écrire, naviguer) (Unix : read ,write, lseek)

8 / 58

Page 3: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Utilisation des fichiersFichiers ordinaires

Sous Unix, le contenu d’un fichier est une suite d’octets, sans autre

structure. L’interprétation de ce contenu dépend de l’utilisation :

Programmes exécutablesCommandes du système ou programmes créés par un usager

Exemplegcc -o prog prog.c produit le programme exécutable (fichier prog)

./prog exécute le programme prog

Fichiers de donnéesDocuments, images, programmes sources, etc.

Convention : il est pratique d’ajouter au nom un suffixe indiquant

la nature du contenu (usage en Unix, nécessaire sous Windows)

Exemples : .c (programme C), .o (binaire translatable), .gif

(format d’images), .ps (PostScript), .pdf. . .

Remarque : la commande Unix file fournit dans tous les cas

une indication sur la nature du fichier.

9 / 58

Situation SGF SGR Annexes

Utilisation des fichiersAutres fichiers

La plupart des ressources se présentent sous Unix comme des fichiers

afin d’offrir une interface (un modèle) unique à l’utilisateur :

tubes (pipes) : accès à un tampon mémoire

vu comme une paire de fichiers (dépôt/retrait)

répertoires

liens (alias)

fichiers spéciaux : les périphériques appraissent sous Unix

comme des fichiers (souvent situés dans le répertoire /dev)Les périphériques sont désignés par des noms de fichiers

Interface d’usage (commandes, primitives) : celle des fichiers

open/close : connexion/déconnexion au périphérique

read : lecture (si cela a un sens par rapport au périphérique)

write : écriture (si cela a un sens par rapport au périphérique

ioctl : action spécifique.

Les mécanismes de protection sont les mêmes.

À un fichier spécial correspond un pilote de périphérique

(Davantage de détails sont fournis en annexe)

10 / 58

Situation SGF SGR Annexes

Protection et partage des fichiers

La protection (ou sécurité) recouvre plusieurs aspects

confidentialité :

informations accessibles aux seuls usagers autorisés

intégrité : pas de modifications non désirées

contrôle d’accès :

seuls certains usagers sont autorisés à faire certaines opérations

authentification :

garantir qu’un usager est bien celui qu’il prétend être

Note : quelques compléments sur la mise en œuvre de l’intégrité et

du contrôle d’accès sont fournis en annexe.

11 / 58

Situation SGF SGR Annexes

Sécurité des fichiers (sous Unix) : droits d’accèsOn définit

des typesd’opérations sur lesfichiers : lire (r), écrire (w), exécuter (x)des classesd’usagers :

usager propriétaire dufichier (u), groupepropriétaire (g), autres (o)

Fichiers ordinaires

Fichiers -13-DIMA, Systèmes Centralisés (Ph. Mauran)

Sécurité des fichiers (dans Unix)On définit

• des types d’opérations sur les fichiers : lire (r), écrire (w), exécuter (x) (qui correspondentrespectivement à des contraintes de confidentialité, intégrité, contrôle d’accès)

• des classes d’usagers : usager propriétaire du fichier (u), groupe propriétaire (g), tous les autres (o)

Fichiers ordinaires

Répertoires

Même chose, mais le droit x signifie « recherche dans le répertoire »

Un mécanisme de délégation

• Le problème : partager un programme dont l’exécution nécessite des droits d’accès que n’ont pas les usagers potentiels du programme

• Solution (setuid ou setgid) : (uniquement) pour la durée de l’exécution de ce programme, unusager quelconque reçoit temporairement les droits de l’usager ou du groupe propriétaire

r w x r w x r w x (u) (g) (o)

Exemple (fichier fich) : rwx r-- r-- : tout accès pour le propriétaire, lecture seule

pour tous les autreschmod go+w fich : droit w donné au groupe et aux autreschmod o-w fich : retire le droit w aux autressetuid

setgid

RépertoiresMême chose, mais le droit x signifie « recherche dans le répertoire »

Mécanisme de délégationProblème : partager un programme dont l’exécution nécessite des

droits d’accès que n’ont pas les utilisateurs du programme

Moyen (setuid ou setgid) : accorder les droits du propriétaire à

l’utilisateur (uniquement) pour la durée de l’exécution du programme

12 / 58

Page 4: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Plan

1 Gestion des données rémanentes

2 Gestion des fichiers

Interface et modèle

Mise en œuvre du système de gestion de fichiers

3 Organisation des fichiers

4 Annexes

13 / 58

Situation SGF SGR Annexes

Système (logique) de fichiers

Implante

un ensemble (non structuré) de fichiers

vus comme des tableaux d’octets (sans structure interne)

dans un espace physique vu comme un disque (logique)

(tableau de blocs de taille fixe)

Structure type d’un disque logique

Fichiers -17-DIMA, Systèmes Centralisés (Ph. Mauran)

3.3) Mise en œuvre du système de fichiers

a) Système (logique) de fichiersPoint de vueImplanter

• un ensemble (non structuré) de fichiers• vus comme des tableaux d’octets (sans structure interne)• dans un espace physique vu comme un disque (logique) (tableau de blocs de taille fixe)

Structure type d’un disque logique• blocs d’amorce

UNIX : bootblocks (BB)• informations sur la structure du disque :

adresse, type des ≠ zones qui le constituent, localisation des blocs libres

UNIX : superbloc (SB)• catalogue du disque : liste des descripteurs

des fichiers présents sur le disque logiqueUNIX : table des I-nœuds

• fichiers

BBSB

I-nœuds

fichiers

Bloc0

11

12

1000

1M14 / 58

Situation SGF SGR Annexes

Structure type d’une entrée de catalogue (i-nœud Unix)

propriétaires(s)

droits d’accès

date(s) de dernier accès, de création. . .

taille

type

référence(s) vers l’implantation du fichier sur disque

données pour gérer la fiabilité : checksum, référence vers une copie...

15 / 58

Situation SGF SGR Annexes

Interface avec l’organisation physique : partitions (disques virtuels)

But : indépendance par rapport à la configuration physique

un disque virtuel peut utiliser une portion d’un disque physique,

ou un groupe de disques physiques

chaque disque virtuel a la structure décrite précédemment

Terminologieminidisks (VM), volumes (MS-DOS), partitions (MacOS), disques logiques

Exemple : Unix propose 2 types de disques logiques

swap : utilisé pour la régulation et la gestion mémoire

systèmes de fichiers : utilisé pour... le stockage des fichiers

Implantation des partitions : structure type d’un périphériquebloc d’amorce : code d’amorce + table des partitions

table des partitions : taille et adresse des différentes partitions

réserve de blocs (remplacement des blocs devenant véreux)

16 / 58

Page 5: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Interconnexion des disques logiques

t greffe d’arborescences contenues dans des disques logiques

au niveau de la racine : Windows

insertion d’une sous-arborescence quelconque en un point

quelconque d’une autre arborescence (montage)

Exemple : Unix (et NFS)

un système de fichiers (SF) est privilégié : le SF « système »

les autres SF peuvent s’y greffer

(instruction mount (montage logique))

mécanisme utilisé par NFS pour la connexion de

fichiers/répertoires distants

17 / 58

Situation SGF SGR Annexes

Représentation de l’espace libre (1/2)

But

garder une trace des blocs qui peuvent être (ré)alloués

! « liste » des blocs libres

Vecteur de bitscarte de l’occupation du disque logique : pour chaque bloc du disque,

un bit indique si le bloc est libre

Avantages :

simple et efficace

Inconvénient :

. . . à condition que le vecteur tienne en mémoire centrale

! utilisation

par les systèmes/micro-ordinateurs (MacOS)

lorsque la partition comprend relativement peu de blocs

(groupes de cylindres BSD 4.x)

18 / 58

Situation SGF SGR Annexes

Représentation de l’espace libre (2/2)

Liste chaînéecarte de localisation de l’epace libre :

L’espace libre est vu comme une suite de blocs.

Chaque bloc libre contient l’adresse du suivant

Problèmeinefficace (allouer n blocs ! n E/S)

Amélioration 1le premier bloc libre contient les adresses des n suivants

(dont n-1 sont directement utilisables)

Amélioration 2si n blocs libres contigus, stocker n et l’adresse du premier

19 / 58

Situation SGF SGR Annexes

Implantation des fichiers sur le disqueAllocation contiguë

Chaque fichier est rangé dans des blocs d’adresses successives

L’entrée du catalogue pour le fichier contient l’adresse du

premier bloc et la taille du fichier

Stratégies de placement : First fit, Best fit, Worst fit

Avantagespermet l’accès direct et l’accès séquentiel

temps d’accès minimal, pour un fichier

Inconvénientsfragmentation externe (blocs libres nombreux mais dispersés)

! recompactage coûteux

gestion lourde, lorsque la taille des fichiers augmente

20 / 58

Page 6: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Implantation des fichiers sur le disqueAllocation fragmentée

Pas de relation entre les adresses (la localisation) des blocs du fichier

Table d’allocation (FAT) (⇠ carte de l’occupation du disque)La table d’allocation est indexée par les numéros de blocs disque.

Idée : regrouper toutes les adresses! moins d’E/S

Le catalogue contient le numéro du 1er bloc alloué à chaque fichier.

Chaque entrée de la table d’allocation contient

lenumérodublocsuivant,silebloccorrespondantestallouéàunfichier

0si lebloccorrespondantest libre

EOFsi lebloccorrespondantest ledernierdufichier

Le chaînage des entrées exprime celui des blocs alloués

Fichiers -23-DIMA, Systèmes Centralisés (Ph. Mauran)

Allocation fragmentéePas de relation particulière entre les adresses des blocs d’un fichierTable d'allocation (FAT) (~ carte de l’occupation du disque)Idée : regrouper toutes les adresses➝ moins d'E/SA chaque bloc correspond une entrée dans la table (indice de l'entrée = # du bloc)

• Le catalogue contient le numéro du premier bloc alloué à chaque fichier.• Chaque entrée contient

◊ l’indice de l'entrée (du bloc) suivant(e), lorsque le bloc correspondant est alloué à un fichier◊ 0 si le bloc correspondant est libre◊ EOF si le bloc correspondant est le dernier du fichier

Le chaînage des entrées exprime celui des blocs alloués

fichier

logique réel

21 / 58

Situation SGF SGR Annexes

Implantation des fichiers sur le disqueAllocation chaînée

Les blocs alloués à un fichier sont chaînés

Le catalogue contient l’adresse du premier bloc et celle du

dernier bloc de chaque fichier

Chaque bloc contient l’adresse de son successeur

Avantagespas de fragmentation externe

pas de problème lié à l’évolution de la taille d’un fichier

Inconvénientsaccès direct très inefficace

fiabilité : perdre un bloc t perdre tout ce qui suit dans le fichier

! chaînage double ! surcroît de gestion

22 / 58

Situation SGF SGR Annexes

Implantation des fichiers sur le disqueAllocation indexée

Le premier bloc de chaque fichier est (le premier bloc de)

la table des adresses des blocs alloués au fichier

AvantagesCf allocation chaînée

Accès direct possible

Inconvénient : perte de place pour les petits fichiers

! Idée : gérer un ensemble de blocs d’index (de taille réduite)

plus compact

mais temps d’accès accru

Méthodes

Liste chaînée

Arborescence (le bloc d’index référence des blocs d’index qui. . . )

Méthode hybride (Unix) : l’entrée du catalogue pour un fichier

(i-nœud) contient 15 adresses de blocs :

12 adresses directes (48K adressables)

3 adresses indirectes

indirections simple (1 Mo adressable), double (1 Go), triple (1 To) 23 / 58

Situation SGF SGR Annexes

I-nœud UNIX

Fichiers -26-DIMA, Systèmes Centralisés (Ph. Mauran)

I-nœud UNIX

RemarqueCes méthodes ont leurs cas favorables et défavorables ➝ utiliser des méthodes mixtes :

- allocation contiguë pour l'accès direct/chaînée pour l'accès séquentiel- allocation contiguë pour les petits fichiers/indexée pour les plus gros

mode (bloc/caractère)propriétaires

(u,g)dates

(création, accès, modification)

taillenb de blocs

adresses directes (12)

indirection simpleindirection doubleindirection triple

……

données

index

24 / 58

Page 7: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Plan

1 Gestion des données rémanentes

2 Gestion des fichiers

Interface et modèle

Mise en œuvre du système de gestion de fichiers

3 Organisation des fichiers

Interface

Mise en œuvre du service de gestion de répertoires

4 Annexes

Le sous-système d’E/S d’UNIX BSD

Système de fichiers standard Linux (FSSTND)

Disques physiques

Disques RAID

Sûreté de fonctionnement

Méthodes d’accès

25 / 58

Situation SGF SGR Annexes

Interface utilisateur pour la manipulation des fichiers

Service fournipermettre une désignation « familière » (noms externes)

structurer l’espace de noms/d’objets défini par l’utilisateur

! notion de répertoire :

ensemble de fichiers nommés et regroupés au choix de l’utilisateur

Structuration minimale : répertoire « plat »Simple liste de noms de fichiers

Difficultésaccumulation des fichiers ! allongement de la liste

conflits entre noms

26 / 58

Situation SGF SGR Annexes

Structuration classique : arborescence

Principe : inclure des répertoires dans les répertoires

Organisation purement logique, choisie par l’utilisateur

Exemple

Fichiers -7-

DIMA, Systèmes Centralisés (Ph. Mauran)

Structuration classique : arborescence

Idée : inclure des répertoires dans les répertoiresRemarque

Organisation purement

logique

Exemple

Intérêt

• organisation définie par l’utilisateur : fichiers regroupés par sujet/usage/utilisateur• règle les conflits de noms (un fichier est désignable par le chemin (unique) le reliant à la racine)• contrôle d’accès

racine

binaires utilisateurs documents

find count more sortlulu amédée

pg1 essai

manuel livre

courrierIntérêtorganisation définie par l’utilisateur :

fichiers regroupés par sujet/usage/utilisateur

règle les conflits de noms (un fichier est désignable par le

chemin (unique) le reliant à la racine)

contrôle des droit d’accès 27 / 58

Situation SGF SGR Annexes

Modèle d’utilisation : navigation dans l’arborescence

Nom unique : chemin absolu (chemin reliant la racine au fichier)

Exemple (Unix) : /utilisateurs/lulu/pg1

Raccourcis

chemins relatifs :

utilisation d’un préfixe implicite (répertoire de travail/courant)

Exemple : si le répertoire courant est /utilisateurs/lulu,

le fichier précédent peut être désigné par pg1

Généralisation :

liste de préfixes (chemins) permettant l’emploi de noms locaux

Exemple : variable PATH en Unix

Opérations sur le répertoire courant

- initialisation : répertoire privé (ou répertoire de connexion)

- affectation : cd

- affichage : pwd

abréviations spécifiques à une application

Exemple (shell Unix) : ., .., ⇠xxxsynonymes : liens

28 / 58

Page 8: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Structure de graphe : liens logiquesBut

désigner (sans dupliquer) un même fichier depuis plusieurs répertoires

le fichier/le répertoire apparait comme une entrée « ordinaire »

dans chacun des répertoires

structure de graphe

Exemple

Fichiers -9-DIMA, Systèmes Centralisés (Ph. Mauran)

Structure de graphe : liens logiquesIdée : partager (sans dupliquer )un fichier/un répertoire entre plusieurs répertoires

• le fichier/le répertoire apparait comme une entrée « ordinaire » dans chacun des répertoires

• structure de graphe

Exemple

• Partager un fichier ⇒ définir des droits d’accès pour chacun des nœuds

• Non unicité des désignations/des chemins➝ navigation moins « naturelle » (cycles…), plus complexe

Exemple : accès aux prédécesseurs, sous Unix

racine

binaires utilisateurs documents

find count more sortlulu amédée

pg1 essai

manuel livre

courrier

Non unicité des désignations/des chemins

! navigation moins naturelle (cycles, prédécesseurs multiples. . . ) 29 / 58

Situation SGF SGR Annexes

Plan

1 Gestion des données rémanentes

2 Gestion des fichiers

3 Organisation des fichiers

Interface

Mise en œuvre du service de gestion de répertoires

4 Annexes

30 / 58

Situation SGF SGR Annexes

Mise en œuvre des répertoires

répertoire = table de correspondance :

nom externe (utilisateur) $ nom interne (SX)

pour Unix, un répertoire est juste un fichier contenant cette table

Mise en œuvre des liens (Unix)liens physiques (nom interne) (commande ln f ./f_bis) :

ajout d’une entrée f_bis au répertoire courant,

associée au même i-nœud que fliens symboliques (chemin d’accès) (ln -s f ./f_bis) :

le chemin du fichier f est stocké dans le fichier f_bis du

répertoire courant

! problème de mise en cohérence du contenu des fichiers de

référence, en cas d’évolution

31 / 58

Situation SGF SGR Annexes

Exemple (sous UNIX, dans l’arborescence précédente)

création d’un lien symbolique vers binaires, sous le nom

programmes, depuis le répertoire lulu.

>pwd/utilisateurs/lulu>lsessai pg1>ln -s /binaires programmes>lsessai pg1 programmes# un fichier "/utilisateurs/lulu/programmes" a été créé,dont le contenu est "/binaires">cd programmes>lscount find more sort

32 / 58

Page 9: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Contrôle d’existence

Problème

maintenir la cohérence des liens vers un objet,

si celui-ci est supprimé/déplacé

Politique minimale : évaluation paresseuse

lien vers un objet disparu = référence erronée

Exemple : liens symboliques Unix

Politique classique : conserver l’objet tant qu’il est référencé

Conserver le nombre de références (liens) vers chaque objet

Exemple : liens physiques Unix

! un fichier se peut être supprimé que si son compteur est nul

Problème : test invalide en cas de cycles dans les références

Ramasse-miettes (périodique)

marquer les objets accessibles depuis la racine

supprimer les objets non marqués

Datation : supprimer les objets non accédés depuis longtemps

33 / 58

Situation SGF SGR Annexes

Interprétation des chemins d’accès par le service de répertoires

Fichiers -16-DIMA, Systèmes Centralisés (Ph. Mauran)

<html><head><title>fiche-vide</title>

<b>Syntaxe :</b><p>clear<p> <b>R&ocirc;le :</b><p> <b>EFFACER L'ECRAN </b><p> <p>

<b>Quelques options :</b><p> <b></b>La commande <b>clear</b> efface l'&eacute;cran.

multi-fen&ecirc;tr&eacute;, elle n'efface que la fen&ecirc;tredans laquelle elle est ex&eacute;cut&eacute;e.<p> <b>echo</b><p> <b>Syntaxe :</b><p> echo "cha&icirc;ne de caract&egrave;res"<p> <b>R&ocirc;le :</b><p> <b>AFFICHE A L'ECRAN </b>une cha&icirc;ne de caract&egrave;res<b></b><p>

.

usr

local

etc...

..22

tmp 107

3

"/"

2

3

4

5

6

7

8

9

root sysadmdrwxr-xr-x

Aug 15 2009

00

root ensdrwxr-xr-x

Feb 17 2010-------------

fred ens-rwxr-xr-x

Feb 17 2010

root sysadmdrwxr-xr-x

root sysadm-rwxr-xr-x

Feb 17 2010

000/0/0

Aug 15 2009

fred ensdrwxr-xr-x

Feb 17 2010

.

index.html..

635

"/usr"

.

fred..

326

etc...

"/usr/fred/index.html""/usr/fred"

etc...

C00D3454E445245434F0434F00004E56FC7C48E703083D7C0064FDB43D7C0064FDB241EEFEB643FA023220D920D920D93091102DF31D671241EEF7C0064FDB43D7C0064FDB241EEFEB643FA023220D920D920D93091920D930912F2EFDB

.

bin

..72

42

"/local"etc...

"/local/bin/more"

.

more

..42

7

8

"/local/bin" (i-nœud : 42)

etc...

findgrep

5623

3.2)Mise en œuvre du service de répertoires

</head><body><b>clear</b><p>

00 000/0/0

Nom interne(numéro de

Catalogue du disque(sur disque)

i-nœud)

Espace alloué aux fichiers (sur disque)

(UNIX)

34 / 58

Situation SGF SGR Annexes

Plan

1 Gestion des données rémanentes

2 Gestion des fichiers

Interface et modèle

Mise en œuvre du système de gestion de fichiers

3 Organisation des fichiers

Interface

Mise en œuvre du service de gestion de répertoires

4 Annexes

Le sous-système d’E/S d’UNIX BSD

Système de fichiers standard Linux (FSSTND)

Disques physiques

Disques RAID

Sûreté de fonctionnement

Méthodes d’accès

35 / 58

Situation SGF SGR Annexes

Le sous-système d’E/S d’UNIX BSD

But : proposer une interface homogène,

pour masquer les particularités des divers périphériques

! Unix présente les périphériques

à un niveau abstrait comme des fichiers séquentiels avec

lesquels s’échangent des flots.

leur interface recouvre celle des fichiers

prise en compte des particularités

! opération supplémentaire : ioctl()

à un niveau fin, via une table de points d’entrée qui normalise

les opérations réalisées par chaque pilote de périphérique

36 / 58

Page 10: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Identification d’un périphériqueclasse (bloc/caractère)

numéro majeur : identifiant du pilote (type du périphérique)

numéro mineur : identifie un périphérique parmi ceux de son type

Interface pilote/noyauroutines d’initialisation

routines de traitement des interruptions

points d’entrée (opérations d’E/S)

2 tables, en fonction de la classe :

bdevsw : périphériques mode bloc

cdevsw : périphériques mode caractère

Chaque entrée de la table correspond à un pilote (numéro

majeur) et contient une série de pointeurs (points d’entrée) vers

les routines de service du périphérique (accès, contrôle. . . )

Communication avec le systèmetampons (blocs/caractères)

37 / 58

Situation SGF SGR Annexes

Structure et interface

Fichiers -33-DIMA, Systèmes Centralisés (Ph. Mauran)

B - Le sous-système d'E/S d'UNIX BSD

But

Masquer les particularités des divers périphériques

Principe

UNIX présente les périphériques

• à un niveau abstrait comme des fichiers séquentiels avec lesquels s’échangent des flots.

◊ leur interface recouvre celle des fichiers

◊ prise en compte des particularités : ➜ opération supplémentaire : ioctl()…

• à un niveau fin, à travers une table de points d’entrée normalisant et abstrayant les opérations réalisées par chaque pilote de périphérique.

{ aux programmes utilisateurs

au reste du noyau (modularité)

{ proposer une interface homogène

gérer ces périphériques

Fichiers -34-DIMA, Systèmes Centralisés (Ph. Mauran)

Structure et interface

Périphériques bloc• disques, bandes… (taille courante d'un bloc : 512 à 4K octets)• utilisent une antémémoire (un cache) : « tampons de blocs »

Périphériques caractère

• tous les périphériques (sauf les interfaces réseau) qui n'utilisent pas le tampon de blocs : ◊ /dev/mem, /dev/null◊ mémoire virtuelle◊ périphériques blocs disposant d’une interface « brute » (p. ex :/dev/dsk et /dev/rdsk)

• échanges par (flots d’) octets• gestion des tampons par le pilote lui-même• les « vrais »périphériques caractère disposent d’un service de cache : les C-listes

Interface logicielle

Interface matérielle

interfaceréseau

pilotes de périphériques mode bloc

pilotes de périphériques mode caractère

protocoles

sockets fichier simple

SGF

interface données corrigéesinterface

brutegestion du terminal

interface données brutes

interface corrigée

mémoire virtuelle

gestion de l'espace de

swap

Fichiers -35-DIMA, Systèmes Centralisés (Ph. Mauran)

Identification d'un périphérique

• classe (bloc/caractère)

• numéro majeur : identifiant du pilote (type du périphérique)

• numéro mineur : identifiant du périphérique parmi ceux de son type

Interface pilote/noyau

• routines d'initialisation

• routines de traitement des interruptions

• points d'entrée (service des requêtes d'E/S), déterminés par la classe2 tables :

- bdevsw : périphériques mode bloc

- cdevsw : périphériques mode caractèreChaque entrée de la table correspond à un pilote de périphérique (numéro majeur) et contient une série de pointeurs (points d’entrée) vers les routines de service du périphérique (ouverture, fermeture, accès, contrôle…)

Communication avec le système

tampons (blocs/caractères)

Fichiers -36-DIMA, Systèmes Centralisés (Ph. Mauran)

C - Sûreté de fonctionnementBut : garantir l'intégrité des données conservées2 aspects

• fiabilité (résistance aux pannes)

• sécurité (contrôles d'accès, d'intégrité, authentification, confidentialité)

FiabilitéMoyen : redondance

Sauvegarde périodique• différentielle/par incréments :

on ne sauvegarde que les fichiers modifiés depuis la dernière sauvegarde

• complète/de reprise

Principe : combiner plusieurs fréquences de sauvegardeExemple

fréquencequotidiennehebdomadairemensuelle

nature incrémentalecomplètecomplète

conservationsemainemoisan

Périphériques blocdisques, bandes. . . (taille courante d’un bloc : 1Ko-8Ko)

utilisent une antémémoire (un cache) : « tampons de blocs »

Périphériques caractèretous les périphériques (sauf réseau) n’utilisant pas le tampon de blocs

/dev/mem, /dev/nullmémoire virtuelle

interface « brute » pour périphériques blocs (ex : /dev/rdsk)

échanges par (flots d’) octets

gestion des tampons par le pilote lui-même (C-listes) 38 / 58

Situation SGF SGR Annexes

Système de fichiers standard Linux (FSSTND) (man hier)

Cette arborescence définit une organisation type pour les fichiers sous Linux

qui se retrouve, avec quelques variantes, sur la plupart des systèmes Unix.

Principaux répertoires de cette arborescence :

/bin ! programmes et commandes utilisateur de base : cat, cp, mv, rm. . .

/boot ! copie des données utiles au démarrage (blocs d’amorce. . . )

/etc ! fichiers de configuration locaux, comme passwd, group, ou utilisés

parTCP/IP, comme services, inetd.conf, exports

/etc/skel ! répertoire type d’un nouvel utilisateur/etc/rc.d ! scripts appelés par init au démarrage du système/etc/X11 ! fichiers de config. X11 (Xconfig, Xmodmap, xinitrc. . . )

/conf ! fichiers de configuration. Si ce répertoire est présent, les fichiers

de /etc sont des liens vers les fichiers de /conf

/dev ! pilotes de périphériques : console (console système), mouse, hda((1er) disque IDE), . . . ,lp0 ((1ère) imprimante), . . . , null (poubelle (sansretour)), sda (1er) disque SCSI)), sda1 (1ère partition de sda), sda2 (2epartition), . . . , sdb ((2e) disque SCSI), . . . , tty (terminal virtuel). . ./home ! répertoires des utilisateurs. Souvent sur une partition distincte.

/install ! informations sur les programmes installés

/lib ! code des bibliothèques partagées

/mnt ! montage de disquettes, de systèmes de fichiers via NFS. . . 39 / 58

Situation SGF SGR Annexes

/sbin ! commandes de base de démarrage et d’administration système :

fdisk, fsck, getty, init, update, ifconfig, ping, lilo. . .

/tmp ! espace de manœuvre par tous les utilisateurs

/var ! fichiers variant souvent : traces, journaux, spoule (/var/spool/),

verrous (/var/lock/)

/usr ! principaux programmes non nécessaires durant le démarrage.

L’idée est de permettre de partager ce répertoire entre machines.

/usr/bin ! commandes utilisateur et programmes système. La séparation

entre /usr/bin,/bin, et /sbin n’est pas toujours claire : il est préférable que

ces répertoires contiennent des liens réciproques

/usr/bin/X11 ! programmes du système de fenêtrage X

/usr/doc ! documentations qui ne sont pas au format man

/usr/include ! fichiers d’include des bibliothèques C

/usr/lib ! librairies statiques de divers langages, talons de liaison avec les

bibliothèques partagées, et divers fichiers de configuration

/usr/lib/X11 ! données X11 (polices, tables de couleur. . . )

/usr/man ! pages du manuel en ligne

/usr/src ! codes sources des programmes système

/usr/local ! installation de programmes supplémentaires. Comprend

souvent des répertoires bin, etc, include, sda, et man

/usr/TeX ! installation du logiciel d’édition TeX

40 / 58

Page 11: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Plan

1 Gestion des données rémanentes

2 Gestion des fichiers

3 Organisation des fichiers

4 Annexes

Le sous-système d’E/S d’UNIX BSD

Système de fichiers standard Linux (FSSTND)

Disques physiques

Disques RAID

Sûreté de fonctionnement

Méthodes d’accès

41 / 58

Situation SGF SGR Annexes

Disques durs mécaniques

<rédaction réservée>

42 / 58

Situation SGF SGR Annexes

Disques mémoire flash (SSD)

<rédaction réservée>

43 / 58

Situation SGF SGR Annexes

Disques RAID

<rédaction réservée>

44 / 58

Page 12: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Plan

1 Gestion des données rémanentes

2 Gestion des fichiers

3 Organisation des fichiers

4 Annexes

Le sous-système d’E/S d’UNIX BSD

Système de fichiers standard Linux (FSSTND)

Disques physiques

Disques RAID

Sûreté de fonctionnement

Méthodes d’accès

45 / 58

Situation SGF SGR Annexes

Sûreté de fonctionnement

But : garantir l’intégrité des données conservées

fiabilité (résistance aux pannes)

sécurité(contrôles d’accès, intégrité, authentification, confidentialité)

Fiabilité

Moyen : redondance

Sauvegarde périodiquecomplète/de reprise

différentielle/par incréments :

limitée aux fichiers modifiés depuis la dernière sauvegarde

Principe : combiner plusieurs fréquences de sauvegarde

Exemple

Fichiers -36-DIMA, Systèmes Centralisés (Ph. Mauran)

C - Sûreté de fonctionnementBut : garantir l'intégrité des données conservées2 aspects

• fiabilité (résistance aux pannes)

• sécurité (contrôles d'accès, d'intégrité, authentification, confidentialité)

FiabilitéMoyen : redondance

Sauvegarde périodique• différentielle/par incréments :

on ne sauvegarde que les fichiers modifiés depuis la dernière sauvegarde

• complète/de reprise

Principe : combiner plusieurs fréquences de sauvegardeExemple

fréquencequotidiennehebdomadairemensuelle

nature incrémentalecomplètecomplète

conservationsemainemoisan 46 / 58

Situation SGF SGR Annexes

Fiabilité : redondance interne

Principe : fournir plusieurs moyens d’établir une information

Exemplesdupliquer les descripteurs

stocker l’identifiant du fichier dans chacun des blocs du fichier

chaînage double des blocs d’un fichier

RemarquesIl est souvent préférable que les copies soient « éloignées »

Un principe général est de combiner

une information centralisée (efficace) (ex : table d’allocation)

et une information « dispersée » (robuste)

(ex : informations au niveau des blocs)

La redondance peut être exploitée

statiquement (en cas de défaillance)

dynamiquement (calculs d’accès en double)

47 / 58

Situation SGF SGR Annexes

Sécurité

Moyenscryptage + clés (session, fichiers, répertoires, opérations)

listes d’accès

matrice : opérations permises, par utilisateur, et par fichier

raccourcis : droits par défaut, groupes d’utilisateurs

opérations élémentaires (lire/écrire/exécuter. . . )

capacités

clé autorisant l’accès, attribuée en fonction des identificateurs

de l’objet/de l’utilisateur

structure d’une capacité

Fichiers -38-DIMA, Systèmes Centralisés (Ph. Mauran)

SécuritéMoyens

• cryptage + clés (session, fichiers, répertoires, opérations)

• listes d'accès (Matrice : opérations permises, par utilisateur, et par fichier)◊ raccourcis : droits par défaut, groupes d'utilisateurs◊ opérations élémentaires (lire/écrire/exécuter…)

• capacités◊ Clé autorisant l’accès, attribuée en fonction des identificateurs de l’objet/de l’utilisateur◊ Structure d’une capacité :

◊ Pour être efficace, le contrôle des accès devrait avoir lieu à chaque accès (et non à l'ouverture/au premier accès seulement)

droits d'accès identificateurs bits de

contrôle

pour être robuste, le contrôle doit être fait à chaque accès

(et non à l’ouverture/au premier accès seulement)

48 / 58

Page 13: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Mise en œuvre des listes d’accès sous UNIX : ACLs (Access Control Lists)Documentation complémentaire : https://www.usenix.org/legacy/publications/library/proceedings/usenix03/tech/freenix03/full_papers/gruenbacher/gruenbacher_html/main.html

Généralisation du mécanisme de droits d’accès Unix (ugo/rwx)

ObjectifMise en place de politiques de sécurité plus fines :

Possibilité d’allouer des droits distincts au sein d’un même groupe

Allocation de droits sur une base individuelle, pour chaque fichier

InterfaceACL = suite d’Access Control Entries (ACE)

Forme d’une ACE : entrée : [uid/gid] : permissions

Deux commandes :

Lecture : getfacl fichier . . .Mise-à-jour : setfacl -x|-m|-s [ ACL ] fichier . . .

Politique de sécurité : seuls le propriétaire et l’usager rootpeuvent modifier l’ACL d’un fichier

49 / 58

Situation SGF SGR Annexes

ACLs : ACEPermissions classiquesPropriétaire : user : :rwx

Groupe du propriétaire group : :rwx

Autres other : :rwx

Permissions étenduesUsager nommé user : nom :rwx

Groupe nommé group : nom : rwx

Masque mask : :rwx

Rôle du masque : limiter les permissions des usagers/groupes nommés

Héritage d’ACLentre répertoiresdefault : <déclaration d’ACE>

SémantiqueUn répertoire hérite de la liste default à la fois en tant que liste

d’ACL effective et liste default pour lui-même ;

La liste default inhibe le filtre umask.50 / 58

Situation SGF SGR Annexes

ACLs : exemple

$ umask 027

$ mkdir dir

$ ls -dl dir

drwxr-x–- ... agruen suse ... dir

$ getfacl dir

# file: dir

# owner: agruen

# group: suse

user::rwx

group::r-x

other::–-

$ setfacl -m user:joe:rwx dir

$ getfacl –omit-header dir

user::rwx

user:joe:rwx

group::r-x

mask::rwx

other::–-

$ ls -dl dir

drwxrwx–-+ ... agruen suse ... dir

51 / 58

Situation SGF SGR Annexes

Plan

1 Gestion des données rémanentes

2 Gestion des fichiers

3 Organisation des fichiers

4 Annexes

Le sous-système d’E/S d’UNIX BSD

Système de fichiers standard Linux (FSSTND)

Disques physiques

Disques RAID

Sûreté de fonctionnement

Méthodes d’accès

52 / 58

Page 14: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Méthodes d’accès

Objectif

organiser un ensemble de données pour améliorer l’efficacité des accès,

en fonction des patrons (motifs) d’accès aux éléments de cet ensemble

Parcours de l’ensemble complet ! accès séquentiel

Accès « ponctuel »

à des enregistrements identifiés ! accès indexé

par le contenu ! accès associatif (listes inverses)

53 / 58

Situation SGF SGR Annexes

Accès séquentiel

Métaphore : bande magnétique

Structure de données t fileLes enregistrements sont vus comme une suite

Un curseur (ou index) désigne l’enregistrement accessible

Fichiers -28-DIMA, Systèmes Centralisés (Ph. Mauran)

a) Accès séquentiel

Métaphore : bande magnétique

Structure de données ≈ file

• Les enregistrements sont vus comme une suite, sans possibilité d'accès (direct) par l'indice• Un curseur (ou index, ou position courante) désigne l'enregistrement accessible

• Opérations de base :◊ ouverture/revenir_au_début : l'index désigne le premier enregistrement◊ lecture/passer_au_suivant

- renvoie la valeur de l'enregistrement désigné par le curseur (pour la lecture)- l'index progresse d'un élément

◊ ajout/suppression (écriture)- normalement en fin de fichier- certaines organisations offrent la possibilité de positionner librement le curseur et

d’écrire à partir de la position du curseur (flots Unix)

CurseurOpérations de base :

ouverture/revenir_au_début : curseur sur position 1

lecture/passer_au_suivant

renvoie la valeur de l’enregistrement désigné par le curseur

l’index progresse d’une position

ajout/suppression (écriture)

normalement en fin de fichier

certaines organisations offrent la possibilité de fixer la position

du curseur et d’écrire à partir de celle-ci (flots Unix)

54 / 58

Situation SGF SGR Annexes

Accès direct

But : retrouver un enregistrement à partir (d’une partie) de son contenu

Clés ordonnées : accès indexéClé , partie de l’enregistrement qui permet de l’identifier de manière

unique

! accès à l’enregistrement via une table : < clé, adresse >

Fichiers -29-DIMA, Systèmes Centralisés (Ph. Mauran)

b) Accès directBut : retrouver un enregistrement à partir (d'une partie) de son contenu

clés ordonnées : accès indexéClé = partie de l’enregistrement qui permet de l'identifier

➝ pour accéder (lire, écrire…) à un enregistrement, il suffit de fournir sa clé

table : < clé, adresse >

Accélérer la recherche d'une clé ➝ structuration arborescentearbres équilibrés (B-arbres) : hauteur de l'arbre identique pour toutes les branches, même en cas d'ajouts ou de suppressions « déséquilibrés »

clé

Arthur

Bernard

Zoé

adresse

4

2

6

fichier

Accélérer la recherche d’une clé ! structuration arborescentearbres équilibrés (B-arbres) : toutes les branches restent de hauteur

voisine, quelle que soit l’évolution de l’arbre55 / 58

Situation SGF SGR Annexes

Faciliter les accès séquentiels : séquentiel indexé

Fichiers -30-DIMA, Systèmes Centralisés (Ph. Mauran)

Favoriser les accès séquentiels : séquentiel indexé• structuration arborescente

• niveau logique « réduit » (adresses physiques)

• un bloc contient des enregistrements dont les clés se suivent (par rapport aux valeurs existant dans le fichier)

• nombre de niveaux réduit/fixe ➝ zones (blocs) de débordement

zones de débordement(les zones de débordement

d'un même index secondaire peuventéventuellement être chaînées)

index primaire(conservé

en mémoire centrale)

index secondaires clé données

100320……

152…320ZD

225335052……80

93……100

102……152

1267……

…………

clé adresse

5080100ZD

56 / 58

Page 15: Gestion des fichiers Quatrième partie Fichiersmauran.perso.enseeiht.fr/.../cours/Systemes_Centralises/Cours/Fichi… · structure. L’interprétation de ce contenu dépend de l’utilisation

Situation SGF SGR Annexes

Adressage dispersé (hachage, «hash-code»)

But : éviter la gestion/le stockage d’une table ordonnée <clé,adresse>

! déterminer l’adresse à partir de la clé :

adresse = f(clé) (f : fonction de dispersion (de hachage))

IdéalPour un fichier de N enregistrements,

bijection entre les valeurs de clés présentes et 1,2. . . ,N

Réalité : collisions (f non injective)! f renvoie vers une (tête de) liste

Fichiers -31-DIMA, Systèmes Centralisés (Ph. Mauran)

adressage dispersé (hachage, «hash-code»)Idée : obtenir directement l'adresse, à partir de la valeur de la clé

adresse = f(clé) (f : fonction de dispersion (de hachage))

Idéal

Pour un fichier de N enregistrements, bijection entre les valeurs de clés présentes et {1,2…,N}

Pratique Collisions (f non injective) ➝ f renvoie vers une (tête de) liste

Remarques• mod N est une fonction facile à mettre en œuvre• un accès séquentiel est au mieux une suite d'accès directs

f(clé)12………N

enregistrements10182

<info><info>

11 <info>

clé suivant

enregistrements

<info>

Remarque : modulo N est une fonction facile à mettre en œuvre 57 / 58

Situation SGF SGR Annexes

Accès associatif : listes inverses

Généralisation de l’accès indexé : permettre de retrouver les

enregistrements ayant une valeur donnée, pour un champ donné

MultilistePour chacun des champs pour lequel un accès par la valeur est souhaité

ajouter un champ «pointeur » à chaque enregistrement

! une liste regroupe les enregistrements demême valeur

ajouter une table (index«secondaire»)

< valeur, pointeur vers la tête de liste associée à la valeur >

Fichier inverséPour chacun des champs pour lequel un accès par la valeur est souhaité

un index regroupe, pour chaque valeur,

la liste des clés (ou des adresses) des enregistrements dont le

champ possède cette valeur

l’enregistrement ne contient pas de valeur,

mais un pointeur vers l’entrée de l’index contenant la valeur58 / 58