Cours Système d’exploitation
Niveau : GL2 & IIA2
Enseignant : Mona LAROUSSI
Bureau : 4 A8-28
E-mail: mona.laroussi@insat.r...
Chapitre 6
Systèmes de fichiers
Que c’est qu’un fichier


Collection nommée d’informations
apparentées, enregistrée sur un stockage
secondaire





Na...
Structures de fichiers

Aucune – séquences d’octets…
 Texte: Lignes, pages, docs formatés
 Source: classes, méthodes,
pr...
Attributs d’un fichier



Constituent les propriétés du fichiers et sont stockés dans un fichier spécial
appelé répertoir...
Opérations sur les fichiers: de base



Création
Écriture




Lecture





Pointeur de lecture

Positionnement dans...
Autres opérations




Ajout d’infos
Rénommage
Copie







peut être faite par rénommage: deux noms pour un seul
f...
Types de fichiers
Structure logique des fichiers


Le type d’un fichier spécifie sa structure
 Le SE peut alors supporter les différentes ...
Organisation de répertoires



Efficacité: arriver rapidement à un
enregistrement
Structure de noms: convenable pour usa...
Listes et groupes d’accès - UNIX



Modes d ’accès: R W E
Trois classes d ’usager:








propriétaire
groupe
publ...
Listes et groupes d’accès







Mode d’accès: read, write, execute
Trois catégories d’usagers:
RWX
a) owner access
7
...
Méthodes d’accès
Séquentielle
Indexée Séquentielle
Indexée
Directe

Chap 11

13
Méthodes d’accès: 4 de base






Séquentiel (rubans ou disques): lecture ou écriture
des enregistrements dans un ord...
Méthodes d’accès aux fichiers







La structure logique d’un fichier détermine sa méthode d’accès
Les SE sur les « m...
Fichiers à accès séquentiel
(archétype: rubans)

