Professional Documents
Culture Documents
SGF - DISQUE
C.Crochepeyre
Diapason
rponse
requte
Contrleur E/S
matriel
accs unit
Priphrique
C.Crochepeyre
Diapason
Introduction
fonctionnalits fiabilit
Partie cache
gestion des donnes: fichiers
organisation accs
C.Crochepeyre MPS_SGF 2000 - 20001 Diapason 3
Les concepts:
Fichier Enregistrement
C.Crochepeyre
Diapason
C 1 caractre ascii
secteur
512 caractres
fichier
1 fichier
C.Crochepeyre
Diapason
Selon le SGF, le fichier est : - une simple suite d'octets - une suite d'enregistrements - une arborescence de blocs gestion des secteurs gestion des enregistrements gestion des blocs
v fichier
v fichier
v fichier
C.Crochepeyre
Diapason
informations de l'entit 1
informations de l'entit 2
informations de l'entit 3
C.Crochepeyre
Diapason
Les fichiers sont reprs sur le disque par un nom: FICHIER.C FICHIER.PAS FICHIER.BIN FICHIER.LIB FICHIER.TXT FICHIER.DAT programme source en C programme source en pascal programme binaire excutable fichier librairie fichier texte fichier donnes
Les noms de fichiers respectent la syntaxe impose par le SGF: - longueur maxi d'un nom - jeu de caractres autoris pour le nom - extension diffrenciant la nature du fichier....
C.Crochepeyre
Diapason
Le concept 'enregistrement'
L'accs aux donnes d'un fichier se fait en fournissant au SGF: - le nom du fichier - le n d'enregistrement dans ce fichier
Ce concept d'enregistrement n'existe pas toujours: - accs partir d'un pointeur dans le fichier
C.Crochepeyre
Diapason
L'enregistrement structur Plusieurs types d'enregistrements sont possibles selon le SGF: - enregistrement = bloc = donnes - enregistrement = bloc = zones de donnes Zone: Chaque zone est une reprsentation d'un objet de l'entit
Entit: article n nom_article v Zone nom_article rfrence_article
cl
C.Crochepeyre
Diapason
10
L'enregistrement structur
C.Crochepeyre
Diapason
11
La longueur de l'enregisrement
La longueur fixe: - tous les enregistrements d'un mme fichier sont de mme longueur Facilit de gestion Risque de perte de place importante
C.Crochepeyre
Diapason
12
La gestion des enregistrements Accs aux enregistrements de longueur fixe: - connatre l'emplacement du premier enregistrement - connatre la longueur
+ long
+ long
+ long
+ long
Accs aux enregistrements de longueur variable: - connatre l'emplacement du premier enregistrement - connatre la longueur de chaque enregistrement
long 1
long 2
long 3
long 4
long 5
C.Crochepeyre
Diapason
13
enregistrement
ceci est un enregistrement d' une ligne de texte saisie au clavier
secteur 21
secteur 22
secteur 23
secteur 24
secteur
suite de secteurs
C.Crochepeyre
Diapason
14
Connatre la position du 1er enregistrement du fichier: - soit l'adresse logique: n secteur logique - n bloc - soit l'adresse physique: n face, n piste, n secteur Connatre le dplacement pour chaque enregistrement: - soit le nombre d'octets - soit un chanage sur l'enregistrement suivant chanage: - adresse de l'enregistrement suivant
C.Crochepeyre
Diapason
15
Le bloc physique Pour un meilleur compromis: temps d'accs et capacit de stockage certains SGF organisent l'espace du disque en blocs de secteurs ex: 1 bloc = 2 secteurs de 512 octets soit 1KO
sect
sect
sect
Bloc 1
Bloc 2
C.Crochepeyre
Diapason
16
liste chane des n des blocs libres 14 2016 258 311 1965 784 69
C.Crochepeyre
table de bits des blocs libres 1001111000100001111 0001101010001101100 0110100101111111000 0001111100000111111 0000001111111011111 1010111000111011001
Diapason
17
Exemple de MS-DOS La FAT File Allocation Table Table d'allocation des fichiers x x EOF 6 EOF 9 mauvais 4 3 6 9 4 fichier_A:
0 1 2 3 4 5 6 7 8 9
C.Crochepeyre
Diapason
18
pointeurs sur les blocs de donnes 10 n de blocs pointeur 1 indirection pointeurs 2 indirections pointeurs 3 indirections pointeurs sur les blocs de donnes
C.Crochepeyre
Diapason
19
Le blocage d'enregistrements
Lorsque plusieurs enregistrements sont transfrs ensemble lors d'un change, on dit qu'ils sont bloqus. Le facteur de blocage est le nombre n d'enregistrements par bloc logique
Enregistrement n Enregistrement n+1 V BLOC logique Le facteur de blocage est calcul de manire occuper au mieux les blocs physiques Enregistrement n+2
C.Crochepeyre
Diapason
20
Le fichier
LE FICHIER
Un fichier est le regroupement de tous les enregistrements dcrivant le mme type d'entit
FICHIER: Enregistrement 1 Enregistrement 4 ---Enregistrement n-2 Enregistrement n-1 Enregistrement n Enregistrement 2 Enregistrement 5 Enregistrement 3 Enregistrement 6
C.Crochepeyre
Diapason
21
Le volume
LE VOLUME
le volume est l'ensemble des fichiers se trouvant sur un mme support
C.Crochepeyre
Diapason
22
Le rpertoire
Le rpertoire est une table sur le support permettant de rfrencer tous les fichiers existants du volume avec leur nom et leurs caractristiques principales Le rpertoire stocke pour chaque fichier l'adresse du premier enregistrement
C.Crochepeyre
Diapason
23
Composition du rpertoire Un rpertoire est une zone disque rserve par le SGF. Le rpertoire comprend un certain nombre d'entres. Une entre est alloue chaque fichier du disque
- Nom du fichier - Type du fichier - Taille du fichier - Propritaire - Protection - Date de cration - Adresse du 1er enregistrement
1 entre
C.Crochepeyre
Diapason
24
1 rpertoire A
rpertoire racine
sous-rpertoire B C
- nom du fichier
D E 1 2
A/B/E/ FIC_3
Diapason 25
compteur de liens = 2
- Proprit des fichiers par sous-rpertoire - Partage d'un mme fichier par deux usagers
C.Crochepeyre
Diapason
26
Exemple de MS_DOS
nom_fichier
ext
taille
attribut
date heure
N 1er Bloc Un sous-rpertoire occupe une entre comme un fichier le rpertoire racine a 112 entres les autres sous-rpertoires n'ont pas d'entres limites
C.Crochepeyre
Diapason
27
Exemple d'Unix
rpertoire racine 1 1 4 7 5 3 9 8
. ..
bin dev lib etc usr tmp ss-rpertoire i-node 9 info
125
bloc 125
9 1
. ..
i-node 44 info
688
/usr
/usr/prog
n i-node
C.Crochepeyre
Diapason
28
Rpertoire
C.Crochepeyre
Diapason
29
Allocation de l'espace d'un fichier allocation statique de l'espace du fichier Les enregistrements d'un mme fichier sont contigus
FIC_A
FIC_C
FIC_F
rpertoire
C.Crochepeyre
Diapason
30
Allocation statique
Phase d'initialisation SGF: - rservation de l'emplacement du rpertoire les entres sont initialises comme tant libres
espace libre
C.Crochepeyre
Diapason
31
Allocation statique
A la cration du fichier:
A C F
- calcul de l'emplacement ncessaire: nb d'enregistrements prvus * long d'un enregistrement - recherche d'un emplacement libre correspondant - si oui cration d'une entre dans le rpertoire avec maj du pointeur 1er emplacement Cet emplacement ne fait plus partie de l'espace libre - maj du pointeur vers le 1er emplacement libre
C.Crochepeyre
Diapason
32
Allocation statique
A la cration d'un enregistrement: - place disponible dans l'espace rserv du fichier? si oui - occupation d'un emplacement dans l'espace rserv si non - soit allocation d'un emplacement supplmentaire (dbordement) - soit dplacement dans un espace plus grand (rorganisation)
dbordement
C.Crochepeyre
Diapason
33
Allocation statique
A la suppression d'un enregistrement: - aucune rcupration d'espace mais: - possibilit de rcupration de l'emplacement de l'enregistrement supprim: marquage
Compteur: un compteur d'enregistrements est mis jour dans le rpertoire - si 0 aucun enregistrement - si <>0 n enregistrements
C.Crochepeyre
Diapason
34
Allocation de l'espace d'un fichier allocation dynamique de l'espace du fichier Les enregistrements d'un mme fichier sont chans entre eux
FIC_A FIC_C FIC_F
rpertoire
C.Crochepeyre
Diapason
35
Allocation dynamique
Phase d'initialisation SGF: - rservation de l'emplacement du rpertoire les entres sont initialises comme tant libres
espace libre
C.Crochepeyre
Diapason
36
Allocation dynamique
cration du fichier: - la cration du 1er enregistrement - pas de rservation pralable d'un emplacement A la cration d'un enregistrement: - place disponible dans l'espace libre? si oui - occupation d'un emplacement dans l'espace libre - maj du pointeur vers 1er emplacement libre si non - plus de place libre
C.Crochepeyre
Diapason
37
Allocation dynamique
Cration d'un enregistrement: - utilisation du premier enregistrement libre . maj pointeur1er libre - si 1er enregistrement du fichier . cration entre dans rpertoire . maj pointeur du 1er enregistrement dans rpertoire . maj pointeur dernier enregistrement dans rpertoire . chanage de l'enregistrement: * (dernier)
C.Crochepeyre
Diapason
38
Allocation dynamique
Cration d'un enregistrement: - si nime enregistrement du fichier . maj pointeur dernier enregistrement dans rpertoire . chanage dernier enregistrement vers nouvel enregistrement . chanage de l'enregistrement: * (dernier)
C.Crochepeyre
Diapason
39
Allocation dynamique
Suppression d'un enregistrement: - si 1er enregistrement du fichier . maj pointeur du 1er enregistrement dans rpertoire - chanage enregistrement libr avec le dernier libre
C.Crochepeyre
Diapason
40
Allocation dynamique
Suppression d'un enregistrement: - si nime enregistrement du fichier . chanage enregistrement prcdent vers enregistrement suivant - chanage enregistrement libr avec le dernier libre
C.Crochepeyre
Diapason
41
Allocation dynamique
Suppression d'un enregistrement: - si dernier enregistrement du fichier . maj pointeur dernier enregistrement dans rpertoire . chanage avant-dernier enregistrement : * (dernier) - chanage enregistrement libr avec le dernier libre
C.Crochepeyre
Diapason
42
Selon l'allocation de l'espace disque qu'utilise le SGF plusieurs organisations de fichiers sont possibles - squentielle allocation statique
- squentielle chane
allocation dynamique
C.Crochepeyre
Diapason
43
Organisation squentielle indexe: - table d'index - fichier des donnes Principe: - recherche d'un enregistrement dans une partie du fichier avantages: - rapidit d'accs inconvnients: - double accs - stockage des index
0 - 100 100 - 200 200 - 300 300 - 400 400 - 500 table index fichier squentiel
C.Crochepeyre
Diapason
44
Organisation alatoire: Aucun lien ne relie les enregistrements entre eux Les emplacements des enregistrements sont calculs: H-coding
n enregistrement
adresse
C.Crochepeyre
Diapason
45
Les accs
Comment accder aux emplacements des enregistrements? Quelques mthodes d'accs: - squentielle si organisation squentielle - squentielle-indexe si organisation squentielle-indexe - squentielle chane si organisation squentielle-indexe - calcul si organisation alatoire et H-Coding - relatif si organisation squentielle et format fixe - direct si adresse physique connue - indirect si 1er accs donne adresse du 2scd Un SGF gre quelques mthodes ces mthodes sont parfois particulires au SGF Elles dpendent des organisations
C.Crochepeyre
Diapason
46
Accs squentiel - Accs au premier enregistrement: adresse dans le rpertoire - organisation squentielle 1 2 3 4
si longueur variable: adresse suivant = adresse + longueur variable pour chaque enregistrement
C.Crochepeyre
Diapason
47
- squentielle chane
1 Ad 2 Ad 3
C.Crochepeyre
Diapason
48
Accs squentiel-index
- Accs au premier lment de la table d'index: rpertoire - la table d'index est transfre en mmoire
- recherche plage dans table - accs la premire adresse - lecture squentielle jusqu' l'enregistrement recherch
Ad Ad Ad Ad Ad
table index
fichier squentiel
C.Crochepeyre
Diapason
49
Accs calcul
Le calcul de l'emplacement de l'enregistrement se fait par une fonction connue du SGF - fournir la cl de l'enregistrement - le SGF applique une fonction (H_Coding) - le rsultat donne l'adresse ex: cl:011203
C.Crochepeyre
Diapason
50
Accs relatif
- organisation squentielle 1 2 3 4
si longueur fixe: si N: nime enregistrement adresse = adresse dbut + (N-1) * longueur fixe
- squentielle chane
1 Ad 2 Ad 3
C.Crochepeyre
Diapason
51
Accs direct
C.Crochepeyre
Diapason
52
Accs indirect
Ad
- la lecture d'un premier enregistrement le SGF rcupre l'adresse de l'enregistrement lire - l'emplacement de l'Adresse doit tre connu du SGF
C.Crochepeyre
Diapason
53
les commandes: - interface SGF utilisateurs - langage de commande ex: shell d'unix, commandes MS-DOS - niveau fichiers et non contenu des fichiers >> DIR $ ls -la liste du rpertoire courant MS-DOS liste du rpertoire courant Unix
les requtes: - interface SGF logiciel - appel dans un programme aux fonctions du SGF (langage C, Cobol...) - niveau fichier et enregistrements read (fic, tampon, nb_oct)
C.Crochepeyre
Diapason
54
Les commandes
Les commandes du S.E. incluent un certain nombre de commandes SGF Langage de commandes Quelques commandes du SGF: - liste du rpertoire - changement de rpertoire - cration sous-rpertoire - suppression sous-rpertoire - cration fichier (allocation statique) - suppression fichier - modification d'attributs d'un fichier - changement de nom de fichier... Au lancement d'une commande -> appel la fonction du SGF
C.Crochepeyre
Diapason
55
Les requtes
Les requtes sont des appels aux fonctions SGF dans un programme. Les requtes permettent de modifier le contenu des fichiers Quelques requtes du SGF: - ouverture fichier - fermeture fichier et - lecture d'enregistrement - criture d'enregistrement ou - cration d'un enregistrement - suppression d'un enregistrement - modification d'un enregistrement
C.Crochepeyre
Diapason
56
Ouverture fichier
OPEN (fic, n, descripteur, L/E) L'ouverture - vrifie l'exitence du fichier dans le rpertoire du disque - transfert les lments dans le descripteur correspondant en mmoire Le descripteur: - nom du fichier - n logique correspondant - pointeur sur 1er enregistrement du fichier - autorisation d'accs: L lecture E: criture..... Le descripteur est conserv et mis jour en mmoire jusqu' la fermeture
C.Crochepeyre
Diapason
57
Lecture fichier
READ (nfic, accs, tampon, nenregistrement) La lecture d'un fichier ncessite: - n logique du fichier du descripteur - mode d'accs demand compatible avec l'organisation - l'adresse mmoire de la zone rceptrice de l'enregistrement - n de l'enregistrement qui peut: . ne pas exister si lecture squentielle . tre une cl . tre le rang si accs relatif..... Cette fonction n'agit pas sur le contenu du descripteur (lecture) Les donnes lues sont tranfres dans le tampon mmoire Plusieurs requtes peuvent exister avec des fonctionnalits diffrentes
C.Crochepeyre
Diapason
58
Ecriture fichier WRITE (nfic, accs, tampon, nenregistrement) L'criture dans un fichier ncessite: - n logique du fichier du descripteur - mode d'accs demand compatible avec l'organisation - l'adresse mmoire de la zone mettrice de l'enregistrement - n de l'enregistrement qui peut: . ne pas exister si criture squentielle . tre une nouvelle cl (contrle unicit) . tre le rang si accs relatif..... Cette fonction met jour certains lments du descripteur Gestion des pointeurs ou tables d'allocation des espaces Les donnes sont transfres du tampon mmoire vers le fichier Plusieurs requtes peuvent exister avec des fonctionnalits diffrentes
C.Crochepeyre MPS_SGF 2000 - 20001 Diapason 59
Fermeture fichier
CLOSE ( nfic, descripteur) La fermeture: - transfert les lments du descripteur vers le rpertoire sur le disque - les pointeurs vers l'espace libre sont mis jour - d'autres accs sont alors possibles
C.Crochepeyre
Diapason
60
disque dur
C.Crochepeyre
Diapason
61
Le disque dport
Allocation d'un espace du disque pour chaque utilisateur: disque virtuel - mme interface qu'un SGF local - simulation du contrleur par le rseau Accs des fichiers distance: - cration du fichier - retour par le serveur de fichiers d'un n de fichier: identificateur - accs ce fichier uniquement avec le n identificateur SGF serveur de fichiers: - le serveur offre un SGF complet - transparence total de la localisation des rpertoires, des fichiers...
C.Crochepeyre
Diapason
62
La mise jour Pour assurer la cohrence des donnes Mise jour atomique: - lecture ou criture d'un enregistrement complte et non partielle Sauvegarde stable: - deux disques sont mis jour des emplacements physiques identiques - contrle priodique par le serveur de l'galit de chaque bloc . si bloc endommag recopie du bloc Fichiers plusieurs versions: - les mises jour sont effectues sur une copie - fichiers dats
C.Crochepeyre
Diapason
63
Ex: maj simultanes d'un enregistrement dans un fichier - Z=500 - maj P1 -> Z= Z+200 et P2 -> Z+Z+300 => Z=1000 - P1 lit Z=500 - P2 lit Z=500 - P1 Z=500+200 => Z=700 - P2 Z=500+300 => Z=800 SOLUTIONS: => Z=800 faux - srialiser les mises jour - verrouillage du fichier lors d'un accs Algorithmes de contrle d'accs concurrents
C.Crochepeyre
Diapason
64
Les transactions
BEGIN TRANSACTION
changes
END TRANSACTION
MAJ
C.Crochepeyre
Diapason
65
Les transactions
BEGIN TRANSACTION: Serveur - cre un enregistrement de la transaction - verrouille l'accs au fichier - copie du fichier ds la premire tentative d'criture les maj se font sur la copie END TRANSACTION: Serveur - cre une liste d'intentions - copie la liste dans l'enregistrement de la transaction - interdit toute opration jusqu' la fin de la transaction - met jour tous les blocs du fichier (maj atomique) - dverrouille le fichier - validation
C.Crochepeyre
Diapason
66
Certains SGF dupliquent n fois les fichiers Nom_Fichier Nom_Fic1 Nom_Fic2 Nom_Fic3
noeud1 noeud2 noeud3 noeud4
45 56 55
865 54 59
659 75 26
84 99 77
C.Crochepeyre
Diapason
67
La scurit
Protection des informations contre des accs non autoriss Les pertes de donnes: - catastrophes: incendie, feu.... - erreurs matrielles et logicielles: panne, bogues - erreurs humaines: saisie errone, mauvais programme, .... prvention: sauvegarde des fichiers
Les intrus: - indiscrtion - contournement des obstacles d'accs par plaisir... - gain financier: transfert de comptes bancaires - espionnage
C.Crochepeyre MPS_SGF 2000 - 20001 Diapason 68
Quelques cas Failles du SGF des anciennes versions d'Unix: - lpr impression puis effacement du fichier mots de passe - core fichier li au fichier des mots de passe: effacement et remplacement - mkdir cration d'un rpertoire: uid = racine puis uid = propritaire par chown entre mkdir et chown se mettre propritaire Le cheval de Troie: - modification d'un programme de manire fonctionner normalement mais en effectuant en plus des oprations illicites.
C.Crochepeyre
Diapason
69
Les moyens de scurit Les droits d'accs: - identificateur des utilisateurs: mot de passe > Unix nom d'usager mot de passe associ > autres mthodes: - quelques questions prcises (2/3) avec rponses sont stockes le S.E. pose une question au hasard - algorithme connu de l'utilisateur: 5 * N Le S.E. donne 4 l'usager doit rpondre 20 - Identification physique > carte magntique, signature, voix, ....
C.Crochepeyre
Diapason
70
La protection La protection des fichiers par des droits d'accs fich1 fich2 fich3 droits droits droits fich1 [r, w, x] fich2 [x] fich1 [r, w]
fich2 [x]
imprimante [w]
ex: Unix domaines d'accs: propritaire, ,groupe ou autre domaines d'excution: utilisateur ou noyau
C.Crochepeyre MPS_SGF 2000 - 20001 Diapason 71
CONCLUSION
Le SGF du S.E est une partie complexe mais necessaire: - il permet de stocker des donnes sur un support externe - il utilise des concepts logiques faciles mettre en oeuvre - il dcharge l'utilisateur de tout concept physique - il peut tre utilis en mode commande ou dans un applicatif en mode requte Chaque S.E. son propre SGF avec ses caractristiques: - organisations - modes d'accs - enregistrement plus ou moins structur - multiutilisateurs - niveau de protection et scurit
C.Crochepeyre
Diapason
72