• Aucun résultat trouvé

Syst`emes de fichiers La notion de fichier et de r´epertoire La notion de syst`eme de fichiers

N/A
N/A
Protected

Academic year: 2022

Partager "Syst`emes de fichiers La notion de fichier et de r´epertoire La notion de syst`eme de fichiers"

Copied!
26
0
0

Texte intégral

(1)

Syst `emes de fichiers

La notion de fichier et de r ´epertoire La notion de syst `eme de fichiers mount

Partage et protection

Repr ´esentation des fichiers

Repr ´esentation des r ´epertoires Espace libre

(2)

La notion de fichier

Selon les syst `emes, un fichier peut avoir diff ´erente structure

Aucune: un s ´equence de bytes

Une s ´equence d’enregistrements de taille fixe

Une s ´equence d’enregistrements de taille variable De nos jours, toujours le premier cas

D’autres structures ajout ´ees par dessus (l’insu du SE)

(3)

Attributs d’un fichier

Identifiant: un nombre unique; aussi appel ´e inode Type: fichier simple, r ´epertoire, lien symbolique, ...

Taille

Lieu: o `u trouver ses donn ´ees sur le disque

Dates: cr ´eation, derni `ere modification, dernier acc `es, ...

Protection: possesseur, droits d’acc `es

(4)

Attributs d’un fichier

Identifiant: un nombre unique; aussi appel ´e inode Type: fichier simple, r ´epertoire, lien symbolique, ...

Taille

Lieu: o `u trouver ses donn ´ees sur le disque

Dates: cr ´eation, derni `ere modification, dernier acc `es, ...

Protection: possesseur, droits d’acc `es

Nom: g ´en ´eralement, n’est pas un attribut du fichier!

(5)

Op ´erations sur fichier

Create: g ´en ´eralement commence vide Open: Trouver un fichier pour y op ´erer

Read: Lire un certains nombre de bytes d’un fichier Write: ´Ecrire par dessus, ou ´etendre un fichier

Truncate: Effacer une partie de la fin du fichier Close: Indiquer qu’on a finit d’op ´erer

• read(pos,size)

et

write(pos,size,bptr)

read(size)

et

write(size,bptr)

et

seek(pos)

(6)

Pourquoi Open+Close

Permet de s ´eparer op ´erations co ˆuteuses:

Recherche dans les r ´epertoires

Trouver les m ´eta-donn ´ees du fichier

V ´erification des droits d’acc `es

Permet aussi de maintenir un ´etat entre plusieurs op ´erations

Eviter d’effacer un fichier en cours d’usage´

Garder un pointeur sur la position courante

Eviter l’acc `es concurrent (locking´ )

Donne une certaine information d’intention au SE

(7)

Synchronisation: file locking

Etonnamment probl ´ematique en g ´en ´eral´ Deux approches:

Mandatory: acc `es interdit si on a pas le verrou

Advisory: les verrours sont l `a, si vous voulez les utiliser V ´erouiller le contenu d’un fichier

V ´erouiller le nom d’un fichier (i.e. une entr ´ee de r ´epertoire) V ´erouiller une partie de son contenu (une tranche de bytes)

(8)

R ´epertoire

Le r ´epertoire est une table de traduction nom

fichier Stock ´ee aussi sur le disque

Create: cr ´eation d’une nouvelle entr ´ee

Delete: Enlever une entr ´ee

Lookup/Search: Trouver une entr ´ee

List: ´enum ´erer les entr ´ees de la table

G ´en ´eralement structure hi ´erarchique: un r ´epertoire est un fichier sp ´ecial

MakeDirectory: cr ´eer un nouveau r ´epertoire

(9)

Arbre de fichiers

(10)

Graphe de r ´epertoires

Un fichier peut ˆetre r ´ef ´erenc ´e par plusieurs noms

(11)

Probl `emes de graphes

Lors d’un Delete, v ´erifier si l’objet devient inaccessible

En g ´en ´eral, propri ´et ´e globale: recherche sur tout le disque!

Solution: compteurs de r ´ef ´erences

Ne marche pas en cas de cycle

Interdire les cycles

D ´etecter un cycle, en g ´en ´eral, tr `es co ˆuteux

Une seule r ´ef ´erence par r ´epertoire (

pas de cycles)

Liens symboliques pour compenser

(12)

Partitions et syst `emes de fichiers

Syst `eme de fichiers: arborescence de fichiers sur un disque Appliqu ´e `a un disque logique (e.g. partition)

mount: placer un syst `eme de fichiers dans un autre arbre

Cache une entr ´ee existante par une nouvelle arborescence Action purement en m ´emoire, pas d’effet sur le disque

La mount table associe mount points

syst `eme de fichiers Lors de l’ouverture d’un fichier:

1. Consulter la mount table pour trouver le syst `eme de fichiers 2. Consulter le syst `eme de fichiers pour trouver le fichier

(13)

Avant mount

(14)

Apr `es mount

(15)

Partage et protection

Contr ˆole d’acc `es Contr ˆoler qui:

Certains utilisateur (user ID)