La seule façon de retourner
en arrière est de retourner au
début (rébobin...
Lecture physique et lecture logique dans un
fichier séquentiel








Un fichier séquentiel consiste en blocs d’oct...
Autres propriétés des fichiers
séquentiels


Pour l’écriture, la même idée: une instruction d’écriture
dans un programme ...
Adressage Indexé séquentiel (index sequential)


Un index permet d’arriver directement à
l’enregistrement désiré, ou en s...
Exemples d’index et fichiers
relatifs

Pointe au début des Smiths (il y en aura plusieurs)
Le fichier index est à accès di...
Index et fichier principal (Stallings)
Dans cette figure, l’index est étendu à
plusieurs niveaux, donc il y a un fichier
i...
Pourquoi plusieurs niveaux
d’index
Un premier niveau d’index pourrait
conduire au début de la lettre S
 Un deuxième nivea...
Séquentiel et index séquentiel: comparaison






P.ex. Un fichier contient 1 million
d’enregistrements
En moyenne, 500...
Mais… besoin de fichier débordement




Les nouveaux enregistrements
seront ajoutés à un fichier
débordement
Les enregis...
Fichier indexé




Utilise des index multiples pour différentes
clés, selon les différents besoins de
consultation
Quelq...
Indexed File (Stallings)

Chap 11

26
Accès directe (ou relatif)


Fichier est vu comme collection d’enregistrement
logiques de grandeurs fixes






Basé ...
Utilisation des 4 méthodes


Séquentiel (rubans ou disques): lecture ou écriture des
enregistrements dans un ordre fixe
...
Répertoires

29
Structures de répertoires (directories)


Une collection de structures de données contenant infos
sur les fichiers.
Réper...
Organisation typique de système de fichiers

Chap 11

31
Information dans un répertoire










Nom du fichier
Type
Adresse sur disque,...
Longueur courante
Longueur ma...
Opérations sur répertoires
Recherche de fichier
 Création de fichier
 Suppression de fichier
 Lister un répertoire
 Ré...
Organisation de répertoires
Efficacité: arriver rapidement à un
enregistrement
 Structure de noms: convenable pour
usager...
Structure à un niveau
Un seul rép. pour tous les usagers
 Ambiguïté de noms
 Problèmes de groupement
 Primitif, pas pra...
Répertoires à deux niveaux






Rép. séparé pour chaque usager
`path name`, nom de chemin
même nom de fichier pour u...
Répertoires à arbres (normal
aujourd’hui)

Chap 11

37
Caractéristiques des répertoires
à arbres
Recherche efficace
 Possibilité de grouper
 Repertoire courant (working direct...
Graphes sans cycles: permettent de
partager fichiers

Unix: un symbolic link donne un chemin à un fichier ou sousrépertoir...
Références multiples dans graphes
acycliques
Un nœud peut avoir deux noms
différents
 Si dict supprime list donc pointeur...
Graphes avec cycles (structure
générale)

• Presque inévitables quand il est permis de pointer à un noeud arbitraire de la...
Considérations dans le cas de
cycles
En traversant le graphe, il est nécessaire de savoir si on retombe
sur un noeud déjà ...
Combiner plusieurs systèmes de
fichier
Le système de fichier


Répertoire qui réside dans une partition/appareil spécifiq...
Attachement du système de
fichier
Un système de fichier doit être
attaché (mounted) avant d’être
accédé
 Un système de fi...
(a) Existant. (b) Partition nonattachée

Chap 11

45
Point d’attachement (mount
point)

Chap 11

46
Partage de fichiers



Désirable sur les réseaux



Nécessite de protection

Chap 11

47
Protection


Types d ’accès permis
lecture
 écriture
 exécution
 append (annexation)
 effacement
 listage: lister le...
Listes et groupes d’accès - UNIX
Modes d ’accès: R W E
 Trois classes d ’usager:


propriétaire
 groupe
 public


dem...
Listes et groupes d’accès







Mode d’accès: read, write, execute
Trois catégories d’usagers:
RWX
a) owner access
7
...
Méthodes d’allocation
Structures de systèmes de fichiers


Structure de fichiers: deux façons de voir un
fichier:
 unité d’allocation espace
...
Trois méthodes d’allocation de
fichiers
 Allocation

contiguë
 Allocation enchaînée
 Allocation indexée
Allocation contiguë sur disque
répertoire
Allocation contiguë
Chaque fichier occupe un ensemble de
blocs contigu sur disque
 Simple: nous n’avons besoin que
d’adre...
Allocation contiguë

Application des problèmes et méthodes
vus dans le chapitre de l’alloc de
mémoire contiguë
 Les fichi...
Allocation enchaînée
Le répertoire contient l ’adresse du
premier et dernier bloc, possibl. le
nombre de blocs
 Chaque bl...
Allocation enchaînée
répertoire
Tableau d’allocation de fichiers
Avantages - inconvénients



Pas de fragmentation externe - allocation de
mémoire simple, pas besoin de compression
L ’a...
Allocation indexée: semblable à la
pagination


Tous les pointeurs sont regroupés dans
un tableau (index block)

index ta...
Allocation indexée

-1: pointeur nul
Allocation indexée
À la création d ’un fichier, tous les
pointeurs dans le tableau sont nil (-1)
 Chaque fois qu’un nouve...
Allocation indexée
Pas de fragmentation externe, mais les
index prennent de l’espace
 Permet accès direct (aléatoire)
 T...
UNIX BSD: indexé à niveaux
(config. possible)
Ce répertoire est en mémoire, tous les
autres sont sur disque

12 blocs disq...
Gestion de l’espace libre
Gestion d’espace libre
Solution 1: vecteur de bits (solution Macintosh, Windows 2000)
0 1

2

n-1

bit[i] =





…

1 ...
Gestion d’espace libre
Solution 2: Liste liée de mémoire libre (MS-DOS, Windows 9x)

Tous les blocs de mémoire libre sont ...
Table d'allocation des fichiers
 Une variation de l'allocation liée est d'utiliser
une table d'allocation des fichiers (F...
Table d'allocation (2)


Les FATs sont stockées en mémoire tant
que le SE est actif
Allocation indexée



Utilisé pour gérer les problèmes liés aux
deux autres méthodes.
Similaire à l'allocation liée mais...
Exemple
Inodes


Une structure qui contient la description
du fichier :
Type
 Droits d'accès
 Possesseurs
 Dates de modificati...
Inodes (2)
inode
Blocs directs
infos

Indirection
simple

Indirection
double
Répertoires





Structurés dans/par l'arborescence
Chaque répertoire peut contenir des fichiers et
des répertoires
Un...
Directory diagram
Table des inodes

Répertoire

i1 Fichier1
i2 Fichier2
i3 Fichier3
i4 fichier4
La cohérence









Un système de fichiers est cohérent s’il est capable de restituer à
l’utilisateur ses fichiers ...
Numéros des blocs0123456789101112131415Tableau des blocs
libres1101021110011100Tableau des blocs
utilisés0000200001100011Q...
Gestion
Enregistrements

de fichiers

logiques et physiques
Un enregistrement logique est un ensemble de données ayant ...
Gestion de fichiers
Les

blocs physiques sont numérotés par le système et forment
la base de toute structure de fichier.
...
Gestion des ressources disques
Le

système doit connaître l’emplacement sur disque (numéro de
cylindre, piste et secteur)...
Gestion des ressources disques
Une

possibilité est d’utiliser une table de pointeurs contenant
les indications nécessair...
Gestion des ressources disques
Table

d’allocation

Piste
0
0
1
2
2
…

83

Secteur
0
10
3
0
7
…

Nombre de secteurs
allou...
Gestion des ressources disques
Bitmap

Secteurs
Pistes
0
1
2
3
4
5

0
0
1
0
0
1
1

1
0
1
0
0
1
1

2
0
1
0
0
0
1

3
0
0
1
...
Répertoires
Le

lien entre le nom d’un fichier et sa localisation sur disque est
réalisé à l’aide d’une table de correspo...
Structure

d ’un disque souple
Piste

0
Secteur 1 BOOT
2 FAT1
3 FAT1
4 FAT1
5 FAT1
6 FAT1
7 FAT1
8 FAT1
9 FAT1
10 FAT1
11...
0

Statut

7

Nom
(en ASCII)

16

87

AttributsŹ
:
1 = Lecture seulement
2 = Fichier cachˇ
4 = Fichier syst¸ me
8 = Nom du...
Table

0

d’allocation de fichiers (FAT)

1
FF FF

Type de
disque

2

3

U.a. No.
4
5

6

7

8

9

No.de l'u.a.
suivante ...
On

peut grossir la taille des unités d’allocation, mais la perte
d’espace par fichier augmente en conséquence. En moyenn...
Exemple : UNIX
Unix a été développé par Bell Laboratories à partir de 1970 par
Ken Thompson et Dennis Ritchie. Ce système ...
Exemple : UNIX

Depuis

1991, le phénomène Linux a fait son apparition. Il s'agit
d'un UNIX de domaine public pour micro-...
Exemple : UNIX


Sous

Unix, un fichier est une séquence linéaire de mots de 8
bits, de 1 octet à 1000 Mo. L'usager visu...

Exemple

: UNIX
Unité d'allocation : bloc de 512 octets

1024 octets pour le SYSTEM V

et le système 4.1 de Berkeley...
Exemple

: UNIX


À

chaque fichier (y compris les répertoires qui sont également
des fichiers et les périphériques, qu...

Exemple

0
8
16
24
32
40
48
56
64
72
80
88
96
104
112
120

: UNIX

Type et permissions
Utilisateur (UID)
Heure et da te...

Exemple
Dans
Dans

: UNIX

Linux, la taille d’un inode est de 128 octets.

le système de fichiers Ext2 adopté par la ...

Exemple

: UNIX

Bloc 0
Bloc
d’amorce

Groupe de blocs 0

Groupe de blocs 1

…

Groupe de blocs n

Chaque groupe de blo...

Exemple

: UNIX

Le

superbloc contient le nombre d'inodes et le nombre de blocs
dans le système de fichiers. Il conti...

Exemple

: UNIX

Dans chaque inode, on trouve
no de blocs. Les 12 premières

15 adresses disque en termes de
adresses ...

Exemple

: UNIX

15e adresse disque est une indirection d'ordre 3, ce qui
permet aux fichiers Linux d'atteindre des tai...

 Exemple

: UNIX
 Pour savoir où se trouve l'octet n d'un fichier,:
° si n < 12 288, il se trouve dans le bloc direct ...

Exemple

: UNIX

Ext2

tente de minimiser la fragmentation des fichiers lors de
l'allocation des blocs. Il cherche des...

Exemple

: UNIX
Répertoires
Les

entrées d'un répertoire Linux sont de longueur variable parce que
les noms de fichie...

Exemple

: UNIX

0

12
3

12 1 .

24
2

12 2 ..

11

44
56
20 9 Fichier 1 2017 12 4 Toto

inode

rec_len

name_len

Ent...

Exemple

: UNIX
Répertoires
Chaque

répertoire ne peut avoir qu'un parent. Le répertoire
racine n'a pas de parent et ...
2) le SGF d’UNIX (1/3)

* Structure hiérarchique
* 4 types de fichiers:
ordinaires: suite octets
catalogues: nœuds de l’ar...
2) le SGF d’UNIX (2/3)
Fichier et structure inode:
1) Type (parmi les 4)
2) Taille
3) Date
4) Permission
5) Propriétaire
6...
le SGF de Windows NT
Micro$oft en 1988…
* Mieux que la FAT du Dos/Windows
* Mieux que HPFS de OS/2
New Technology File Sys...
le SGF de Windows NT
Master File Table...
le SGF de Windows NT
File Record ...

* Resident
* Non Resident
* Attribute header
* Attribute value
3) le SGF de Windows NT
(4/5) Record Sample...
File
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...
chapitre dernier (résumé)
Structure de mémoire de masse
(disques)
Disques magnétiques


Plats rigides couverts de matériaux
d ’enregistrement magnétique
surface du disque divisée en piste...
Ordonnancement disques
Problème: utilisation optimale du
matériel
 Réduction du temps total de lecture
disque




