SlideShare uma empresa Scribd logo
1 de 128
Baixar para ler offline
Cours Système d’exploitation
Niveau : GL2 & IIA2
Enseignant : Mona LAROUSSI
Bureau : 4 A8-28
E-mail: mona.laroussi@insat.rnu.tn
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





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
Structures de fichiers

Aucune – séquences d’octets…
 Texte: Lignes, pages, docs formatés
 Source: classes, méthodes,
procédures…
 Etc.

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…
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
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
Types de fichiers
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
Indexed File (Stallings)

Chap 11

26
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
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
Répertoires

29
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
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 maximale
Date de dernier accès
Date de dernière mise à jour
Propriétaire
Protection
Chap 11

32
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
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
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
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
Répertoires à arbres (normal
aujourd’hui)

Chap 11

37
Caractéristiques des répertoires
à arbres
Recherche efficace
 Possibilité de grouper
 Repertoire courant (working directory)




cd /spell/mail/prog

Chap 11

38
Graphes sans cycles: permettent de
partager fichiers

Unix: un symbolic link donne un chemin à un fichier ou sousrépertoire
Chap 11

39
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
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
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
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
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
(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 les noms et les attributs d ’un
fichier




Par qui

Chap 11

48
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
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
Méthodes d’allocation
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

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’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

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

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
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 ’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
Allocation indexée: semblable à la
pagination


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

index table
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 nouveau bloc doit
être alloué, on trouve de l ’espace
disponible et on ajoute un pointeur avec
son adresse

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
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
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  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
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
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é.
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 tous les
pointeurs sont stockés ensembles dans
un bloc spécial (index block)
Exemple
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
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 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.
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 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é :
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.

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
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
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
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
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
...
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
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
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
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
.
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
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
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
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
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

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.
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.

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é

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

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

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

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.

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

 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

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

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

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

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
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
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
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)
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

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)
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 pistes (tracks)
qui sont divisées en secteurs
 le contrôleur disque détermine l`interaction
logique entre l ’unité et l ’ordinateur

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?
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

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

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
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

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)
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
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 extrémité
 Arrive inutilement jusqu’à 0

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
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
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

Mais conteúdo relacionado

Mais procurados

Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMIKorteby Farouk
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes Ikram Benabdelouahab
 
Projet de fin d etudes
Projet de fin d etudesProjet de fin d etudes
Projet de fin d etudes3azwa
 
vSAN Beyond The Basics
vSAN Beyond The BasicsvSAN Beyond The Basics
vSAN Beyond The BasicsSumit Lahiri
 
Alphorm.com Formation pfSense: Le firewall open source de référence
Alphorm.com Formation pfSense: Le firewall open source de référenceAlphorm.com Formation pfSense: Le firewall open source de référence
Alphorm.com Formation pfSense: Le firewall open source de référenceAlphorm
 
Linux network file system (nfs)
Linux   network file system (nfs)Linux   network file system (nfs)
Linux network file system (nfs)Raghu nath
 
Monitoring avec Zabbix
Monitoring avec ZabbixMonitoring avec Zabbix
Monitoring avec ZabbixFourat Zouari
 
Cours_Telephonie_26_pdf.pdf
Cours_Telephonie_26_pdf.pdfCours_Telephonie_26_pdf.pdf
Cours_Telephonie_26_pdf.pdflchtude
 
OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009Gerardo Pardo-Castellote
 
Architecture VoIP Protocol H323
Architecture VoIP Protocol H323Architecture VoIP Protocol H323
Architecture VoIP Protocol H323Siir Ayoub
 
Configuring Oracle Enterprise Manager Cloud Control 12c for High Availability
Configuring Oracle Enterprise Manager Cloud Control 12c for High AvailabilityConfiguring Oracle Enterprise Manager Cloud Control 12c for High Availability
Configuring Oracle Enterprise Manager Cloud Control 12c for High AvailabilityLeighton Nelson
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threadsSana Aroussi
 
Polymorphisme : un concept polymorphe !
Polymorphisme : un concept polymorphe !Polymorphisme : un concept polymorphe !
Polymorphisme : un concept polymorphe !Aurélien Regat-Barrel
 
Odoo installation et configuration avancée
Odoo installation et configuration avancéeOdoo installation et configuration avancée
Odoo installation et configuration avancéeYasine LAKHDARI
 
Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXSoukaina Boujadi
 

Mais procurados (20)

Système répartis avec RMI
Système répartis avec RMISystème répartis avec RMI
Système répartis avec RMI
 
Chap5 wan
Chap5 wanChap5 wan
Chap5 wan
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
 
Présentation cloud computing
Présentation cloud computingPrésentation cloud computing
Présentation cloud computing
 
Notes de cours et tp - Administation Systèmes
Notes de cours et tp  - Administation Systèmes Notes de cours et tp  - Administation Systèmes
Notes de cours et tp - Administation Systèmes
 
Projet de fin d etudes
Projet de fin d etudesProjet de fin d etudes
Projet de fin d etudes
 
vSAN Beyond The Basics
vSAN Beyond The BasicsvSAN Beyond The Basics
vSAN Beyond The Basics
 
Alphorm.com Formation pfSense: Le firewall open source de référence
Alphorm.com Formation pfSense: Le firewall open source de référenceAlphorm.com Formation pfSense: Le firewall open source de référence
Alphorm.com Formation pfSense: Le firewall open source de référence
 
Introduction aux SGBD
Introduction aux SGBDIntroduction aux SGBD
Introduction aux SGBD
 
Linux network file system (nfs)
Linux   network file system (nfs)Linux   network file system (nfs)
Linux network file system (nfs)
 
Monitoring avec Zabbix
Monitoring avec ZabbixMonitoring avec Zabbix
Monitoring avec Zabbix
 
Cours_Telephonie_26_pdf.pdf
Cours_Telephonie_26_pdf.pdfCours_Telephonie_26_pdf.pdf
Cours_Telephonie_26_pdf.pdf
 
OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009
 
Architecture VoIP Protocol H323
Architecture VoIP Protocol H323Architecture VoIP Protocol H323
Architecture VoIP Protocol H323
 
Configuring Oracle Enterprise Manager Cloud Control 12c for High Availability
Configuring Oracle Enterprise Manager Cloud Control 12c for High AvailabilityConfiguring Oracle Enterprise Manager Cloud Control 12c for High Availability
Configuring Oracle Enterprise Manager Cloud Control 12c for High Availability
 
Gestion des threads
Gestion des threadsGestion des threads
Gestion des threads
 
Polymorphisme : un concept polymorphe !
Polymorphisme : un concept polymorphe !Polymorphisme : un concept polymorphe !
Polymorphisme : un concept polymorphe !
 
Odoo installation et configuration avancée
Odoo installation et configuration avancéeOdoo installation et configuration avancée
Odoo installation et configuration avancée
 
Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIX
 
Cours 70 410-1
Cours 70 410-1Cours 70 410-1
Cours 70 410-1
 

Semelhante a Cours système d’exploitation partie3

Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxKhalil BOUKRI
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Laurent BUNIET
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windowsSelman Dridi
 
Open melodie concepts
Open melodie conceptsOpen melodie concepts
Open melodie conceptsJosé Paumard
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiationrobertpluss
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Mariem ZAOUALI
 
Le système d&rsquo;E/S en Java
Le système d&rsquo;E/S en JavaLe système d&rsquo;E/S en Java
Le système d&rsquo;E/S en JavaKorteby Farouk
 
Administration linux
Administration linuxAdministration linux
Administration linuxLys Lopy
 
Notions sur le commandes linux
Notions sur le commandes linux Notions sur le commandes linux
Notions sur le commandes linux ImnaTech
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére filsSelman Dridi
 
Mise en place d'archives ouvertes: mesures pratiques
Mise en place d'archives ouvertes: mesures pratiquesMise en place d'archives ouvertes: mesures pratiques
Mise en place d'archives ouvertes: mesures pratiquesIryna Kuchma
 
Lightweight directory access protocol
Lightweight directory access protocolLightweight directory access protocol
Lightweight directory access protocolDimitri LEMBOKOLO
 
Sibille jacobson thesaurus
Sibille jacobson thesaurusSibille jacobson thesaurus
Sibille jacobson thesaurusAssociationAF
 
Manipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxManipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxYallaHabibi5
 
Richard Walter (IRHT), "Chercheurs vos papiers", 26 novembre 2009, MMSH
Richard Walter (IRHT), "Chercheurs vos papiers", 26 novembre 2009, MMSHRichard Walter (IRHT), "Chercheurs vos papiers", 26 novembre 2009, MMSH
Richard Walter (IRHT), "Chercheurs vos papiers", 26 novembre 2009, MMSHPhonothèque MMSH
 

Semelhante a Cours système d’exploitation partie3 (20)

Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
Ch1 p1
Ch1 p1Ch1 p1
Ch1 p1
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptx
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windows
 
Open melodie concepts
Open melodie conceptsOpen melodie concepts
Open melodie concepts
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers
 
Le système d&rsquo;E/S en Java
Le système d&rsquo;E/S en JavaLe système d&rsquo;E/S en Java
Le système d&rsquo;E/S en Java
 
Administration linux
Administration linuxAdministration linux
Administration linux
 
Notions sur le commandes linux
Notions sur le commandes linux Notions sur le commandes linux
Notions sur le commandes linux
 
Big data
Big dataBig data
Big data
 
Cours_OS 1.pptx
Cours_OS 1.pptxCours_OS 1.pptx
Cours_OS 1.pptx
 
cours-Linux.PPT
cours-Linux.PPTcours-Linux.PPT
cours-Linux.PPT
 
Processus pére fils
Processus pére filsProcessus pére fils
Processus pére fils
 
Mise en place d'archives ouvertes: mesures pratiques
Mise en place d'archives ouvertes: mesures pratiquesMise en place d'archives ouvertes: mesures pratiques
Mise en place d'archives ouvertes: mesures pratiques
 
Lightweight directory access protocol
Lightweight directory access protocolLightweight directory access protocol
Lightweight directory access protocol
 
Sibille jacobson thesaurus
Sibille jacobson thesaurusSibille jacobson thesaurus
Sibille jacobson thesaurus
 
Manipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsxManipulation_des_fichiers_en_C.ppsx
Manipulation_des_fichiers_en_C.ppsx
 
Richard Walter (IRHT), "Chercheurs vos papiers", 26 novembre 2009, MMSH
Richard Walter (IRHT), "Chercheurs vos papiers", 26 novembre 2009, MMSHRichard Walter (IRHT), "Chercheurs vos papiers", 26 novembre 2009, MMSH
Richard Walter (IRHT), "Chercheurs vos papiers", 26 novembre 2009, MMSH
 

Mais de manou2008

Cours système d’exploitation partie1
Cours système d’exploitation partie1Cours système d’exploitation partie1
Cours système d’exploitation partie1manou2008
 
Advanced hci in hybrid learning scenariov3
Advanced hci in hybrid learning scenariov3Advanced hci in hybrid learning scenariov3
Advanced hci in hybrid learning scenariov3manou2008
 
webinaire5juin
webinaire5juinwebinaire5juin
webinaire5juinmanou2008
 
Adpative learning environment diffusable
Adpative learning environment diffusableAdpative learning environment diffusable
Adpative learning environment diffusablemanou2008
 
Innovations et tendances
Innovations et tendancesInnovations et tendances
Innovations et tendancesmanou2008
 
Mona laroussi openforum_sc36
Mona laroussi openforum_sc36Mona laroussi openforum_sc36
Mona laroussi openforum_sc36manou2008
 

Mais de manou2008 (8)

Rs3
Rs3Rs3
Rs3
 
Cours système d’exploitation partie1
Cours système d’exploitation partie1Cours système d’exploitation partie1
Cours système d’exploitation partie1
 
Advanced hci in hybrid learning scenariov3
Advanced hci in hybrid learning scenariov3Advanced hci in hybrid learning scenariov3
Advanced hci in hybrid learning scenariov3
 
webinaire5juin
webinaire5juinwebinaire5juin
webinaire5juin
 
Adpative learning environment diffusable
Adpative learning environment diffusableAdpative learning environment diffusable
Adpative learning environment diffusable
 
Innovations et tendances
Innovations et tendancesInnovations et tendances
Innovations et tendances
 
Mona laroussi openforum_sc36
Mona laroussi openforum_sc36Mona laroussi openforum_sc36
Mona laroussi openforum_sc36
 
E Learning2
E Learning2E Learning2
E Learning2
 

Cours système d’exploitation partie3

  • 1. Cours Système d’exploitation Niveau : GL2 & IIA2 Enseignant : Mona LAROUSSI Bureau : 4 A8-28 E-mail: mona.laroussi@insat.rnu.tn
  • 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. Structures de fichiers Aucune – séquences d’octets…  Texte: Lignes, pages, docs formatés  Source: classes, méthodes, procédures…  Etc. 
  • 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. 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. 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
  • 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. 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. 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. 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
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  • 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. 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
  • 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. Organisation typique de système de fichiers Chap 11 31
  • 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. 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. 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. 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. 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. Répertoires à arbres (normal aujourd’hui) Chap 11 37
  • 38. Caractéristiques des répertoires à arbres Recherche efficace  Possibilité de grouper  Repertoire courant (working directory)   cd /spell/mail/prog Chap 11 38
  • 39. Graphes sans cycles: permettent de partager fichiers Unix: un symbolic link donne un chemin à un fichier ou sousrépertoire Chap 11 39
  • 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. 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. 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. 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. 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. (a) Existant. (b) Partition nonattachée Chap 11 45
  • 47. Partage de fichiers  Désirable sur les réseaux  Nécessite de protection Chap 11 47
  • 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. 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. 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
  • 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. Trois méthodes d’allocation de fichiers  Allocation contiguë  Allocation enchaînée  Allocation indexée
  • 54. Allocation contiguë sur disque répertoire
  • 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. 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. 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
  • 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. Allocation indexée: semblable à la pagination  Tous les pointeurs sont regroupés dans un tableau (index block) index table
  • 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. 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. 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
  • 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. 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. 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. Table d'allocation (2)  Les FATs sont stockées en mémoire tant que le SE est actif
  • 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)
  • 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
  • 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. Directory diagram Table des inodes Répertoire i1 Fichier1 i2 Fichier2 i3 Fichier3 i4 fichier4
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.  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. 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.  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.  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.  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.  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.  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.  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.   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.  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.  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.  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.  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. 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. 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. 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. le SGF de Windows NT Master File Table...
  • 110. le SGF de Windows NT File Record ... * Resident * Non Resident * Attribute header * Attribute value
  • 111. 3) le SGF de Windows NT (4/5) Record Sample... File
  • 112. MFT in action ! Mais elle ressemble à quoi cette MST ? MFT ?
  • 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. chapitre dernier (résumé) Structure de mémoire de masse (disques)
  • 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. 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. 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. 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. 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. 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. 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. 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. SCAN: l ’ascenseur direction Mouvement total: 208 cylindres En moyenne: 208/8 = 26 (29.5 pour SSTF)
  • 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. 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. 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. 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