Certains groupes Contr ˆoler quels acc `es:

Lecture, ´Ecriture, Ex ´ecution du fichier/r ´epertoire

Ajout d’une r ´ef ´erence dans un r ´epertoire

Enlever une r ´ef ´erence

(16)

Virtual File System (VFS)

Plusieurs types de syst `emes de fichiers: ext4, tmpfs, ntfs, nfs, hfs, ...

VFS est l’API qui interface le SE avec un syst `eme de fichier particulier S ´eparer op ´erations g ´en ´eriques

Cacher d ´etails d’implantation Modulariser

Sp ´ecifique `a un SE

Un ensemble de types:

file, superbloc, dentry, ...

Un ensemble d’op ´erations:

open, read, link, ...

(17)

Structure d’un syst `eme de fichiers

G ´en ´eralement constitu ´e des ´el ´ements suivants:

blocs: les blocs de donn ´ee

inode: structure d ´ecrivant un fichier; num ´erot ´e

r ´epertoire: type sp ´ecial de fichier

superbloc: structure d ´ecrivant le syst `eme de fichiers

free map: table des blocs libres

indexes: table des blocs constituant un fichier

(18)

Structure d’un r ´epertoire

R ´epertoire est une table String

InodeNb (plus, si entente) Peut ˆetre implant ´e comme:

Liste s ´equentielle d’entr ´ees

Table de hachage

Arbre ´equilibr ´e, e.g. B-Tree

Mais “lin ´earis ´e” en un ensemble de blocs

Important: minimiser le nombre d’acc `es de blocs

Pour la recherche (lookup), surtout

Aussi pour l’insertion et l’ ´elimination d’entr ´ees

(19)

M ´ethodes d’allocation

Comment placer les blocs d’un fichier

Allocation contigu ¨e

Chaˆın ´e

Index

Extents

G ´en ´eralement on veux allouer les blocs de mani `ere contigu ¨e Mais taille du fichier pas connue `a l’avance

(20)

Allocation contigu ¨e

Id ´eal, sauf pour la fragmentation (externe)!

(21)

Allocation en chaˆıne

Inode contient index du premier bloc Chaque bloc contient index du suivant

Pas de probl `eme de fragmentation Pas besoin de compacter

Acc `es direct inefficace

Risque: acc `es s ´equentiel inefficace Compacter n ´ecessaire quand m ˆeme

(22)

Allocation index ´ee

Inode contient un emphindex de tous les blocs

Permet acc `es al ´eatoire efficace

Pas de fragmentation

Ni besoin de compacter

L’index peut occuper plusieurs blocs

Index contigu?

Chaˆın ´e?

Ou index ´e?

(23)

Indexation indirecte progressive

Syst `eme “Unix File System”

(24)

Allocation par extents

Extent: ensemble de blocs contigus

Inode contient liste ou index des extents d’un fichier

Fichier contigu: comme allocation contigu ¨e

Fichier fragment ´e: pire qu’allocation index ´ees Fichiers fragment ´es = probl `eme de toute fac¸on

Profite des efforts de d ´efragmentation des fichiers

En g ´en ´eral, beaucoup plus compact qu’un index classique

Plus compact

plus rapide

(25)

(D ´e)Fragmentation

Allocation par bloc

pas de probl `eme de fragmentation externe Autre Fragmentation: le fait qu’un fichier n’est pas contigu

D ´efragmentation p ´eriodique: pas n ´ecessaire Eviter la fragmentation:´

Comprendre la source de la fragmentation

Placer un nouveau fichier l `a o `u il reste de la place

Eviter de bloquer un fichier encore ouvert avec un nouveau fichier´

Allocation paresseuse

(26)

Gestion des blocs libres

Syst `eme de fichiers doit garder trace des blocs libres Peuvent ˆetre maintenu dans

Une liste chaˆın ´ee

Un bitmap

Extents

Stocker la liste chaˆın ´ee dans les blocs libres!

Liste chaˆın ´ee peu pratique pour trouver des blocs contigus/proches Co ˆut du bitmap n ´egligeable: 1bit/4kB

0.003%

Références

Documents relatifs

timers : expiration d’un timer ou un tick (p ´eriode) d’horloge syst `eme autres p ´eriph ´eriques : touche clavier, clic souris, paquet ethernet,.. Exceptions et Interruptions

– Il ne peut y avoir plus d’un processus dans sa section critique en mˆeme temps – Un processus en dehors de sa section critique ne peut bloquer un autre

Jacques Gangloff (ENSPS) Syst `emes temps r ´eel et syst `emes embarqu ´es Ann ´ee scolaire 2007-2008 1 /

Syst` eme de fichiers = table de i-noeuds (+ arborescence) Informations contenues dans un

Les syst` emes d’exploitation distribu´ es (Distributed Operating Systems ) : ces syst` eme sont con¸ cu pour permettre une migration transparente des processus et des donn´ ees de

[r]

Pour chacune des valeurs propres, d´ eterminer un vecteur propre associ´ e.. b) D´ eterminer une matrice P et une matrice diagonale D telles que C = P

[r]