cours se
Post on 01-Nov-2015
214 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
Cours Systme dexploitation
Niveau : GL2 & IIA2Enseignant : Mona LAROUSSIBureau : 4 A8-28E-mail: mona.laroussi@insat.rnu.tn
-
Chapitre 6
Systmes de fichiers
-
Que cest quun fichier
Collection nomme dinformations apparentes, enregistre sur un stockage secondaire Nature permanente
Les donnes qui se trouvent sur un stockage secondaires doivent tre dans un fichier
Diffrents types: Donnes (binaire, numrique, caractres.) Programmes
-
Structures de fichiers
Aucune squences doctets Texte: Lignes, pages, docs formats Source: classes, mthodes,
procdures Etc.
-
Attributs dun fichierAttributs dun fichier
Constituent les proprits du fichiers et sont stocks dans un fichier spcial appel rpertoire (directory). Exemples dattributs: Nom:
pour permet aux personnes daccder au fichier Identificateur:
Un nombre permettant au SE didentifier le fichier Type:
Ex: binaire, ou texte; lorsque le SE supporte cela Position:
Indique le disque et ladresse du fichier sur disque Taille:
En bytes ou en blocs Protection:
Dtermine qui peut crire, lire, excuter Date:
pour la dernire modification, ou dernire utilisation Autres
-
Oprations sur les fichiers: de base
Cration criture
Pointeur dcriture qui donne la position dcriture
Lecture Pointeur de lecture
Positionnement dans un fichier (temps de recherche) Suppression dun fichier
Libration despace
Troncature: remise de la taille zro tout en conservant les attributs
-
Autres oprations Ajout dinfos Rnommage Copie
peut tre faite par rnommage: deux noms pour un seul fichier
Ouverture dun fichier: le fichier devient associ un processus qui en garde les attributs, position, etc.
Fermeture Ouverture et fermeture peuvent tre explicites (ops
open, close) ou implicites
-
Types de fichiers
-
9Structure logique des fichiersStructure logique des fichiers
Le type dun fichier spcifie sa structure Le SE peut alors supporter les diffrentes structures
correspondant aux types de fichiers Cela complexifie le SE mais simplifie les applications
Gnralement, un fichier est un ensemble denregistrements (records) Chaque enregistrement est constitu dun ensemble de
champs (fields) Un champ peut tre numrique ou chane de chars.
Les enregistrements sont de longueur fixe ou variable (tout dpendant du type du fichier)
Mais pour Unix, MS-DOS et autres, un fichier est simplement une suite doctets byte stream Donc ici, 1 enregistrement = 1 octet Cest lapplication qui interprte le contenu et spcifie
une structure Plus versatile mais plus de travail pour le programmeur
-
Organisation de rpertoires
Efficacit: arriver rapidement un enregistrement
Structure de noms: convenable pour usager deux usagers peuvent avoir le mme noms pour
fichiers diffrents Le mme fichier peut avoir diffrents noms
Groupement de fichiers par type: tous les programmes Java tous les programmes objet
-
Listes et groupes daccs - UNIX Modes d accs: R W E Trois classes d usager:
propritaire groupe public
demander l administrateur de crer un nouveau groupe avec un certain usager et un certain propritaire
droit du propritaire de rgler les droits d accs et d ajouter des nouveaux usagers
-
Listes et groupes daccsListes et groupes daccs
Mode daccs: read, write, execute Trois catgories dusagers:
RWXa) owner access 7 1 1 1
RWXb) group access 6 1 1 0
RWXc) others access 1 0 0 1
Demander au gestionnaire de crer un groupe, disons G, et ajouter des usagers au groupe
Pour un fichier particulier, disons jeux, dfinir un accs appropri owner group public
chmod 761 jeux
Changer le groupe dun fichierchgrp G jeux
-
Chap 11 13
Mthodes daccs
SquentielleIndexe SquentielleIndexeDirecte
-
Chap 11 14
Mthodes daccs: 4 de base
Squentiel (rubans ou disques): lecture ou criture des enregistrements dans un ordre fixe
Index squentiel (disques): accs squentiel ou accs direct (alatoire) par lutilisation dindex
Indexe: multiplicit dindex selon les besoins, accs direct par lindex
Direct ou hache: accs direct travers tableau dhachage
Pas tous les SE supportent les mthodes daccs Quand le SE ne les supporte pas, cest lapplication de
les supporter
-
15
Mthodes daccs aux fichiersMthodes daccs aux fichiers
La structure logique dun fichier dtermine sa mthode daccs Les SE sur les mainframe fournissent gnralement plusieurs
mthodes daccs Car ils supportent plusieurs types de fichiers
Plusieurs SE modernes (Unix, Linux, MS-DOS) fournissent une seule mthode daccs (squentielle) car les fichiers sont tous du mme type (ex: squence doctets) Mais leur mthode dallocation de fichiers (voir + loin) permet
habituellement aux applications daccder aux fichiers de diffrentes manires
Ex: les systmes de gestions de bases de donnes (DBMS) requirent des mthodes daccs plus efficaces que juste squentielle Un DBMS sur un mainframe peut utiliser une structure fournie
par le SE pour accs efficace aux enregistrements. Un DBMS sur un SE qui ne fournit quun accs squentiel doit donc
ajouter une structure aux fichiers de bases de donnes pour accs directs plus rapides.
-
16
Fichiers accs squentiel (archtype: rubans)
bloc bloc
enregistrements
. . . . . .
La seule faon de retourner en arrire est de retourner au dbut (rbobiner, rewind)
En avant seulement, 1 seul enreg. la fois
espace interbloc
. . .
-
17
Lecture physique et lecture logique dans un fichier squentiel
Un fichier squentiel consiste en blocs doctets enregistrs sur un support tel que ruban, disque
La dimension de ces blocs est dicte par les caractristiques du support Ces blocs sont lus (lecture physique) dans un tampon en mmoire Un bloc contient un certain nombre denregistrements (records) qui sont
des units dinformation logiques pour lapplication (un tudiant, un client, un produit) Souvent de longueur et contenu uniformes Tris par une cl, normalement un code (code dtudiant, numro
produit) Une lecture dans un programme lit le prochain enregistrement Cette lecture peut tre ralise par
La simple mise jour dun pointeur si la lecture logique prcdente ne stait pas rendue la fin du tampon
la lecture du proch. bloc (dans un tampon dE/S en mmoire) si la lecture logique prcdente stait rendue la fin du tampon Dans ce cas le pointeur est remis 0
-
Chap 11 18
Autres proprits des fichiers squentiels Pour lcriture, la mme ide: une instruction dcriture
dans un programme cause lajout dun enregistrement un tampon, quand le tampon est plein il y a une criture de bloc
Un fichier squentiel qui a t ouvert en lecture ne peut pas tre crit et vice-versa (impossible de mlanger lectures et critures)
Les fichiers squentiels ne peuvent tre lus ou crits quun enregistrement la fois et seulement dans la direction en avant
-
Chap 11 19
Adressage Index squentiel Adressage Index squentiel (index sequential)(index sequential)
Un index permet darriver directement lenregistrement dsir, ou en sa proximit Chaque enregistrement contient un champ cl Un fichier index contient des repres (pointeurs)
certain points importants dans le fichier principal (p.ex. dbut de la lettre S, dbut des Lalande, dbut des matricules qui commencent par 8)
Le fichier index pourra tre organis en niveaux (p.ex. dans lindex de S on trouve lindex de tous ceux qui commencent par S)
Le fichier index permet darriver au point de repre dans le fichier principal, puis la recherche est squentielle
-
Chap 11 20
Exemples dindex et fichiers relatifs
Pointe au dbut des Smiths (il y en aura plusieurs)
Le fichier index est accs direct, le fichier relatif est accs squentielAccs direct: voir ci-dessous
-
Chap 11 21
Index et fichier principal Index et fichier principal (Stallings)(Stallings)
(Relative file)
Dans cette figure, lindex est tendu plusieurs niveaux, donc il y a un fichier index qui renvoie un autre fichier index, n niveaux
-
Chap 11 22
Pourquoi plusieurs niveaux dindex Un premier niveau dindex pourrait
conduire au dbut de la lettre S Un deuxime niveau au dbut des
Smith, etc. Donc dans le cas de fichiers volumineux
plusieurs niveaux pourraient tre justifis.
-
Chap 11 23
Squentiel et index squentiel: comparaisonSquentiel et index squentiel: comparaison
P.ex. Un fichier contient 1 milliondenregistrements
En moyenne, 500, 000 accs sont ncessaires pour trouver un enregistrement si laccs est squentiel!
Mais dans un squentiel index, sil y a un seul niveau dindices avec 1000 entres (et chaque entre pointe donc 1000 autres),
En moyenne, a prend 500 accs pour trouver le repre appropri dans le fichier index
Puis 500 accs pour trouver squentiellement le bon enregistrement dans le fichier relatif
-
Chap 11 24
Mais besoin de fichier dbordementMais besoin de fichier dbordement
Les nouveaux enregistrements seront ajouts un fichier dbordement
Les enregistrements du fichier principal qui le prcdent dans lordre de tri seront mis jour pour contenir un pointeur au nouveau enregistrement Donc accs additionnels au
fichiers dbordement Priodiquement, le fichier
principal sera fusionn avec le fichier dbordement
-
Chap 11 25
Fichier indexFichier index
Utilise des index multiples pour diffrentes cls, selon les diffrents besoins de consultation
Quelques uns pourraient tre exhaustifs, quelques uns partiels, et organiss de faons diffrentes
-
Chap 11 26
Indexed File (Stallings)Indexed File (Stallings)
-
Chap 11 27
Accs directe (ou relatif)
Fichier est vu comme collection denregistrement logiques de grandeurs fixes Bas sur le modle disque (compos de blocs) Spcifie numro de bloc pour accds donnes Numro souvent relatif (du dbut du fichier)
Ce nest pas tous les SEs qui offres les accs squentiels et directes Facile de simuler laccs squentiel avec laccs directe
Maintient un pointeur cp indiquant la position courante dans un fichier
Linverse est trs difficile
-
28
Utilisation des 4 mthodesUtilisation des 4 mthodes
Squentiel (rubans ou disques): lecture ou criture des enregistrements dans un ordre fixe Pour travaux par lots: salaires, comptabilit priodique
Index squentiel (disques): accs squentiel ou accs direct par lutilisation dindex Pour fichiers qui doivent tre consults parfois de faon squentielle,
parfois de faon directe (p.ex. par nom dtudiant) Indexe: multiplicit dindex selon les besoins, accs direct par
lindex Pour fichiers qui doivent tre consults de faon directe selon des
critres diffrents (p.ex. pouvoir accder aux infos concernant les tudiants par la cte du cours auquel ils sont inscrits)
Direct ou hache: accs direct travers tableau dhachage Pour fichiers qui doivent tre consults de faon directe par une cl
uniforme (p.ex. accs aux information des tudiants par No. de matricule)
-
29
Rpertoires
-
Chap 11 30
Structures de rpertoires (directories) Une collection de structures de donnes contenant infos
sur les fichiers.
F 1 F 2 F 3F 4
F n
Rpertoires
Fichiers
Tant les rpertoires, que les fichiers, sont sur disques lexception dun rp. racine en mm. centrale
-
Chap 11 31
Organisation typique de systme de fichiers
-
Chap 11 32
Information dans un rpertoire
Nom du fichier Type Adresse sur disque,... Longueur courante Longueur maximale Date de dernier accs Date de dernire mise jour Propritaire Protection
-
Chap 11 33
Oprations sur rpertoires
Recherche de fichier Cration de fichier Suppression de fichier Lister un rpertoire Rnommer un fichier Traverser un systme de fichier
-
Chap 11 34
Organisation de rpertoires
Efficacit: arriver rapidement un enregistrement
Structure de noms: convenable pour usager deux usagers peuvent avoir le mme noms
pour fichiers diffrents Le mme fichier peut avoir diffrents noms
Groupement de fichiers par type: tous les programmes Java tous les programmes objet
-
Chap 11 35
Structure un niveau
Un seul rp. pour tous les usagers Ambigut de noms Problmes de groupement Primitif, pas pratique
-
Chap 11 36
Rpertoires deux niveaux
Rp. spar pour chaque usager `path name`, nom de chemin mme nom de fichier pour usagers diffrents est
permis recherche efficace Pas de groupements
-
Chap 11 37
Rpertoires arbres (normal aujourdhui)
-
Chap 11 38
Caractristiques des rpertoires arbres Recherche efficace Possibilit de grouper Repertoire courant (working directory)
cd /spell/mail/prog
-
Chap 11 39
Graphes sans cycles: permettent de partager fichiers
Unix: un symbolic link donne un chemin un fichier ou sous-rpertoire
-
Chap 11 40
Rfrences multiples dans graphes acycliques
Un nud peut avoir deux noms diffrents
Si dict supprime list donc pointeur vers fichier inexistant (danglingpointer). Solutions: Pointeurs en arrire, effacent
tous les pointeurs Compteurs de rfrences (sil y
a encore des refs au fichier, ilne sera pas effac)
Ni Unix ni Microsoft nimplmentent ces politiques, donc messages derreur
Solutions impossibles grer dans un systme fortement reparti (ex: www)
-
Chap 11 41
Graphes avec cycles (structure gnrale)
Presque invitables quand il est permis de pointer un noeud arbitraire de la structure Pourraient tre dtects avec des contrles appropris au moment de la cration d un nouveau pointeurContrles qui ne sont pas faits dans les SE courants
-
Chap 11 42
Considrations dans le cas de cycles
En traversant le graphe, il est ncessaire de savoir si on retombe sur un noeud dj visit
Un noeud peut avoir compteur de ref != 0 en se trouvant dans une boucle de noeuds qui n est pas accessible!
Des algorithmes existent pour permettre de traiter ces cas, cependant ils sont compliqus et ont des temps d excution non-ngligeables, ce qui fait qu ils ne sont pas toujours employs Ramasse-miettes = garbage collection
root Un sous-arbre qui nest pas accessible partir de la racine mais il ne peut pas tre effac en utilisant le critre ref=0 car il fait ref lui-meme!
-
Chap 11 43
Combiner plusieurs systmes de fichier
Le systme de fichier
Rpertoire qui rside dans une partition/appareil spcifique
Pourquoi combiner?
Plusieurs partitions de disques rigides, disquettes, CDROM, disques rseau.
Vision et accs uniforme
Comment?
Attacher un systme de fichier un nud particuler dans la hirarchie du rpertoire.
Windows: systme 2 niveaux attach des lettres dappareils
Unix: opration dattachement explicit (mount), peut attacher un systme de fichier nimporte o dans le rpertoire.
-
Chap 11 44
Attachement du systme de fichier
Un systme de fichier doit tre attach (mounted) avant dtre accd
Un systme de fichier est attacher un point dattachement (mount point)
-
Chap 11 45
(a) Existant. (b) Partition non-attache
-
Chap 11 46
Point dattachement (mount point)
-
Chap 11 47
Partage de fichiers
Dsirable sur les rseaux
Ncessite de protection
-
Chap 11 48
Protection
Types d accs permis lecture criture excution append (annexation) effacement listage: lister les noms et les attributs d un
fichier
Par qui
-
Chap 11 49
Listes et groupes daccs - UNIX
Modes d accs: R W E Trois classes d usager:
propritaire groupe public
demander l administrateur de crer un nouveau groupe avec un certain usager et un certain propritaire
droit du propritaire de rgler les droits d accs et d ajouter des nouveaux
-
Listes et groupes daccsListes et groupes daccs Mode daccs: read, write, execute Trois catgories dusagers:
RWXa) owner access 7 1 1 1
RWXb) group access 6 1 1 0
RWXc) others access 1 0 0 1
Demander au gestionnaire de crer un groupe, disons G, et ajouter des usagers au groupe
Pour un fichier particulier, disons jeux, dfinir un accsappropri
owner group public
chmod 761 jeux
Changer le groupe dun fichierchgrp G jeux
-
Mthodes dallocation
-
Structures de systmes de fichiers
Structure de fichiers: deux faons de voir un fichier: unit dallocation espace collection d informations relies
Le systme de fichiers rside dans la mmoire secondaire: disques, rubans...
File control block: structure de donnes contenant de l info sur un fichier
-
Trois mthodes dallocation de fichiers
Allocation contiguAllocation enchaneAllocation indexe
-
Allocation contigu sur disquerpertoire
-
Allocation contigu
Chaque fichier occupe un ensemble de blocs contigu sur disque
Simple: nous navons besoin que dadresses de dbut et longueur
Supporte tant laccs squentiel, que laccs direct
Moins pratique pour les autres mthodes
-
Allocation contigu
Application des problmes et mthodes vus dans le chapitre de lalloc de mmoire contigu
Les fichiers ne peuvent pas grandir Impossible dajouter au milieu Excution priodique dune compression
(compaction) pour rcuprer lespace libre
-
Allocation enchane
Le rpertoire contient l adresse du premier et dernier bloc, possibl. le nombre de blocs
Chaque bloc contient un pointeur ladresse du prochain bloc:
pointeurbloc =
-
Allocation enchanerpertoire
-
Tableau dallocation de fichiers
-
Avantages - inconvnients
Pas de fragmentation externe - allocation de mmoire simple, pas besoin de compression
L accs l intrieur d un fichier ne peut tre que squentiel Pas faon de trouver directement le 4me
enregistrement... Nutilise pas la localit car les enregistrements
seront parpills L intgrit des pointeurs est essentielle Les pointeurs gaspillent un peu d espace
-
Allocation indexe: semblable la pagination
Tous les pointeurs sont regroups dans un tableau (index block)
index table
-
Allocation indexe
-1: pointeur nul
-
Allocation indexe
la cration d un fichier, tous les pointeurs dans le tableau sont nil (-1)
Chaque fois quun nouveau bloc doit tre allou, on trouve de l espace disponible et on ajoute un pointeur avec son adresse
-
Allocation indexe
Pas de fragmentation externe, mais les index prennent de lespace
Permet accs direct (alatoire) Taille de fichiers limite par la taille de
lindex block Mais nous pouvons avoir plusieurs niveaux
dindex: Unix Index block peut utiliser beaucoup de
mmoire
-
UNIX BSD: index niveaux (config. possible)
12 blocs disque de 4K chaque
1024 blocs de 4K chaque
1024x1024 blocs de 4K
Bloc de 4K contient 1024 pointeurs
Ce rpertoire est en mmoire, tous les autres sont sur disque
-
Gestion de lespace libre
-
Gestion despace libre Solution 1: vecteur de bits (solution Macintosh, Windows 2000)
0 1 2 n-1
bit[i] =
0 block[i] libre
1 block[i] occup
Exemple dun vecteur de bits o les blocs 3, 4, 5, 9, 10, 15, 16 sont occups: 00011100011000011
Ladresse du premier bloc libre peut tre trouve par un simple calcul
-
Gestion despace libreSolution 2: Liste lie de mmoire libre (MS-DOS, Windows 9x)
Tous les blocs de mmoire libre sont lis ensemble par des pointeurs
-
Table d'allocation des fichiers
Une variation de l'allocation lie est d'utiliser une table d'allocation des fichiers (FAT).
- Utilis par MS-DOS et OS/2.- Une partie du disque est rserve pour stocker la table qui
contient les pointeurs vers tous les fichiers de la partition.- Chaque entre dans la FAT correspond un bloc sur le
disque. Chaque entre contient le pointeur vers le bloc suivant du fichier.
- Une valeur spciale indique la fin du fichier.- Une entre nulle signifie un bloc inutilis.
-
Table d'allocation (2)
Les FATs sont stockes en mmoire tant que le SE est actif
-
Utilis pour grer les problmes lis aux deux autres mthodes.
Similaire l'allocation lie mais tous les pointeurs sont stocks ensembles dans un bloc spcial (index block)
Allocation indexe
-
Exemple
-
Inodes Une structure qui contient la description
du fichier : Type Droits d'accs Possesseurs Dates de modifications Taille Pointeurs vers les blocs de donnes
Les inodes sont stocks en mmoire tant que le fichier est ouvert
-
Inodes (2)
inode
infos
Blocs directs Indirection simple
Indirection double
-
Rpertoires Structurs dans/par l'arborescence Chaque rpertoire peut contenir des fichiers et
des rpertoires Un rpertoire est juste un fichier de type
spcial Fonctions spciales pour accder un
rpertoire Chaque entre de rpertoire contient le nom du
fichier et son inode Le noyau recherche l'arborescence pour convertir
le nom de fichier en un numro d'inode.
-
Directory diagram
Table des inodes
i1 Fichier1i2 Fichier2i3 Fichier3i4 fichier4
Rpertoire
-
La cohrence
Un systme de fichiers est cohrent sil est capable de restituer lutilisateur ses fichiers et ses rpertoires dans ltat o il les a laisss.
Parmi les utilitaires dun systme dexploitation, on trouve un utilitaire de vrification et de correction des erreurs au niveau du systme de fichiers tel que scandisk pour Windows.
Du point de vue pratique, ces utilitaires examinent les SDD du systme dexploitation et corrigent les erreurs quil peuvent y trouver.
La vrification concerne les blocs appartenant aux fichiers ou libres, et ltat des rpertoires.
Les tableaux qui suivent illustrent un cas dincohrence obtenu avec un utilitaire dUnix qui compte le nombre de fois o un bloc est trouv libre ou occup :
-
Numros des blocs0123456789101112131415Tableau des blocs libres1101021110011100Tableau des blocs utiliss0000200001100011Quand le SGF est cohrent, chaque bloc apparat une fois au maximum soit dans le premier tableau soit dans le second.
Le second utilitaire vrifie les I-Nodes. Son rle consiste parcourir tous les rpertoires en partant de la racine et construire un tableau o le contenu dune case est le nombre de fois o un I-Node est rfrenc.
Lorsquun fichier est partag par un lien physique son numro dI-Node apparat dans un autre rpertoire.
Pour vrifier la cohrence, on compare la valeur obtenue avec le compteur de liens dans chaque I-Node.
-
79
Enregistrements logiques et physiquesUn enregistrement logique est un ensemble de donnes ayant unsens pour lutilisateur. Un fichier est une suite denregistrementslogiques.Un enregistrement physique, aussi appel bloc, est lunit destockage manipule par le systme. Avec les disques, cette unit destockage est un secteur ou un multiple de cette taille. On lappelleunit dallocation, parfois Cluster.Les blocs peuvent tre plus grands ou plus petits que les enre-gistrements logiques dcids par le programmeur. Le systme peutenregistrer plusieurs enregistrements logiques de petite taille dans unseul bloc, ou peut avoir besoin de plusieurs blocs pour enregistrer degrands enregistrements logiques.
Gestion de fichiers
-
80
Les blocs physiques sont numrots par le systme et formentla base de toute structure de fichier.Le caractre (octet, byte) est la plus petite quantit dinformationmanipule par le systme. Un fichier, vu par le systme, est doncun ensemble de blocs de taille fixe, chacun tant constitu dunesuite de caractres.
Gestion de fichiers
-
81
Le systme doit connatre lemplacement sur disque (numro decylindre, piste et secteur) de chaque bloc.La premire ide qui vient lesprit est de placer le fichier dansdes blocs conscutifs. Cette approche nest pas raliste comptetenu de laccroissement et des modifications des fichiers.On peut gagner en flexibilit en adoptant une structure de blocsdans laquelle chaque bloc contient un pointeur indiquant lempla-cement du bloc suivant. Cette approche facilite les modificationset laccroissement, mais alourdit la recherche dun enregistre-ment, qui devient squentielle.
Gestion des ressources disques
-
82
Une possibilit est dutiliser une table de pointeurs contenantles indications ncessaires pour dterminer lemplacement dunbloc cherch.Il y a deux stratgies possibles : une table par unit de disque,ou une table par fichier. Dans le premier cas, il faut charger enmmoire la table contenant les pointeurs de tous les fichiers dudisque. Dans le second, on ne garde en mmoire que la tabledes fichiers ouverts.Un autre problme est celui de lallocation de lespace disque.Le systme tient jour des tables facilitant la recherche desecteurs disponibles. Deux possibilits sont courammentutilises : une table dallocation, ou un bitmap.
Gestion des ressources disques
-
83
Table dallocation
Piste Secteur Nombre de secteursallouables conscutivement
0 0 50 10 31 3 52 0 32 7 6 ...
Gestion des ressources disques
-
84
Bitmap
Gestion des ressources disques
0 1 2 3 4 5 6 7 8 9 10 11 120 0 0 0 0 0 1 1 1 1 1 0 0 01 1 1 1 0 0 0 0 0 1 1 1 1 12 0 0 0 1 1 1 1 0 0 0 0 0 03 0 0 0 0 1 1 1 1 0 0 1 1 14 1 1 0 0 1 1 0 0 0 0 1 0 05 1 1 1 1 0 0 0 0 0 0 0 1 1
PistesSecteurs
0 = libre, 1 = occup
-
85
Le lien entre le nom dun fichier et sa localisation sur disque estralis laide dune table de correspondance appele rpertoire(directory).On peut concevoir des rpertoires un seul niveau, i.e.contenant le nom de tous les fichiers du disque, ou plusieursniveaux, permettant chaque utilisateur dorganiser ses fichiersde faon hirarchique au moyen de sous-rpertoires.
Rpertoires
-
86
Structure d un disque souple
Piste0
Secteur 123456789
10 11 12 13 14 15 16 17 18
BOOTFAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT1 FAT2 FAT2 FAT2 FAT2 FAT2 FAT2 FAT2 FAT2
1FAT2DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR
u.a. 2 u.a. 3 u.a. 4
2u.a. 5
678....
Dbu t des donnes del'utilisateur
-
87
ExtensionAttribut
RservNom(en ASCII)Statut
Rserv Heure DateNo. dela1eu.a.
Tailledu fichier
0 7 9 15
16 21 23 25 27 31
Attributs:1 = Lecture seulement2 = Fichier cach4 = Fichier syst me8 = Nom du volume16 = Sous-r pertoire32 = Archive
-
88
Table dallocation de fichiers (FAT)
FF FF
Type dedisque
No.de l'u.a.suivante dufichier ou:000=libreFF8-FFF=dernire u.a. d'un fichierFF7=non lisible
0 1 2 3 4 5 6 7 8 9U.a. No.
Dans la FAT originale de DOS, on navait que 12 bits par entre. Ceci limitait la taille du disque 4095 u.a.Par exemple, 4096 u.a. de 512 octets = 2 Mo.
-
89
On peut grossir la taille des units dallocation, mais la pertedespace par fichier augmente en consquence. En moyenne,cette perte est de 1/2 u.a. par fichier.
Depuis ce temps, on a eu la FAT16, avec 16 bits par entre, etsur les disques durs on utilise aujourdhui la FAT32 avec 32 bitspar entre.Windows NT et Windows 2000 utilisent un nouveau systme defichiers beaucoup plus performant appel NTFS.
-
90
Unix a t dvelopp par Bell Laboratories partir de 1970 parKen Thompson et Dennis Ritchie. Ce systme a t missuccessivement sur PDP-7, 9 et 11, puis sur VAX, et enfin surdes machines base de microprocesseur MC68000. Aujourdhui,il fonctionne sur les stations de travail avec des micro-processeurs RISC.
En l979, on en est rendu la version 7, la mieux connue. En1982 apparat le SYSTEM III, puis en 1983 le SYSTEM V suivantla politique de distribution commerciale de AT&T.
Exemple : UNIX
-
91
Depuis 1991, le phnomne Linux a fait son apparition. Il s'agitd'un UNIX de domaine public pour micro-ordinateur initialementcrit par un tudiant en informatique finlandais, Linus Torvalds.
Il a t port sur plusieurs plates-formes, notamment : Intel80x86, PowerPC, Alpha, Amiga, etc. Sa conception est moderneet c'est elle que nous examinerons ici.
Exemple : UNIX
-
92
Sous Unix, un fichier est une squence linaire de mots de 8bits, de 1 octet 1000 Mo. L'usager visualise le fichier commeune squence linaire et peut atteindre n'importe quel octet dufichier soit de faon absolue, soit en spcifiant une positionrelative par rapport la position courante, ou encore par rapport la fin du fichier.
partir d'une position quelconque, on peut lire un nombrequelconque d'octets.
Exemple : UNIX
-
93
Exemple : UNIXUnit d'allocation : bloc de 512 octets 1024 octets pour le SYSTEM V et le systme 4.1 de Berkeley. 4096 octets pour la version 4.2,
1 Ko 4 Ko pour Linux.
-
94
chaque fichier (y compris les rpertoires qui sont galementdes fichiers et les priphriques, que Unix considre comme desfichiers spciaux) on associe un inode (i-node ou index-node)dans lequel on peut trouver les informations suivantes :- le propritaire (user ID, group ID)- les protections (code de 16 bits)- les dates (cration, derniremodification)- les liens vers d'autres nuds-i(nombre de rpertoires qui contiennent ce fichier)- le type de fichier (donnes,rpertoire, priphrique)- les adresses disques des blocs dedonnes (13)- la longueur du fichier en octets.
Exemple : UNIX
-
95
Exemple : UNIX
0 Type et permissions Utilisateur (UID) Taille du fi chier8 Heure et da te d 'accs Heure et da te de cration
16 Heure et da te de modification Heure et da te d 'effacement24 Groupe (GID) Compteur de liens Nb. de blocs32 Attributs du fichier Rserv40 1e bloc 2e bloc48 3e bloc 4e bloc56 5e bloc 6e bloc64 7e bloc 8e bloc72 9e bloc 10e bloc80 11e bloc 12e bloc88 Bloc de 1e indirection Bloc de 2e indirection96 Bloc de 3e indirection Version du fichier
104 ACL du fichier ACL du rpertoire112 Adresse de fragment Rserv120 Rserv
AC L = Ac cess Control List, pas enco re implment
-
96
Exemple : UNIX
Dans Linux, la taille dun inode est de 128 octets.
Dans le systme de fichiers Ext2 adopt par la plupart dessystmes Linux, le disque est divis en groupes de blocs.Chaque groupe de blocs contient un superbloc, des descripteursde groupe, un bitmap de blocs, un bitmap d'inodes, une tabled'inodes et des blocs de donnes. Les bitmaps occupent chacun1 bloc ou u.a. Ceci limite donc la taille des groupes 8 192blocs pour des blocs de 1 Ko. ou 32 768 blocs pour des blocs de4 Ko. Les inodes sont rpartis galement parmi les groupes deblocs. Le nombre d'inodes par groupe ne peut non plus dpasserles nombres ci-dessus.
-
97
Exemple : UNIX
Bloc 0
Blocdamorce
Groupe de blocs 0 Groupe de blocs 1 Groupe de blocs n
Chaque groupe de blocs contient une copie du superbloc, des inodes et des blocs de donnes :
Super-bloc
Descripteursde groupe
Bitmapde blocs
Bitmapd'inodes
Tabled'inodes
Blocs de donnes
-
98
Exemple : UNIX
Le superbloc contient le nombre d'inodes et le nombre de blocsdans le systme de fichiers. Il contient aussi de l'information surle nombre d'inodes et de blocs par groupe de blocs.
Le descripteur de groupe est une structure de 32 octets donnantle nombre de blocs dans le bitmap d'inodes, dans le bitmap deblocs et dans la table d'inodes, le nombre d'inodes libres, lenombre de blocs libres et le nombre de rpertoires. Cettedernire information est utile au systme qui tente rpartir lesrpertoires parmi les diffrents groupes de blocs. Il allouera doncun nouveau rpertoire dans le groupe qui en a le moins.
Cette organisation permet aux inodes d'tre voisines des blocsauxquels elles font rfrence, et aux inodes d'tre voisines deleur inode de rpertoire, ce qui permet un accs plus rapide.
-
99
Exemple : UNIX
Dans chaque inode, on trouve 15 adresses disque en termes deno de blocs. Les 12 premires adresses d'une inode permettentd'atteindre un espace donnes de :
12 1024 octets = 12 288 octets.
La 13e adresse disque pointe vers un autre bloc de 1024 octetsqui contient 256 adresses disque (4 octets par adresse), soit :
256 1024 octets = 262144 octets.
La 14e adresse disque pointe vers 256 blocs indirects(indirection d'ordre 2) qui pointent leur tour chacun vers 256adresses disques :
256 256 1024 octets = 67108 864 octets.
-
100
Exemple : UNIX
La 15e adresse disque est une indirection d'ordre 3, ce quipermet aux fichiers Linux d'atteindre des tailles avoisinant
256 256 256 1024 octets = 17 179 869 184 octets.
La taille maximale d'un tel fichier sera donc :
17 179 869 184 + 67 108 864 + 262 144 + 12 288 Go.
Cette implantation privilgie, du point de vue accs, les fichiersde petite taille (12 Ko). l'ouverture, le premier descripteur dufichier (inode) est copi en mmoire. Lorsqu'on franchit le cap de12 288 octets, le systme d'exploitation copie le premier blocindirect, et ainsi de suite.
-
101
Exemple : UNIXPour savoir o se trouve l'octet n d'un fichier,: si n < 12 288, il se trouve dans le bloc direct n / 1024 l'offset
n mod 1024. si n >12 288 et n 262 144, il se trouve dans le bloc donn par
la table de premire indirection (n - 12 288) / 1024 l'offset : (n - 12 288) mod 1024,
etc.
-
102
Exemple : UNIX
Ext2 tente de minimiser la fragmentation des fichiers lors del'allocation des blocs. Il cherche des blocs libres autour d'un bloccible. Si ce dernier est libre, il est allou. Sinon, on cherche unbloc libre dans les 32 entourant le bloc cible. Si on en trouve un,il est allou. Sinon, on cherche un bloc libre qui soit au moinsdans le mme groupe de blocs que le bloc cible. Il y a plusieursheuristiques pour la dfinition du bloc cible. L'un d'entre eux estde prendre le premier bloc libre dans le groupe de blocs o setrouve l'inode du fichier.
Lorsqu'un bloc libre est trouv, on rserve les 8 blocs suivants,s'ils sont libres. Quand le fichier sera ferm, les blocs rservsrestants seront librs.
-
103
Exemple : UNIXRpertoires
Les entres d'un rpertoire Linux sont de longueur variable parce queles noms de fichier peuvent aller de 1 caractre 255 caractres. Ils'agit en fait d'une liste chane, puisque le champ longueur de l'entre(rec_len), toujours arrondi vers le haut un multiple de 4, donne en faitla position de l'entre suivante.
Octets 4 2 2 1 255rec_len name_len Nom du fichier
No. d'inode longueur longueurde l'entre du nom
-
104
Exemple : UNIX
inode rec_len name_len Entre
3 12 1 . Pointeur vers lui-mme2 12 2 .. Pointeur vers son parent11 20 9 Fichier 1
2017 12 4 Toto
123 1 . 2120
12 2 ..24
2011 9 Fichier 144
122017 4 Toto56
-
105
Exemple : UNIXRpertoires
Chaque rpertoire ne peut avoir qu'un parent. Le rpertoireracine n'a pas de parent et son pointeur parent contient lui-mme, c.--d. le #2.
Lorsqu'un fichier est effac, le numro d'inode de l'entre derpertoire est mis 0 et l'entre est limine de la liste chaneen augmentant le champ rec_len de l'entre prcdente pourqu'elle pointe l'entre suivante.
-
2) le SGF dUNIX (1/3)
* Structure hirarchique
* 4 types de fichiers:ordinaires: suite octetscatalogues: nuds de larbre de cette structureliens: pointent vers fichierspciaux: accs aux priphriques
-
2) le SGF dUNIX (2/3)
Fichier et structure inode:
1) Type (parmi les 4)2) Taille3) Date4) Permission5) Propritaire6) Localisation des donnes
-
Micro$oft en 1988
* Mieux que la FAT du Dos/Windows
* Mieux que HPFS de OS/2
New Technology File System (NTFS)
le SGF de Windows NT
* Logical Cluster Numbers (LCN)* Virtual Cluster Number (VCN)
-
Master File Table...
le SGF de Windows NT
-
File Record ...
le SGF de Windows NT
* Resident* Non Resident
* Attribute header* Attribute value
-
File Record Sample...
3) le SGF de Windows NT (4/5)
-
MFT in action !
Mais elle ressemble quoi cette
MST ? MFT ?
-
La comparaison...
-
Feature XFS UFS VxFS NTFS
Max FS Size 18 million TB 1 TB 1 TB 2 TB
Max File Size 9 million TB 1 TB 1 TB 2 TB
File SpaceAllocation
Extents Blocks Extents Extents
Max. Extent Size 4 GB NA 64 MB Undocd
Free SpaceMgmt
Free extentsorganized by
B+ trees
Bitmap percylinder grp
Bitmap perallocation unit
Single bitmap
Variable BlockSize?
512 bytes to 64KB
4KB or 8KB 512 bytes to64KB (4KB w/compression)
Sparse FileSupport?
Yes Yes No NT 5.0
DirectoryOrganization
B+ Tree Linear Hashed B+ tree
Inode allocation Dynamic Static Dynamic Dynamic
Crash Recovery Asynch.Journal
Fsck* Synch. Journal Synch. Journal
MaximumPerformance
7GB/sec
4GB/sec (singlefile)
Not Available 1GB/sec Not Available
-
chapitre dernier (rsum)
Structure de mmoire de masse (disques)
-
Disques magntiques
Plats rigides couverts de matriaux d enregistrement magntique surface du disque divise en pistes (tracks)
qui sont divises en secteurs le contrleur disque dtermine l`interaction
logique entre l unit et l ordinateur
-
Ordonnancement disques
Problme: utilisation optimale du matriel
Rduction du temps total de lecture disque tant donn une file de requtes de lecture
disque, dans quel ordre les excuter?
-
Paramtres prendre en considration
Temps de positionnement (seek time): le temps pris par l`unit disque pour
se positionner sur le cylindre dsir Temps de latence de rotation
le temps pris par l unit de disque qui est sur le bon cylindre pour se positionner sur le secteur dsire
Temps de lecture temps ncessaire pour lire la piste
Le temps de positionnement est normalement le plus important, donc il est celui que nous chercherons minimiser
-
File dattente disque
Dans un systme multiprogramm avec mmoire virtuelle, il y aura normalement une file dattente pour l unit disque
Dans quel ordre choisir les requtes d oprations disques de faon minimiser les temps de recherche totaux
Nous tudierons diffrents mthodes par rapport une file d attente arbitraire:
98, 183, 37, 122, 14, 124, 65, 67 Chaque chiffre est un numro squentiel de cylindre Il faut aussi prendre en considration le cylindre de dpart: 53 Dans quel ordre excuter les requtes de lecture de faon
minimiser les temps totaux de positionnement cylindre Hypothse simpliste: un dplacement d`1 cylindre cote 1 unit
de temps
-
Premier entr, premier sorti: FIFO
Mouvement total: 640 cylindres = (98-53) + (183-98)+...En moyenne: 640/8 = 80
axe de rotation45
85
14685
108
11059
2
-
SSTF: Shortest Seek Time FirstPlus court dabord
chaque moment, choisir la requte avec le temps de recherche le plus court partir du cylindre courant
Clairement meilleur que le prcdent Mais pas ncessairement optimal! (v.
manuel) Peut causer famine
-
SSTF: Plus court servi
Mouvement total: 236 cylindres (680 pour le prcdent)En moyenne: 236/8 = 29.5 (80 pour le prcdent)
-
SCAN: lalgorithme de lascenseur La tte balaye le disque dans une
direction, puis dans la direction oppose, etc., en desservant les requtes quand il passe sur le cylindre dsir Pas de famine
-
SCAN: l ascenseur
Mouvement total: 208 cylindresEn moyenne: 208/8 = 26 (29.5 pour SSTF)
direction
-
Problmes du SCAN
Peu de travail faire aprs le renversement de direction
Les requtes seront plus denses lautre extrmit
Arrive inutilement jusqu 0
-
C-SCAN
Retour rapide au dbut (cylindre 0) du disque au lieu de renverser la direction
Hypothse: le mcanisme de retour est beaucoup plus rapide que le temps de visiter les cylindres Comme si les disques taient en forme de cercle!
CC--LOOKLOOK La mme ide, mais au lieu de retourner au
cylindre 0, retourner au premier cylindre qui a une requte
-
C-LOOK
153 sans considrer le retour (19.1 en moyenne) (26 pour SCAN)MAIS 322 avec retour (40.25 en moyenne)Normalement le retour sera rapide donc le cot rel sera entre les deux
retour: 169 (??)
direction
-
C-LOOK avec direction initiale oppose
direction
Rsultats trs semblables:157 sans considrer le retour, 326 avec le retour
Retour 169
top related