Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de...

76
Joëlle Delacroix AMSI1999/2000 1 Système de gestion de fichiers

Transcript of Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de...

Page 1: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

Joëlle Delacroix AMSI1999/2000 1

Système de gestion de fichiers

Page 2: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 3: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 4: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

Joëlle Delacroix AMSI1999/2000 4

A. Fichier logique

Page 5: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 6: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 7: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 8: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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)

Page 9: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 10: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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)

Page 11: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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);

Page 12: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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);

Page 13: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

Joëlle Delacroix AMSI1999/2000 13

B. Fichier physique

Page 14: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 15: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 16: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 17: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 18: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 19: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 20: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 21: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 22: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 23: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 24: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 25: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 26: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 27: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 28: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 29: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 30: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 31: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 32: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 33: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

Joëlle Delacroix AMSI1999/2000 33

C. Correspondance fichier logique - fichier physique

Désignation des fichiers :le répertoire

Page 34: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 35: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 36: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 37: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 38: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 39: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 40: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 41: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 42: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 43: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 44: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

Joëlle Delacroix AMSI1999/2000 44

D. Correspondance fichier logique - fichier physique

Réalisation des opérations

Page 45: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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)

Page 46: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 47: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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)

Page 48: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 49: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 50: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 51: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 52: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 53: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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é.

Page 54: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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)

Page 55: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 56: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 57: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 58: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 59: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 60: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 61: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 62: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 63: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

Joëlle Delacroix AMSI1999/2000 63

E. Protection des fichiers

Page 64: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 65: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 66: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 67: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 68: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 69: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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.

Page 70: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

Joëlle Delacroix AMSI1999/2000 70

F. Gestion des accès disque

Page 71: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 72: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 73: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 74: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 75: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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

Page 76: Système de gestion de fichiers - resoo.org · Gestion de l'espace alloué •Le système de fichier est découpé en partitions ou volumes. • Chaque partition contient une "table

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