étant...
Paramètres à prendre en considération
Temps de positionnement (seek time):
 le temps pris par l`unité disque pour
se posi...
File d’attente disque
Dans un système multiprogrammé avec mémoire virtuelle, il y
aura normalement une file d’attente pour...
Premier entré, premier sorti: FIFO

axe de
rotation

45
85
146
85
108
110
59
2

Mouvement total: 640 cylindres = (98-53) +...
SSTF: Shortest Seek Time First
Plus court d’abord

À chaque moment, choisir la requête
avec le temps de recherche le plus ...
SSTF: Plus court servi

Mouvement total: 236 cylindres (680 pour le précédent)
En moyenne: 236/8 = 29.5 (80 pour le précéd...
SCAN: l’algorithme de
l’ascenseur


La tête balaye le disque dans une
direction, puis dans la direction opposée,
etc., en...
SCAN: l ’ascenseur
direction

Mouvement total: 208 cylindres
En moyenne: 208/8 = 26 (29.5 pour SSTF)
Problèmes du SCAN
Peu de travail à faire après le
renversement de direction
 Les requêtes seront plus denses à
l’autre ex...
C-SCAN



Retour rapide au début (cylindre 0) du disque
au lieu de renverser la direction
Hypothèse: le mécanisme de ret...
C-LOOK
direction 

retour: 169 (??)
153 sans considérer le retour (19.1 en moyenne) (26 pour SCAN)
MAIS 322 avec retour (...
C-LOOK avec direction initiale opposée
direction

Retour 169

Résultats très semblables:
157 sans considérer le retour, 32...
Prochain SlideShare
Chargement dans…5
×

Cours système d’exploitation partie3

2 614 vues

Publié le

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 614
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
117
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Cours système d’exploitation partie3

  1. 1. Cours Système d’exploitation Niveau : GL2 & IIA2 Enseignant : Mona LAROUSSI Bureau : 4 A8-28 E-mail: mona.laroussi@insat.rnu.tn
  2. 2. Chapitre 6 Systèmes de fichiers
  3. 3. Que c’est qu’un fichier  Collection nommée d’informations apparentées, enregistrée sur un stockage secondaire    Nature permanente Les données qui se trouvent sur un stockage secondaires doivent être dans un fichier Différents types:   Données (binaire, numérique, caractères….) Programmes
  4. 4. Structures de fichiers Aucune – séquences d’octets…  Texte: Lignes, pages, docs formatés  Source: classes, méthodes, procédures…  Etc. 
  5. 5. Attributs d’un fichier  Constituent les propriétés du fichiers et sont stockés dans un fichier spécial appelé répertoire (directory). Exemples d’attributs:  Nom:   Identificateur:   Détermine qui peut écrire, lire, exécuter… Date:   En bytes ou en blocs Protection:   Indique le disque et l’adresse du fichier sur disque Taille:   Ex: binaire, ou texte; lorsque le SE supporte cela Position:   Un nombre permettant au SE d’identifier le fichier Type:   pour permet aux personnes d’accéder au fichier pour la dernière modification, ou dernière utilisation Autres…
  6. 6. Opérations sur les fichiers: de base   Création Écriture   Lecture    Pointeur de lecture Positionnement dans un fichier (temps de recherche) Suppression d’un fichier   Pointeur d’écriture qui donne la position d’écriture Libération d’espace Troncature: remise de la taille à zéro tout en conservant les attributs
  7. 7. Autres opérations    Ajout d’infos Rénommage Copie      peut être faite par rénommage: deux noms pour un seul fichier Ouverture d’un 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
  8. 8. Types de fichiers
  9. 9. Structure logique des fichiers  Le type d’un fichier spécifie sa structure  Le SE peut alors supporter les différentes structures correspondant aux types de fichiers   Cela complexifie le SE mais simplifie les applications Généralement, un fichier est un ensemble d’enregistrements (records)  Chaque enregistrement est constitué d’un ensemble de champs (fields)  Un champ peut être numérique ou chaîne de chars. Les enregistrements sont de longueur fixe ou variable (tout dépendant du type du fichier) Mais pour Unix, MS-DOS et autres, un fichier est simplement une suite d’octets « byte stream »  Donc ici, 1 enregistrement = 1 octet  C’est l’application qui interprète le contenu et spécifie une structure  Plus versatile mais plus de travail pour le programmeur   9
  10. 10. Organisation de répertoires   Efficacité: arriver rapidement à un enregistrement Structure de noms: convenable pour usager    deux usagers peuvent avoir le même noms pour fichiers différents Le même fichier peut avoir différents noms Groupement de fichiers par type:   tous les programmes Java tous les programmes objet
  11. 11. Listes et groupes d’accès - UNIX   Modes d ’accès: R W E Trois classes d ’usager:      propriétaire groupe public demander à l ’administrateur de créer un nouveau groupe avec un certain usager et un certain propriétaire droit du propriétaire de régler les droits d ’accès et d ’ajouter des nouveaux usagers
  12. 12. Listes et groupes d’accès     Mode d’accès: read, write, execute Trois catégories d’usagers: RWX a) owner access 7  111 RWX b) group access 6  110 RWX c) others access 1  001 Demander au gestionnaire de créer un groupe, disons G, et ajouter des usagers au groupe Pour un fichier particulier, disons jeux, définir un accès owner group public approprié chmod 761 jeux Changer le groupe d’un fichier chgrp G jeux
  13. 13. Méthodes d’accès Séquentielle Indexée Séquentielle Indexée Directe Chap 11 13
  14. 14. Méthodes d’accès: 4 de base      Séquentiel (rubans ou disques): lecture ou écriture des enregistrements dans un ordre fixe Indexé séquentiel (disques): accès séquentiel ou accès direct (aléatoire) par l’utilisation d’index Indexée: multiplicité d’index selon les besoins, accès direct par l’index Direct ou hachée: accès direct à travers tableau d’hachage Pas tous les SE supportent les méthodes d’accès  Quand le SE ne les supporte pas, c’est à l’application de les supporter Chap 11 14
  15. 15. Méthodes d’accès aux fichiers     La structure logique d’un fichier détermine sa méthode d’accès Les SE sur les « mainframe » fournissent généralement plusieurs méthodes d’accès  Car ils supportent plusieurs types de fichiers Plusieurs SE modernes (Unix, Linux, MS-DOS…) fournissent une seule méthode d’accès (séquentielle) car les fichiers sont tous du même type (ex: séquence d’octets)  Mais leur méthode d’allocation de fichiers (voir + loin) permet habituellement aux applications d’accéder aux fichiers de différentes manières Ex: les systèmes de gestions de bases de données (DBMS) requièrent des méthodes d’accès plus efficaces que juste séquentielle  Un DBMS sur un « mainframe » peut utiliser une structure fournie par le SE pour accès efficace aux enregistrements.  Un DBMS sur un SE qui ne fournit qu’un accès séquentiel doit donc « ajouter » une structure aux fichiers de bases de données pour accès directs plus rapides. 15
  16. 16. Fichiers à accès séquentiel (archétype: rubans) La seule façon de retourner en arrière est de retourner au début (rébobiner, rewind) bloc En avant seulement, 1 seul enreg. à la fois bloc ... ... ... enregistrements espace interbloc 16
  17. 17. Lecture physique et lecture logique dans un fichier séquentiel       Un fichier séquentiel consiste en blocs d’octets enregistrés sur un support tel que ruban, disque… La dimension de ces blocs est dictée par les caractéristiques du support Ces blocs sont lus (lecture physique) dans un tampon en mémoire Un bloc contient un certain nombre d’enregistrements (records) qui sont des unités d’information logiques pour l’application (un étudiant, un client, un produit…)  Souvent de longueur et contenu uniformes  Triés par une clé, normalement un code (code d’étudiant, numéro produit…) Une lecture dans un programme lit le prochain enregistrement Cette lecture peut être réalisée par  La simple mise à jour d’un pointeur si la lecture logique précédente ne s’était pas rendue à la fin du tampon  la lecture du proch. bloc (dans un tampon d’E/S en mémoire) si la lecture logique précédente s’était rendue à la fin du tampon  Dans ce cas le pointeur est remis à 0 17
  18. 18. Autres propriétés des fichiers séquentiels  Pour l’écriture, la même idée: une instruction d’écriture dans un programme cause l’ajout d’un enregistrement à un tampon, quand le tampon est plein il y a une écriture de bloc  Un fichier séquentiel qui a été ouvert en lecture ne peut pas être écrit et vice-versa (impossible de mélanger lectures et écritures)  Les fichiers séquentiels ne peuvent être lus ou écrits qu’un enregistrement à la fois et seulement dans la direction ‘en avant’ Chap 11 18
  19. 19. Adressage Indexé séquentiel (index sequential)  Un index permet d’arriver directement à l’enregistrement désiré, ou en sa proximité Chaque enregistrement contient un champ clé  Un fichier index contient des repères (pointeurs) à certain points importants dans le fichier principal (p.ex.  début de la lettre S, début des Lalande, début des matricules qui commencent par 8) Le fichier index pourra être organisé en niveaux (p.ex. dans l’index de S on trouve l’index de tous ceux qui commencent par S)  Le fichier index permet d’arriver au point de repère dans le fichier principal, puis la recherche est séquentielle  Chap 11 19
  20. 20. Exemples d’index et fichiers relatifs Pointe au début des Smiths (il y en aura plusieurs) Le fichier index est à accès direct, le fichier relatif est à accès séquentiel Accès direct: voir ci-dessous Chap 11 20
  21. 21. Index et fichier principal (Stallings) Dans cette figure, l’index est étendu à plusieurs niveaux, donc il y a un fichier index qui renvoie à un autre fichier index, n niveaux (Relative file) Chap 11 21
  22. 22. Pourquoi plusieurs niveaux d’index Un premier niveau d’index pourrait conduire au début de la lettre S  Un deuxième niveau au début des Smith, etc.  Donc dans le cas de fichiers volumineux plusieurs niveaux pourraient être justifiés.  Chap 11 22
  23. 23. Séquentiel et index séquentiel: comparaison    P.ex. Un fichier contient 1 million d’enregistrements En moyenne, 500, 000 accès sont nécessaires pour trouver un enregistrement si l’accès est séquentiel! Mais dans un séquentiel indexé, s’il y a un seul niveau d’indices avec 1000 entrées (et chaque entrée pointe donc à 1000 autres),   En moyenne, ça prend 500 accès pour trouver le repère approprié dans le fichier index Puis 500 accès pour trouver séquentiellement le bon enregistrement dans le fichier relatif Chap 11 23
  24. 24. Mais… besoin de fichier débordement   Les nouveaux enregistrements seront ajoutés à un fichier débordement Les enregistrements du fichier principal qui le précèdent dans l’ordre de tri seront mis à jour pour contenir un pointeur au nouveau enregistrement   Donc accès additionnels au fichiers débordement Périodiquement, le fichier principal sera fusionné avec le fichier débordement Chap 11 24
  25. 25. Fichier indexé   Utilise des index multiples pour différentes clés, selon les différents besoins de consultation Quelques uns pourraient être exhaustifs, quelques uns partiels, et organisés de façons différentes Chap 11 25
  26. 26. Indexed File (Stallings) Chap 11 26
  27. 27. Accès directe (ou relatif)  Fichier est vu comme collection d’enregistrement logiques de grandeurs fixes     Basé sur le modèle disque (composé de blocs) Spécifie numéro de bloc pour accédés données Numéro souvent relatif (du début du fichier) Ce n’est pas tous les SEs qui offres les accès séquentiels et directes  Facile de simuler l’accès séquentiel avec l’accès directe   Maintient un pointeur cp indiquant la position courante dans un fichier L’inverse est très difficile Chap 11 27
  28. 28. Utilisation des 4 méthodes  Séquentiel (rubans ou disques): lecture ou écriture des enregistrements dans un ordre fixe   Indexé séquentiel (disques): accès séquentiel ou accès direct par l’utilisation d’index   Pour fichiers qui doivent être consultés parfois de façon séquentielle, parfois de façon directe (p.ex. par nom d’étudiant) Indexée: multiplicité d’index selon les besoins, accès direct par l’index   Pour travaux ‘par lots’: salaires, comptabilité périodique… Pour fichiers qui doivent être consultés de façon directe selon des critères différents (p.ex. pouvoir accéder aux infos concernant les étudiants par la côte du cours auquel ils sont inscrits) Direct ou hachée: accès direct à travers tableau d’hachage  Pour fichiers qui doivent être consultés de façon directe par une clé uniforme (p.ex. accès aux information des étudiants par No. de matricule) 28
  29. 29. Répertoires 29
  30. 30. Structures de répertoires (directories)  Une collection de structures de données contenant infos sur les fichiers. Répertoires Fichiers F1 F2 F3 F4 Fn   Tant les répertoires, que les fichiers, sont sur disques À l’exception d’un rép. racine en mém. centrale Chap 11 30
  31. 31. Organisation typique de système de fichiers Chap 11 31
  32. 32. Information dans un répertoire          Nom du fichier Type Adresse sur disque,... Longueur courante Longueur maximale Date de dernier accès Date de dernière mise à jour Propriétaire Protection Chap 11 32
  33. 33. Opérations sur répertoires Recherche de fichier  Création de fichier  Suppression de fichier  Lister un répertoire  Rénommer un fichier  Traverser un système de fichier  Chap 11 33
  34. 34. Organisation de répertoires Efficacité: arriver rapidement à un enregistrement  Structure de noms: convenable pour usager  deux usagers peuvent avoir le même noms pour fichiers différents  Le même fichier peut avoir différents noms   Groupement de fichiers par type: tous les programmes Java Chap 11  tous les programmes objet  34
  35. 35. Structure à un niveau Un seul rép. pour tous les usagers  Ambiguïté de noms  Problèmes de groupement  Primitif, pas pratique  Chap 11 35
  36. 36. Répertoires à deux niveaux      Rép. séparé pour chaque usager `path name`, nom de chemin même nom de fichier pour usagers différents est permis recherche efficace Pas de groupements Chap 11 36
  37. 37. Répertoires à arbres (normal aujourd’hui) Chap 11 37
  38. 38. Caractéristiques des répertoires à arbres Recherche efficace  Possibilité de grouper  Repertoire courant (working directory)   cd /spell/mail/prog Chap 11 38
  39. 39. Graphes sans cycles: permettent de partager fichiers Unix: un symbolic link donne un chemin à un fichier ou sousrépertoire Chap 11 39
  40. 40. Références multiples dans graphes acycliques Un nœud peut avoir deux noms différents  Si dict supprime list donc pointeur vers fichier inexistant (dangling pointer). Solutions:  Pointeurs en arrière, effacent tous les pointeurs  Compteurs de références (s’il y a encore des refs au fichier, il ne sera pas effacé)  Ni Unix ni Microsoft n’implémentent ces politiques, donc messages d’erreur  Solutions impossibles à gérer dans un système fortement Chap 11 reparti (ex: www)  40
  41. 41. Graphes avec cycles (structure générale) • Presque inévitables quand il est permis de pointer à un noeud arbitraire de la structure • Pourraient être détectés avec des contrôles appropriés au moment de la création d ’un nouveau pointeur •Contrôles qui ne sont pas faits dans les SE courants Chap 11 41
  42. 42. Considérations dans le cas de cycles En traversant le graphe, il est nécessaire de savoir si on retombe sur un noeud déjà 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 compliqués et ont des temps d ’exécution nonnégligeables, ce qui fait qu’ ils ne sont pas toujours employés  Ramasse-miettes = garbage collection  root Un sous-arbre qui n’est pas accessible à partir de la racine mais il ne peut pas être effacé en utilisant le critère ref=0 car il fait ref à lui-meme! Chap 11 42
  43. 43. Combiner plusieurs systèmes de fichier Le système de fichier  Répertoire qui réside dans une partition/appareil spécifique Pourquoi combiner?  Plusieurs partitions de disques rigides, disquettes, CDROM, disques réseau.  Vision et accès uniforme Comment?  Attacher un système de fichier à un nœud particuler dans la hiérarchie du répertoire.  Windows: système à 2 niveaux – attaché à des lettres d’appareils  Unix: opération d’attachement explicit (mount), peut attacher un système de fichier n’importe où dans le répertoire. 43 Chap 11
  44. 44. Attachement du système de fichier Un système de fichier doit être attaché (mounted) avant d’être accédé  Un système de fichier est attacher à un point d’attachement (mount point)  Chap 11 44
  45. 45. (a) Existant. (b) Partition nonattachée Chap 11 45
  46. 46. Point d’attachement (mount point) Chap 11 46
  47. 47. Partage de fichiers  Désirable sur les réseaux  Nécessite de protection Chap 11 47
  48. 48. Protection  Types d ’accès permis lecture  écriture  exécution  append (annexation)  effacement  listage: lister les noms et les attributs d ’un fichier   Par qui Chap 11 48
  49. 49. Listes et groupes d’accès - UNIX Modes d ’accès: R W E  Trois classes d ’usager:  propriétaire  groupe  public  demander à l ’administrateur de créer un nouveau groupe avec un certain usager et un certain propriétaire  droit du propriétaire de régler les droits d ’accès et d ’ajouter des nouveaux  Chap 11 49
  50. 50. Listes et groupes d’accès     Mode d’accès: read, write, execute Trois catégories d’usagers: RWX a) owner access 7  111 RWX b) group access 6  110 RWX c) others access 1  001 Demander au gestionnaire de créer un groupe, disons G, et ajouter des usagers au groupe Pour un fichier particulier, disons jeux, définir un accès approprié owner group chmod 761 public jeux Changer le groupe d’un fichier chgrp G jeux
  51. 51. Méthodes d’allocation
  52. 52. Structures de systèmes de fichiers  Structure de fichiers: deux façons de voir un fichier:  unité d’allocation espace  collection d ’informations reliées Le système de fichiers réside dans la mémoire secondaire: disques, rubans...  File control block: structure de données contenant de l ’info sur un fichier 
  53. 53. Trois méthodes d’allocation de fichiers  Allocation contiguë  Allocation enchaînée  Allocation indexée
  54. 54. Allocation contiguë sur disque répertoire
  55. 55. Allocation contiguë Chaque fichier occupe un ensemble de blocs contigu sur disque  Simple: nous n’avons besoin que d’adresses de début et longueur  Supporte tant l’accès séquentiel, que l’accès direct  Moins pratique pour les autres méthodes 
  56. 56. Allocation contiguë Application des problèmes et méthodes vus dans le chapitre de l’alloc de mémoire contiguë  Les fichiers ne peuvent pas grandir  Impossible d’ajouter au milieu  Exécution périodique d’une compression (compaction) pour récupérer l’espace libre 
  57. 57. Allocation enchaînée Le répertoire contient l ’adresse du premier et dernier bloc, possibl. le nombre de blocs  Chaque bloc contient un pointeur à l’adresse du prochain bloc:  bloc = pointeur
  58. 58. Allocation enchaînée répertoire
  59. 59. Tableau d’allocation de fichiers
  60. 60. Avantages - inconvénients   Pas de fragmentation externe - allocation de mémoire simple, pas besoin de compression L ’accès à l ’intérieur d ’un fichier ne peut être que séquentiel     Pas façon de trouver directement le 4ème enregistrement... N’utilise pas la localité car les enregistrements seront éparpillés L ’intégrité des pointeurs est essentielle Les pointeurs gaspillent un peu d ’espace
  61. 61. Allocation indexée: semblable à la pagination  Tous les pointeurs sont regroupés dans un tableau (index block) index table
  62. 62. Allocation indexée -1: pointeur nul
  63. 63. Allocation indexée À la création d ’un fichier, tous les pointeurs dans le tableau sont nil (-1)  Chaque fois qu’un nouveau bloc doit être alloué, on trouve de l ’espace disponible et on ajoute un pointeur avec son adresse 
  64. 64. Allocation indexée Pas de fragmentation externe, mais les index prennent de l’espace  Permet accès direct (aléatoire)  Taille de fichiers limitée par la taille de l’index block    Mais nous pouvons avoir plusieurs niveaux d’index: Unix Index block peut utiliser beaucoup de mémoire
  65. 65. UNIX BSD: indexé à niveaux (config. possible) Ce répertoire est en mémoire, tous les autres sont sur disque 12 blocs disque de 4K chaque 1024 blocs de 4K chaque 1024x 1024 blocs de 4K Bloc de 4K contient 1024 pointeurs
  66. 66. Gestion de l’espace libre
  67. 67. Gestion d’espace libre Solution 1: vecteur de bits (solution Macintosh, Windows 2000) 0 1 2 n-1 bit[i] =   … 1  block[i] occupé Exemple d’un vecteur de bits où les blocs 3, 4, 5, 9, 10, 15, 16 sont occupés:   0  block[i] libre 00011100011000011… L’adresse du premier bloc libre peut être trouvée par un simple calcul
  68. 68. Gestion d’espace libre Solution 2: Liste liée de mémoire libre (MS-DOS, Windows 9x) Tous les blocs de mémoire libre sont liés ensemble par des pointeurs
  69. 69. Table d'allocation des fichiers  Une variation de l'allocation liée est d'utiliser une table d'allocation des fichiers (FAT). - - - Utilisé par MS-DOS et OS/2. Une partie du disque est réservée pour stocker la table qui contient les pointeurs vers tous les fichiers de la partition. Chaque entrée dans la FAT correspond à un bloc sur le disque. Chaque entrée contient le pointeur vers le bloc suivant du fichier. Une valeur spéciale indique la fin du fichier. Une entrée nulle signifie un bloc inutilisé.
  70. 70. Table d'allocation (2)  Les FATs sont stockées en mémoire tant que le SE est actif
  71. 71. Allocation indexée   Utilisé pour gérer les problèmes liés aux deux autres méthodes. Similaire à l'allocation liée mais tous les pointeurs sont stockés ensembles dans un bloc spécial (index block)
  72. 72. Exemple
  73. 73. Inodes  Une structure qui contient la description du fichier : Type  Droits d'accès  Possesseurs  Dates de modifications  Taille  Pointeurs vers les blocs de données   Les inodes sont stockés en mémoire tant que le fichier est ouvert
  74. 74. Inodes (2) inode Blocs directs infos Indirection simple Indirection double
  75. 75. Répertoires     Structurés dans/par l'arborescence Chaque répertoire peut contenir des fichiers et des répertoires Un répertoire est juste un fichier de type spécial Fonctions spéciales pour accéder à un répertoire   Chaque entrée de répertoire contient le nom du fichier et son inode Le noyau recherche l'arborescence pour convertir le nom de fichier en un numéro d'inode.
  76. 76. Directory diagram Table des inodes Répertoire i1 Fichier1 i2 Fichier2 i3 Fichier3 i4 fichier4
  77. 77. La cohérence      Un système de fichiers est cohérent s’il est capable de restituer à l’utilisateur ses fichiers et ses répertoires dans l’état où il les a laissés. Parmi les utilitaires d’un système d’exploitation, on trouve un utilitaire de vérification et de correction des erreurs au niveau du système de fichiers tel que scandisk pour Windows. Du point de vue pratique, ces utilitaires examinent les SDD du système d’exploitation et corrigent les erreurs qu’il peuvent y trouver. La vérification concerne les blocs appartenant aux fichiers ou libres, et l’état des répertoires. Les tableaux qui suivent illustrent un cas d’incohérence obtenu avec un utilitaire d’Unix qui compte le nombre de fois où un bloc est trouvé libre ou occupé :
  78. 78. Numéros des blocs0123456789101112131415Tableau des blocs libres1101021110011100Tableau des blocs utilisés0000200001100011Quand le SGF est cohérent, chaque bloc apparaît une fois au maximum soit dans le premier tableau soit dans le second.  Le second utilitaire vérifie les I-Nodes. Son rôle consiste à parcourir tous les répertoires en partant de la racine et à construire un tableau où le contenu d’une case est le nombre de fois où un I-Node est référencé.  Lorsqu’un fichier est partagé par un lien physique son numéro d’INode apparaît dans un autre répertoire.  Pour vérifier la cohérence, on compare la valeur obtenue avec le compteur de liens dans chaque I-Node. 
  79. 79. Gestion Enregistrements de fichiers logiques et physiques Un enregistrement logique est un ensemble de données ayant un sens pour l’utilisateur. Un fichier est une suite d’enregistrements logiques. Un enregistrement physique, aussi appelé bloc, est l’unité de stockage manipulée par le système. Avec les disques, cette unité de stockage est un secteur ou un multiple de cette taille. On l’appelle unité d’allocation, parfois Cluster. Les blocs peuvent être plus grands ou plus petits que les enregistrements logiques décidés par le programmeur. Le système peut enregistrer plusieurs enregistrements logiques de petite taille dans un seul bloc, ou peut avoir besoin de plusieurs blocs pour enregistrer de grands enregistrements logiques. 79
  80. 80. Gestion de fichiers Les blocs physiques sont numérotés par le système et forment la base de toute structure de fichier. Le caractère (octet, byte) est la plus petite quantité d’information manipulée par le système. Un fichier, vu par le système, est donc un ensemble de blocs de taille fixe, chacun étant constitué d’une suite de caractères. 80
  81. 81. Gestion des ressources disques Le système doit connaître l’emplacement sur disque (numéro de cylindre, piste et secteur) de chaque bloc. La première idée qui vient à l’esprit est de placer le fichier dans des blocs consécutifs. Cette approche n’est pas réaliste compte tenu de l’accroissement et des modifications des fichiers. On peut gagner en flexibilité en adoptant une structure de blocs dans laquelle chaque bloc contient un pointeur indiquant l’emplacement du bloc suivant. Cette approche facilite les modifications et l’accroissement, mais alourdit la recherche d’un enregistrement, qui devient séquentielle. 81
  82. 82. Gestion des ressources disques Une possibilité est d’utiliser une table de pointeurs contenant les indications nécessaires pour déterminer l’emplacement d’un bloc cherché. Il y a deux stratégies possibles : une table par unité de disque, ou une table par fichier. Dans le premier cas, il faut charger en mémoire la table contenant les pointeurs de tous les fichiers du disque. Dans le second, on ne garde en mémoire que la table des fichiers ouverts. Un autre problème est celui de l’allocation de l’espace disque. Le système tient à jour des tables facilitant la recherche de secteurs disponibles. Deux possibilités sont couramment utilisées : une table d’allocation, ou un bitmap. 82
  83. 83. Gestion des ressources disques Table d’allocation Piste 0 0 1 2 2 … 83 Secteur 0 10 3 0 7 … Nombre de secteurs allouables consécutivement 5 3 5 3 6 ...
  84. 84. Gestion des ressources disques Bitmap Secteurs Pistes 0 1 2 3 4 5 0 0 1 0 0 1 1 1 0 1 0 0 1 1 2 0 1 0 0 0 1 3 0 0 1 0 0 1 4 0 0 1 1 1 0 5 1 0 1 1 1 0 6 1 0 1 1 0 0 7 1 0 0 1 0 0 8 1 1 0 0 0 0 0 = libre, 1 = occupé 84 9 10 11 12 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1
  85. 85. Répertoires Le lien entre le nom d’un fichier et sa localisation sur disque est réalisé à l’aide d’une table de correspondance appelée répertoire (directory). On peut concevoir des répertoires à un seul niveau, i.e. contenant le nom de tous les fichiers du disque, ou à plusieurs niveaux, permettant à chaque utilisateur d’organiser ses fichiers de façon hiérarchique au moyen de sous-répertoires. 85
  86. 86. Structure d ’un disque souple Piste 0 Secteur 1 BOOT 2 FAT1 3 FAT1 4 FAT1 5 FAT1 6 FAT1 7 FAT1 8 FAT1 9 FAT1 10 FAT1 11 FAT2 12 FAT2 13 FAT2 14 FAT2 15 FAT2 16 FAT2 17 FAT2 18 FAT2 86 1 FAT2 DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR DIR u.a. 2 u.a. 3 u.a. 4 2 u.a. 5 6 7 8 . . . . Débu t des données de l'utilisateur
  87. 87. 0 Statut 7 Nom (en ASCII) 16 87 AttributsŹ : 1 = Lecture seulement 2 = Fichier cachˇ 4 = Fichier syst¸ me 8 = Nom du volume 16 = Sous-rˇ pertoire 32 = Archive 15 Extension Réservé Attribut 21 Réservé 9 23 Heure 25 27 31 Taille du fichier Date No. de la 1e u.a .
  88. 88. Table 0 d’allocation de fichiers (FAT) 1 FF FF Type de disque 2 3 U.a. No. 4 5 6 7 8 9 No.de l'u.a. suivante du fichier ou: 000=libre FF8-FFF=dernière u.a. d'un fichier FF7=non lisible Dans la FAT originale de DOS, on n’avait que 12 bits par entrée. Ceci limitait la taille du disque à 4095 u.a. Par exemple, 4096 u.a. de 512 octets = 2 Mo. 88
  89. 89. On peut grossir la taille des unités d’allocation, mais la perte d’espace par fichier augmente en conséquence. En moyenne, cette perte est de 1/2 u.a. par fichier. Depuis ce temps, on a eu la FAT16, avec 16 bits par entrée, et sur les disques durs on utilise aujourd’hui la FAT32 avec 32 bits par entrée. Windows NT et Windows 2000 utilisent un nouveau système de fichiers beaucoup plus performant appelé NTFS. 89
  90. 90. Exemple : UNIX Unix a été développé par Bell Laboratories à partir de 1970 par Ken Thompson et Dennis Ritchie. Ce système a été mis successivement sur PDP-7, 9 et 11, puis sur VAX, et enfin sur des machines à base de microprocesseur MC68000. Aujourd’hui, il fonctionne sur les stations de travail avec des microprocesseurs RISC. En l979, on en est rendu à la version 7, la mieux connue. En 1982 apparaît le SYSTEM III, puis en 1983 le SYSTEM V suivant la politique de distribution commerciale de AT&T. 90
  91. 91. Exemple : UNIX Depuis 1991, le phénomène Linux a fait son apparition. Il s'agit d'un UNIX de domaine public pour micro-ordinateur initialement écrit par un étudiant en informatique finlandais, Linus Torvalds. Il a été porté sur plusieurs plates-formes, notamment : Intel 80x86, PowerPC, Alpha, Amiga, etc. Sa conception est moderne et c'est elle que nous examinerons ici. 91
  92. 92. Exemple : UNIX  Sous Unix, un fichier est une séquence linéaire de mots de 8 bits, de 1 octet à 1000 Mo. L'usager visualise le fichier comme une séquence linéaire et peut atteindre n'importe quel octet du fichier soit de façon absolue, soit en spécifiant une position relative par rapport à la position courante, ou encore par rapport à la fin du fichier. À partir d'une position quelconque, on peut lire un nombre quelconque d'octets. 92
  93. 93.  Exemple : UNIX Unité d'allocation : bloc de 512 octets  1024 octets pour le SYSTEM V  et le système 4.1 de Berkeley.  4096 octets pour la version 4.2,  93 1 Ko à 4 Ko pour Linux.
  94. 94. Exemple : UNIX  À chaque fichier (y compris les répertoires qui sont également des fichiers et les périphériques, que Unix considère comme des fichiers spéciaux) on associe un inode (i-node ou index-node) dans lequel on peut trouver les informations suivantes : - 94 le propriétaire (user ID, group ID) les protections (code de 16 bits) les dates (création, dernière modification) les liens vers d'autres nœuds-i (nombre de répertoires qui contiennent ce fichier) le type de fichier (données, répertoire, périphérique) les adresses disques des blocs de données (13) la longueur du fichier en octets.
  95. 95.  Exemple 0 8 16 24 32 40 48 56 64 72 80 88 96 104 112 120 : UNIX Type et permissions Utilisateur (UID) Heure et da te d'accès Heure et da te de modification Groupe (GID) Compteur de liens Attributs du fichier 1 e bloc 3 e bloc 5 e bloc 7 e bloc 9 e bloc 11e bloc Bloc de 1 e indirection Bloc de 3 e indirection ACL du fichier Adresse de fragment Réservé AC L = Ac cess Control List, pas enco re implémenté 95 Taille du fi chier Heure et da te de création Heure et da te d'effacement Nb. de blocs Réservé 2 e bloc 4 e bloc 6 e bloc 8 e bloc 10 e bloc 12 e bloc Bloc de 2 e indirection Version du fichier ACL du répertoire Réservé
  96. 96.  Exemple Dans Dans : UNIX Linux, la taille d’un inode est de 128 octets. le système de fichiers Ext2 adopté par la plupart des systèmes Linux, le disque est divisé en groupes de blocs. Chaque groupe de blocs contient un superbloc, des descripteurs de groupe, un bitmap de blocs, un bitmap d'inodes, une table d'inodes et des blocs de données. Les bitmaps occupent chacun 1 bloc ou u.a. Ceci limite donc la taille des groupes à 8 192 blocs pour des blocs de 1 Ko. ou 32 768 blocs pour des blocs de 4 Ko. Les inodes sont répartis également parmi les groupes de blocs. Le nombre d'inodes par groupe ne peut non plus dépasser les nombres ci-dessus. 96
  97. 97.  Exemple : UNIX Bloc 0 Bloc d’amorce 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 données : Superbloc 97 Descripteurs de groupe Bitmap de blocs Bitmap d'inodes Table d'inodes Blocs de données
  98. 98.  Exemple : UNIX Le superbloc contient le nombre d'inodes et le nombre de blocs dans le système de fichiers. Il contient aussi de l'information sur le nombre d'inodes et de blocs par groupe de blocs. Le descripteur de groupe est une structure de 32 octets donnant le nombre de blocs dans le bitmap d'inodes, dans le bitmap de blocs et dans la table d'inodes, le nombre d'inodes libres, le nombre de blocs libres et le nombre de répertoires. Cette dernière information est utile au système qui tente répartir les répertoires parmi les différents groupes de blocs. Il allouera donc un nouveau répertoire dans le groupe qui en a le moins. Cette organisation permet aux inodes d'être voisines des blocs auxquels elles font référence, et aux inodes d'être voisines de leur inode de répertoire, ce qui permet un accès plus rapide. 98
  99. 99.  Exemple : UNIX Dans chaque inode, on trouve no de blocs. Les 12 premières 15 adresses disque en termes de adresses d'une inode permettent d'atteindre un espace données de :  12 1024 octets = 12 288 octets. 13e adresse disque pointe vers un autre bloc de 1024 octets qui contient 256 adresses disque (4 octets par adresse), soit : La  256  1024 octets = 262144 octets. 14e adresse disque pointe vers 256 blocs indirects (indirection d'ordre 2) qui pointent à leur tour chacun vers 256 adresses disques : La  99 256  256  1024 octets = 67108 864 octets.
  100. 100.  Exemple : UNIX 15e adresse disque est une indirection d'ordre 3, ce qui permet aux fichiers Linux d'atteindre des tailles avoisinant La  La  256  256  256  1024 octets = 17 179 869 184 octets. taille maximale d'un tel fichier sera donc : 17 179 869 184 + 67 108 864 + 262 144 + 12 288 Go. Cette implantation privilégie, du point de vue accès, les fichiers de petite taille (12 Ko). À l'ouverture, le premier descripteur du fichier (inode) est copié en mémoire. Lorsqu'on franchit le cap de 12 288 octets, le système d'exploitation copie le premier bloc indirect, et ainsi de suite. 100
  101. 101.   Exemple : UNIX  Pour 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 première indirection (n - 12 288) / 1024 à l'offset : (n - 12 288) mod 1024, ° etc. 101
  102. 102.  Exemple : UNIX Ext2 tente de minimiser la fragmentation des fichiers lors de l'allocation des blocs. Il cherche des blocs libres autour d'un bloc cible. Si ce dernier est libre, il est alloué. Sinon, on cherche un bloc 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 moins dans le même groupe de blocs que le bloc cible. Il y a plusieurs heuristiques pour la définition du bloc cible. L'un d'entre eux est de prendre le premier bloc libre dans le groupe de blocs où se trouve l'inode du fichier. Lorsqu'un bloc libre est trouvé, on réserve les 8 blocs suivants, s'ils sont libres. Quand le fichier sera fermé, les blocs réservés restants seront libérés. 102
  103. 103.  Exemple : UNIX Répertoires Les entrées d'un répertoire Linux sont de longueur variable parce que les noms de fichier peuvent aller de 1 caractère à 255 caractères. Il s'agit en fait d'une liste chaînée, puisque le champ longueur de l'entrée (rec_len), toujours arrondi vers le haut à un multiple de 4, donne en fait la position de l'entrée suivante. Octets 4 No. d'inode  2 2 1 à 255 rec_len  name_len Nom du fichier longueur de l'entrée 103 longueur du nom
  104. 104.  Exemple : UNIX 0 12 3 12 1 . 24 2 12 2 .. 11 44 56 20 9 Fichier 1 2017 12 4 Toto inode rec_len name_len Entrée 3 12 1 . Pointeur vers lui-même 2 12 2 .. Pointeur vers son parent 11 20 9 Fichier 1 2017 12 4 Toto … … … … … … … … 104
  105. 105.  Exemple : UNIX Répertoires Chaque répertoire ne peut avoir qu'un parent. Le répertoire racine n'a pas de parent et son pointeur “parent” contient luimême, c.-à-d. le #2. Lorsqu'un fichier est effacé, le numéro d'inode de l'entrée de répertoire est mis à 0 et l'entrée est éliminée de la liste chaînée en augmentant le champ rec_len de l'entrée précédente pour qu'elle pointe à l'entrée suivante. 105
  106. 106. 2) le SGF d’UNIX (1/3) * Structure hiérarchique * 4 types de fichiers: ordinaires: suite octets catalogues: nœuds de l’arbre de cette structure liens: pointent vers fichier spéciaux: accès aux périphériques
  107. 107. 2) le SGF d’UNIX (2/3) Fichier et structure inode: 1) Type (parmi les 4) 2) Taille 3) Date 4) Permission 5) Propriétaire 6) Localisation des données
  108. 108. le SGF de Windows NT Micro$oft en 1988… * Mieux que la FAT du Dos/Windows * Mieux que HPFS de OS/2 New Technology File System (NTFS) * Logical Cluster Numbers (LCN) * Virtual Cluster Number (VCN)
  109. 109. le SGF de Windows NT Master File Table...
  110. 110. le SGF de Windows NT File Record ... * Resident * Non Resident * Attribute header * Attribute value
  111. 111. 3) le SGF de Windows NT (4/5) Record Sample... File
  112. 112. MFT in action ! Mais elle ressemble à quoi cette MST ? MFT ?
  113. 113. La comparaison...
  114. 114. 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 Extents Blocks Extents Extents 4 GB NA 64 MB Undoc’d Free extents organized by B+ trees Bitmap per cylinder grp Bitmap per allocation unit Single bitmap 512 bytes to 64 KB 4KB or 8KB Yes Yes No NT 5.0 Directory Organization B+ Tree Linear Hashed B+ tree Inode allocation Dynamic Static Dynamic Dynamic Crash Recovery Asynch. Journal Fsck* Synch. Journal Synch. Journal Maximum Performance 7GB/sec Not Available 1GB/sec Not Available File Space Allocation Max. Extent Size Free Space Mgmt Variable Block Size? Sparse File Support? 4GB/sec (single file) 512 bytes to 64KB (4KB w/ compression)
  115. 115. chapitre dernier (résumé) Structure de mémoire de masse (disques)
  116. 116. Disques magnétiques  Plats rigides couverts de matériaux d ’enregistrement magnétique surface du disque divisée en pistes (tracks) qui sont divisées en secteurs  le contrôleur disque détermine l`interaction logique entre l ’unité et l ’ordinateur 
  117. 117. Ordonnancement disques Problème: utilisation optimale du matériel  Réduction du temps total de lecture disque   étant donné une file de requêtes de lecture disque, dans quel ordre les exécuter?
  118. 118. Paramètres à prendre en considération Temps de positionnement (seek time):  le temps pris par l`unité disque pour se positionner sur le cylindre désiré  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 désirée  Temps de lecture  temps nécessaire pour lire la piste  Le temps de positionnement est normalement le plus important, donc il est celui que nous chercherons à minimiser 
  119. 119. File d’attente disque Dans un système multiprogrammé avec mémoire virtuelle, il y aura normalement une file d’attente pour l ’unité disque  Dans quel ordre choisir les requêtes d ’opérations disques de façon à minimiser les temps de recherche totaux  Nous étudierons différents méthodes par rapport à une file d ’attente arbitraire:  98, 183, 37, 122, 14, 124, 65, 67 Chaque chiffre est un numéro séquentiel de cylindre  Il faut aussi prendre en considération le cylindre de départ: 53  Dans quel ordre exécuter les requêtes de lecture de façon à minimiser les temps totaux de positionnement cylindre  Hypothèse simpliste: un déplacement d`1 cylindre coûte 1 unité de temps 
  120. 120. Premier entré, premier sorti: FIFO axe de rotation 45 85 146 85 108 110 59 2 Mouvement total: 640 cylindres = (98-53) + (183-98)+... En moyenne: 640/8 = 80
  121. 121. SSTF: Shortest Seek Time First Plus court d’abord À chaque moment, choisir la requête avec le temps de recherche le plus court à partir du cylindre courant  Clairement meilleur que le précédent  Mais pas nécessairement optimal! (v. manuel)  Peut causer famine 
  122. 122. SSTF: Plus court servi Mouvement total: 236 cylindres (680 pour le précédent) En moyenne: 236/8 = 29.5 (80 pour le précédent)
  123. 123. SCAN: l’algorithme de l’ascenseur  La tête balaye le disque dans une direction, puis dans la direction opposée, etc., en desservant les requêtes quand il passe sur le cylindre désiré  Pas de famine
  124. 124. SCAN: l ’ascenseur direction Mouvement total: 208 cylindres En moyenne: 208/8 = 26 (29.5 pour SSTF)
  125. 125. Problèmes du SCAN Peu de travail à faire après le renversement de direction  Les requêtes seront plus denses à l’autre extrémité  Arrive inutilement jusqu’à 0 
  126. 126. C-SCAN   Retour rapide au début (cylindre 0) du disque au lieu de renverser la direction Hypothèse: le mécanisme de retour est beaucoup plus rapide que le temps de visiter les cylindres  Comme si les disques étaient en forme de cercle!  C-LOOK  La même idée, mais au lieu de retourner au cylindre 0, retourner au premier cylindre qui a une requête
  127. 127. C-LOOK direction  retour: 169 (??) 153 sans considérer le retour (19.1 en moyenne) (26 pour SCAN) MAIS 322 avec retour (40.25 en moyenne) Normalement le retour sera rapide donc le coût réel sera entre les deux
  128. 128. C-LOOK avec direction initiale opposée direction Retour 169 Résultats très semblables: 157 sans considérer le retour, 326 avec le retour

×