View
3
Download
0
Category
Preview:
Citation preview
Joëlle Delacroix AMSI1999/2000 1
Système de gestion de fichiers
Joëlle Delacroix AMSI1999/2000 2
ueINTRODUCTION
• La mémoire centrale est une mémoire volatile :
– il faut stocker les données devant être conservées au delà de l'arrêt de la machine sur un support de masse permanent
l'unité de conservation sur le support de masse est le fichierexemple : il faut conserver les programmes du système
d'exploitation
Joëlle Delacroix AMSI1999/2000 3
INTRODUCTION
Les données dans le fichier sont organiséesselon les besoins de l'utilisateur sous formed'enregistrements (articles)
Fichier logiqueNiveau utilisateur
Interface
Niveau Système ou physique(Système de Gestion de Fichiers)
- accès aux données du fichier- allocation des fichiers sur le support de masse
fichier physique
Joëlle Delacroix AMSI1999/2000 4
A. Fichier logique
Joëlle Delacroix AMSI1999/2000 5
Notion de fichier logique
• En programmation, un fichier logique est un type de donnée sur lequel peuvent être appliquées des opérations spécifiques.
Program toto;
fichier : file of …
créer (fichier, mode)ouvrir (fichier, mode)
fermer (fichier)detruire (fichier)
Représentation du fichier interne au programme
Liaison via le SGF avec le fichier physique
Rupture de la Liaison avec le fichier physique
Joëlle Delacroix AMSI1999/2000 6
Notion de fichier logique
• Un fichier logique est un ensemble d'enregistrements, désigné par un nom et accessible via des fonctions d'accès.
cpdupont
30
cm1durant
25
3èmerizzo
30
ce2armici
12...
Type élement = recordclasse : string[12]prof : string[25]nb_eleves : integer;
end;
nom_fich : file of element
Fichier logique : nomfonctions d'accès
read (enregistrement)write (enregistrement)
enregistrement
Joëlle Delacroix AMSI1999/2000 7
Fichier à mode d'accès séquentiel
• Les enregistrements du fichier ne peuvent être accédés que les uns à la suite des autres.
– Opération de lecture : délivre l'enregistrement courant et se positionne sur le suivant
– Opération d'écriture : obligatoirement en fin de fichier
cpdupont
30
cm1durant
25
3èmerizzo
30
ce2armici
12... Accès à l'enregistrement 3
il faut lire d'abord l'enregistrement 1, puis l'enregistrement 2
EcritureLecture 1 Lecture 2 Lecture 3
Fin de fichier
Joëlle Delacroix AMSI1999/2000 8
Fichier à mode d'accès indexé ou aléatoire
• Permettre un accès immédiat à n'importe quel enregistrement du fichier
– un champ donné de l'enregistrement sert de clé d'accès
Type élement = recordclasse : string[12]prof : string[25]nb_eleves : integer;
end;
cpdupont
30
cm1durant
25
3èmerizzo
30
ce2armici
12...
LecturemodifierEcriture
Structure de triselon la clé
EcritureClé d'accès : champ prof
Accès à l'enregistrement aveccle = rizzo
read (rizzo, enregistrement)
Joëlle Delacroix AMSI1999/2000 9
Fichier à mode d'accès indexé ou aléatoire
cpdupont
30
cm1durant
25
3èmerizzo
30
ce2armici
12...
Structure de triselon la clé
armicidupontdurantrizzo Type élement = record
classe : string[12]prof : string[25]nb_eleves : integer;
end;
Accès à l'enregistrement avec la clé = rizzo
read (rizzo, enregistrement)
Clé d'accès : champ prof
Joëlle Delacroix AMSI1999/2000 10
Fichier à mode d'accès direct
• Un enregistrement est accédé en fonction de sa position relative dans le fichier
– cas particulier du mode accès aléatoire pour lequel la clé d'accès est la position de l'enregistrement dans le fichier
Type élement = recordclasse : string[12]prof : string[25]nb_eleves : integer;
end;
cpdupont
30
cm1durant
25
3èmerizzo
30
ce2armici
12...
Modifier 1 Lecture 3 Ecriture Accès à l'enregistrement 3
read (3, enregistrement)
Joëlle Delacroix AMSI1999/2000 11
Exemple : les fichiers dans le langage AdaFichier séquentieltype T_ENRG is record
nom_eleve : string[30];note : integer
end record;with SEQUENTIAL_IO;package T_IO is new SEQUENTIAL_IO(ELEMENT_TYPE => T_ENRG)
A,B : T_IO.FILE_TYPE; ENRG : T_ENRG;
T_IO.OPEN(A, IN_FILE, "Notes_Eleves");T_IO.CREATE(B, OUT_FILE, "Copie_Eleves");
T_IO.READ(A, ENRG);T_IO.WRITE(B, ENRG),
T_IO.CLOSE(A);T_IO.CLOSE(B);
Joëlle Delacroix AMSI1999/2000 12
Exemple : les fichiers dans le langage AdaFichier en mode directtype T_ENRG is record
nom_eleve : string[30];note : integer
end record;with DIRECT_IO;package T_IO is new DIRECT_IO(ELEMENT_TYPE => T_ENRG)
A,B,C : T_IO.FILE_TYPE; ENRG : T_ENRG;
T_IO.OPEN(A, IN_FILE, "Notes_Eleves");T_IO.CREATE(B, OUT_FILE, "Copie_Eleves");T_IO.OPEN(C, INOUT_FILE,"Modif_Eleves);T_IO.READ(A, ENRG, 2);T_IO.WRITE(B, ENRG, 3);T_IO.READ(C, ENRG, 4);ENRG.note = 0;T_IO.WRITE(C, ENRG, 4);T_IO.CLOSE(A);T_IO.CLOSE(B); T_IO.CLOSE(C);
Joëlle Delacroix AMSI1999/2000 13
B. Fichier physique
Joëlle Delacroix AMSI1999/2000 14
Structure du support physique
plateau
Adresse d'un secteur : n°face, n°piste,n°secteurbloc : ensemble de secteurs : unité de transfert
avec la mémoire
Cylindre : ensemble des pistes accessibles sans déplacement des têtes
Bloc : n secteurs
Face : 20 à 1500 pistes
Piste : ensemble de secteurs (4 à 32)
Secteur : plus petite unité d'information accessible32 à 4096 octets
512
Joëlle Delacroix AMSI1999/2000 15
Le bloc physique
Pour un meilleur compromis: temps d'accès et capacité de stockagecertains SGF organisent l'espace du disque en blocs de secteurs
ex: 1 bloc = 2 secteurs de 512 octets soit 1KO
Les opérations de lecture et d'écriture du SGF se font bloc par bloc
sect sect sect sect
Bloc 1 Bloc 2 Bloc 3 Bloc 4
Joëlle Delacroix AMSI1999/2000 16
Fichier physique
• Les enregistrements logiques doivent être écrits dans les secteurs constituant les blocs
il faut allouer les blocs physiques au fichier.
cpdupont
30
cm1durant
25
3èmerizzo
30
ce2armici
12...
nom_fich : file of elementcm2
kapitec13
4èmesana24
S1 S2Bloc n
Bloc 1
Bloc 2
Joëlle Delacroix AMSI1999/2000 17
Fichier physique
• il faut allouer les blocs physiques au fichier
méthodes d'allocation
• allocation contiguë (séquentielle simple)• allocation par zones• allocation par blocs chainés• allocation indexée
il faut gérer et représenter l'espace libre
Bloc 2
Joëlle Delacroix AMSI1999/2000 18
Allocation contiguë
• Un fichier occupe un ensemble de blocs contigus sur le disque
• Bien adapté au méthodes d'accès séquentielles et directes
• Difficultés : - création d'un nouveau fichier- extension du fichier
fichier 1 : adresse bloc 1, longueur 3 blocs
fichier 2 : adresse bloc 13, longueur 5 blocs
Joëlle Delacroix AMSI1999/2000 19
Allocation contiguë• création d'un nouveau fichier : il faut allouer un nombre de blocs suffisants dépendant de la taille du fichier
prévoir cette tailletrouver un trou suffisant (First Fit, Best Fit)
Fichier 4 : 6 blocsFichier 3 : 4 blocs
fichier 1 : adresse bloc 1, longueur 3 blocs
fichier 2 : adresse bloc 13, longueur 5 blocs
Joëlle Delacroix AMSI1999/2000 20
Allocation contiguë
• trouver un trou suffisant
fichier 1 : adresse bloc 1, longueur 3 blocs
fichier 2 : adresse bloc 13, longueur 5 blocs
Fichier 4 : 6 blocsCompactage
Joëlle Delacroix AMSI1999/2000 21
Allocation contiguë
• Etendre le fichier 1 avec un bloc de données
fichier 1 : adresse bloc 1,longueur 3 blocs
fichier 1 : adresse bloc 1, longueur 4 blocs
Déplacer les fichiers
COUTEUX !
Générer une erreur
Joëlle Delacroix AMSI1999/2000 22
Allocation par zones
• Un fichier est constitué de plusieurs zones physiques disjointes :
– une zone primaire allouée à la création– des zones secondaires (extensions) allouées au fur et à
mesure des besoins
Zone primaire
Zone secondaire
ZP
ZS
ZS
ZS
I
I
Problèmes précédents atténuésmais toujours existants
P
I
Joëlle Delacroix AMSI1999/2000 23
Allocation par bloc chainée
• Un fichier est constitué comme une liste chainée de blocs physiques, qui peuvent être dispersés n'importe où.
fichier 1
fichier 2
• Extension simple du fichier : allouer un nouveau bloc et le chainer au dernier• Pas de fragmentation
• Difficultés : - mode séquentiel seul- le chaînage du bloc suivant occupe de la place dans un bloc
Joëlle Delacroix AMSI1999/2000 24
Allocation par bloc chainée : variante
• Une table d'allocation des fichiers (File allocation table -FAT) regroupe l'ensemble des chainages.
fichier 1
fichier 2
1234567
11
17
7
1
NULL
13
15
20
15
13
3
NULLPb : taille de la FAT
FAT
Joëlle Delacroix AMSI1999/2000 25
Allocation indexée
• Les adresses des blocs physiques constituant un fichier sont rangées dans une table appelée bloc d'index, elle-même contenue dans un ou plusieurs blocs disque
fichier 2
512 / 4 = 128 entrées
~ La Fat est répartie dans les blocs d'index
mais perte de place pour lespetits fichiers
fichier 1
bloc d'index
Joëlle Delacroix AMSI1999/2000 26
Allocation indexée : la solution Unix
Table d'allocationDescripteur de fichier
(Inode)13 entrées
.
.
.
12
0
9
1011
Joëlle Delacroix AMSI1999/2000 27
Allocation indexée : la solution Unix
.
.
.
0
9
1011
1024K12
Table d'allocationDescripteur de fichier
(Inode)13 entrées
• Accès aux blocs de données 0 à 9 :1 accès disque
10 Ko
Joëlle Delacroix AMSI1999/2000 28
Allocation indexée : la solution Unix
Table d'allocationDescripteur de fichier
(Inode)13 entrées
.
.
.
12
2 accès
3 accès
4 accès
256 entrées
0
256 Ko9
1011
64 Mo
16 Go
Joëlle Delacroix AMSI1999/2000 29
Gestion de l'espace libre
• Le système maintient une liste d'espace libre, qui mémorise tous les blocs disque libres (non alloués)
– Création d'un fichier : recherche dans la liste d'espace libre de la quantité requise d'espace et allocation au fichier : l'espacealloué est supprimé de la liste
– Destruction d'un fichier : l'espace libéré est intégré à la liste d'espace libre
Il existe différentes représentations possibles de l'espace librevecteur de bitsliste chainée des blocs libres
Joëlle Delacroix AMSI1999/2000 30
Gestion de l'espace libre par un vecteur de bits
• La liste d'espace libre est représentée par un vecteur binaire, dans lequel chaque bloc est figuré par un bit.
– Bloc libre : bit à 1– Bloc alloué : bit à 0
10101010001010101000
Joëlle Delacroix AMSI1999/2000 31
Gestion de l'espace libre par liste chainée
• La liste d'espace libre est représentée par une liste chainée des blocs libres
liste des blocs libres
Joëlle Delacroix AMSI1999/2000 32
Gestion de l'espace libre
• La FAT intègre directement la gestion de cet espace.
1234567
11
17
7
1
NULL
13
15
20
15
13
3
NULLL
LLL
L
L
L
L
14
16
12
fichier 1
fichier 2
FAT
Joëlle Delacroix AMSI1999/2000 33
C. Correspondance fichier logique - fichier physique
Désignation des fichiers :le répertoire
Joëlle Delacroix AMSI1999/2000 34
Gestion de l'espace alloué
• Le système de fichier est découpé en partitions ou volumes.
• Chaque partition contient une "table des matières" ou "répertoire" contenant des informations sur les fichiers de la partition.
répertoire
répertoire
répertoire
fichiers
fichiers
fichiers
Partition A
Partition B
Partition C
Joëlle Delacroix AMSI1999/2000 35
Le répertoire
– Le répertoire est une table sur le support permettant de référencer tous les fichiers existants du volume avec leur nom et leurs caractéristiques principales
– Le répertoire stocke pour chaque fichier l'adresse des zones de données allouées au fichier
Répertoire
fichier
fichierfichier
Joëlle Delacroix AMSI1999/2000 36
Un répertoire est une zone disque réservée par le SGF.Le répertoire comprend un certain nombre d'entrées.Une entrée est allouée à chaque fichier du disque
entréeentréeentréeentréeentrée
- Nom du fichier- Type du fichier- Taille du fichier- Propriétaire- Protection- Date de création- Adresse des zones de données
répertoire
Composition du répertoire
1 entrée
Joëlle Delacroix AMSI1999/2000 37
Organisation des répertoires
• Répertoire à un niveau : tous les fichiers d'une partition sontrépertoriées dans un unique catalogue.
1 répertoire
Tous les noms de fichiers doivent être différents.
Difficile si plusieurs utilisateurs
- nom du fichier
Joëlle Delacroix AMSI1999/2000 38
Organisation des répertoires
• Répertoire à deux niveaux : chaque utilisateur dispose d'un sous-répertoire (User File Directory (UFD)) dans lequel sont référencés tous les fichiers lui appartenant.
1 21 2
répertoire racine
Arthur Juliesous-répertoireutilisateur Arthurutilisateur Julie
Nom de fichier /utilisateur Arthur 1 /Julie/1
Joëlle Delacroix AMSI1999/2000 39
Organisation des répertoires
• Répertoire à structure arborescente : chaque utilisateur dispose d'un sous-répertoire propre
(Répertoire de travail)l'utilisateur peut créer des sous-répertoires à l'intérieur de son
répertoire de travail
1 3
33 2
répertoire racine
A
Arthur Julierépertoire de travail
textesous-répertoire pg
A/Julie/3
A/Arthur/pg/3pg/3
A/Arthur/texte/3
Joëlle Delacroix AMSI1999/2000 40
Exemple de MS_DOS
Chaque fichier occupe 32 octets dans le répertoire
attribut heuredate
nom_fichier ext A D tailleBH
N° 1er Bloc
Un sous-répertoire occupe une entrée comme un fichierle répertoire racine a 112 entréesles autres sous-répertoires n'ont pas d'entrées limitées
Joëlle Delacroix AMSI1999/2000 41
Exemple d'Unix
• Un répertoire est un fichier dont les données sont une suite d'éléments qui comprennent pour chaque fichier chacun un n° d'inode et le nom du fichier
.
..bindevlibetcusrtmp
11475398
répertoire racine
9 .1 ..17 claude57 luc
prog44
bloc 125
n° i-node
ss-répertoire
125
info
i-node 9
688
info
i-node 44
/usr /usr/prog
Joëlle Delacroix AMSI1999/2000 42
Organisation de partition : Unix
Bloc boot Super bloc Liste des inodes Blocs de données
Descripteur des fichiers1er secteurcontient le bootstrap
Taille du SGFblocs libres chainésinodes libres
Joëlle Delacroix AMSI1999/2000 43
Organisation de partition : DOS
FAT Répertoire racine Blocs de donnéesSecteur
d'amorçage
1234567
11
17
7
1
NULL
13
15
20
15
13
3
NULLL
LLL
L
L
L
L
14
16
12
Fichier 1 ext AH D tailleB
Joëlle Delacroix AMSI1999/2000 44
D. Correspondance fichier logique - fichier physique
Réalisation des opérations
Joëlle Delacroix AMSI1999/2000 45
Les commandes et les requêtes
les commandes:- interface SGF utilisateurs- langage de commande ex: shell d'unix, commandes MS-DOS- niveau fichiers et non contenu des fichiers
>> DIR liste du répertoire courant MS-DOS$ ls -la liste du répertoire courant Unix
les requêtes (appels systèmes) :- interface SGF logiciel- appel dans un programme aux fonctions du SGF (langage C, Ada...)- niveau fichier et enregistrements
read (fic, tampon, nb_oct)
Joëlle Delacroix AMSI1999/2000 46
Les commandes
Les commandes du S.E. incluent un certain nombre de commandes SGF
Langage de commandes
Quelques commandes du SGF:- liste du répertoire (ls, dir)- changement de répertoire (cd)- création répertoire (mkdir)- suppression répertoire (rmdir)- suppression fichier (rm, del)- modification d'attributs d'un fichier (chmod)- changement de nom de fichier… (mv, ren)
Au lancement d'une commande -> appel à la fonction du SGF
Joëlle Delacroix AMSI1999/2000 47
Les requêtes
Les requêtes sont des appels aux fonctions SGF dans un programme.Les requêtes permettent de modifier le contenu des fichiers
Quelques requêtes du SGF:- ouverture fichier (open)- création de fichier (create)- fermeture fichier (close)et- lecture d'enregistrement (read)- écriture d'enregistrement (write)
Joëlle Delacroix AMSI1999/2000 48
MC
descripteur
Ouverture fichier
informations
Fich = OPEN (nom_fichier, descripteur, L/E, accès) repertoire
L'ouverture- vérifie la compatibilité des types d'accès au fichier (lecture/écriture)- vérifie l'existence du fichier dans le répertoire du disque- transfert les éléments dans le descripteur correspondant en mémoire
Le descripteur:- nom du fichier- pointeur sur 1er enregistrement du fichier- autorisation d'accès: L lecture E: écriture.....
Le descripteur est conservé et mis à jour en mémoire jusqu'à la fermeture
Joëlle Delacroix AMSI1999/2000 49
fd = open("Fich", "r")Ouverture fichier : Unix
Processus A
Table des
fichiers
Table des
inodes
Table des
fichiers
Fich r dep
fdInode fich
Inode fich
Répertoire courant
Inode repC Inode repC
Fich n°inode
copie
0
Joëlle Delacroix AMSI1999/2000 50
cache
enrg
MCLecture fichier
enrgREAD (fic, enrg, n°enregistrement) lecture
La lecture d'un fichier nécessite:- n° du descripteur - l'adresse mémoire de la zone réceptrice de l'enregistrement- n° de l'enregistrement qui peut:
. ne pas exister si lecture séquentielle
. être une clé
. être le rang si accès direct
bloc disque
Cette fonction n'agit pas sur le contenu du descripteur (lecture)Il faut déterminer l'adresse du bloc physique contenant l'enregistrement à lireLes données lues sont transférées dans un tampon mémoire
Joëlle Delacroix AMSI1999/2000 51
Lecture fichier : Unix READ (fd, enrg, taille_enrg_octets)
• Un fichier Unix est une suite d'octets sans structure, accessibles de manièreséquentielle. Le SGF maintient pour chaque fichier un offset (dep) qui pointe sur l'octet courant dans le fichier.
• Une opération de lecture spécifie combien d'octets doivent être lus (taille_enrg_octets). La lecture s'effectue depuis la position courante de l'offsetet délivre les taille_enrg_octets octets suivants.
nb_octetsOpenoffset = 0
Read (fd, tp, nb_octets)offset = nb_octets
Joëlle Delacroix AMSI1999/2000 52
Lecture fichier : Unix READ (fd, enrg, taille_enrg_octets)
• Une opération de lecture spécifie combien d'octets doivent être lus (taille_enrg_octets). La lecture s'effectue depuis la position courante de l'offsetet délivre les taille_enrg_octets octets suivants.
Il faut déterminer à quel bloc les octets à lire appartiennent, et lire ce bloc
offsetnb_octetsOpenoffset = 0
Read (fd, tp, nb_octets)offset = offset + nb_octets
inode
Joëlle Delacroix AMSI1999/2000 53
Lecture fichier : Unix READ (fd, enrg, taille_enrg_octets)
• Le système maintient une liste de tampons mémoire qui joue le rôle de cachepour les blocs du disque et permet de réduire les entrées/sorties.La taille d'un tampon est égale à la taille d'un bloc disque.
• Lorsque le système doit lire un bloc depuis le disque :
Il cherche d'abord si le bloc est déjà présent dans la liste des tampons mémoire
Si non, il prend un tampon libre et copie le bloc disque dans le tampon.Si tous les tampons sont occupés, il libère un tampon en choisissant le
moins récemment accédé.
Joëlle Delacroix AMSI1999/2000 54
Lecture fichier : Unix 1ère lecture : accès au bloc 0 de ficG
Utilisateur Systèmestruct element {
char classe [12];char prof [25];int nb_eleves : integer; }
element enrg;
Bloc 4fic A
Bloc 1fic B
videBloc 5fic B
Bloc 3fic A
Liste de tamponsenrg
Recherche du bloc 0 de figG dans la listebloc 0 de figG n'est pas dans la listelecture depuis le disque
fd = open(ficG, r);
while (not END_OF_FILE) {
READ (fd, enrg, taille_enrg_octets) }
close(fd)
Joëlle Delacroix AMSI1999/2000 55
Lecture fichier : Unix 1ère lecture : accès au bloc 0 de ficG
Utilisateur Systèmestruct element {
char classe [12];char prof [25];int nb_eleves : integer; }
element enrg;
Bloc 4fic A
Bloc 1fic B
Bloc 5fic B
Bloc 0ficG
Bloc 3fic A
Liste de tamponsenrg
fd = open(ficG, r);
while (not END_OF_FILE) {
READ (fd, enrg, taille_enrg_octets) }
close(fd)
1 accès disque
Bloc 0ficG
Joëlle Delacroix AMSI1999/2000 56
Lecture fichier : Unix 2ème lecture : accès au bloc 0 de ficG
Utilisateur Systèmestruct element {
char classe [12];char prof [25];int nb_eleves : integer; }
element enrg;
Bloc 4fic A
Bloc 1fic B
Bloc 5fic B
Bloc 3fic A
Bloc 0ficG
Liste de tamponsenrg
Recherche du bloc 0 de figG dans la listebloc 0 de figG est dans la liste
fd = open(ficG, r);
while (not END_OF_FILE) {
READ (fd, enrg, taille_enrg_octets) }
close(fd)
0 accès disque
Bloc 0ficG
Joëlle Delacroix AMSI1999/2000 57
Lecture fichier : Unix I ème lecture : accès au bloc 1 de ficG
Utilisateur Systèmestruct element {
char classe [12];char prof [25];int nb_eleves : integer; }
element enrg;
Bloc 4fic A
Bloc 1fic B
Bloc 0ficG
Bloc 5fic B
Bloc 3fic A
Liste de tamponsenrg
Recherche du bloc 1 de figG dans la listebloc 1 de figG n'est pas dans la listelecture depuis le disque
fd = open(ficG, r);
while (not END_OF_FILE) {
READ (fd, enrg, taille_enrg_octets) }
close(fd)
Bloc 1ficG
Joëlle Delacroix AMSI1999/2000 58
Lecture fichier : Unix I ème lecture : accès au bloc 1 de ficG
Utilisateur Systèmestruct element {
char classe [12];char prof [25];int nb_eleves : integer; }
element enrg;
Bloc 4fic A
Bloc 1fic B
Bloc 0ficG
Bloc 5fic B
Bloc 3fic A
Liste de tampons
fd = open(ficG, r);
while (not END_OF_FILE) {
READ (fd, enrg, taille_enrg_octets) }
close(fd)
enrg
1 accès disque
Bloc 1ficG
Bloc 3fic A
Aucun tampon libreLe moins récemment accédé est libéré (Bloc3, FicA)
Écriture si le bloc a été modifié dans le cache
Joëlle Delacroix AMSI1999/2000 59
Lecture fichier : Unix I ème lecture : accès au bloc 1 de ficG
Utilisateur Systèmestruct element {
char classe [12];char prof [25];int nb_eleves : integer; }
element enrg; Bloc 1fic G
Bloc 4fic A
Bloc 1fic B
Bloc 0ficG
Bloc 5fic B
fd = open(ficG, r);
while (not END_OF_FILE) {
READ (fd, enrg, taille_enrg_octets) }
close(fd)
enrg Liste de tampons
Bloc 1ficG
Bloc 3fic A
Lecture
1 accès disque
Joëlle Delacroix AMSI1999/2000 60
Ecriture fichier
WRITE (fic, tampon, n°enregistrement)
L'écriture dans un fichier nécessite:- n° logique du descripteur- l'adresse mémoire de la zone émettrice de l'enregistrement- n° de l'enregistrement qui peut:
. ne pas exister si écriture séquentielle
. être une nouvelle clé (contrôle unicité)
. être le rang si accès direct.....
Cette fonction met à jour certains éléments du descripteur Gestion des pointeurs ou tables d'allocation des espacesLes données sont transférées du tampon mémoire vers le fichier
Joëlle Delacroix AMSI1999/2000 61
Fermeture fichier
CLOSE (fic)
La fermeture:- transfert les éléments du descripteur vers le répertoire sur le disque
Joëlle Delacroix AMSI1999/2000 62
Close(fd)Ouverture fichier : Unix
Processus A
Table des
fichiers
Table des
inodes
Table des
fichiers
Fich r dep
fdInode fich
Inode fich
Répertoire courant
Inode repC Inode repC
Fich n°inode
copie
Joëlle Delacroix AMSI1999/2000 63
E. Protection des fichiers
Joëlle Delacroix AMSI1999/2000 64
Protection des fichiers
• Protection contre les dégâts physiquesFIABILITE
redondance, sauvegardes
• Protection contre les accès inappropriésPROTECTION
droits d'accès, mots de passe
Joëlle Delacroix AMSI1999/2000 65
Protection contre les accès inappropriés
• Association d'un mot de passe à chaque fichier (IBM)
– viable sur un système monoutilisateur– difficile à mettre en œuvre sinon
Joëlle Delacroix AMSI1999/2000 66
Protection contre les accès inappropriés
• Définition de droits d'accès– lecture (r), écriture (w), exécution (x), destruction ...
• A chaque fichier est associé une liste d'accès, spécifiant pour chaque utilisateur, les types d'accès qui lui sont autorisés
fichAAnnier x
Nicolasr
Martiner x
Charlesr x
Louisr w x
fichBAnnier
Nicolasr w x
Martiner w x
Charlesr w x
Louisr
Joëlle Delacroix AMSI1999/2000 67
Protection contre les accès inappropriés
• La liste d'accès peut être longue et difficile à gérer– définition de groupes auxquels sont associés des droits– un utilisateur hérite des droits du groupe auxquels il appartient
G3 : NicolasG2 : Martine, Charles, AnnieG1 : LouisfichALouis
r w xCharlesr x
Martiner x
Nicolasr
Annier x fichAG3
rG2r x
G1r w x
fichBLouisr
Charlesr w x
Martiner w x
Nicolasr w x
Annier fichBG1
r w xG3r
G2r w x
G3 : Annie, LouisG2 : Martine, CharlesG1 : Nicolas
Joëlle Delacroix AMSI1999/2000 68
Protection contre les accès inappropriés
• Exemple Unix– Définition de trois groupes :
• le propriétaire : celui qui a crée le fichier• le groupe : le groupe de travail • les autres : tous les autres
> ls -ldrwxr-xr-x 2 delacroi 4096 Oct 22 1998 repertoire-rw-r--r-- 1 delacroi 6401 Jan 8 1997 eleve.c-rwxr-xr-x 1 delacroi 24576 Dec 15 1998 essai
-rw-r--r-- 1 delacroi 67 Dec 15 1998 essai.c
> chmod a+w essai.c> ls -l essai.c-rw-rw-rw- 1 delacroi 67 Dec 15 1998 essai.c
Joëlle Delacroix AMSI1999/2000 69
Protection contre les dégâts physiques
• Utilisation de la redondance interne :l'information existe en double exemplaire : une version primaire, une version secondairele système maintient la cohérence entre les deux versions
exemple : MSDOS dispose de deux exemplaires de la FAT
• Redondance par sauvegarde périodique :sauvegarde complète : la totalité des objets est dupliquée même si ils n'ont pas été modifiés
sauvegarde incrémentale : seuls les objets modifiés depuis la dernière sauvegarde sont dupliqués.
Joëlle Delacroix AMSI1999/2000 70
F. Gestion des accès disque
Joëlle Delacroix AMSI1999/2000 71
Temps d'accès à un secteur
Adresse d'un secteur : n°face, n°piste,n°secteur
temps d'accès à un secteur :=
temps de positionnement du bras sur la piste+
temps d'attente pour le passage du secteur sous la tête de lecture
le temps de positionnement du bras est le plus pénalisant : on utilise desalgorithmes de services des requêtes disques pour réduire au mieux lesmouvements du bras
Joëlle Delacroix AMSI1999/2000 72
L'ordonnancement du bras
Pour améliorer le temps d'accès
Les algorithmes d'ordonnancement du bras- FCFS: requêtes servies séquentiellement- SSTF: requête la plus proche d'abord- algorithme de l'ascenseur
12
3
1
23
12
3
FCFS SSF Ascenseur
Joëlle Delacroix AMSI1999/2000 73
Ordonnancement du disque : FCFS
• FCFS (First Come, First Served) : les requêtes disque sont servies selon leur ordre d'arrivée
liste de requêtes (n° de piste)98 183 37 122 14 124 65 67
position initiale de la tête de lecture/écriture : piste 53
0 14 37 53 65 67 98 122 124 183 199
Déplacement total : 640 pistes
Joëlle Delacroix AMSI1999/2000 74
Ordonnancement du disque : SSTF
• SSTF (Shortest seek time first) : la requête servie est celle dont la position est la plus proche de la position courante
liste de requêtes (n° de piste)98 183 37 122 14 124 65 67
position initiale de la tête de lecture/écriture : piste 53
Déplacement total : 236 pistes
0 14 37 53 65 67 98 122 124 183 199
Joëlle Delacroix AMSI1999/2000 75
Ordonnancement du disque : ascenseur
• Ascenseur (SCAN) : le bras balaye l'ensemble des pistes et sert les requêtes au fur et à mesure des pistes parcourues
liste de requêtes (n° de piste)98 183 37 122 14 124 65 67
position initiale de la tête de lecture/écriture : piste 53
Déplacement total : 224 pistes
0 14 37 53 65 67 98 122 124 183 199
demi-tour
Joëlle Delacroix AMSI1999/2000 76
Ordonnancement du disque : ascenseur
• Ascenseur (C-SCAN) : le bras balaye l'ensemble des pistes toujours dans le même sens
liste de requêtes (n° de piste)98 183 37 122 14 124 65 67
position initiale de la tête de lecture/écriture : piste 53
0 14 37 53 65 67 98 122 124 183 199
Recommended